@google/adk 0.6.1 → 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 (402) hide show
  1. package/dist/cjs/agents/base_agent.js +11 -2
  2. package/dist/cjs/agents/context.js +1 -0
  3. package/dist/cjs/agents/functions.js +1 -0
  4. package/dist/cjs/agents/invocation_context.js +1 -0
  5. package/dist/cjs/agents/llm_agent.js +70 -13
  6. package/dist/cjs/agents/loop_agent.js +4 -0
  7. package/dist/cjs/agents/parallel_agent.js +4 -0
  8. package/dist/cjs/agents/processors/code_execution_request_processor.js +2 -0
  9. package/dist/cjs/agents/processors/context_compactor_request_processor.js +9 -0
  10. package/dist/cjs/agents/processors/tool_filter_request_processor.js +73 -0
  11. package/dist/cjs/agents/routed_agent.js +97 -0
  12. package/dist/cjs/auth/auth_handler.js +66 -1
  13. package/dist/cjs/auth/auth_preprocessor.js +178 -0
  14. package/dist/cjs/auth/auth_provider_registry.js +61 -0
  15. package/dist/cjs/auth/base_auth_provider.js +27 -0
  16. package/dist/cjs/auth/credential_service/session_state_credential_service.js +51 -0
  17. package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +198 -0
  18. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +109 -0
  19. package/dist/cjs/auth/oauth2/oauth2_discovery.js +186 -0
  20. package/dist/cjs/auth/oauth2/oauth2_utils.js +119 -0
  21. package/dist/cjs/auth/refresher/base_credential_refresher.js +44 -0
  22. package/dist/cjs/auth/refresher/credential_refresher_registry.js +68 -0
  23. package/dist/cjs/code_executors/base_code_executor.js +9 -5
  24. package/dist/cjs/code_executors/code_execution_utils.js +19 -0
  25. package/dist/cjs/code_executors/unsafe_local_code_executor.js +241 -0
  26. package/dist/cjs/common.js +61 -0
  27. package/dist/cjs/features/feature_registry.js +141 -0
  28. package/dist/cjs/index.js +32 -20
  29. package/dist/cjs/index.js.map +4 -4
  30. package/dist/cjs/models/apigee_llm.js +2 -2
  31. package/dist/cjs/models/google_llm.js +18 -53
  32. package/dist/cjs/models/routed_llm.js +99 -0
  33. package/dist/cjs/plugins/base_plugin.js +39 -2
  34. package/dist/cjs/plugins/plugin_manager.js +39 -0
  35. package/dist/cjs/runner/runner.js +31 -3
  36. package/dist/cjs/sessions/db/operations.js +3 -10
  37. package/dist/cjs/skills/loader.js +283 -0
  38. package/dist/cjs/skills/prompt.js +58 -0
  39. package/dist/cjs/skills/skill.js +78 -0
  40. package/dist/cjs/tools/agent_tool.js +10 -3
  41. package/dist/cjs/tools/mcp/mcp_tool.js +4 -1
  42. package/dist/cjs/tools/skill/list_skills_tool.js +76 -0
  43. package/dist/cjs/tools/skill/load_skill_resource_tool.js +225 -0
  44. package/dist/cjs/tools/skill/load_skill_tool.js +108 -0
  45. package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +146 -0
  46. package/dist/cjs/tools/skill/run_skill_script_tool.js +224 -0
  47. package/dist/cjs/tools/skill/skill_toolset.js +163 -0
  48. package/dist/cjs/utils/experimental.js +74 -0
  49. package/dist/cjs/utils/failover_utils.js +93 -0
  50. package/dist/cjs/utils/file_extension_utils.js +77 -0
  51. package/dist/cjs/utils/file_utils.js +94 -0
  52. package/dist/cjs/utils/streaming_utils.js +333 -0
  53. package/dist/cjs/version.js +1 -1
  54. package/dist/esm/a2a/a2a_event.js +2 -0
  55. package/dist/esm/a2a/a2a_remote_agent.js +2 -0
  56. package/dist/esm/a2a/a2a_remote_agent_run_processor.js +2 -0
  57. package/dist/esm/a2a/a2a_remote_agent_utils.js +2 -0
  58. package/dist/esm/a2a/agent_card.js +2 -0
  59. package/dist/esm/a2a/agent_executor.js +2 -0
  60. package/dist/esm/a2a/agent_to_a2a.js +2 -0
  61. package/dist/esm/a2a/event_converter_utils.js +2 -0
  62. package/dist/esm/a2a/event_processor_utils.js +2 -0
  63. package/dist/esm/a2a/executor_context.js +2 -0
  64. package/dist/esm/a2a/metadata_converter_utils.js +2 -0
  65. package/dist/esm/a2a/part_converter_utils.js +2 -0
  66. package/dist/esm/agents/active_streaming_tool.js +2 -0
  67. package/dist/esm/agents/base_agent.js +13 -2
  68. package/dist/esm/agents/context.js +3 -0
  69. package/dist/esm/agents/functions.js +3 -0
  70. package/dist/esm/agents/instructions.js +2 -0
  71. package/dist/esm/agents/invocation_context.js +3 -0
  72. package/dist/esm/agents/live_request_queue.js +2 -0
  73. package/dist/esm/agents/llm_agent.js +72 -13
  74. package/dist/esm/agents/loop_agent.js +6 -0
  75. package/dist/esm/agents/parallel_agent.js +6 -0
  76. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +2 -0
  77. package/dist/esm/agents/processors/base_llm_processor.js +2 -0
  78. package/dist/esm/agents/processors/basic_llm_request_processor.js +2 -0
  79. package/dist/esm/agents/processors/code_execution_request_processor.js +5 -0
  80. package/dist/esm/agents/processors/content_processor_utils.js +2 -0
  81. package/dist/esm/agents/processors/content_request_processor.js +2 -0
  82. package/dist/esm/agents/processors/context_compactor_request_processor.js +11 -0
  83. package/dist/esm/agents/processors/identity_llm_request_processor.js +2 -0
  84. package/dist/esm/agents/processors/instructions_llm_request_processor.js +2 -0
  85. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +2 -0
  86. package/dist/esm/agents/processors/tool_filter_request_processor.js +44 -0
  87. package/dist/esm/agents/readonly_context.js +2 -0
  88. package/dist/esm/agents/routed_agent.js +70 -0
  89. package/dist/esm/agents/run_config.js +2 -0
  90. package/dist/esm/agents/sequential_agent.js +2 -0
  91. package/dist/esm/agents/transcription_entry.js +2 -0
  92. package/dist/esm/artifacts/base_artifact_service.js +2 -0
  93. package/dist/esm/artifacts/file_artifact_service.js +2 -0
  94. package/dist/esm/artifacts/gcs_artifact_service.js +2 -0
  95. package/dist/esm/artifacts/in_memory_artifact_service.js +2 -0
  96. package/dist/esm/artifacts/registry.js +2 -0
  97. package/dist/esm/auth/auth_credential.js +2 -0
  98. package/dist/esm/auth/auth_handler.js +68 -1
  99. package/dist/esm/auth/auth_preprocessor.js +155 -0
  100. package/dist/esm/auth/auth_provider_registry.js +33 -0
  101. package/dist/esm/auth/auth_schemes.js +2 -0
  102. package/dist/esm/auth/auth_tool.js +2 -0
  103. package/dist/esm/auth/base_auth_provider.js +7 -0
  104. package/dist/esm/auth/credential_service/base_credential_service.js +2 -0
  105. package/dist/esm/auth/credential_service/in_memory_credential_service.js +2 -0
  106. package/dist/esm/auth/credential_service/session_state_credential_service.js +23 -0
  107. package/dist/esm/auth/exchanger/base_credential_exchanger.js +2 -0
  108. package/dist/esm/auth/exchanger/credential_exchanger_registry.js +2 -0
  109. package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +177 -0
  110. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +85 -0
  111. package/dist/esm/auth/oauth2/oauth2_discovery.js +156 -0
  112. package/dist/esm/auth/oauth2/oauth2_utils.js +87 -0
  113. package/dist/esm/auth/refresher/base_credential_refresher.js +16 -0
  114. package/dist/esm/auth/refresher/credential_refresher_registry.js +40 -0
  115. package/dist/esm/code_executors/base_code_executor.js +11 -5
  116. package/dist/esm/code_executors/built_in_code_executor.js +2 -0
  117. package/dist/esm/code_executors/code_execution_utils.js +19 -0
  118. package/dist/esm/code_executors/code_executor_context.js +2 -0
  119. package/dist/esm/code_executors/unsafe_local_code_executor.js +205 -0
  120. package/dist/esm/common.js +47 -3
  121. package/dist/esm/context/base_context_compactor.js +2 -0
  122. package/dist/esm/context/summarizers/base_summarizer.js +2 -0
  123. package/dist/esm/context/summarizers/llm_summarizer.js +2 -0
  124. package/dist/esm/context/token_based_context_compactor.js +2 -0
  125. package/dist/esm/context/truncating_context_compactor.js +2 -0
  126. package/dist/esm/events/compacted_event.js +2 -0
  127. package/dist/esm/events/event.js +2 -0
  128. package/dist/esm/events/event_actions.js +2 -0
  129. package/dist/esm/events/structured_events.js +2 -0
  130. package/dist/esm/examples/base_example_provider.js +2 -0
  131. package/dist/esm/examples/example.js +2 -0
  132. package/dist/esm/examples/example_util.js +2 -0
  133. package/dist/esm/features/feature_registry.js +107 -0
  134. package/dist/esm/index.js +34 -21
  135. package/dist/esm/index.js.map +4 -4
  136. package/dist/esm/index_web.js +2 -0
  137. package/dist/esm/memory/base_memory_service.js +2 -0
  138. package/dist/esm/memory/in_memory_memory_service.js +2 -0
  139. package/dist/esm/memory/memory_entry.js +2 -0
  140. package/dist/esm/models/apigee_llm.js +4 -2
  141. package/dist/esm/models/base_llm.js +2 -0
  142. package/dist/esm/models/base_llm_connection.js +2 -0
  143. package/dist/esm/models/gemini_llm_connection.js +2 -0
  144. package/dist/esm/models/google_llm.js +20 -54
  145. package/dist/esm/models/llm_request.js +2 -0
  146. package/dist/esm/models/llm_response.js +2 -0
  147. package/dist/esm/models/registry.js +2 -0
  148. package/dist/esm/models/routed_llm.js +73 -0
  149. package/dist/esm/plugins/base_plugin.js +41 -1
  150. package/dist/esm/plugins/logging_plugin.js +2 -0
  151. package/dist/esm/plugins/plugin_manager.js +41 -0
  152. package/dist/esm/plugins/security_plugin.js +2 -0
  153. package/dist/esm/runner/in_memory_runner.js +2 -0
  154. package/dist/esm/runner/runner.js +33 -3
  155. package/dist/esm/sessions/base_session_service.js +2 -0
  156. package/dist/esm/sessions/database_session_service.js +2 -0
  157. package/dist/esm/sessions/db/operations.js +5 -10
  158. package/dist/esm/sessions/db/schema.js +2 -0
  159. package/dist/esm/sessions/in_memory_session_service.js +2 -0
  160. package/dist/esm/sessions/registry.js +2 -0
  161. package/dist/esm/sessions/session.js +2 -0
  162. package/dist/esm/sessions/state.js +2 -0
  163. package/dist/esm/skills/loader.js +244 -0
  164. package/dist/esm/skills/prompt.js +30 -0
  165. package/dist/esm/skills/skill.js +49 -0
  166. package/dist/esm/telemetry/google_cloud.js +2 -0
  167. package/dist/esm/telemetry/setup.js +2 -0
  168. package/dist/esm/telemetry/tracing.js +2 -0
  169. package/dist/esm/tools/agent_tool.js +12 -3
  170. package/dist/esm/tools/base_tool.js +2 -0
  171. package/dist/esm/tools/base_toolset.js +2 -0
  172. package/dist/esm/tools/exit_loop_tool.js +2 -0
  173. package/dist/esm/tools/forwarding_artifact_service.js +2 -0
  174. package/dist/esm/tools/function_tool.js +2 -0
  175. package/dist/esm/tools/google_search_tool.js +2 -0
  176. package/dist/esm/tools/load_artifacts_tool.js +2 -0
  177. package/dist/esm/tools/load_memory_tool.js +2 -0
  178. package/dist/esm/tools/long_running_tool.js +2 -0
  179. package/dist/esm/tools/mcp/mcp_session_manager.js +2 -0
  180. package/dist/esm/tools/mcp/mcp_tool.js +6 -1
  181. package/dist/esm/tools/mcp/mcp_toolset.js +2 -0
  182. package/dist/esm/tools/preload_memory_tool.js +2 -0
  183. package/dist/esm/tools/skill/list_skills_tool.js +50 -0
  184. package/dist/esm/tools/skill/load_skill_resource_tool.js +191 -0
  185. package/dist/esm/tools/skill/load_skill_tool.js +82 -0
  186. package/dist/esm/tools/skill/run_skill_inline_script_tool.js +120 -0
  187. package/dist/esm/tools/skill/run_skill_script_tool.js +192 -0
  188. package/dist/esm/tools/skill/skill_toolset.js +137 -0
  189. package/dist/esm/tools/tool_confirmation.js +2 -0
  190. package/dist/esm/utils/client_labels.js +2 -0
  191. package/dist/esm/utils/env_aware_utils.js +2 -0
  192. package/dist/esm/utils/experimental.js +46 -0
  193. package/dist/esm/utils/failover_utils.js +65 -0
  194. package/dist/esm/utils/file_extension_utils.js +51 -0
  195. package/dist/esm/utils/file_utils.js +56 -0
  196. package/dist/esm/utils/gemini_schema_util.js +2 -0
  197. package/dist/esm/utils/logger.js +2 -0
  198. package/dist/esm/utils/model_name.js +2 -0
  199. package/dist/esm/utils/object_notation_utils.js +2 -0
  200. package/dist/esm/utils/simple_zod_to_json.js +2 -0
  201. package/dist/esm/utils/streaming_utils.js +307 -0
  202. package/dist/esm/utils/variant_utils.js +2 -0
  203. package/dist/esm/version.js +3 -1
  204. package/dist/types/agents/context.d.ts +1 -0
  205. package/dist/types/agents/invocation_context.d.ts +5 -0
  206. package/dist/types/agents/processors/tool_filter_request_processor.d.ts +14 -0
  207. package/dist/types/agents/routed_agent.d.ts +59 -0
  208. package/dist/types/auth/auth_credential.d.ts +17 -0
  209. package/dist/types/auth/auth_handler.d.ts +1 -0
  210. package/dist/types/auth/auth_preprocessor.d.ts +12 -0
  211. package/dist/types/auth/auth_provider_registry.d.ts +27 -0
  212. package/dist/types/auth/base_auth_provider.d.ts +20 -0
  213. package/dist/types/auth/credential_service/session_state_credential_service.d.ts +20 -0
  214. package/dist/types/auth/exchanger/base_credential_exchanger.d.ts +12 -5
  215. package/dist/types/auth/oauth2/oauth2_credential_exchanger.d.ts +26 -0
  216. package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +29 -0
  217. package/dist/types/auth/oauth2/oauth2_discovery.d.ts +38 -0
  218. package/dist/types/auth/oauth2/oauth2_utils.d.ts +56 -0
  219. package/dist/types/auth/refresher/base_credential_refresher.d.ts +38 -0
  220. package/dist/types/auth/refresher/credential_refresher_registry.d.ts +27 -0
  221. package/dist/types/code_executors/base_code_executor.d.ts +4 -4
  222. package/dist/types/code_executors/code_execution_utils.d.ts +29 -1
  223. package/dist/types/code_executors/unsafe_local_code_executor.d.ts +48 -0
  224. package/dist/types/common.d.ts +26 -3
  225. package/dist/types/features/feature_registry.d.ts +66 -0
  226. package/dist/types/index.d.ts +4 -0
  227. package/dist/types/memory/base_memory_service.d.ts +6 -0
  228. package/dist/types/memory/memory_entry.d.ts +11 -5
  229. package/dist/types/models/apigee_llm.d.ts +1 -1
  230. package/dist/types/models/base_llm.d.ts +1 -1
  231. package/dist/types/models/google_llm.d.ts +1 -1
  232. package/dist/types/models/llm_request.d.ts +4 -0
  233. package/dist/types/models/routed_llm.d.ts +38 -0
  234. package/dist/types/plugins/base_plugin.d.ts +49 -0
  235. package/dist/types/plugins/plugin_manager.d.ts +22 -1
  236. package/dist/types/runner/runner.d.ts +1 -0
  237. package/dist/types/skills/loader.d.ts +38 -0
  238. package/dist/types/skills/prompt.d.ts +13 -0
  239. package/dist/types/skills/skill.d.ts +48 -0
  240. package/dist/types/tools/skill/list_skills_tool.d.ts +14 -0
  241. package/dist/types/tools/skill/load_skill_resource_tool.d.ts +15 -0
  242. package/dist/types/tools/skill/load_skill_tool.d.ts +14 -0
  243. package/dist/types/tools/skill/run_skill_inline_script_tool.d.ts +14 -0
  244. package/dist/types/tools/skill/run_skill_script_tool.d.ts +17 -0
  245. package/dist/types/tools/skill/skill_toolset.d.ts +28 -0
  246. package/dist/types/utils/experimental.d.ts +11 -0
  247. package/dist/types/utils/failover_utils.d.ts +17 -0
  248. package/dist/types/utils/file_extension_utils.d.ts +21 -0
  249. package/dist/types/utils/file_utils.d.ts +11 -0
  250. package/dist/types/utils/streaming_utils.d.ts +40 -0
  251. package/dist/types/version.d.ts +1 -1
  252. package/dist/web/a2a/a2a_event.js +2 -0
  253. package/dist/web/a2a/a2a_remote_agent.js +2 -0
  254. package/dist/web/a2a/a2a_remote_agent_run_processor.js +2 -0
  255. package/dist/web/a2a/a2a_remote_agent_utils.js +2 -0
  256. package/dist/web/a2a/agent_card.js +2 -0
  257. package/dist/web/a2a/agent_executor.js +2 -0
  258. package/dist/web/a2a/agent_to_a2a.js +2 -0
  259. package/dist/web/a2a/event_converter_utils.js +2 -0
  260. package/dist/web/a2a/event_processor_utils.js +2 -0
  261. package/dist/web/a2a/executor_context.js +2 -0
  262. package/dist/web/a2a/metadata_converter_utils.js +2 -0
  263. package/dist/web/a2a/part_converter_utils.js +2 -0
  264. package/dist/web/agents/active_streaming_tool.js +2 -0
  265. package/dist/web/agents/base_agent.js +13 -2
  266. package/dist/web/agents/context.js +3 -0
  267. package/dist/web/agents/functions.js +3 -0
  268. package/dist/web/agents/instructions.js +2 -0
  269. package/dist/web/agents/invocation_context.js +3 -0
  270. package/dist/web/agents/live_request_queue.js +2 -0
  271. package/dist/web/agents/llm_agent.js +72 -13
  272. package/dist/web/agents/loop_agent.js +6 -0
  273. package/dist/web/agents/parallel_agent.js +6 -0
  274. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +2 -0
  275. package/dist/web/agents/processors/base_llm_processor.js +2 -0
  276. package/dist/web/agents/processors/basic_llm_request_processor.js +2 -0
  277. package/dist/web/agents/processors/code_execution_request_processor.js +5 -0
  278. package/dist/web/agents/processors/content_processor_utils.js +2 -0
  279. package/dist/web/agents/processors/content_request_processor.js +2 -0
  280. package/dist/web/agents/processors/context_compactor_request_processor.js +11 -0
  281. package/dist/web/agents/processors/identity_llm_request_processor.js +2 -0
  282. package/dist/web/agents/processors/instructions_llm_request_processor.js +2 -0
  283. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +2 -0
  284. package/dist/web/agents/processors/tool_filter_request_processor.js +62 -0
  285. package/dist/web/agents/readonly_context.js +2 -0
  286. package/dist/web/agents/routed_agent.js +138 -0
  287. package/dist/web/agents/run_config.js +2 -0
  288. package/dist/web/agents/sequential_agent.js +2 -0
  289. package/dist/web/agents/transcription_entry.js +2 -0
  290. package/dist/web/artifacts/base_artifact_service.js +2 -0
  291. package/dist/web/artifacts/file_artifact_service.js +2 -0
  292. package/dist/web/artifacts/gcs_artifact_service.js +2 -0
  293. package/dist/web/artifacts/in_memory_artifact_service.js +2 -0
  294. package/dist/web/artifacts/registry.js +2 -0
  295. package/dist/web/auth/auth_credential.js +2 -0
  296. package/dist/web/auth/auth_handler.js +85 -1
  297. package/dist/web/auth/auth_preprocessor.js +173 -0
  298. package/dist/web/auth/auth_provider_registry.js +33 -0
  299. package/dist/web/auth/auth_schemes.js +2 -0
  300. package/dist/web/auth/auth_tool.js +2 -0
  301. package/dist/web/auth/base_auth_provider.js +7 -0
  302. package/dist/web/auth/credential_service/base_credential_service.js +2 -0
  303. package/dist/web/auth/credential_service/in_memory_credential_service.js +2 -0
  304. package/dist/web/auth/credential_service/session_state_credential_service.js +23 -0
  305. package/dist/web/auth/exchanger/base_credential_exchanger.js +2 -0
  306. package/dist/web/auth/exchanger/credential_exchanger_registry.js +2 -0
  307. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +188 -0
  308. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +102 -0
  309. package/dist/web/auth/oauth2/oauth2_discovery.js +156 -0
  310. package/dist/web/auth/oauth2/oauth2_utils.js +87 -0
  311. package/dist/web/auth/refresher/base_credential_refresher.js +16 -0
  312. package/dist/web/auth/refresher/credential_refresher_registry.js +40 -0
  313. package/dist/web/code_executors/base_code_executor.js +11 -5
  314. package/dist/web/code_executors/built_in_code_executor.js +2 -0
  315. package/dist/web/code_executors/code_execution_utils.js +19 -0
  316. package/dist/web/code_executors/code_executor_context.js +2 -0
  317. package/dist/web/code_executors/unsafe_local_code_executor.js +203 -0
  318. package/dist/web/common.js +47 -3
  319. package/dist/web/context/base_context_compactor.js +2 -0
  320. package/dist/web/context/summarizers/base_summarizer.js +2 -0
  321. package/dist/web/context/summarizers/llm_summarizer.js +2 -0
  322. package/dist/web/context/token_based_context_compactor.js +2 -0
  323. package/dist/web/context/truncating_context_compactor.js +2 -0
  324. package/dist/web/events/compacted_event.js +2 -0
  325. package/dist/web/events/event.js +2 -0
  326. package/dist/web/events/event_actions.js +2 -0
  327. package/dist/web/events/structured_events.js +2 -0
  328. package/dist/web/examples/base_example_provider.js +2 -0
  329. package/dist/web/examples/example.js +2 -0
  330. package/dist/web/examples/example_util.js +2 -0
  331. package/dist/web/features/feature_registry.js +107 -0
  332. package/dist/web/index.js +3 -2
  333. package/dist/web/index.js.map +4 -4
  334. package/dist/web/index_web.js +2 -0
  335. package/dist/web/memory/base_memory_service.js +2 -0
  336. package/dist/web/memory/in_memory_memory_service.js +2 -0
  337. package/dist/web/memory/memory_entry.js +2 -0
  338. package/dist/web/models/apigee_llm.js +4 -2
  339. package/dist/web/models/base_llm.js +2 -0
  340. package/dist/web/models/base_llm_connection.js +2 -0
  341. package/dist/web/models/gemini_llm_connection.js +2 -0
  342. package/dist/web/models/google_llm.js +37 -59
  343. package/dist/web/models/llm_request.js +2 -0
  344. package/dist/web/models/llm_response.js +2 -0
  345. package/dist/web/models/registry.js +2 -0
  346. package/dist/web/models/routed_llm.js +122 -0
  347. package/dist/web/plugins/base_plugin.js +41 -1
  348. package/dist/web/plugins/logging_plugin.js +2 -0
  349. package/dist/web/plugins/plugin_manager.js +41 -0
  350. package/dist/web/plugins/security_plugin.js +2 -0
  351. package/dist/web/runner/in_memory_runner.js +2 -0
  352. package/dist/web/runner/runner.js +33 -3
  353. package/dist/web/sessions/base_session_service.js +2 -0
  354. package/dist/web/sessions/database_session_service.js +2 -0
  355. package/dist/web/sessions/db/operations.js +5 -10
  356. package/dist/web/sessions/db/schema.js +2 -0
  357. package/dist/web/sessions/in_memory_session_service.js +2 -0
  358. package/dist/web/sessions/registry.js +2 -0
  359. package/dist/web/sessions/session.js +2 -0
  360. package/dist/web/sessions/state.js +2 -0
  361. package/dist/web/skills/loader.js +262 -0
  362. package/dist/web/skills/prompt.js +30 -0
  363. package/dist/web/skills/skill.js +67 -0
  364. package/dist/web/telemetry/google_cloud.js +2 -0
  365. package/dist/web/telemetry/setup.js +2 -0
  366. package/dist/web/telemetry/tracing.js +2 -0
  367. package/dist/web/tools/agent_tool.js +12 -3
  368. package/dist/web/tools/base_tool.js +2 -0
  369. package/dist/web/tools/base_toolset.js +2 -0
  370. package/dist/web/tools/exit_loop_tool.js +2 -0
  371. package/dist/web/tools/forwarding_artifact_service.js +2 -0
  372. package/dist/web/tools/function_tool.js +2 -0
  373. package/dist/web/tools/google_search_tool.js +2 -0
  374. package/dist/web/tools/load_artifacts_tool.js +2 -0
  375. package/dist/web/tools/load_memory_tool.js +2 -0
  376. package/dist/web/tools/long_running_tool.js +2 -0
  377. package/dist/web/tools/mcp/mcp_session_manager.js +2 -0
  378. package/dist/web/tools/mcp/mcp_tool.js +6 -1
  379. package/dist/web/tools/mcp/mcp_toolset.js +2 -0
  380. package/dist/web/tools/preload_memory_tool.js +2 -0
  381. package/dist/web/tools/skill/list_skills_tool.js +50 -0
  382. package/dist/web/tools/skill/load_skill_resource_tool.js +191 -0
  383. package/dist/web/tools/skill/load_skill_tool.js +82 -0
  384. package/dist/web/tools/skill/run_skill_inline_script_tool.js +120 -0
  385. package/dist/web/tools/skill/run_skill_script_tool.js +190 -0
  386. package/dist/web/tools/skill/skill_toolset.js +123 -0
  387. package/dist/web/tools/tool_confirmation.js +2 -0
  388. package/dist/web/utils/client_labels.js +2 -0
  389. package/dist/web/utils/env_aware_utils.js +2 -0
  390. package/dist/web/utils/experimental.js +46 -0
  391. package/dist/web/utils/failover_utils.js +96 -0
  392. package/dist/web/utils/file_extension_utils.js +51 -0
  393. package/dist/web/utils/file_utils.js +74 -0
  394. package/dist/web/utils/gemini_schema_util.js +2 -0
  395. package/dist/web/utils/logger.js +2 -0
  396. package/dist/web/utils/model_name.js +2 -0
  397. package/dist/web/utils/object_notation_utils.js +2 -0
  398. package/dist/web/utils/simple_zod_to_json.js +2 -0
  399. package/dist/web/utils/streaming_utils.js +325 -0
  400. package/dist/web/utils/variant_utils.js +2 -0
  401. package/dist/web/version.js +3 -1
  402. package/package.json +19 -17
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { z } from 'zod';
7
+ /**
8
+ * Represents the OAuth2 authorization server metadata per RFC8414.
9
+ */
10
+ export declare const AuthorizationServerMetadataSchema: z.ZodObject<{
11
+ issuer: z.ZodString;
12
+ authorization_endpoint: z.ZodString;
13
+ token_endpoint: z.ZodString;
14
+ scopes_supported: z.ZodOptional<z.ZodArray<z.ZodString>>;
15
+ registration_endpoint: z.ZodOptional<z.ZodString>;
16
+ }, z.core.$strip>;
17
+ export type AuthorizationServerMetadata = z.infer<typeof AuthorizationServerMetadataSchema>;
18
+ /**
19
+ * Represents the OAuth2 protected resource metadata per RFC9728.
20
+ */
21
+ export declare const ProtectedResourceMetadataSchema: z.ZodObject<{
22
+ resource: z.ZodString;
23
+ authorization_servers: z.ZodDefault<z.ZodArray<z.ZodString>>;
24
+ }, z.core.$strip>;
25
+ export type ProtectedResourceMetadata = z.infer<typeof ProtectedResourceMetadataSchema>;
26
+ /**
27
+ * Implements Metadata discovery for OAuth2 following RFC8414 and RFC9728.
28
+ */
29
+ export declare class OAuth2DiscoveryManager {
30
+ /**
31
+ * Discovers the OAuth2 authorization server metadata.
32
+ */
33
+ discoverAuthServerMetadata(issuerUrl: string): Promise<AuthorizationServerMetadata | undefined>;
34
+ /**
35
+ * Discovers the OAuth2 protected resource metadata.
36
+ */
37
+ discoverResourceMetadata(resourceUrl: string): Promise<ProtectedResourceMetadata | undefined>;
38
+ }
@@ -0,0 +1,56 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { OAuth2Auth } from '../auth_credential.js';
7
+ import { AuthScheme } from '../auth_schemes.js';
8
+ /**
9
+ * Returns the token endpoint for the given auth scheme.
10
+ */
11
+ export declare function getTokenEndpoint(authScheme: AuthScheme): string | undefined;
12
+ /**
13
+ * Fetches OAuth2 tokens from the endpoint using the given body.
14
+ */
15
+ export declare function fetchOAuth2Tokens(endpoint: string, body: URLSearchParams): Promise<OAuth2Auth>;
16
+ /**
17
+ * Parses the authorization code from an authorization response URI.
18
+ */
19
+ export declare function parseAuthorizationCode(uri: string): string | undefined;
20
+ /**
21
+ * Parameters for a Client Credentials token request.
22
+ */
23
+ export interface ClientCredentialsParams {
24
+ grantType: 'client_credentials';
25
+ clientId: string;
26
+ clientSecret: string;
27
+ }
28
+ /**
29
+ * Parameters for an Authorization Code token request.
30
+ */
31
+ export interface AuthorizationCodeParams {
32
+ grantType: 'authorization_code';
33
+ clientId: string;
34
+ clientSecret: string;
35
+ code: string;
36
+ redirectUri?: string;
37
+ codeVerifier?: string;
38
+ }
39
+ /**
40
+ * Parameters for a Refresh Token request.
41
+ */
42
+ export interface RefreshTokenParams {
43
+ grantType: 'refresh_token';
44
+ clientId: string;
45
+ clientSecret: string;
46
+ refreshToken: string;
47
+ }
48
+ /**
49
+ * Parameters for creating an OAuth2 token request body.
50
+ */
51
+ export type OAuth2TokenRequestParams = ClientCredentialsParams | AuthorizationCodeParams | RefreshTokenParams;
52
+ /**
53
+ * Creates URLSearchParams for an OAuth2 token request.
54
+ */
55
+ export declare function createOAuth2TokenRequestBody(params: OAuth2TokenRequestParams): URLSearchParams;
56
+ export declare function isTokenExpired(token: OAuth2Auth, leeway?: number): boolean;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { AuthCredential } from '../auth_credential.js';
7
+ import { AuthScheme } from '../auth_schemes.js';
8
+ /**
9
+ * Base exception for credential refresh errors.
10
+ */
11
+ export declare class CredentialRefresherError extends Error {
12
+ constructor(message: string);
13
+ }
14
+ /**
15
+ * Base interface for credential refreshers.
16
+ *
17
+ * Credential refreshers are responsible for checking if a credential is expired
18
+ * or needs to be refreshed, and for refreshing it if necessary.
19
+ */
20
+ export interface BaseCredentialRefresher {
21
+ /**
22
+ * Checks if a credential needs to be refreshed.
23
+ *
24
+ * @param authCredential The credential to check.
25
+ * @param authScheme The authentication scheme (optional).
26
+ * @returns True if the credential needs to be refreshed, False otherwise.
27
+ */
28
+ isRefreshNeeded(authCredential: AuthCredential, authScheme?: AuthScheme): Promise<boolean>;
29
+ /**
30
+ * Refreshes a credential if needed.
31
+ *
32
+ * @param authCredential The credential to refresh.
33
+ * @param authScheme The authentication scheme (optional).
34
+ * @returns The refreshed credential.
35
+ * @throws {CredentialRefresherError} If credential refresh fails.
36
+ */
37
+ refresh(authCredential: AuthCredential, authScheme?: AuthScheme): Promise<AuthCredential>;
38
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { AuthCredentialTypes } from '../auth_credential.js';
7
+ import { BaseCredentialRefresher } from './base_credential_refresher.js';
8
+ /**
9
+ * Registry for credential refresher instances.
10
+ */
11
+ export declare class CredentialRefresherRegistry {
12
+ private readonly refreshers;
13
+ /**
14
+ * Register a refresher instance for a credential type.
15
+ *
16
+ * @param credentialType The credential type to register for.
17
+ * @param refresherInstance The refresher instance to register.
18
+ */
19
+ register(credentialType: AuthCredentialTypes, refresherInstance: BaseCredentialRefresher): void;
20
+ /**
21
+ * Get the refresher instance for a credential type.
22
+ *
23
+ * @param credentialType The credential type to get refresher for.
24
+ * @returns The refresher instance if registered, undefined otherwise.
25
+ */
26
+ getRefresher(credentialType: AuthCredentialTypes): BaseCredentialRefresher | undefined;
27
+ }
@@ -51,11 +51,11 @@ export declare abstract class BaseCodeExecutor {
51
51
  errorRetryAttempts: number;
52
52
  /**
53
53
  * The list of the enclosing delimiters to identify the code blocks.
54
- * For example, the delimiter('```python\\n', '\\n```') can be used to
55
- * identify code blocks with the following format::
54
+ * For example, the delimiter('```javascript\\n', '\\n```') can be used to
55
+ * identify code blocks with the following format:
56
56
  *
57
- * ```python
58
- * print("hello")
57
+ * ```javascript
58
+ * console.log("hello")
59
59
  * ```
60
60
  */
61
61
  codeBlockDelimiters: Array<[string, string]>;
@@ -4,6 +4,10 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { Content, Part } from '@google/genai';
7
+ export declare enum FileContentEncoding {
8
+ UTF8 = "utf-8",
9
+ BASE64 = "base64"
10
+ }
7
11
  /**
8
12
  * A structure that contains a file name and its content
9
13
  */
@@ -13,14 +17,30 @@ export interface File {
13
17
  * */
14
18
  name: string;
15
19
  /**
16
- * The base64 - encoded bytes of the file content.
20
+ * The encoded bytes of the file content.
17
21
  * */
18
22
  content: string;
23
+ /**
24
+ * The encoding of the file content.
25
+ */
26
+ contentEncoding?: FileContentEncoding;
19
27
  /**
20
28
  * The mime type of the file (e.g., ' image / png')
21
29
  * */
22
30
  mimeType: string;
23
31
  }
32
+ /**
33
+ * The language of the code to execute.
34
+ */
35
+ export declare enum CodeExecutionLanguage {
36
+ UNSPECIFIED = "unspecified",
37
+ PYTHON = "python",
38
+ JAVASCRIPT = "javascript",
39
+ TYPESCRIPT = "typescript",
40
+ SHELL = "shell",
41
+ POWERSHELL = "powershell",
42
+ WINDOWS_CMD = "cmd"
43
+ }
24
44
  /**
25
45
  * A structure that contains the input of code execution.
26
46
  * */
@@ -29,6 +49,10 @@ export interface CodeExecutionInput {
29
49
  * The code to execute.
30
50
  * */
31
51
  code: string;
52
+ /**
53
+ * The language of the code to execute.
54
+ */
55
+ language: CodeExecutionLanguage;
32
56
  /**
33
57
  * The input files available to the code.
34
58
  * */
@@ -37,6 +61,10 @@ export interface CodeExecutionInput {
37
61
  * The execution ID for the stateful code execution.
38
62
  * */
39
63
  executionId?: string;
64
+ /**
65
+ * Optional arguments to pass to the executed code/script.
66
+ */
67
+ args?: string[] | Record<string, string | number | boolean>;
40
68
  }
41
69
  /**
42
70
  * A structure that contains the result of code execution.
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { BaseCodeExecutor, ExecuteCodeParams } from './base_code_executor.js';
7
+ import { CodeExecutionResult } from './code_execution_utils.js';
8
+ /**
9
+ * Options for UnsafeLocalCodeExecutor.
10
+ */
11
+ export interface UnsafeLocalCodeExecutorOptions {
12
+ /**
13
+ * Timeout for code execution in seconds. Default is 30.
14
+ */
15
+ timeoutSeconds?: number;
16
+ /**
17
+ * The command to run JavaScript code. Default is `process.execPath` (Node.js).
18
+ */
19
+ commandPath?: string;
20
+ /**
21
+ * The command to run Python code. Default is `python3`.
22
+ */
23
+ pythonCommandPath?: string;
24
+ /**
25
+ * The command to run Shell code. Default is `bash`.
26
+ */
27
+ shellCommandPath?: string;
28
+ }
29
+ /**
30
+ * A code executor that unsafely executes code in the local context.
31
+ * Supports JavaScript, Python, and Shell capabilities cross-platform.
32
+ *
33
+ * **Execution Details**:
34
+ * - **JavaScript**: Executed via `node` (defaults to `process.execPath`).
35
+ * - **Python**: Executed via `python3` on Unix, and `python` on Windows.
36
+ * - **Shell**: Executed via `bash` on Unix, and defaults to `powershell` (injecting ExecutionPolicy Bypass) or `cmd.exe` on Windows.
37
+ *
38
+ * WARNING: This executor runs code in the local environment without sandboxing or security restrictions.
39
+ * Use with caution and only for trusted code.
40
+ */
41
+ export declare class UnsafeLocalCodeExecutor extends BaseCodeExecutor {
42
+ private readonly timeoutSeconds;
43
+ private readonly nodeCommandPath;
44
+ private readonly pythonCommandPath;
45
+ private readonly shellCommandPath;
46
+ constructor(options?: UnsafeLocalCodeExecutorOptions);
47
+ executeCode(params: ExecuteCodeParams): Promise<CodeExecutionResult>;
48
+ }
@@ -13,15 +13,18 @@ export { InvocationContext } from './agents/invocation_context.js';
13
13
  export type { InvocationContextParams } from './agents/invocation_context.js';
14
14
  export { LiveRequestQueue } from './agents/live_request_queue.js';
15
15
  export type { LiveRequest } from './agents/live_request_queue.js';
16
- export { LlmAgent, isLlmAgent } from './agents/llm_agent.js';
16
+ export { LlmAgent as Agent, LlmAgent, isLlmAgent } from './agents/llm_agent.js';
17
17
  export type { AfterModelCallback, AfterToolCallback, BeforeModelCallback, BeforeToolCallback, InstructionProvider, LlmAgentConfig, LlmAgentSchema, SingleAfterModelCallback, SingleAfterToolCallback, SingleBeforeModelCallback, SingleBeforeToolCallback, ToolUnion, } from './agents/llm_agent.js';
18
18
  export { LoopAgent, isLoopAgent } from './agents/loop_agent.js';
19
19
  export type { LoopAgentConfig } from './agents/loop_agent.js';
20
20
  export { ParallelAgent, isParallelAgent } from './agents/parallel_agent.js';
21
+ export { AgentTransferLlmRequestProcessor } from './agents/processors/agent_transfer_llm_request_processor.js';
21
22
  export { BaseLlmRequestProcessor, BaseLlmResponseProcessor, } from './agents/processors/base_llm_processor.js';
22
23
  export { CONTENT_REQUEST_PROCESSOR, ContentRequestProcessor, } from './agents/processors/content_request_processor.js';
23
24
  export { ContextCompactorRequestProcessor } from './agents/processors/context_compactor_request_processor.js';
24
25
  export { ReadonlyContext } from './agents/readonly_context.js';
26
+ export { RoutedAgent, isRoutedAgent } from './agents/routed_agent.js';
27
+ export type { AgentRouter, RoutedAgentConfig } from './agents/routed_agent.js';
25
28
  export { StreamingMode } from './agents/run_config.js';
26
29
  export type { RunConfig } from './agents/run_config.js';
27
30
  export { SequentialAgent, isSequentialAgent } from './agents/sequential_agent.js';
@@ -30,13 +33,25 @@ export type { BaseArtifactService, DeleteArtifactRequest, ListArtifactKeysReques
30
33
  export { InMemoryArtifactService } from './artifacts/in_memory_artifact_service.js';
31
34
  export { AuthCredentialTypes } from './auth/auth_credential.js';
32
35
  export type { AuthCredential, HttpAuth, HttpCredentials, OAuth2Auth, ServiceAccount, ServiceAccountCredential, } from './auth/auth_credential.js';
36
+ export { AuthHandler } from './auth/auth_handler.js';
37
+ export { AuthProviderRegistry } from './auth/auth_provider_registry.js';
38
+ export { OAuthGrantType } from './auth/auth_schemes.js';
33
39
  export type { AuthScheme, OpenIdConnectWithConfig } from './auth/auth_schemes.js';
34
40
  export type { AuthConfig } from './auth/auth_tool.js';
41
+ export type { BaseAuthProvider } from './auth/base_auth_provider.js';
35
42
  export type { BaseCredentialService } from './auth/credential_service/base_credential_service.js';
43
+ export { InMemoryCredentialService } from './auth/credential_service/in_memory_credential_service.js';
44
+ export { SessionStateCredentialService } from './auth/credential_service/session_state_credential_service.js';
45
+ export { CredentialExchangeError } from './auth/exchanger/base_credential_exchanger.js';
46
+ export type { BaseCredentialExchanger, ExchangeResult, } from './auth/exchanger/base_credential_exchanger.js';
47
+ export { OAuth2CredentialExchanger } from './auth/oauth2/oauth2_credential_exchanger.js';
48
+ export { OAuth2DiscoveryManager } from './auth/oauth2/oauth2_discovery.js';
49
+ export type { BaseCredentialRefresher } from './auth/refresher/base_credential_refresher.js';
50
+ export { CredentialRefresherRegistry } from './auth/refresher/credential_refresher_registry.js';
36
51
  export { BaseCodeExecutor } from './code_executors/base_code_executor.js';
37
52
  export type { ExecuteCodeParams } from './code_executors/base_code_executor.js';
38
53
  export { BuiltInCodeExecutor } from './code_executors/built_in_code_executor.js';
39
- export type { CodeExecutionInput, CodeExecutionResult, File, } from './code_executors/code_execution_utils.js';
54
+ export { CodeExecutionLanguage, FileContentEncoding, type CodeExecutionInput, type CodeExecutionResult, type File, } from './code_executors/code_execution_utils.js';
40
55
  export type { BaseContextCompactor } from './context/base_context_compactor.js';
41
56
  export type { BaseSummarizer } from './context/summarizers/base_summarizer.js';
42
57
  export { LlmSummarizer } from './context/summarizers/llm_summarizer.js';
@@ -68,7 +83,9 @@ export type { LlmRequest } from './models/llm_request.js';
68
83
  export type { LlmResponse } from './models/llm_response.js';
69
84
  export { LLMRegistry } from './models/registry.js';
70
85
  export type { BaseLlmType } from './models/registry.js';
71
- export { BasePlugin } from './plugins/base_plugin.js';
86
+ export { RoutedLlm } from './models/routed_llm.js';
87
+ export type { LlmRouter } from './models/routed_llm.js';
88
+ export { BasePlugin, ContextCompactionTrigger } from './plugins/base_plugin.js';
72
89
  export { LoggingPlugin } from './plugins/logging_plugin.js';
73
90
  export { PluginManager } from './plugins/plugin_manager.js';
74
91
  export { InMemoryPolicyEngine, PolicyOutcome, REQUEST_CONFIRMATION_FUNCTION_CALL_NAME, SecurityPlugin, getAskUserConfirmationFunctionCalls, } from './plugins/security_plugin.js';
@@ -103,7 +120,13 @@ export { isGemini2OrAbove } from './utils/model_name.js';
103
120
  export { zodObjectToSchema } from './utils/simple_zod_to_json.js';
104
121
  export { GoogleLLMVariant } from './utils/variant_utils.js';
105
122
  export { version } from './version.js';
123
+ export type { Frontmatter, Resources, Script, Skill } from './skills/skill.js';
124
+ export { ListSkillsTool } from './tools/skill/list_skills_tool.js';
125
+ export { LoadSkillResourceTool } from './tools/skill/load_skill_resource_tool.js';
126
+ export { LoadSkillTool } from './tools/skill/load_skill_tool.js';
127
+ export { SkillToolset } from './tools/skill/skill_toolset.js';
106
128
  export * from './artifacts/base_artifact_service.js';
129
+ export * from './features/feature_registry.js';
107
130
  export * from './memory/base_memory_service.js';
108
131
  export * from './sessions/base_session_service.js';
109
132
  export * from './tools/base_tool.js';
@@ -0,0 +1,66 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Feature names.
8
+ */
9
+ export declare enum FeatureName {
10
+ PROGRESSIVE_SSE_STREAMING = "PROGRESSIVE_SSE_STREAMING"
11
+ }
12
+ /**
13
+ * Feature lifecycle stages.
14
+ */
15
+ export declare enum FeatureStage {
16
+ WIP = "wip",
17
+ EXPERIMENTAL = "experimental",
18
+ STABLE = "stable"
19
+ }
20
+ /**
21
+ * Feature configuration.
22
+ */
23
+ export interface FeatureConfig {
24
+ stage: FeatureStage;
25
+ defaultOn: boolean;
26
+ }
27
+ /**
28
+ * Get the configuration of a feature from the registry.
29
+ *
30
+ * @param featureName The feature name.
31
+ * @returns The feature config from the registry, or undefined if not found.
32
+ */
33
+ export declare function getFeatureConfig(featureName: FeatureName): FeatureConfig | undefined;
34
+ /**
35
+ * Register a feature with a specific config.
36
+ *
37
+ * @param featureName The feature name.
38
+ * @param config The feature config to register.
39
+ */
40
+ export declare function registerFeature(featureName: FeatureName, config: FeatureConfig): void;
41
+ /**
42
+ * Programmatically override a feature's enabled state.
43
+ *
44
+ * This override takes highest priority, superseding environment variables
45
+ * and registry defaults.
46
+ *
47
+ * @param featureName The feature name to override.
48
+ * @param enabled Whether the feature should be enabled.
49
+ */
50
+ export declare function overrideFeatureEnabled(featureName: FeatureName, enabled: boolean | undefined): void;
51
+ /**
52
+ * Check if a feature is enabled at runtime.
53
+ *
54
+ * Priority order (highest to lowest):
55
+ * 1. Programmatic overrides
56
+ * 2. Environment variables (ADK_ENABLE_* / ADK_DISABLE_*)
57
+ * 3. Registry defaults
58
+ *
59
+ * @param featureName The feature name.
60
+ * @returns True if the feature is enabled, false otherwise.
61
+ */
62
+ export declare function isFeatureEnabled(featureName: FeatureName): boolean;
63
+ /**
64
+ * Temporarily overrides a feature for the duration of a callback.
65
+ */
66
+ export declare function withTemporaryFeatureOverride<T>(featureName: FeatureName, enabled: boolean, callback: () => Promise<T> | T): Promise<T>;
@@ -14,9 +14,13 @@ export type { ExecutorContext } from './a2a/executor_context.js';
14
14
  export { FileArtifactService } from './artifacts/file_artifact_service.js';
15
15
  export { GcsArtifactService } from './artifacts/gcs_artifact_service.js';
16
16
  export { getArtifactServiceFromUri } from './artifacts/registry.js';
17
+ export { UnsafeLocalCodeExecutor, type UnsafeLocalCodeExecutorOptions, } from './code_executors/unsafe_local_code_executor.js';
17
18
  export * from './common.js';
18
19
  export { DatabaseSessionService } from './sessions/database_session_service.js';
19
20
  export { getSessionServiceFromUri } from './sessions/registry.js';
21
+ export { loadAllSkillsInDir, loadSkillFromDir, validateSkillDir, } from './skills/loader.js';
22
+ export { RunSkillInlineScriptTool } from './tools/skill/run_skill_inline_script_tool.js';
23
+ export { RunSkillScriptTool } from './tools/skill/run_skill_script_tool.js';
20
24
  export * from './telemetry/google_cloud.js';
21
25
  export * from './telemetry/setup.js';
22
26
  export * from './tools/mcp/mcp_session_manager.js';
@@ -18,8 +18,14 @@ export interface SearchMemoryResponse {
18
18
  * The parameters for `searchMemory`.
19
19
  */
20
20
  export interface SearchMemoryRequest {
21
+ /** The app name associated with the memory to search. */
21
22
  appName: string;
23
+ /** The user ID whose memory is being searched. */
22
24
  userId: string;
25
+ /**
26
+ * The natural language query used to retrieve relevant memories.
27
+ * Implementations may use keyword matching or semantic search.
28
+ */
23
29
  query: string;
24
30
  }
25
31
  /**
@@ -5,20 +5,26 @@
5
5
  */
6
6
  import { Content } from '@google/genai';
7
7
  /**
8
- * Represents one memory entry.
8
+ * Represents one memory entry retrieved from a memory service.
9
+ *
10
+ * Memory entries are created from session events and surfaced to the agent
11
+ * to provide relevant context from past interactions.
9
12
  */
10
13
  export interface MemoryEntry {
11
14
  /**
12
- * The content of the memory entry.
15
+ * The content of the memory entry, as originally produced during a session.
13
16
  */
14
17
  content: Content;
15
18
  /**
16
- * The author of the memory.
19
+ * The author of the memory. Common values are `'user'` and `'model'`, but
20
+ * this can also be the name of an agent when the content was produced by a
21
+ * named sub-agent.
17
22
  */
18
23
  author?: string;
19
24
  /**
20
- * The timestamp when the original content of this memory happened.
21
- * This string will be forwarded to LLM. Preferred format is ISO 8601 format.
25
+ * The time when the original content was produced.
26
+ * Forwarded to the LLM as part of the memory context.
27
+ * Preferred format is ISO 8601 (e.g. `'2024-01-15T10:30:00.000Z'`).
22
28
  */
23
29
  timestamp?: string;
24
30
  }
@@ -54,6 +54,6 @@ export declare class ApigeeLlm extends Gemini {
54
54
  private identifyApiVersion;
55
55
  private _apigeeLiveApiVersion?;
56
56
  get liveApiVersion(): string;
57
- generateContentAsync(llmRequest: LlmRequest, stream?: boolean): AsyncGenerator<LlmResponse, void>;
57
+ generateContentAsync(llmRequest: LlmRequest, stream?: boolean, abortSignal?: AbortSignal): AsyncGenerator<LlmResponse, void>;
58
58
  connect(llmRequest: LlmRequest): Promise<BaseLlmConnection>;
59
59
  }
@@ -47,7 +47,7 @@ export declare abstract class BaseLlm {
47
47
  * For non-streaming call, it will only yield one Content.
48
48
  * @return A generator of LlmResponse.
49
49
  */
50
- abstract generateContentAsync(llmRequest: LlmRequest, stream?: boolean): AsyncGenerator<LlmResponse, void>;
50
+ abstract generateContentAsync(llmRequest: LlmRequest, stream?: boolean, abortSignal?: AbortSignal): AsyncGenerator<LlmResponse, void>;
51
51
  /**
52
52
  * Creates a live connection to the LLM.
53
53
  *
@@ -71,7 +71,7 @@ export declare class Gemini extends BaseLlm {
71
71
  * @param stream bool = false, whether to do streaming call.
72
72
  * @yields LlmResponse: The model response.
73
73
  */
74
- generateContentAsync(llmRequest: LlmRequest, stream?: boolean): AsyncGenerator<LlmResponse, void>;
74
+ generateContentAsync(llmRequest: LlmRequest, stream?: boolean, abortSignal?: AbortSignal): AsyncGenerator<LlmResponse, void>;
75
75
  protected getHttpOptions(): HttpOptions;
76
76
  get apiClient(): GoogleGenAI;
77
77
  get apiBackend(): GoogleLLMVariant;
@@ -30,6 +30,10 @@ export interface LlmRequest {
30
30
  toolsDict: {
31
31
  [key: string]: BaseTool;
32
32
  };
33
+ /**
34
+ * The set of allowed tools, populated by request processors.
35
+ */
36
+ allowedTools?: string[];
33
37
  }
34
38
  /**
35
39
  * Appends instructions to the system instruction.
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { BaseLlm } from './base_llm.js';
7
+ import { BaseLlmConnection } from './base_llm_connection.js';
8
+ import { LlmRequest } from './llm_request.js';
9
+ import { LlmResponse } from './llm_response.js';
10
+ /**
11
+ * Type definition for a function that selects a model based on the request.
12
+ */
13
+ export type LlmRouter = (models: Readonly<Record<string, BaseLlm>>, request: LlmRequest, errorContext?: {
14
+ failedKeys: ReadonlySet<string>;
15
+ lastError: unknown;
16
+ }) => Promise<string | undefined> | string | undefined;
17
+ /**
18
+ * A BaseLlm implementation that delegates to one of multiple models based on a router function.
19
+ */
20
+ export declare class RoutedLlm extends BaseLlm {
21
+ private readonly models;
22
+ private readonly router;
23
+ constructor({ models, router, modelName, }: {
24
+ models: Readonly<Record<string, BaseLlm>> | BaseLlm[];
25
+ router: LlmRouter;
26
+ modelName?: string;
27
+ });
28
+ /**
29
+ * Generates content by delegating to the selected model.
30
+ */
31
+ generateContentAsync(llmRequest: LlmRequest, stream?: boolean): AsyncGenerator<LlmResponse, void>;
32
+ /**
33
+ * Creates a live connection to the LLM by delegating to the selected model.
34
+ * This live connection cannot be switched mid-stream, it is tied to the model
35
+ * selected at the time of connection.
36
+ */
37
+ connect(llmRequest: LlmRequest): Promise<BaseLlmConnection>;
38
+ }
@@ -11,6 +11,13 @@ import { Event } from '../events/event.js';
11
11
  import { LlmRequest } from '../models/llm_request.js';
12
12
  import { LlmResponse } from '../models/llm_response.js';
13
13
  import { BaseTool } from '../tools/base_tool.js';
14
+ /**
15
+ * Trigger for context compaction.
16
+ */
17
+ export declare enum ContextCompactionTrigger {
18
+ Manual = "Manual",
19
+ Auto = "Auto"
20
+ }
14
21
  /**
15
22
  * Base class for creating plugins.
16
23
  *
@@ -246,6 +253,48 @@ export declare abstract class BasePlugin {
246
253
  llmRequest: LlmRequest;
247
254
  error: Error;
248
255
  }): Promise<LlmResponse | undefined>;
256
+ /**
257
+ * Callback executed before a tool is selected.
258
+ *
259
+ * This callback provides an opportunity to inspect, log, or modify the
260
+ * available tools before they are selected.
261
+ *
262
+ * @param params.callbackContext The context for the current agent call.
263
+ * @param params.tools The available tools.
264
+ * @returns An optional value. A non-`undefined` return may be used by the
265
+ * framework to modify or replace the available tools. Returning
266
+ * `undefined` allows the original tools to be used.
267
+ */
268
+ beforeToolSelection(params: {
269
+ callbackContext: Context;
270
+ tools: Readonly<Record<string, BaseTool>>;
271
+ }): Promise<Readonly<Record<string, BaseTool>> | undefined>;
272
+ /**
273
+ * Callback executed before context compaction.
274
+ *
275
+ * This callback provides an opportunity to inspect or modify the context
276
+ * before it is compacted.
277
+ *
278
+ * @param params.invocationContext The context for the entire invocation.
279
+ * @param params.trigger The trigger for the context compaction.
280
+ */
281
+ beforeContextCompaction(params: {
282
+ invocationContext: InvocationContext;
283
+ trigger: ContextCompactionTrigger;
284
+ }): Promise<void>;
285
+ /**
286
+ * Callback executed after context compaction.
287
+ *
288
+ * This callback provides an opportunity to inspect the context
289
+ * after it has been compacted.
290
+ *
291
+ * @param params.invocationContext The context for the entire invocation.
292
+ * @param params.trigger The trigger for the context compaction.
293
+ */
294
+ afterContextCompaction(params: {
295
+ invocationContext: InvocationContext;
296
+ trigger: ContextCompactionTrigger;
297
+ }): Promise<void>;
249
298
  /**
250
299
  * Callback executed before a tool is called.
251
300
  *