@google/adk 0.6.0 → 1.0.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 (406) hide show
  1. package/dist/cjs/a2a/a2a_remote_agent.js +18 -13
  2. package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +7 -0
  3. package/dist/cjs/agents/base_agent.js +11 -2
  4. package/dist/cjs/agents/context.js +1 -0
  5. package/dist/cjs/agents/functions.js +1 -0
  6. package/dist/cjs/agents/invocation_context.js +1 -0
  7. package/dist/cjs/agents/llm_agent.js +70 -13
  8. package/dist/cjs/agents/loop_agent.js +4 -0
  9. package/dist/cjs/agents/parallel_agent.js +4 -0
  10. package/dist/cjs/agents/processors/code_execution_request_processor.js +2 -0
  11. package/dist/cjs/agents/processors/context_compactor_request_processor.js +9 -0
  12. package/dist/cjs/agents/processors/tool_filter_request_processor.js +73 -0
  13. package/dist/cjs/agents/routed_agent.js +97 -0
  14. package/dist/cjs/auth/auth_handler.js +66 -1
  15. package/dist/cjs/auth/auth_preprocessor.js +178 -0
  16. package/dist/cjs/auth/auth_provider_registry.js +61 -0
  17. package/dist/cjs/auth/base_auth_provider.js +27 -0
  18. package/dist/cjs/auth/credential_service/session_state_credential_service.js +51 -0
  19. package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +198 -0
  20. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +109 -0
  21. package/dist/cjs/auth/oauth2/oauth2_discovery.js +186 -0
  22. package/dist/cjs/auth/oauth2/oauth2_utils.js +119 -0
  23. package/dist/cjs/auth/refresher/base_credential_refresher.js +44 -0
  24. package/dist/cjs/auth/refresher/credential_refresher_registry.js +68 -0
  25. package/dist/cjs/code_executors/base_code_executor.js +9 -5
  26. package/dist/cjs/code_executors/code_execution_utils.js +19 -0
  27. package/dist/cjs/code_executors/unsafe_local_code_executor.js +241 -0
  28. package/dist/cjs/common.js +61 -0
  29. package/dist/cjs/features/feature_registry.js +141 -0
  30. package/dist/cjs/index.js +32 -20
  31. package/dist/cjs/index.js.map +4 -4
  32. package/dist/cjs/models/apigee_llm.js +2 -2
  33. package/dist/cjs/models/google_llm.js +18 -53
  34. package/dist/cjs/models/routed_llm.js +99 -0
  35. package/dist/cjs/plugins/base_plugin.js +39 -2
  36. package/dist/cjs/plugins/plugin_manager.js +39 -0
  37. package/dist/cjs/runner/runner.js +31 -3
  38. package/dist/cjs/sessions/db/operations.js +3 -10
  39. package/dist/cjs/skills/loader.js +283 -0
  40. package/dist/cjs/skills/prompt.js +58 -0
  41. package/dist/cjs/skills/skill.js +78 -0
  42. package/dist/cjs/tools/agent_tool.js +10 -3
  43. package/dist/cjs/tools/mcp/mcp_tool.js +4 -1
  44. package/dist/cjs/tools/skill/list_skills_tool.js +76 -0
  45. package/dist/cjs/tools/skill/load_skill_resource_tool.js +225 -0
  46. package/dist/cjs/tools/skill/load_skill_tool.js +108 -0
  47. package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +146 -0
  48. package/dist/cjs/tools/skill/run_skill_script_tool.js +224 -0
  49. package/dist/cjs/tools/skill/skill_toolset.js +163 -0
  50. package/dist/cjs/utils/experimental.js +74 -0
  51. package/dist/cjs/utils/failover_utils.js +93 -0
  52. package/dist/cjs/utils/file_extension_utils.js +77 -0
  53. package/dist/cjs/utils/file_utils.js +94 -0
  54. package/dist/cjs/utils/gemini_schema_util.js +54 -12
  55. package/dist/cjs/utils/streaming_utils.js +333 -0
  56. package/dist/cjs/version.js +1 -1
  57. package/dist/esm/a2a/a2a_event.js +2 -0
  58. package/dist/esm/a2a/a2a_remote_agent.js +20 -13
  59. package/dist/esm/a2a/a2a_remote_agent_run_processor.js +9 -0
  60. package/dist/esm/a2a/a2a_remote_agent_utils.js +2 -0
  61. package/dist/esm/a2a/agent_card.js +2 -0
  62. package/dist/esm/a2a/agent_executor.js +2 -0
  63. package/dist/esm/a2a/agent_to_a2a.js +2 -0
  64. package/dist/esm/a2a/event_converter_utils.js +2 -0
  65. package/dist/esm/a2a/event_processor_utils.js +2 -0
  66. package/dist/esm/a2a/executor_context.js +2 -0
  67. package/dist/esm/a2a/metadata_converter_utils.js +2 -0
  68. package/dist/esm/a2a/part_converter_utils.js +2 -0
  69. package/dist/esm/agents/active_streaming_tool.js +2 -0
  70. package/dist/esm/agents/base_agent.js +13 -2
  71. package/dist/esm/agents/context.js +3 -0
  72. package/dist/esm/agents/functions.js +3 -0
  73. package/dist/esm/agents/instructions.js +2 -0
  74. package/dist/esm/agents/invocation_context.js +3 -0
  75. package/dist/esm/agents/live_request_queue.js +2 -0
  76. package/dist/esm/agents/llm_agent.js +72 -13
  77. package/dist/esm/agents/loop_agent.js +6 -0
  78. package/dist/esm/agents/parallel_agent.js +6 -0
  79. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +2 -0
  80. package/dist/esm/agents/processors/base_llm_processor.js +2 -0
  81. package/dist/esm/agents/processors/basic_llm_request_processor.js +2 -0
  82. package/dist/esm/agents/processors/code_execution_request_processor.js +5 -0
  83. package/dist/esm/agents/processors/content_processor_utils.js +2 -0
  84. package/dist/esm/agents/processors/content_request_processor.js +2 -0
  85. package/dist/esm/agents/processors/context_compactor_request_processor.js +11 -0
  86. package/dist/esm/agents/processors/identity_llm_request_processor.js +2 -0
  87. package/dist/esm/agents/processors/instructions_llm_request_processor.js +2 -0
  88. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +2 -0
  89. package/dist/esm/agents/processors/tool_filter_request_processor.js +44 -0
  90. package/dist/esm/agents/readonly_context.js +2 -0
  91. package/dist/esm/agents/routed_agent.js +70 -0
  92. package/dist/esm/agents/run_config.js +2 -0
  93. package/dist/esm/agents/sequential_agent.js +2 -0
  94. package/dist/esm/agents/transcription_entry.js +2 -0
  95. package/dist/esm/artifacts/base_artifact_service.js +2 -0
  96. package/dist/esm/artifacts/file_artifact_service.js +2 -0
  97. package/dist/esm/artifacts/gcs_artifact_service.js +2 -0
  98. package/dist/esm/artifacts/in_memory_artifact_service.js +2 -0
  99. package/dist/esm/artifacts/registry.js +2 -0
  100. package/dist/esm/auth/auth_credential.js +2 -0
  101. package/dist/esm/auth/auth_handler.js +68 -1
  102. package/dist/esm/auth/auth_preprocessor.js +155 -0
  103. package/dist/esm/auth/auth_provider_registry.js +33 -0
  104. package/dist/esm/auth/auth_schemes.js +2 -0
  105. package/dist/esm/auth/auth_tool.js +2 -0
  106. package/dist/esm/auth/base_auth_provider.js +7 -0
  107. package/dist/esm/auth/credential_service/base_credential_service.js +2 -0
  108. package/dist/esm/auth/credential_service/in_memory_credential_service.js +2 -0
  109. package/dist/esm/auth/credential_service/session_state_credential_service.js +23 -0
  110. package/dist/esm/auth/exchanger/base_credential_exchanger.js +2 -0
  111. package/dist/esm/auth/exchanger/credential_exchanger_registry.js +2 -0
  112. package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +177 -0
  113. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +85 -0
  114. package/dist/esm/auth/oauth2/oauth2_discovery.js +156 -0
  115. package/dist/esm/auth/oauth2/oauth2_utils.js +87 -0
  116. package/dist/esm/auth/refresher/base_credential_refresher.js +16 -0
  117. package/dist/esm/auth/refresher/credential_refresher_registry.js +40 -0
  118. package/dist/esm/code_executors/base_code_executor.js +11 -5
  119. package/dist/esm/code_executors/built_in_code_executor.js +2 -0
  120. package/dist/esm/code_executors/code_execution_utils.js +19 -0
  121. package/dist/esm/code_executors/code_executor_context.js +2 -0
  122. package/dist/esm/code_executors/unsafe_local_code_executor.js +205 -0
  123. package/dist/esm/common.js +47 -3
  124. package/dist/esm/context/base_context_compactor.js +2 -0
  125. package/dist/esm/context/summarizers/base_summarizer.js +2 -0
  126. package/dist/esm/context/summarizers/llm_summarizer.js +2 -0
  127. package/dist/esm/context/token_based_context_compactor.js +2 -0
  128. package/dist/esm/context/truncating_context_compactor.js +2 -0
  129. package/dist/esm/events/compacted_event.js +2 -0
  130. package/dist/esm/events/event.js +2 -0
  131. package/dist/esm/events/event_actions.js +2 -0
  132. package/dist/esm/events/structured_events.js +2 -0
  133. package/dist/esm/examples/base_example_provider.js +2 -0
  134. package/dist/esm/examples/example.js +2 -0
  135. package/dist/esm/examples/example_util.js +2 -0
  136. package/dist/esm/features/feature_registry.js +107 -0
  137. package/dist/esm/index.js +34 -21
  138. package/dist/esm/index.js.map +4 -4
  139. package/dist/esm/index_web.js +2 -0
  140. package/dist/esm/memory/base_memory_service.js +2 -0
  141. package/dist/esm/memory/in_memory_memory_service.js +2 -0
  142. package/dist/esm/memory/memory_entry.js +2 -0
  143. package/dist/esm/models/apigee_llm.js +4 -2
  144. package/dist/esm/models/base_llm.js +2 -0
  145. package/dist/esm/models/base_llm_connection.js +2 -0
  146. package/dist/esm/models/gemini_llm_connection.js +2 -0
  147. package/dist/esm/models/google_llm.js +20 -54
  148. package/dist/esm/models/llm_request.js +2 -0
  149. package/dist/esm/models/llm_response.js +2 -0
  150. package/dist/esm/models/registry.js +2 -0
  151. package/dist/esm/models/routed_llm.js +73 -0
  152. package/dist/esm/plugins/base_plugin.js +41 -1
  153. package/dist/esm/plugins/logging_plugin.js +2 -0
  154. package/dist/esm/plugins/plugin_manager.js +41 -0
  155. package/dist/esm/plugins/security_plugin.js +2 -0
  156. package/dist/esm/runner/in_memory_runner.js +2 -0
  157. package/dist/esm/runner/runner.js +33 -3
  158. package/dist/esm/sessions/base_session_service.js +2 -0
  159. package/dist/esm/sessions/database_session_service.js +2 -0
  160. package/dist/esm/sessions/db/operations.js +5 -10
  161. package/dist/esm/sessions/db/schema.js +2 -0
  162. package/dist/esm/sessions/in_memory_session_service.js +2 -0
  163. package/dist/esm/sessions/registry.js +2 -0
  164. package/dist/esm/sessions/session.js +2 -0
  165. package/dist/esm/sessions/state.js +2 -0
  166. package/dist/esm/skills/loader.js +244 -0
  167. package/dist/esm/skills/prompt.js +30 -0
  168. package/dist/esm/skills/skill.js +49 -0
  169. package/dist/esm/telemetry/google_cloud.js +2 -0
  170. package/dist/esm/telemetry/setup.js +2 -0
  171. package/dist/esm/telemetry/tracing.js +2 -0
  172. package/dist/esm/tools/agent_tool.js +12 -3
  173. package/dist/esm/tools/base_tool.js +2 -0
  174. package/dist/esm/tools/base_toolset.js +2 -0
  175. package/dist/esm/tools/exit_loop_tool.js +2 -0
  176. package/dist/esm/tools/forwarding_artifact_service.js +2 -0
  177. package/dist/esm/tools/function_tool.js +2 -0
  178. package/dist/esm/tools/google_search_tool.js +2 -0
  179. package/dist/esm/tools/load_artifacts_tool.js +2 -0
  180. package/dist/esm/tools/load_memory_tool.js +2 -0
  181. package/dist/esm/tools/long_running_tool.js +2 -0
  182. package/dist/esm/tools/mcp/mcp_session_manager.js +2 -0
  183. package/dist/esm/tools/mcp/mcp_tool.js +6 -1
  184. package/dist/esm/tools/mcp/mcp_toolset.js +2 -0
  185. package/dist/esm/tools/preload_memory_tool.js +2 -0
  186. package/dist/esm/tools/skill/list_skills_tool.js +50 -0
  187. package/dist/esm/tools/skill/load_skill_resource_tool.js +191 -0
  188. package/dist/esm/tools/skill/load_skill_tool.js +82 -0
  189. package/dist/esm/tools/skill/run_skill_inline_script_tool.js +120 -0
  190. package/dist/esm/tools/skill/run_skill_script_tool.js +192 -0
  191. package/dist/esm/tools/skill/skill_toolset.js +137 -0
  192. package/dist/esm/tools/tool_confirmation.js +2 -0
  193. package/dist/esm/utils/client_labels.js +2 -0
  194. package/dist/esm/utils/env_aware_utils.js +2 -0
  195. package/dist/esm/utils/experimental.js +46 -0
  196. package/dist/esm/utils/failover_utils.js +65 -0
  197. package/dist/esm/utils/file_extension_utils.js +51 -0
  198. package/dist/esm/utils/file_utils.js +56 -0
  199. package/dist/esm/utils/gemini_schema_util.js +56 -12
  200. package/dist/esm/utils/logger.js +2 -0
  201. package/dist/esm/utils/model_name.js +2 -0
  202. package/dist/esm/utils/object_notation_utils.js +2 -0
  203. package/dist/esm/utils/simple_zod_to_json.js +2 -0
  204. package/dist/esm/utils/streaming_utils.js +307 -0
  205. package/dist/esm/utils/variant_utils.js +2 -0
  206. package/dist/esm/version.js +3 -1
  207. package/dist/types/a2a/a2a_remote_agent.d.ts +7 -3
  208. package/dist/types/agents/context.d.ts +1 -0
  209. package/dist/types/agents/invocation_context.d.ts +5 -0
  210. package/dist/types/agents/processors/tool_filter_request_processor.d.ts +14 -0
  211. package/dist/types/agents/routed_agent.d.ts +59 -0
  212. package/dist/types/auth/auth_credential.d.ts +17 -0
  213. package/dist/types/auth/auth_handler.d.ts +1 -0
  214. package/dist/types/auth/auth_preprocessor.d.ts +12 -0
  215. package/dist/types/auth/auth_provider_registry.d.ts +27 -0
  216. package/dist/types/auth/base_auth_provider.d.ts +20 -0
  217. package/dist/types/auth/credential_service/session_state_credential_service.d.ts +20 -0
  218. package/dist/types/auth/exchanger/base_credential_exchanger.d.ts +12 -5
  219. package/dist/types/auth/oauth2/oauth2_credential_exchanger.d.ts +26 -0
  220. package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +29 -0
  221. package/dist/types/auth/oauth2/oauth2_discovery.d.ts +38 -0
  222. package/dist/types/auth/oauth2/oauth2_utils.d.ts +56 -0
  223. package/dist/types/auth/refresher/base_credential_refresher.d.ts +38 -0
  224. package/dist/types/auth/refresher/credential_refresher_registry.d.ts +27 -0
  225. package/dist/types/code_executors/base_code_executor.d.ts +4 -4
  226. package/dist/types/code_executors/code_execution_utils.d.ts +29 -1
  227. package/dist/types/code_executors/unsafe_local_code_executor.d.ts +48 -0
  228. package/dist/types/common.d.ts +26 -3
  229. package/dist/types/features/feature_registry.d.ts +66 -0
  230. package/dist/types/index.d.ts +4 -0
  231. package/dist/types/memory/base_memory_service.d.ts +6 -0
  232. package/dist/types/memory/memory_entry.d.ts +11 -5
  233. package/dist/types/models/apigee_llm.d.ts +1 -1
  234. package/dist/types/models/base_llm.d.ts +1 -1
  235. package/dist/types/models/google_llm.d.ts +1 -1
  236. package/dist/types/models/llm_request.d.ts +4 -0
  237. package/dist/types/models/routed_llm.d.ts +38 -0
  238. package/dist/types/plugins/base_plugin.d.ts +49 -0
  239. package/dist/types/plugins/plugin_manager.d.ts +22 -1
  240. package/dist/types/runner/runner.d.ts +1 -0
  241. package/dist/types/skills/loader.d.ts +38 -0
  242. package/dist/types/skills/prompt.d.ts +13 -0
  243. package/dist/types/skills/skill.d.ts +48 -0
  244. package/dist/types/tools/skill/list_skills_tool.d.ts +14 -0
  245. package/dist/types/tools/skill/load_skill_resource_tool.d.ts +15 -0
  246. package/dist/types/tools/skill/load_skill_tool.d.ts +14 -0
  247. package/dist/types/tools/skill/run_skill_inline_script_tool.d.ts +14 -0
  248. package/dist/types/tools/skill/run_skill_script_tool.d.ts +17 -0
  249. package/dist/types/tools/skill/skill_toolset.d.ts +28 -0
  250. package/dist/types/utils/experimental.d.ts +11 -0
  251. package/dist/types/utils/failover_utils.d.ts +17 -0
  252. package/dist/types/utils/file_extension_utils.d.ts +21 -0
  253. package/dist/types/utils/file_utils.d.ts +11 -0
  254. package/dist/types/utils/streaming_utils.d.ts +40 -0
  255. package/dist/types/version.d.ts +1 -1
  256. package/dist/web/a2a/a2a_event.js +2 -0
  257. package/dist/web/a2a/a2a_remote_agent.js +17 -24
  258. package/dist/web/a2a/a2a_remote_agent_run_processor.js +9 -0
  259. package/dist/web/a2a/a2a_remote_agent_utils.js +2 -0
  260. package/dist/web/a2a/agent_card.js +2 -0
  261. package/dist/web/a2a/agent_executor.js +2 -0
  262. package/dist/web/a2a/agent_to_a2a.js +2 -0
  263. package/dist/web/a2a/event_converter_utils.js +2 -0
  264. package/dist/web/a2a/event_processor_utils.js +2 -0
  265. package/dist/web/a2a/executor_context.js +2 -0
  266. package/dist/web/a2a/metadata_converter_utils.js +2 -0
  267. package/dist/web/a2a/part_converter_utils.js +2 -0
  268. package/dist/web/agents/active_streaming_tool.js +2 -0
  269. package/dist/web/agents/base_agent.js +13 -2
  270. package/dist/web/agents/context.js +3 -0
  271. package/dist/web/agents/functions.js +3 -0
  272. package/dist/web/agents/instructions.js +2 -0
  273. package/dist/web/agents/invocation_context.js +3 -0
  274. package/dist/web/agents/live_request_queue.js +2 -0
  275. package/dist/web/agents/llm_agent.js +72 -13
  276. package/dist/web/agents/loop_agent.js +6 -0
  277. package/dist/web/agents/parallel_agent.js +6 -0
  278. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +2 -0
  279. package/dist/web/agents/processors/base_llm_processor.js +2 -0
  280. package/dist/web/agents/processors/basic_llm_request_processor.js +2 -0
  281. package/dist/web/agents/processors/code_execution_request_processor.js +5 -0
  282. package/dist/web/agents/processors/content_processor_utils.js +2 -0
  283. package/dist/web/agents/processors/content_request_processor.js +2 -0
  284. package/dist/web/agents/processors/context_compactor_request_processor.js +11 -0
  285. package/dist/web/agents/processors/identity_llm_request_processor.js +2 -0
  286. package/dist/web/agents/processors/instructions_llm_request_processor.js +2 -0
  287. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +2 -0
  288. package/dist/web/agents/processors/tool_filter_request_processor.js +62 -0
  289. package/dist/web/agents/readonly_context.js +2 -0
  290. package/dist/web/agents/routed_agent.js +138 -0
  291. package/dist/web/agents/run_config.js +2 -0
  292. package/dist/web/agents/sequential_agent.js +2 -0
  293. package/dist/web/agents/transcription_entry.js +2 -0
  294. package/dist/web/artifacts/base_artifact_service.js +2 -0
  295. package/dist/web/artifacts/file_artifact_service.js +2 -0
  296. package/dist/web/artifacts/gcs_artifact_service.js +2 -0
  297. package/dist/web/artifacts/in_memory_artifact_service.js +2 -0
  298. package/dist/web/artifacts/registry.js +2 -0
  299. package/dist/web/auth/auth_credential.js +2 -0
  300. package/dist/web/auth/auth_handler.js +85 -1
  301. package/dist/web/auth/auth_preprocessor.js +173 -0
  302. package/dist/web/auth/auth_provider_registry.js +33 -0
  303. package/dist/web/auth/auth_schemes.js +2 -0
  304. package/dist/web/auth/auth_tool.js +2 -0
  305. package/dist/web/auth/base_auth_provider.js +7 -0
  306. package/dist/web/auth/credential_service/base_credential_service.js +2 -0
  307. package/dist/web/auth/credential_service/in_memory_credential_service.js +2 -0
  308. package/dist/web/auth/credential_service/session_state_credential_service.js +23 -0
  309. package/dist/web/auth/exchanger/base_credential_exchanger.js +2 -0
  310. package/dist/web/auth/exchanger/credential_exchanger_registry.js +2 -0
  311. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +188 -0
  312. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +102 -0
  313. package/dist/web/auth/oauth2/oauth2_discovery.js +156 -0
  314. package/dist/web/auth/oauth2/oauth2_utils.js +87 -0
  315. package/dist/web/auth/refresher/base_credential_refresher.js +16 -0
  316. package/dist/web/auth/refresher/credential_refresher_registry.js +40 -0
  317. package/dist/web/code_executors/base_code_executor.js +11 -5
  318. package/dist/web/code_executors/built_in_code_executor.js +2 -0
  319. package/dist/web/code_executors/code_execution_utils.js +19 -0
  320. package/dist/web/code_executors/code_executor_context.js +2 -0
  321. package/dist/web/code_executors/unsafe_local_code_executor.js +203 -0
  322. package/dist/web/common.js +47 -3
  323. package/dist/web/context/base_context_compactor.js +2 -0
  324. package/dist/web/context/summarizers/base_summarizer.js +2 -0
  325. package/dist/web/context/summarizers/llm_summarizer.js +2 -0
  326. package/dist/web/context/token_based_context_compactor.js +2 -0
  327. package/dist/web/context/truncating_context_compactor.js +2 -0
  328. package/dist/web/events/compacted_event.js +2 -0
  329. package/dist/web/events/event.js +2 -0
  330. package/dist/web/events/event_actions.js +2 -0
  331. package/dist/web/events/structured_events.js +2 -0
  332. package/dist/web/examples/base_example_provider.js +2 -0
  333. package/dist/web/examples/example.js +2 -0
  334. package/dist/web/examples/example_util.js +2 -0
  335. package/dist/web/features/feature_registry.js +107 -0
  336. package/dist/web/index.js +3 -2
  337. package/dist/web/index.js.map +4 -4
  338. package/dist/web/index_web.js +2 -0
  339. package/dist/web/memory/base_memory_service.js +2 -0
  340. package/dist/web/memory/in_memory_memory_service.js +2 -0
  341. package/dist/web/memory/memory_entry.js +2 -0
  342. package/dist/web/models/apigee_llm.js +4 -2
  343. package/dist/web/models/base_llm.js +2 -0
  344. package/dist/web/models/base_llm_connection.js +2 -0
  345. package/dist/web/models/gemini_llm_connection.js +2 -0
  346. package/dist/web/models/google_llm.js +37 -59
  347. package/dist/web/models/llm_request.js +2 -0
  348. package/dist/web/models/llm_response.js +2 -0
  349. package/dist/web/models/registry.js +2 -0
  350. package/dist/web/models/routed_llm.js +122 -0
  351. package/dist/web/plugins/base_plugin.js +41 -1
  352. package/dist/web/plugins/logging_plugin.js +2 -0
  353. package/dist/web/plugins/plugin_manager.js +41 -0
  354. package/dist/web/plugins/security_plugin.js +2 -0
  355. package/dist/web/runner/in_memory_runner.js +2 -0
  356. package/dist/web/runner/runner.js +33 -3
  357. package/dist/web/sessions/base_session_service.js +2 -0
  358. package/dist/web/sessions/database_session_service.js +2 -0
  359. package/dist/web/sessions/db/operations.js +5 -10
  360. package/dist/web/sessions/db/schema.js +2 -0
  361. package/dist/web/sessions/in_memory_session_service.js +2 -0
  362. package/dist/web/sessions/registry.js +2 -0
  363. package/dist/web/sessions/session.js +2 -0
  364. package/dist/web/sessions/state.js +2 -0
  365. package/dist/web/skills/loader.js +262 -0
  366. package/dist/web/skills/prompt.js +30 -0
  367. package/dist/web/skills/skill.js +67 -0
  368. package/dist/web/telemetry/google_cloud.js +2 -0
  369. package/dist/web/telemetry/setup.js +2 -0
  370. package/dist/web/telemetry/tracing.js +2 -0
  371. package/dist/web/tools/agent_tool.js +12 -3
  372. package/dist/web/tools/base_tool.js +2 -0
  373. package/dist/web/tools/base_toolset.js +2 -0
  374. package/dist/web/tools/exit_loop_tool.js +2 -0
  375. package/dist/web/tools/forwarding_artifact_service.js +2 -0
  376. package/dist/web/tools/function_tool.js +2 -0
  377. package/dist/web/tools/google_search_tool.js +2 -0
  378. package/dist/web/tools/load_artifacts_tool.js +2 -0
  379. package/dist/web/tools/load_memory_tool.js +2 -0
  380. package/dist/web/tools/long_running_tool.js +2 -0
  381. package/dist/web/tools/mcp/mcp_session_manager.js +2 -0
  382. package/dist/web/tools/mcp/mcp_tool.js +6 -1
  383. package/dist/web/tools/mcp/mcp_toolset.js +2 -0
  384. package/dist/web/tools/preload_memory_tool.js +2 -0
  385. package/dist/web/tools/skill/list_skills_tool.js +50 -0
  386. package/dist/web/tools/skill/load_skill_resource_tool.js +191 -0
  387. package/dist/web/tools/skill/load_skill_tool.js +82 -0
  388. package/dist/web/tools/skill/run_skill_inline_script_tool.js +120 -0
  389. package/dist/web/tools/skill/run_skill_script_tool.js +190 -0
  390. package/dist/web/tools/skill/skill_toolset.js +123 -0
  391. package/dist/web/tools/tool_confirmation.js +2 -0
  392. package/dist/web/utils/client_labels.js +2 -0
  393. package/dist/web/utils/env_aware_utils.js +2 -0
  394. package/dist/web/utils/experimental.js +46 -0
  395. package/dist/web/utils/failover_utils.js +96 -0
  396. package/dist/web/utils/file_extension_utils.js +51 -0
  397. package/dist/web/utils/file_utils.js +74 -0
  398. package/dist/web/utils/gemini_schema_util.js +87 -12
  399. package/dist/web/utils/logger.js +2 -0
  400. package/dist/web/utils/model_name.js +2 -0
  401. package/dist/web/utils/object_notation_utils.js +2 -0
  402. package/dist/web/utils/simple_zod_to_json.js +2 -0
  403. package/dist/web/utils/streaming_utils.js +325 -0
  404. package/dist/web/utils/variant_utils.js +2 -0
  405. package/dist/web/version.js +3 -1
  406. package/package.json +20 -18
@@ -51,17 +51,24 @@ class RemoteA2AAgent extends import_base_agent.BaseAgent {
51
51
  super(a2aConfig);
52
52
  this.a2aConfig = a2aConfig;
53
53
  this.isInitialized = false;
54
- if (!a2aConfig.agentCard) {
55
- throw new Error("AgentCard must be provided");
54
+ if (!a2aConfig.agentCard && !a2aConfig.client) {
55
+ throw new Error("Either AgentCard or Client must be provided");
56
56
  }
57
57
  }
58
58
  async init() {
59
59
  if (this.isInitialized) {
60
60
  return;
61
61
  }
62
- this.card = await (0, import_agent_card.resolveAgentCard)(this.a2aConfig.agentCard);
63
- const factory = this.a2aConfig.clientFactory || new import_client.ClientFactory();
64
- this.client = await factory.createFromAgentCard(this.card);
62
+ if (this.a2aConfig.client) {
63
+ this.client = this.a2aConfig.client;
64
+ }
65
+ if (this.a2aConfig.agentCard) {
66
+ this.card = await (0, import_agent_card.resolveAgentCard)(this.a2aConfig.agentCard);
67
+ if (!this.client) {
68
+ const factory = this.a2aConfig.clientFactory || new import_client.ClientFactory();
69
+ this.client = await factory.createFromAgentCard(this.card);
70
+ }
71
+ }
65
72
  this.isInitialized = true;
66
73
  }
67
74
  async *runAsyncImpl(context) {
@@ -97,13 +104,11 @@ class RemoteA2AAgent extends import_base_agent.BaseAgent {
97
104
  messageId: (0, import_env_aware_utils.randomUUID)(),
98
105
  role: import_a2a_event.MessageRole.USER,
99
106
  parts,
100
- metadata: {
101
- ...(0, import_metadata_converter_utils.getA2ASessionMetadata)({
102
- appName: context.session.appName,
103
- userId: context.session.userId,
104
- sessionId: context.session.id
105
- })
106
- }
107
+ metadata: (0, import_metadata_converter_utils.getA2ASessionMetadata)({
108
+ appName: context.session.appName,
109
+ userId: context.session.userId,
110
+ sessionId: context.session.id
111
+ })
107
112
  };
108
113
  if (taskId) message.taskId = taskId;
109
114
  if (contextId) message.contextId = contextId;
@@ -117,7 +122,7 @@ class RemoteA2AAgent extends import_base_agent.BaseAgent {
117
122
  await callback(context, params);
118
123
  }
119
124
  }
120
- const useStreaming = ((_b = this.card.capabilities) == null ? void 0 : _b.streaming) !== false;
125
+ const useStreaming = this.card ? ((_b = this.card.capabilities) == null ? void 0 : _b.streaming) !== false : true;
121
126
  if (useStreaming) {
122
127
  for await (const chunk of this.client.sendMessageStream(params)) {
123
128
  if (this.a2aConfig.afterRequestCallbacks) {
@@ -179,6 +179,13 @@ class A2ARemoteAgentRunProcessor {
179
179
  }
180
180
  if (response) {
181
181
  toAdd["response"] = response;
182
+ if ((0, import_a2a_event.isTask)(response)) {
183
+ if (response.id) toAdd["task_id"] = response.id;
184
+ if (response.contextId) toAdd["context_id"] = response.contextId;
185
+ } else if (response.taskId) {
186
+ toAdd["task_id"] = response.taskId;
187
+ if (response.contextId) toAdd["context_id"] = response.contextId;
188
+ }
182
189
  }
183
190
  if (Object.keys(toAdd).length === 0) {
184
191
  return;
@@ -83,19 +83,20 @@ class BaseAgent {
83
83
  ctx,
84
84
  this,
85
85
  async function* () {
86
+ var _a2, _b;
86
87
  const context2 = this.createInvocationContext(parentContext);
87
88
  const beforeAgentCallbackEvent = await this.handleBeforeAgentCallback(context2);
88
89
  if (beforeAgentCallbackEvent) {
89
90
  yield beforeAgentCallbackEvent;
90
91
  }
91
- if (context2.endInvocation) {
92
+ if (context2.endInvocation || ((_a2 = parentContext.abortSignal) == null ? void 0 : _a2.aborted)) {
92
93
  return;
93
94
  }
94
95
  (0, import_tracing.traceAgentInvocation)({ agent: this, invocationContext: context2 });
95
96
  for await (const event of this.runAsyncImpl(context2)) {
96
97
  yield event;
97
98
  }
98
- if (context2.endInvocation) {
99
+ if (context2.endInvocation || ((_b = parentContext.abortSignal) == null ? void 0 : _b.aborted)) {
99
100
  return;
100
101
  }
101
102
  const afterAgentCallbackEvent = await this.handleAfterAgentCallback(context2);
@@ -177,12 +178,16 @@ class BaseAgent {
177
178
  * generated.
178
179
  */
179
180
  async handleBeforeAgentCallback(invocationContext) {
181
+ var _a2;
180
182
  if (this.beforeAgentCallback.length === 0) {
181
183
  return void 0;
182
184
  }
183
185
  const callbackContext = new import_context.Context({ invocationContext });
184
186
  for (const callback of this.beforeAgentCallback) {
185
187
  const content = await callback(callbackContext);
188
+ if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
189
+ return;
190
+ }
186
191
  if (content) {
187
192
  invocationContext.endInvocation = true;
188
193
  return (0, import_event.createEvent)({
@@ -212,12 +217,16 @@ class BaseAgent {
212
217
  * generated.
213
218
  */
214
219
  async handleAfterAgentCallback(invocationContext) {
220
+ var _a2;
215
221
  if (this.afterAgentCallback.length === 0) {
216
222
  return void 0;
217
223
  }
218
224
  const callbackContext = new import_context.Context({ invocationContext });
219
225
  for (const callback of this.afterAgentCallback) {
220
226
  const content = await callback(callbackContext);
227
+ if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
228
+ return;
229
+ }
221
230
  if (content) {
222
231
  return (0, import_event.createEvent)({
223
232
  invocationId: invocationContext.invocationId,
@@ -59,6 +59,7 @@ class Context extends import_readonly_context.ReadonlyContext {
59
59
  );
60
60
  this.functionCallId = options.functionCallId;
61
61
  this.toolConfirmation = options.toolConfirmation;
62
+ this.abortSignal = options.invocationContext.abortSignal;
62
63
  }
63
64
  /**
64
65
  * The delta-aware state of the current session.
@@ -415,6 +415,7 @@ function mergeParallelFunctionResponseEvents(functionResponseEvents) {
415
415
  );
416
416
  const mergedActions = (0, import_event_actions.mergeEventActions)(actionsList);
417
417
  return (0, import_event.createEvent)({
418
+ invocationId: baseEvent.invocationId,
418
419
  author: baseEvent.author,
419
420
  branch: baseEvent.branch,
420
421
  content: { role: "user", parts: mergedParts },
@@ -77,6 +77,7 @@ class InvocationContext {
77
77
  this.liveRequestQueue = params.liveRequestQueue;
78
78
  this.activeStreamingTools = params.activeStreamingTools;
79
79
  this.pluginManager = params.pluginManager;
80
+ this.abortSignal = params.abortSignal;
80
81
  }
81
82
  /**
82
83
  * The app name of the current session.
@@ -47,6 +47,7 @@ var import_context_compactor_request_processor = require("./processors/context_c
47
47
  var import_identity_llm_request_processor = require("./processors/identity_llm_request_processor.js");
48
48
  var import_instructions_llm_request_processor = require("./processors/instructions_llm_request_processor.js");
49
49
  var import_request_confirmation_llm_request_processor = require("./processors/request_confirmation_llm_request_processor.js");
50
+ var import_tool_filter_request_processor = require("./processors/tool_filter_request_processor.js");
50
51
  var import_readonly_context = require("./readonly_context.js");
51
52
  var import_run_config = require("./run_config.js");
52
53
  /**
@@ -94,7 +95,8 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
94
95
  import_instructions_llm_request_processor.INSTRUCTIONS_LLM_REQUEST_PROCESSOR,
95
96
  import_request_confirmation_llm_request_processor.REQUEST_CONFIRMATION_LLM_REQUEST_PROCESSOR,
96
97
  import_content_request_processor.CONTENT_REQUEST_PROCESSOR,
97
- import_code_execution_request_processor.CODE_EXECUTION_REQUEST_PROCESSOR
98
+ import_code_execution_request_processor.CODE_EXECUTION_REQUEST_PROCESSOR,
99
+ import_tool_filter_request_processor.TOOL_FILTER_REQUEST_PROCESSOR
98
100
  ];
99
101
  if (!config.requestProcessors && config.contextCompactors && config.contextCompactors.length > 0) {
100
102
  const contentIndex = this.requestProcessors.indexOf(
@@ -314,9 +316,13 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
314
316
  event.actions.stateDelta[this.outputKey] = result;
315
317
  }
316
318
  async *runAsyncImpl(context2) {
319
+ var _a2;
317
320
  while (true) {
318
321
  let lastEvent = void 0;
319
322
  for await (const event of this.runOneStepAsync(context2)) {
323
+ if ((_a2 = context2.abortSignal) == null ? void 0 : _a2.aborted) {
324
+ return;
325
+ }
320
326
  lastEvent = event;
321
327
  this.maybeSaveOutputToState(event);
322
328
  yield event;
@@ -331,7 +337,11 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
331
337
  }
332
338
  }
333
339
  async *runLiveImpl(context2) {
340
+ var _a2;
334
341
  for await (const event of this.runLiveFlow(context2)) {
342
+ if ((_a2 = context2.abortSignal) == null ? void 0 : _a2.aborted) {
343
+ return;
344
+ }
335
345
  this.maybeSaveOutputToState(event);
336
346
  yield event;
337
347
  }
@@ -348,6 +358,7 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
348
358
  throw new Error("LlmAgent.runLiveFlow not implemented");
349
359
  }
350
360
  async *runOneStepAsync(invocationContext) {
361
+ var _a2, _b2, _c;
351
362
  const llmRequest = {
352
363
  contents: [],
353
364
  toolsDict: {},
@@ -358,20 +369,28 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
358
369
  invocationContext,
359
370
  llmRequest
360
371
  )) {
372
+ if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
373
+ return;
374
+ }
361
375
  yield event;
362
376
  }
363
377
  }
364
378
  for (const toolUnion of this.tools) {
365
379
  const toolContext = new import_context.Context({ invocationContext });
366
- const tools = await convertToolUnionToTools(
380
+ const tools = (await convertToolUnionToTools(
367
381
  toolUnion,
368
382
  new import_readonly_context.ReadonlyContext(invocationContext)
369
- );
383
+ )).filter((tool) => {
384
+ return !llmRequest.allowedTools || llmRequest.allowedTools.includes(tool.name);
385
+ });
370
386
  for (const tool of tools) {
371
387
  await tool.processLlmRequest({ toolContext, llmRequest });
388
+ if ((_b2 = invocationContext.abortSignal) == null ? void 0 : _b2.aborted) {
389
+ return;
390
+ }
372
391
  }
373
392
  }
374
- if (invocationContext.endInvocation) {
393
+ if (invocationContext.endInvocation || ((_c = invocationContext.abortSignal) == null ? void 0 : _c.aborted)) {
375
394
  return;
376
395
  }
377
396
  const modelResponseEvent = (0, import_event.createEvent)({
@@ -386,17 +405,24 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
386
405
  this,
387
406
  async function* () {
388
407
  const responsesGenerator = async function* () {
408
+ var _a3, _b3;
389
409
  for await (const llmResponse of this.callLlmAsync(
390
410
  invocationContext,
391
411
  llmRequest,
392
412
  modelResponseEvent
393
413
  )) {
414
+ if ((_a3 = invocationContext.abortSignal) == null ? void 0 : _a3.aborted) {
415
+ return;
416
+ }
394
417
  for await (const event of this.postprocess(
395
418
  invocationContext,
396
419
  llmRequest,
397
420
  llmResponse,
398
421
  modelResponseEvent
399
422
  )) {
423
+ if ((_b3 = invocationContext.abortSignal) == null ? void 0 : _b3.aborted) {
424
+ return;
425
+ }
400
426
  modelResponseEvent.id = (0, import_event.createNewEventId)();
401
427
  modelResponseEvent.timestamp = (/* @__PURE__ */ new Date()).getTime();
402
428
  yield event;
@@ -414,12 +440,15 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
414
440
  span.end();
415
441
  }
416
442
  async *postprocess(invocationContext, llmRequest, llmResponse, modelResponseEvent) {
417
- var _a2, _b2;
443
+ var _a2, _b2, _c, _d, _e;
418
444
  for (const processor of this.responseProcessors) {
419
445
  for await (const event of processor.runAsync(
420
446
  invocationContext,
421
447
  llmResponse
422
448
  )) {
449
+ if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
450
+ return;
451
+ }
423
452
  yield event;
424
453
  }
425
454
  }
@@ -440,10 +469,10 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
440
469
  }
441
470
  }
442
471
  yield mergedEvent;
443
- if (!((_a2 = (0, import_event.getFunctionCalls)(mergedEvent)) == null ? void 0 : _a2.length)) {
472
+ if (!((_b2 = (0, import_event.getFunctionCalls)(mergedEvent)) == null ? void 0 : _b2.length)) {
444
473
  return;
445
474
  }
446
- if ((_b2 = invocationContext.runConfig) == null ? void 0 : _b2.pauseOnToolCalls) {
475
+ if ((_c = invocationContext.runConfig) == null ? void 0 : _c.pauseOnToolCalls) {
447
476
  invocationContext.endInvocation = true;
448
477
  return;
449
478
  }
@@ -454,7 +483,7 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
454
483
  beforeToolCallbacks: this.canonicalBeforeToolCallbacks,
455
484
  afterToolCallbacks: this.canonicalAfterToolCallbacks
456
485
  });
457
- if (!functionResponseEvent) {
486
+ if (!functionResponseEvent || ((_d = invocationContext.abortSignal) == null ? void 0 : _d.aborted)) {
458
487
  return;
459
488
  }
460
489
  const authEvent = (0, import_functions.generateAuthEvent)(
@@ -479,6 +508,9 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
479
508
  if (nextAgentName) {
480
509
  const nextAgent = this.getAgentByName(invocationContext, nextAgentName);
481
510
  for await (const event of nextAgent.runAsync(invocationContext)) {
511
+ if ((_e = invocationContext.abortSignal) == null ? void 0 : _e.aborted) {
512
+ return;
513
+ }
482
514
  yield event;
483
515
  }
484
516
  }
@@ -504,30 +536,34 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
504
536
  return agentToRun;
505
537
  }
506
538
  async *callLlmAsync(invocationContext, llmRequest, modelResponseEvent) {
507
- var _a2, _b2, _c, _d, _e;
539
+ var _a2, _b2, _c, _d, _e, _f, _g, _h;
508
540
  const beforeModelResponse = await this.handleBeforeModelCallback(
509
541
  invocationContext,
510
542
  llmRequest,
511
543
  modelResponseEvent
512
544
  );
545
+ if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
546
+ return;
547
+ }
513
548
  if (beforeModelResponse) {
514
549
  yield beforeModelResponse;
515
550
  return;
516
551
  }
517
- (_a2 = llmRequest.config) != null ? _a2 : llmRequest.config = {};
518
- (_c = (_b2 = llmRequest.config).labels) != null ? _c : _b2.labels = {};
552
+ (_b2 = llmRequest.config) != null ? _b2 : llmRequest.config = {};
553
+ (_d = (_c = llmRequest.config).labels) != null ? _d : _c.labels = {};
519
554
  if (!llmRequest.config.labels[ADK_AGENT_NAME_LABEL_KEY]) {
520
555
  llmRequest.config.labels[ADK_AGENT_NAME_LABEL_KEY] = this.name;
521
556
  }
522
557
  const llm = this.canonicalModel;
523
- if ((_d = invocationContext.runConfig) == null ? void 0 : _d.supportCfc) {
558
+ if ((_e = invocationContext.runConfig) == null ? void 0 : _e.supportCfc) {
524
559
  throw new Error("CFC is not yet supported in callLlmAsync");
525
560
  } else {
526
561
  invocationContext.incrementLlmCallCount();
527
562
  const responsesGenerator = llm.generateContentAsync(
528
563
  llmRequest,
529
564
  /* stream= */
530
- ((_e = invocationContext.runConfig) == null ? void 0 : _e.streamingMode) === import_run_config.StreamingMode.SSE
565
+ ((_f = invocationContext.runConfig) == null ? void 0 : _f.streamingMode) === import_run_config.StreamingMode.SSE,
566
+ invocationContext.abortSignal
531
567
  );
532
568
  for await (const llmResponse of responsesGenerator) {
533
569
  (0, import_tracing.traceCallLlm)({
@@ -536,16 +572,23 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
536
572
  llmRequest,
537
573
  llmResponse
538
574
  });
575
+ if ((_g = invocationContext.abortSignal) == null ? void 0 : _g.aborted) {
576
+ return;
577
+ }
539
578
  const alteredLlmResponse = await this.handleAfterModelCallback(
540
579
  invocationContext,
541
580
  llmResponse,
542
581
  modelResponseEvent
543
582
  );
583
+ if ((_h = invocationContext.abortSignal) == null ? void 0 : _h.aborted) {
584
+ return;
585
+ }
544
586
  yield alteredLlmResponse != null ? alteredLlmResponse : llmResponse;
545
587
  }
546
588
  }
547
589
  }
548
590
  async handleBeforeModelCallback(invocationContext, llmRequest, modelResponseEvent) {
591
+ var _a2, _b2;
549
592
  const callbackContext = new import_context.Context({
550
593
  invocationContext,
551
594
  eventActions: modelResponseEvent.actions
@@ -554,6 +597,9 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
554
597
  callbackContext,
555
598
  llmRequest
556
599
  });
600
+ if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
601
+ return;
602
+ }
557
603
  if (beforeModelCallbackResponse) {
558
604
  return beforeModelCallbackResponse;
559
605
  }
@@ -562,6 +608,9 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
562
608
  context: callbackContext,
563
609
  request: llmRequest
564
610
  });
611
+ if ((_b2 = invocationContext.abortSignal) == null ? void 0 : _b2.aborted) {
612
+ return;
613
+ }
565
614
  if (callbackResponse) {
566
615
  return callbackResponse;
567
616
  }
@@ -569,6 +618,7 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
569
618
  return void 0;
570
619
  }
571
620
  async handleAfterModelCallback(invocationContext, llmResponse, modelResponseEvent) {
621
+ var _a2;
572
622
  const callbackContext = new import_context.Context({
573
623
  invocationContext,
574
624
  eventActions: modelResponseEvent.actions
@@ -585,6 +635,9 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
585
635
  context: callbackContext,
586
636
  response: llmResponse
587
637
  });
638
+ if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
639
+ return;
640
+ }
588
641
  if (callbackResponse) {
589
642
  return callbackResponse;
590
643
  }
@@ -592,8 +645,12 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
592
645
  return void 0;
593
646
  }
594
647
  async *runAndHandleError(responseGenerator, invocationContext, llmRequest, modelResponseEvent) {
648
+ var _a2;
595
649
  try {
596
650
  for await (const response of responseGenerator) {
651
+ if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
652
+ return;
653
+ }
597
654
  yield response;
598
655
  }
599
656
  } catch (modelError) {
@@ -50,11 +50,15 @@ class LoopAgent extends (_b = import_base_agent.BaseAgent, _a = LOOP_AGENT_SIGNA
50
50
  this.maxIterations = (_a2 = config.maxIterations) != null ? _a2 : Number.MAX_SAFE_INTEGER;
51
51
  }
52
52
  async *runAsyncImpl(context) {
53
+ var _a2;
53
54
  let iteration = 0;
54
55
  while (iteration < this.maxIterations) {
55
56
  for (const subAgent of this.subAgents) {
56
57
  let shouldExit = false;
57
58
  for await (const event of subAgent.runAsync(context)) {
59
+ if ((_a2 = context.abortSignal) == null ? void 0 : _a2.aborted) {
60
+ return;
61
+ }
58
62
  yield event;
59
63
  if (event.actions.escalate) {
60
64
  shouldExit = true;
@@ -49,10 +49,14 @@ class ParallelAgent extends (_b = import_base_agent.BaseAgent, _a = PARALLEL_AGE
49
49
  this[_a] = true;
50
50
  }
51
51
  async *runAsyncImpl(context) {
52
+ var _a2;
52
53
  const agentRuns = this.subAgents.map(
53
54
  (subAgent) => subAgent.runAsync(createBranchCtxForSubAgent(this, subAgent, context))
54
55
  );
55
56
  for await (const event of mergeAgentRuns(agentRuns)) {
57
+ if ((_a2 = context.abortSignal) == null ? void 0 : _a2.aborted) {
58
+ return;
59
+ }
56
60
  yield event;
57
61
  }
58
62
  }
@@ -194,6 +194,7 @@ async function* runPreProcessor(invocationContext, llmRequest) {
194
194
  invocationContext,
195
195
  codeExecutionInput: {
196
196
  code: codeStr,
197
+ language: import_code_execution_utils.CodeExecutionLanguage.PYTHON,
197
198
  inputFiles: [file],
198
199
  executionId
199
200
  }
@@ -257,6 +258,7 @@ async function* runPostProcessor(invocationContext, llmResponse) {
257
258
  invocationContext,
258
259
  codeExecutionInput: {
259
260
  code: codeStr,
261
+ language: import_code_execution_utils.CodeExecutionLanguage.PYTHON,
260
262
  inputFiles: codeExecutorContext.getInputFiles(),
261
263
  executionId
262
264
  }
@@ -27,6 +27,7 @@ __export(context_compactor_request_processor_exports, {
27
27
  ContextCompactorRequestProcessor: () => ContextCompactorRequestProcessor
28
28
  });
29
29
  module.exports = __toCommonJS(context_compactor_request_processor_exports);
30
+ var import_base_plugin = require("../../plugins/base_plugin.js");
30
31
  /**
31
32
  * @license
32
33
  * Copyright 2026 Google LLC
@@ -42,8 +43,16 @@ class ContextCompactorRequestProcessor {
42
43
  compactor.shouldCompact(invocationContext)
43
44
  );
44
45
  if (shouldCompact) {
46
+ await invocationContext.pluginManager.runBeforeContextCompaction({
47
+ invocationContext,
48
+ trigger: import_base_plugin.ContextCompactionTrigger.Auto
49
+ });
45
50
  const oldEvents = new Set(invocationContext.session.events);
46
51
  await Promise.resolve(compactor.compact(invocationContext));
52
+ await invocationContext.pluginManager.runAfterContextCompaction({
53
+ invocationContext,
54
+ trigger: import_base_plugin.ContextCompactionTrigger.Auto
55
+ });
47
56
  const newEvents = invocationContext.session.events.filter(
48
57
  (e) => !oldEvents.has(e)
49
58
  );
@@ -0,0 +1,73 @@
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 __export = (target, all) => {
13
+ for (var name in all)
14
+ __defProp(target, name, { get: all[name], enumerable: true });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var tool_filter_request_processor_exports = {};
26
+ __export(tool_filter_request_processor_exports, {
27
+ TOOL_FILTER_REQUEST_PROCESSOR: () => TOOL_FILTER_REQUEST_PROCESSOR,
28
+ ToolFilterRequestProcessor: () => ToolFilterRequestProcessor
29
+ });
30
+ module.exports = __toCommonJS(tool_filter_request_processor_exports);
31
+ var import_context = require("../context.js");
32
+ var import_llm_agent = require("../llm_agent.js");
33
+ var import_readonly_context = require("../readonly_context.js");
34
+ var import_base_llm_processor = require("./base_llm_processor.js");
35
+ /**
36
+ * @license
37
+ * Copyright 2025 Google LLC
38
+ * SPDX-License-Identifier: Apache-2.0
39
+ */
40
+ class ToolFilterRequestProcessor extends import_base_llm_processor.BaseLlmRequestProcessor {
41
+ /** Filters the set of tools on the request based on plugins. */
42
+ // eslint-disable-next-line require-yield
43
+ async *runAsync(invocationContext, llmRequest) {
44
+ const agent = invocationContext.agent;
45
+ if (!(0, import_llm_agent.isLlmAgent)(agent)) {
46
+ return;
47
+ }
48
+ const toolsList = await agent.canonicalTools(
49
+ new import_readonly_context.ReadonlyContext(invocationContext)
50
+ );
51
+ if (toolsList.length === 0) {
52
+ return;
53
+ }
54
+ const toolsDict = {};
55
+ for (const tool of toolsList) {
56
+ toolsDict[tool.name] = tool;
57
+ }
58
+ const callbackContext = new import_context.Context({ invocationContext });
59
+ const filteredTools = await invocationContext.pluginManager.runBeforeToolSelection({
60
+ callbackContext,
61
+ tools: toolsDict
62
+ });
63
+ if (filteredTools !== void 0) {
64
+ llmRequest.allowedTools = Object.keys(filteredTools);
65
+ }
66
+ }
67
+ }
68
+ const TOOL_FILTER_REQUEST_PROCESSOR = new ToolFilterRequestProcessor();
69
+ // Annotate the CommonJS export names for ESM import in node:
70
+ 0 && (module.exports = {
71
+ TOOL_FILTER_REQUEST_PROCESSOR,
72
+ ToolFilterRequestProcessor
73
+ });
@@ -0,0 +1,97 @@
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 __export = (target, all) => {
13
+ for (var name in all)
14
+ __defProp(target, name, { get: all[name], enumerable: true });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var __decorateClass = (decorators, target, key, kind) => {
26
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
27
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
28
+ if (decorator = decorators[i])
29
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
30
+ if (kind && result) __defProp(target, key, result);
31
+ return result;
32
+ };
33
+ var routed_agent_exports = {};
34
+ __export(routed_agent_exports, {
35
+ RoutedAgent: () => RoutedAgent,
36
+ isRoutedAgent: () => isRoutedAgent
37
+ });
38
+ module.exports = __toCommonJS(routed_agent_exports);
39
+ var import_base_agent = require("./base_agent.js");
40
+ var import_experimental = require("../utils/experimental.js");
41
+ var import_failover_utils = require("../utils/failover_utils.js");
42
+ /**
43
+ * @license
44
+ * Copyright 2026 Google LLC
45
+ * SPDX-License-Identifier: Apache-2.0
46
+ */
47
+ var _a, _b;
48
+ const ROUTED_AGENT_SIGNATURE_SYMBOL = Symbol.for("google.adk.routedAgent");
49
+ function isRoutedAgent(obj) {
50
+ return typeof obj === "object" && obj !== null && ROUTED_AGENT_SIGNATURE_SYMBOL in obj && obj[ROUTED_AGENT_SIGNATURE_SYMBOL] === true;
51
+ }
52
+ let RoutedAgent = class extends (_b = import_base_agent.BaseAgent, _a = ROUTED_AGENT_SIGNATURE_SYMBOL, _b) {
53
+ constructor(config) {
54
+ const agentsArray = Array.isArray(config.agents) ? config.agents : Object.values(config.agents);
55
+ super({
56
+ ...config,
57
+ subAgents: agentsArray
58
+ });
59
+ this[_a] = true;
60
+ if (Array.isArray(config.agents)) {
61
+ this.agents = Object.fromEntries(config.agents.map((a) => [a.name, a]));
62
+ } else {
63
+ this.agents = config.agents;
64
+ }
65
+ this.router = config.router;
66
+ }
67
+ /**
68
+ * Runs the selected agent via text-based conversation.
69
+ */
70
+ async *runAsyncImpl(context) {
71
+ yield* (0, import_failover_utils.runWithRouting)(
72
+ this.agents,
73
+ context,
74
+ this.router,
75
+ (agent) => agent.runAsync(context)
76
+ );
77
+ }
78
+ /**
79
+ * Runs the selected agent via video/audio-based conversation.
80
+ */
81
+ async *runLiveImpl(context) {
82
+ yield* (0, import_failover_utils.runWithRouting)(
83
+ this.agents,
84
+ context,
85
+ this.router,
86
+ (agent) => agent.runLive(context)
87
+ );
88
+ }
89
+ };
90
+ RoutedAgent = __decorateClass([
91
+ import_experimental.experimental
92
+ ], RoutedAgent);
93
+ // Annotate the CommonJS export names for ESM import in node:
94
+ 0 && (module.exports = {
95
+ RoutedAgent,
96
+ isRoutedAgent
97
+ });