@google/adk 0.6.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (415) 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 +69 -0
  27. package/dist/cjs/features/feature_registry.js +141 -0
  28. package/dist/cjs/index.js +83 -113
  29. package/dist/cjs/models/apigee_llm.js +2 -2
  30. package/dist/cjs/models/google_llm.js +18 -53
  31. package/dist/cjs/models/routed_llm.js +99 -0
  32. package/dist/cjs/plugins/base_plugin.js +39 -2
  33. package/dist/cjs/plugins/plugin_manager.js +39 -0
  34. package/dist/cjs/runner/runner.js +31 -3
  35. package/dist/cjs/sessions/db/operations.js +3 -10
  36. package/dist/cjs/skills/loader.js +283 -0
  37. package/dist/cjs/skills/prompt.js +58 -0
  38. package/dist/cjs/skills/skill.js +78 -0
  39. package/dist/cjs/tools/agent_tool.js +11 -4
  40. package/dist/cjs/tools/mcp/mcp_tool.js +7 -3
  41. package/dist/cjs/tools/mcp/mcp_toolset.js +1 -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/tools/url_context_tool.js +73 -0
  49. package/dist/cjs/tools/vertex_ai_search_tool.js +127 -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/model_name.js +8 -2
  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 +2 -0
  59. package/dist/esm/a2a/a2a_remote_agent_run_processor.js +2 -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 +52 -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 +45 -119
  138. package/dist/esm/index_web.js +2 -0
  139. package/dist/esm/memory/base_memory_service.js +2 -0
  140. package/dist/esm/memory/in_memory_memory_service.js +2 -0
  141. package/dist/esm/memory/memory_entry.js +2 -0
  142. package/dist/esm/models/apigee_llm.js +4 -2
  143. package/dist/esm/models/base_llm.js +2 -0
  144. package/dist/esm/models/base_llm_connection.js +2 -0
  145. package/dist/esm/models/gemini_llm_connection.js +2 -0
  146. package/dist/esm/models/google_llm.js +20 -54
  147. package/dist/esm/models/llm_request.js +2 -0
  148. package/dist/esm/models/llm_response.js +2 -0
  149. package/dist/esm/models/registry.js +2 -0
  150. package/dist/esm/models/routed_llm.js +73 -0
  151. package/dist/esm/plugins/base_plugin.js +41 -1
  152. package/dist/esm/plugins/logging_plugin.js +2 -0
  153. package/dist/esm/plugins/plugin_manager.js +41 -0
  154. package/dist/esm/plugins/security_plugin.js +2 -0
  155. package/dist/esm/runner/in_memory_runner.js +2 -0
  156. package/dist/esm/runner/runner.js +33 -3
  157. package/dist/esm/sessions/base_session_service.js +2 -0
  158. package/dist/esm/sessions/database_session_service.js +2 -0
  159. package/dist/esm/sessions/db/operations.js +5 -10
  160. package/dist/esm/sessions/db/schema.js +2 -0
  161. package/dist/esm/sessions/in_memory_session_service.js +2 -0
  162. package/dist/esm/sessions/registry.js +2 -0
  163. package/dist/esm/sessions/session.js +2 -0
  164. package/dist/esm/sessions/state.js +2 -0
  165. package/dist/esm/skills/loader.js +244 -0
  166. package/dist/esm/skills/prompt.js +30 -0
  167. package/dist/esm/skills/skill.js +49 -0
  168. package/dist/esm/telemetry/google_cloud.js +2 -0
  169. package/dist/esm/telemetry/setup.js +2 -0
  170. package/dist/esm/telemetry/tracing.js +2 -0
  171. package/dist/esm/tools/agent_tool.js +13 -4
  172. package/dist/esm/tools/base_tool.js +2 -0
  173. package/dist/esm/tools/base_toolset.js +2 -0
  174. package/dist/esm/tools/exit_loop_tool.js +2 -0
  175. package/dist/esm/tools/forwarding_artifact_service.js +2 -0
  176. package/dist/esm/tools/function_tool.js +2 -0
  177. package/dist/esm/tools/google_search_tool.js +2 -0
  178. package/dist/esm/tools/load_artifacts_tool.js +2 -0
  179. package/dist/esm/tools/load_memory_tool.js +2 -0
  180. package/dist/esm/tools/long_running_tool.js +2 -0
  181. package/dist/esm/tools/mcp/mcp_session_manager.js +2 -0
  182. package/dist/esm/tools/mcp/mcp_tool.js +9 -3
  183. package/dist/esm/tools/mcp/mcp_toolset.js +3 -1
  184. package/dist/esm/tools/preload_memory_tool.js +2 -0
  185. package/dist/esm/tools/skill/list_skills_tool.js +50 -0
  186. package/dist/esm/tools/skill/load_skill_resource_tool.js +191 -0
  187. package/dist/esm/tools/skill/load_skill_tool.js +82 -0
  188. package/dist/esm/tools/skill/run_skill_inline_script_tool.js +120 -0
  189. package/dist/esm/tools/skill/run_skill_script_tool.js +192 -0
  190. package/dist/esm/tools/skill/skill_toolset.js +137 -0
  191. package/dist/esm/tools/tool_confirmation.js +2 -0
  192. package/dist/esm/tools/url_context_tool.js +44 -0
  193. package/dist/esm/tools/vertex_ai_search_tool.js +103 -0
  194. package/dist/esm/utils/client_labels.js +2 -0
  195. package/dist/esm/utils/env_aware_utils.js +2 -0
  196. package/dist/esm/utils/experimental.js +46 -0
  197. package/dist/esm/utils/failover_utils.js +65 -0
  198. package/dist/esm/utils/file_extension_utils.js +51 -0
  199. package/dist/esm/utils/file_utils.js +56 -0
  200. package/dist/esm/utils/gemini_schema_util.js +2 -0
  201. package/dist/esm/utils/logger.js +2 -0
  202. package/dist/esm/utils/model_name.js +8 -1
  203. package/dist/esm/utils/object_notation_utils.js +2 -0
  204. package/dist/esm/utils/simple_zod_to_json.js +2 -0
  205. package/dist/esm/utils/streaming_utils.js +307 -0
  206. package/dist/esm/utils/variant_utils.js +2 -0
  207. package/dist/esm/version.js +3 -1
  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 +29 -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/mcp/mcp_tool.d.ts +7 -1
  245. package/dist/types/tools/mcp/mcp_toolset.d.ts +5 -0
  246. package/dist/types/tools/skill/list_skills_tool.d.ts +14 -0
  247. package/dist/types/tools/skill/load_skill_resource_tool.d.ts +15 -0
  248. package/dist/types/tools/skill/load_skill_tool.d.ts +14 -0
  249. package/dist/types/tools/skill/run_skill_inline_script_tool.d.ts +14 -0
  250. package/dist/types/tools/skill/run_skill_script_tool.d.ts +17 -0
  251. package/dist/types/tools/skill/skill_toolset.d.ts +28 -0
  252. package/dist/types/tools/url_context_tool.d.ts +17 -0
  253. package/dist/types/tools/vertex_ai_search_tool.d.ts +55 -0
  254. package/dist/types/utils/experimental.d.ts +11 -0
  255. package/dist/types/utils/failover_utils.d.ts +17 -0
  256. package/dist/types/utils/file_extension_utils.d.ts +21 -0
  257. package/dist/types/utils/file_utils.d.ts +11 -0
  258. package/dist/types/utils/model_name.d.ts +4 -0
  259. package/dist/types/utils/streaming_utils.d.ts +40 -0
  260. package/dist/types/version.d.ts +1 -1
  261. package/dist/web/a2a/a2a_event.js +2 -0
  262. package/dist/web/a2a/a2a_remote_agent.js +2 -0
  263. package/dist/web/a2a/a2a_remote_agent_run_processor.js +2 -0
  264. package/dist/web/a2a/a2a_remote_agent_utils.js +2 -0
  265. package/dist/web/a2a/agent_card.js +2 -0
  266. package/dist/web/a2a/agent_executor.js +2 -0
  267. package/dist/web/a2a/agent_to_a2a.js +2 -0
  268. package/dist/web/a2a/event_converter_utils.js +2 -0
  269. package/dist/web/a2a/event_processor_utils.js +2 -0
  270. package/dist/web/a2a/executor_context.js +2 -0
  271. package/dist/web/a2a/metadata_converter_utils.js +2 -0
  272. package/dist/web/a2a/part_converter_utils.js +2 -0
  273. package/dist/web/agents/active_streaming_tool.js +2 -0
  274. package/dist/web/agents/base_agent.js +13 -2
  275. package/dist/web/agents/context.js +3 -0
  276. package/dist/web/agents/functions.js +3 -0
  277. package/dist/web/agents/instructions.js +2 -0
  278. package/dist/web/agents/invocation_context.js +3 -0
  279. package/dist/web/agents/live_request_queue.js +2 -0
  280. package/dist/web/agents/llm_agent.js +72 -13
  281. package/dist/web/agents/loop_agent.js +6 -0
  282. package/dist/web/agents/parallel_agent.js +6 -0
  283. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +2 -0
  284. package/dist/web/agents/processors/base_llm_processor.js +2 -0
  285. package/dist/web/agents/processors/basic_llm_request_processor.js +2 -0
  286. package/dist/web/agents/processors/code_execution_request_processor.js +5 -0
  287. package/dist/web/agents/processors/content_processor_utils.js +2 -0
  288. package/dist/web/agents/processors/content_request_processor.js +2 -0
  289. package/dist/web/agents/processors/context_compactor_request_processor.js +11 -0
  290. package/dist/web/agents/processors/identity_llm_request_processor.js +2 -0
  291. package/dist/web/agents/processors/instructions_llm_request_processor.js +2 -0
  292. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +2 -0
  293. package/dist/web/agents/processors/tool_filter_request_processor.js +62 -0
  294. package/dist/web/agents/readonly_context.js +2 -0
  295. package/dist/web/agents/routed_agent.js +138 -0
  296. package/dist/web/agents/run_config.js +2 -0
  297. package/dist/web/agents/sequential_agent.js +2 -0
  298. package/dist/web/agents/transcription_entry.js +2 -0
  299. package/dist/web/artifacts/base_artifact_service.js +2 -0
  300. package/dist/web/artifacts/file_artifact_service.js +2 -0
  301. package/dist/web/artifacts/gcs_artifact_service.js +2 -0
  302. package/dist/web/artifacts/in_memory_artifact_service.js +2 -0
  303. package/dist/web/artifacts/registry.js +2 -0
  304. package/dist/web/auth/auth_credential.js +2 -0
  305. package/dist/web/auth/auth_handler.js +85 -1
  306. package/dist/web/auth/auth_preprocessor.js +173 -0
  307. package/dist/web/auth/auth_provider_registry.js +33 -0
  308. package/dist/web/auth/auth_schemes.js +2 -0
  309. package/dist/web/auth/auth_tool.js +2 -0
  310. package/dist/web/auth/base_auth_provider.js +7 -0
  311. package/dist/web/auth/credential_service/base_credential_service.js +2 -0
  312. package/dist/web/auth/credential_service/in_memory_credential_service.js +2 -0
  313. package/dist/web/auth/credential_service/session_state_credential_service.js +23 -0
  314. package/dist/web/auth/exchanger/base_credential_exchanger.js +2 -0
  315. package/dist/web/auth/exchanger/credential_exchanger_registry.js +2 -0
  316. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +188 -0
  317. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +102 -0
  318. package/dist/web/auth/oauth2/oauth2_discovery.js +156 -0
  319. package/dist/web/auth/oauth2/oauth2_utils.js +87 -0
  320. package/dist/web/auth/refresher/base_credential_refresher.js +16 -0
  321. package/dist/web/auth/refresher/credential_refresher_registry.js +40 -0
  322. package/dist/web/code_executors/base_code_executor.js +11 -5
  323. package/dist/web/code_executors/built_in_code_executor.js +2 -0
  324. package/dist/web/code_executors/code_execution_utils.js +19 -0
  325. package/dist/web/code_executors/code_executor_context.js +2 -0
  326. package/dist/web/code_executors/unsafe_local_code_executor.js +203 -0
  327. package/dist/web/common.js +52 -3
  328. package/dist/web/context/base_context_compactor.js +2 -0
  329. package/dist/web/context/summarizers/base_summarizer.js +2 -0
  330. package/dist/web/context/summarizers/llm_summarizer.js +2 -0
  331. package/dist/web/context/token_based_context_compactor.js +2 -0
  332. package/dist/web/context/truncating_context_compactor.js +2 -0
  333. package/dist/web/events/compacted_event.js +2 -0
  334. package/dist/web/events/event.js +2 -0
  335. package/dist/web/events/event_actions.js +2 -0
  336. package/dist/web/events/structured_events.js +2 -0
  337. package/dist/web/examples/base_example_provider.js +2 -0
  338. package/dist/web/examples/example.js +2 -0
  339. package/dist/web/examples/example_util.js +2 -0
  340. package/dist/web/features/feature_registry.js +107 -0
  341. package/dist/web/index.js +45 -13
  342. package/dist/web/index_web.js +2 -0
  343. package/dist/web/memory/base_memory_service.js +2 -0
  344. package/dist/web/memory/in_memory_memory_service.js +2 -0
  345. package/dist/web/memory/memory_entry.js +2 -0
  346. package/dist/web/models/apigee_llm.js +4 -2
  347. package/dist/web/models/base_llm.js +2 -0
  348. package/dist/web/models/base_llm_connection.js +2 -0
  349. package/dist/web/models/gemini_llm_connection.js +2 -0
  350. package/dist/web/models/google_llm.js +37 -59
  351. package/dist/web/models/llm_request.js +2 -0
  352. package/dist/web/models/llm_response.js +2 -0
  353. package/dist/web/models/registry.js +2 -0
  354. package/dist/web/models/routed_llm.js +122 -0
  355. package/dist/web/plugins/base_plugin.js +41 -1
  356. package/dist/web/plugins/logging_plugin.js +2 -0
  357. package/dist/web/plugins/plugin_manager.js +41 -0
  358. package/dist/web/plugins/security_plugin.js +2 -0
  359. package/dist/web/runner/in_memory_runner.js +2 -0
  360. package/dist/web/runner/runner.js +33 -3
  361. package/dist/web/sessions/base_session_service.js +2 -0
  362. package/dist/web/sessions/database_session_service.js +2 -0
  363. package/dist/web/sessions/db/operations.js +5 -10
  364. package/dist/web/sessions/db/schema.js +2 -0
  365. package/dist/web/sessions/in_memory_session_service.js +2 -0
  366. package/dist/web/sessions/registry.js +2 -0
  367. package/dist/web/sessions/session.js +2 -0
  368. package/dist/web/sessions/state.js +2 -0
  369. package/dist/web/skills/loader.js +262 -0
  370. package/dist/web/skills/prompt.js +30 -0
  371. package/dist/web/skills/skill.js +67 -0
  372. package/dist/web/telemetry/google_cloud.js +2 -0
  373. package/dist/web/telemetry/setup.js +2 -0
  374. package/dist/web/telemetry/tracing.js +2 -0
  375. package/dist/web/tools/agent_tool.js +13 -4
  376. package/dist/web/tools/base_tool.js +2 -0
  377. package/dist/web/tools/base_toolset.js +2 -0
  378. package/dist/web/tools/exit_loop_tool.js +2 -0
  379. package/dist/web/tools/forwarding_artifact_service.js +2 -0
  380. package/dist/web/tools/function_tool.js +2 -0
  381. package/dist/web/tools/google_search_tool.js +2 -0
  382. package/dist/web/tools/load_artifacts_tool.js +2 -0
  383. package/dist/web/tools/load_memory_tool.js +2 -0
  384. package/dist/web/tools/long_running_tool.js +2 -0
  385. package/dist/web/tools/mcp/mcp_session_manager.js +2 -0
  386. package/dist/web/tools/mcp/mcp_tool.js +9 -3
  387. package/dist/web/tools/mcp/mcp_toolset.js +3 -1
  388. package/dist/web/tools/preload_memory_tool.js +2 -0
  389. package/dist/web/tools/skill/list_skills_tool.js +50 -0
  390. package/dist/web/tools/skill/load_skill_resource_tool.js +191 -0
  391. package/dist/web/tools/skill/load_skill_tool.js +82 -0
  392. package/dist/web/tools/skill/run_skill_inline_script_tool.js +120 -0
  393. package/dist/web/tools/skill/run_skill_script_tool.js +190 -0
  394. package/dist/web/tools/skill/skill_toolset.js +123 -0
  395. package/dist/web/tools/tool_confirmation.js +2 -0
  396. package/dist/web/tools/url_context_tool.js +44 -0
  397. package/dist/web/tools/vertex_ai_search_tool.js +103 -0
  398. package/dist/web/utils/client_labels.js +2 -0
  399. package/dist/web/utils/env_aware_utils.js +2 -0
  400. package/dist/web/utils/experimental.js +46 -0
  401. package/dist/web/utils/failover_utils.js +96 -0
  402. package/dist/web/utils/file_extension_utils.js +51 -0
  403. package/dist/web/utils/file_utils.js +74 -0
  404. package/dist/web/utils/gemini_schema_util.js +2 -0
  405. package/dist/web/utils/logger.js +2 -0
  406. package/dist/web/utils/model_name.js +8 -1
  407. package/dist/web/utils/object_notation_utils.js +2 -0
  408. package/dist/web/utils/simple_zod_to_json.js +2 -0
  409. package/dist/web/utils/streaming_utils.js +325 -0
  410. package/dist/web/utils/variant_utils.js +2 -0
  411. package/dist/web/version.js +3 -1
  412. package/package.json +20 -18
  413. package/dist/cjs/index.js.map +0 -7
  414. package/dist/esm/index.js.map +0 -7
  415. package/dist/web/index.js.map +0 -7
@@ -0,0 +1,307 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2026 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ import {
9
+ FinishReason
10
+ } from "@google/genai";
11
+ import { JSONPath } from "jsonpath-plus";
12
+ import { generateClientFunctionCallId } from "../agents/functions.js";
13
+ import { FeatureName, isFeatureEnabled } from "../features/feature_registry.js";
14
+ import { createLlmResponse } from "../models/llm_response.js";
15
+ class StreamingResponseAggregator {
16
+ constructor(isProgressiveMode = isFeatureEnabled(
17
+ FeatureName.PROGRESSIVE_SSE_STREAMING
18
+ )) {
19
+ this.isProgressiveMode = isProgressiveMode;
20
+ // For non-progressive SSE streaming mode
21
+ this.text = "";
22
+ this.thoughtText = "";
23
+ // For progressive SSE streaming mode: accumulate parts in order
24
+ this.partsSequence = [];
25
+ this.currentTextBuffer = "";
26
+ this.currentFcArgs = {};
27
+ }
28
+ flushTextBufferToSequence() {
29
+ if (!this.currentTextBuffer) {
30
+ return;
31
+ }
32
+ if (this.currentTextIsThought) {
33
+ this.partsSequence.push({
34
+ text: this.currentTextBuffer,
35
+ thought: true
36
+ });
37
+ } else {
38
+ this.partsSequence.push({
39
+ text: this.currentTextBuffer
40
+ });
41
+ }
42
+ this.currentTextBuffer = "";
43
+ this.currentTextIsThought = void 0;
44
+ }
45
+ getValueFromPartialArg(partialArg, jsonPath) {
46
+ let value = null;
47
+ let hasValue = false;
48
+ const stringValue = partialArg.stringValue;
49
+ const numberValue = partialArg.numberValue;
50
+ const boolValue = partialArg.boolValue;
51
+ const nullValue = partialArg.nullValue;
52
+ if (stringValue !== void 0) {
53
+ const stringChunk = stringValue;
54
+ hasValue = true;
55
+ const pathParts = JSONPath.toPathArray(jsonPath).filter(
56
+ (p) => p !== "$" && p !== "$["
57
+ );
58
+ let existingValue = this.currentFcArgs;
59
+ for (const part of pathParts) {
60
+ if (existingValue && typeof existingValue === "object" && part in existingValue) {
61
+ existingValue = existingValue[part];
62
+ } else {
63
+ existingValue = void 0;
64
+ break;
65
+ }
66
+ }
67
+ if (typeof existingValue === "string") {
68
+ value = existingValue + stringChunk;
69
+ } else {
70
+ value = stringChunk;
71
+ }
72
+ } else if (numberValue !== void 0) {
73
+ value = numberValue;
74
+ hasValue = true;
75
+ } else if (boolValue !== void 0) {
76
+ value = boolValue;
77
+ hasValue = true;
78
+ } else if (nullValue !== void 0) {
79
+ value = null;
80
+ hasValue = true;
81
+ }
82
+ return [value, hasValue];
83
+ }
84
+ setValueByJsonPath(jsonPath, value) {
85
+ const pathParts = JSONPath.toPathArray(jsonPath).filter(
86
+ (p) => p !== "$" && p !== "$["
87
+ );
88
+ let current = this.currentFcArgs;
89
+ for (let i = 0; i < pathParts.length - 1; i++) {
90
+ const part = pathParts[i];
91
+ if (!(part in current)) {
92
+ current[part] = {};
93
+ }
94
+ current = current[part];
95
+ }
96
+ if (pathParts.length > 0) {
97
+ current[pathParts[pathParts.length - 1]] = value;
98
+ }
99
+ }
100
+ flushFunctionCallToSequence() {
101
+ var _a;
102
+ if (this.currentFcName) {
103
+ const fcPart = {
104
+ functionCall: {
105
+ name: this.currentFcName,
106
+ args: JSON.parse(JSON.stringify(this.currentFcArgs)),
107
+ id: (_a = this.currentFcId) != null ? _a : generateClientFunctionCallId()
108
+ }
109
+ };
110
+ if (this.currentThoughtSignature) {
111
+ fcPart.thoughtSignature = this.currentThoughtSignature.toString();
112
+ }
113
+ this.partsSequence.push(fcPart);
114
+ this.currentFcName = void 0;
115
+ this.currentFcArgs = {};
116
+ this.currentFcId = void 0;
117
+ this.currentThoughtSignature = void 0;
118
+ }
119
+ }
120
+ processStreamingFunctionCall(fc) {
121
+ if (fc.name) {
122
+ this.currentFcName = fc.name;
123
+ }
124
+ if (fc.id) {
125
+ this.currentFcId = fc.id;
126
+ }
127
+ for (const partialArg of fc.partialArgs || []) {
128
+ const jsonPath = partialArg.jsonPath;
129
+ if (!jsonPath) {
130
+ continue;
131
+ }
132
+ const [value, hasValue] = this.getValueFromPartialArg(
133
+ partialArg,
134
+ jsonPath
135
+ );
136
+ if (hasValue) {
137
+ this.setValueByJsonPath(jsonPath, value);
138
+ }
139
+ }
140
+ if (!fc.willContinue) {
141
+ this.flushTextBufferToSequence();
142
+ this.flushFunctionCallToSequence();
143
+ }
144
+ }
145
+ processFunctionCallPart(part) {
146
+ const fc = part.functionCall;
147
+ if (!fc) {
148
+ return;
149
+ }
150
+ if (part.thoughtSignature) {
151
+ this.lastThoughtSignature = part.thoughtSignature;
152
+ } else if (this.lastThoughtSignature) {
153
+ part.thoughtSignature = this.lastThoughtSignature.toString();
154
+ }
155
+ if (fc.partialArgs || fc.willContinue) {
156
+ if (!fc.id && !this.currentFcId) {
157
+ fc.id = generateClientFunctionCallId();
158
+ }
159
+ if (part.thoughtSignature && !this.currentThoughtSignature) {
160
+ this.currentThoughtSignature = part.thoughtSignature;
161
+ }
162
+ this.processStreamingFunctionCall(fc);
163
+ } else {
164
+ if (fc.name) {
165
+ if (!fc.id) {
166
+ fc.id = generateClientFunctionCallId();
167
+ }
168
+ this.flushTextBufferToSequence();
169
+ this.partsSequence.push(part);
170
+ }
171
+ }
172
+ }
173
+ async *processResponse(response) {
174
+ var _a, _b, _c;
175
+ this.response = response;
176
+ const llmResponse = createLlmResponse(response);
177
+ this.usageMetadata = llmResponse.usageMetadata;
178
+ if (llmResponse.groundingMetadata) {
179
+ this.groundingMetadata = llmResponse.groundingMetadata;
180
+ }
181
+ if (llmResponse.citationMetadata) {
182
+ this.citationMetadata = llmResponse.citationMetadata;
183
+ }
184
+ if (llmResponse.finishReason) {
185
+ this.finishReason = llmResponse.finishReason;
186
+ }
187
+ if (llmResponse.content && llmResponse.content.parts) {
188
+ for (const part of llmResponse.content.parts) {
189
+ if (part.thoughtSignature) {
190
+ this.lastThoughtSignature = part.thoughtSignature;
191
+ } else if (part.functionCall && this.lastThoughtSignature) {
192
+ part.thoughtSignature = this.lastThoughtSignature.toString();
193
+ }
194
+ }
195
+ }
196
+ if (this.isProgressiveMode) {
197
+ if (llmResponse.content && llmResponse.content.parts) {
198
+ for (const part of llmResponse.content.parts) {
199
+ if (part.text) {
200
+ const isThought = (_a = part.thought) != null ? _a : false;
201
+ if (this.currentTextBuffer && isThought !== this.currentTextIsThought) {
202
+ this.flushTextBufferToSequence();
203
+ }
204
+ if (!this.currentTextBuffer) {
205
+ this.currentTextIsThought = isThought;
206
+ }
207
+ this.currentTextBuffer += part.text;
208
+ } else if (part.functionCall) {
209
+ this.processFunctionCallPart(part);
210
+ } else {
211
+ this.flushTextBufferToSequence();
212
+ this.partsSequence.push(part);
213
+ }
214
+ }
215
+ }
216
+ llmResponse.partial = true;
217
+ yield llmResponse;
218
+ return;
219
+ }
220
+ if (llmResponse.content && llmResponse.content.parts && typeof ((_b = llmResponse.content.parts[0]) == null ? void 0 : _b.text) === "string") {
221
+ const part0 = llmResponse.content.parts[0];
222
+ const partText = part0.text || "";
223
+ if (part0.thought) {
224
+ this.thoughtText += partText;
225
+ } else {
226
+ this.text += partText;
227
+ }
228
+ llmResponse.partial = true;
229
+ } else if ((this.thoughtText || this.text) && (!llmResponse.content || !llmResponse.content.parts || !((_c = llmResponse.content.parts[0]) == null ? void 0 : _c.inlineData))) {
230
+ const parts = [];
231
+ if (this.thoughtText) {
232
+ parts.push({ text: this.thoughtText, thought: true });
233
+ }
234
+ if (this.text) {
235
+ parts.push({ text: this.text });
236
+ }
237
+ yield {
238
+ content: {
239
+ role: "model",
240
+ parts
241
+ },
242
+ usageMetadata: llmResponse.usageMetadata,
243
+ partial: false
244
+ };
245
+ this.thoughtText = "";
246
+ this.text = "";
247
+ }
248
+ yield llmResponse;
249
+ }
250
+ close() {
251
+ var _a, _b;
252
+ if (!((_a = this.response) == null ? void 0 : _a.candidates) || this.response.candidates.length === 0) {
253
+ return;
254
+ }
255
+ if (this.isProgressiveMode) {
256
+ this.flushTextBufferToSequence();
257
+ this.flushFunctionCallToSequence();
258
+ const finalParts = this.partsSequence;
259
+ if (finalParts.length === 0) {
260
+ return;
261
+ }
262
+ const candidate = this.response.candidates[0];
263
+ const finishReason = (_b = this.finishReason) != null ? _b : candidate.finishReason;
264
+ return {
265
+ content: {
266
+ role: "model",
267
+ parts: finalParts
268
+ },
269
+ groundingMetadata: this.groundingMetadata,
270
+ citationMetadata: this.citationMetadata,
271
+ errorCode: finishReason === FinishReason.STOP ? void 0 : finishReason,
272
+ errorMessage: finishReason === FinishReason.STOP ? void 0 : candidate.finishMessage,
273
+ usageMetadata: this.usageMetadata,
274
+ finishReason,
275
+ partial: false
276
+ };
277
+ }
278
+ if ((this.text || this.thoughtText) && this.response.candidates && this.response.candidates.length > 0) {
279
+ const parts = [];
280
+ if (this.thoughtText) {
281
+ parts.push({ text: this.thoughtText, thought: true });
282
+ }
283
+ if (this.text) {
284
+ parts.push({ text: this.text });
285
+ }
286
+ const candidate = this.response.candidates[0];
287
+ const finishReason = candidate.finishReason;
288
+ return {
289
+ content: {
290
+ role: "model",
291
+ parts
292
+ },
293
+ groundingMetadata: this.groundingMetadata,
294
+ citationMetadata: this.citationMetadata,
295
+ errorCode: finishReason === FinishReason.STOP ? void 0 : finishReason,
296
+ errorMessage: finishReason === FinishReason.STOP ? void 0 : candidate.finishMessage,
297
+ usageMetadata: this.usageMetadata,
298
+ finishReason,
299
+ partial: false
300
+ };
301
+ }
302
+ return void 0;
303
+ }
304
+ }
305
+ export {
306
+ StreamingResponseAggregator
307
+ };
@@ -1,3 +1,5 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
1
3
  /**
2
4
  * @license
3
5
  * Copyright 2025 Google LLC
@@ -1,9 +1,11 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
1
3
  /**
2
4
  * @license
3
5
  * Copyright 2025 Google LLC
4
6
  * SPDX-License-Identifier: Apache-2.0
5
7
  */
6
- const version = "0.6.1";
8
+ const version = "1.1.0";
7
9
  export {
8
10
  version
9
11
  };
@@ -26,6 +26,7 @@ export declare class Context extends ReadonlyContext {
26
26
  readonly eventActions: EventActions;
27
27
  readonly functionCallId?: string;
28
28
  toolConfirmation?: ToolConfirmation;
29
+ readonly abortSignal?: AbortSignal;
29
30
  /**
30
31
  * @param options The configuration options for the Context.
31
32
  * @param options.invocationContext The invocation context.
@@ -34,6 +34,7 @@ export interface InvocationContextParams {
34
34
  liveRequestQueue?: LiveRequestQueue;
35
35
  activeStreamingTools?: Record<string, ActiveStreamingTool>;
36
36
  pluginManager: PluginManager;
37
+ abortSignal?: AbortSignal;
37
38
  }
38
39
  /**
39
40
  * An invocation context represents the data of a single invocation of an agent.
@@ -135,6 +136,10 @@ export declare class InvocationContext {
135
136
  * The manager for keeping track of plugins in this invocation.
136
137
  */
137
138
  pluginManager: PluginManager;
139
+ /**
140
+ * The abort signal for the invocation.
141
+ */
142
+ readonly abortSignal?: AbortSignal;
138
143
  /**
139
144
  * @param params The parameters for creating an invocation context.
140
145
  */
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Event } from '../../events/event.js';
7
+ import { LlmRequest } from '../../models/llm_request.js';
8
+ import { InvocationContext } from '../invocation_context.js';
9
+ import { BaseLlmRequestProcessor } from './base_llm_processor.js';
10
+ export declare class ToolFilterRequestProcessor extends BaseLlmRequestProcessor {
11
+ /** Filters the set of tools on the request based on plugins. */
12
+ runAsync(invocationContext: InvocationContext, llmRequest: LlmRequest): AsyncGenerator<Event, void, void>;
13
+ }
14
+ export declare const TOOL_FILTER_REQUEST_PROCESSOR: ToolFilterRequestProcessor;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Event } from '../events/event.js';
7
+ import { BaseAgent, BaseAgentConfig } from './base_agent.js';
8
+ import { InvocationContext } from './invocation_context.js';
9
+ /**
10
+ * A unique symbol to identify ADK agent classes.
11
+ * Defined once and shared by all RoutedAgent instances.
12
+ */
13
+ declare const ROUTED_AGENT_SIGNATURE_SYMBOL: unique symbol;
14
+ /**
15
+ * Type guard to check if an object is an instance of RoutedAgent.
16
+ * @param obj The object to check.
17
+ * @returns True if the object is an instance of RoutedAgent, false otherwise.
18
+ */
19
+ export declare function isRoutedAgent(obj: unknown): obj is RoutedAgent;
20
+ /**
21
+ * Type definition for a function that selects an agent based on the invocation context.
22
+ */
23
+ export type AgentRouter = (agents: Readonly<Record<string, BaseAgent>>, context: InvocationContext, errorContext?: {
24
+ failedKeys: ReadonlySet<string>;
25
+ lastError: unknown;
26
+ }) => Promise<string | undefined> | string | undefined;
27
+ /**
28
+ * Configuration for the RoutingAgent.
29
+ */
30
+ export interface RoutedAgentConfig extends BaseAgentConfig {
31
+ /**
32
+ * The set of agents to route to. Can be an array of agents or a Record of keys to agents.
33
+ * If an array is provided, the agent names will be used as keys.
34
+ */
35
+ agents: Readonly<Record<string, BaseAgent>> | BaseAgent[];
36
+ /**
37
+ * The function to select which agent to run.
38
+ */
39
+ router: AgentRouter;
40
+ }
41
+ /**
42
+ * A BaseAgent implementation that delegates to one of multiple agents based on a router function.
43
+ * Routing is strictly limited to the agents passed in the config.
44
+ */
45
+ export declare class RoutedAgent extends BaseAgent {
46
+ readonly [ROUTED_AGENT_SIGNATURE_SYMBOL] = true;
47
+ private readonly agents;
48
+ private readonly router;
49
+ constructor(config: RoutedAgentConfig);
50
+ /**
51
+ * Runs the selected agent via text-based conversation.
52
+ */
53
+ protected runAsyncImpl(context: InvocationContext): AsyncGenerator<Event, void, void>;
54
+ /**
55
+ * Runs the selected agent via video/audio-based conversation.
56
+ */
57
+ protected runLiveImpl(context: InvocationContext): AsyncGenerator<Event, void, void>;
58
+ }
59
+ export {};
@@ -24,6 +24,10 @@ export interface HttpAuth {
24
24
  */
25
25
  scheme: string;
26
26
  credentials: HttpCredentials;
27
+ /**
28
+ * Additional HTTP headers to include in the request.
29
+ */
30
+ additionalHeaders?: Record<string, string>;
27
31
  }
28
32
  /**
29
33
  * Represents credential value and its metadata for a OAuth2 credential.
@@ -36,7 +40,9 @@ export interface OAuth2Auth {
36
40
  * verify the state
37
41
  */
38
42
  authUri?: string;
43
+ nonce?: string;
39
44
  state?: string;
45
+ codeVerifier?: string;
40
46
  /**
41
47
  * tool or adk can decide the redirect_uri if they don't want client to decide
42
48
  */
@@ -45,8 +51,11 @@ export interface OAuth2Auth {
45
51
  authCode?: string;
46
52
  accessToken?: string;
47
53
  refreshToken?: string;
54
+ idToken?: string;
48
55
  expiresAt?: number;
49
56
  expiresIn?: number;
57
+ audience?: string;
58
+ tokenEndpointAuthMethod?: string;
50
59
  }
51
60
  /**
52
61
  * Represents Google Service Account configuration.
@@ -118,6 +127,14 @@ export interface ServiceAccount {
118
127
  serviceAccountCredential?: ServiceAccountCredential;
119
128
  scopes?: string[];
120
129
  useDefaultCredential?: boolean;
130
+ /**
131
+ * If true, get an ID token instead of an access token.
132
+ */
133
+ useIdToken?: boolean;
134
+ /**
135
+ * The audience for the ID token. Required if useIdToken is true.
136
+ */
137
+ audience?: string;
121
138
  }
122
139
  export declare enum AuthCredentialTypes {
123
140
  /**
@@ -15,6 +15,7 @@ export declare class AuthHandler {
15
15
  private readonly authConfig;
16
16
  constructor(authConfig: AuthConfig);
17
17
  getAuthResponse(state: State): AuthCredential | undefined;
18
+ parseAndStoreAuthResponse(state: State): Promise<void>;
18
19
  generateAuthRequest(): AuthConfig;
19
20
  /**
20
21
  * Generates an response containing the auth uri for user to sign in.
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { InvocationContext } from '../agents/invocation_context.js';
7
+ import { BaseLlmRequestProcessor } from '../agents/processors/base_llm_processor.js';
8
+ import { Event } from '../events/event.js';
9
+ export declare class AuthPreprocessor extends BaseLlmRequestProcessor {
10
+ runAsync(invocationContext: InvocationContext): AsyncGenerator<Event, void, void>;
11
+ }
12
+ export declare const AUTH_PREPROCESSOR: AuthPreprocessor;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { AuthScheme } from './auth_schemes.js';
7
+ import { BaseAuthProvider } from './base_auth_provider.js';
8
+ /**
9
+ * Registry for auth provider instances.
10
+ */
11
+ export declare class AuthProviderRegistry {
12
+ private readonly providers;
13
+ /**
14
+ * Register a provider instance for an auth scheme type.
15
+ *
16
+ * @param authSchemeType The auth scheme type (e.g., 'oauth2', 'apiKey').
17
+ * @param providerInstance The provider instance to register.
18
+ */
19
+ register(authSchemeType: string, providerInstance: BaseAuthProvider): void;
20
+ /**
21
+ * Get the provider instance for an auth scheme.
22
+ *
23
+ * @param authScheme The auth scheme to get provider for.
24
+ * @returns The provider instance if registered, undefined otherwise.
25
+ */
26
+ getProvider(authScheme: AuthScheme): BaseAuthProvider | undefined;
27
+ }
@@ -0,0 +1,20 @@
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 { AuthConfig } from './auth_tool.js';
8
+ /**
9
+ * Abstract base interface for custom authentication providers.
10
+ */
11
+ export interface BaseAuthProvider {
12
+ /**
13
+ * Provide an AuthCredential asynchronously.
14
+ *
15
+ * @param authConfig The current authentication configuration.
16
+ * @param context The current callback context (placeholder).
17
+ * @returns The retrieved AuthCredential, or undefined if unavailable.
18
+ */
19
+ getAuthCredential(authConfig: AuthConfig, context?: unknown): Promise<AuthCredential | undefined>;
20
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Context } from '../../agents/context.js';
7
+ import { AuthCredential } from '../auth_credential.js';
8
+ import { AuthConfig } from '../auth_tool.js';
9
+ import { BaseCredentialService } from './base_credential_service.js';
10
+ /**
11
+ * Class for implementation of credential service using session state as the store.
12
+ *
13
+ * Warning: Storing credentials in session state is insecure. Session state may be
14
+ * persisted in plaintext, logged, or accessible via XSS depending on the runner
15
+ * environment. Use a secure vault or encrypted storage for production applications.
16
+ */
17
+ export declare class SessionStateCredentialService implements BaseCredentialService {
18
+ loadCredential(authConfig: AuthConfig, toolContext: Context): Promise<AuthCredential | undefined>;
19
+ saveCredential(authConfig: AuthConfig, toolContext: Context): Promise<void>;
20
+ }
@@ -10,6 +10,13 @@ import { AuthScheme } from '../auth_schemes.js';
10
10
  */
11
11
  export declare class CredentialExchangeError extends Error {
12
12
  }
13
+ /**
14
+ * Result of a credential exchange.
15
+ */
16
+ export interface ExchangeResult {
17
+ credential: AuthCredential;
18
+ wasExchanged: boolean;
19
+ }
13
20
  /**
14
21
  * Base interface for credential exchangers.
15
22
  *
@@ -20,13 +27,13 @@ export interface BaseCredentialExchanger {
20
27
  /**
21
28
  * Exchange credential if needed.
22
29
  *
23
- * @param authCredential - The credential to exchange.
24
- * @param authScheme - The authentication scheme (optional, some exchangers don't need it).
30
+ * @param params.authCredential - The credential to exchange.
31
+ * @param params.authScheme - The authentication scheme (optional, some exchangers don't need it).
25
32
  * @returns The exchanged credential.
26
33
  * @throws CredentialExchangeError: If credential exchange fails.
27
34
  */
28
- exchange({ authCredential, authScheme, }: {
29
- authCredential: AuthCredential;
35
+ exchange(params: {
30
36
  authScheme?: AuthScheme;
31
- }): Promise<AuthCredential>;
37
+ authCredential: AuthCredential;
38
+ }): Promise<ExchangeResult>;
32
39
  }
@@ -0,0 +1,26 @@
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, OAuthGrantType } from '../auth_schemes.js';
8
+ import { BaseCredentialExchanger, ExchangeResult } from '../exchanger/base_credential_exchanger.js';
9
+ /**
10
+ * Exchanges OAuth2 credentials from authorization responses using standard fetch.
11
+ */
12
+ export declare class OAuth2CredentialExchanger implements BaseCredentialExchanger {
13
+ exchange({ authCredential, authScheme, }: {
14
+ authCredential: AuthCredential;
15
+ authScheme?: AuthScheme;
16
+ }): Promise<ExchangeResult>;
17
+ }
18
+ export declare function determineGrantType(authScheme: AuthScheme): OAuthGrantType | undefined;
19
+ export declare function exchangeClientCredentials({ authCredential, authScheme, }: {
20
+ authCredential: AuthCredential;
21
+ authScheme: AuthScheme;
22
+ }): Promise<ExchangeResult>;
23
+ export declare function exchangeAuthorizationCode({ authCredential, authScheme, }: {
24
+ authCredential: AuthCredential;
25
+ authScheme: AuthScheme;
26
+ }): Promise<ExchangeResult>;
@@ -0,0 +1,29 @@
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
+ import { BaseCredentialRefresher } from '../refresher/base_credential_refresher.js';
9
+ /**
10
+ * Refreshes OAuth2 credentials using standard fetch.
11
+ */
12
+ export declare class OAuth2CredentialRefresher implements BaseCredentialRefresher {
13
+ /**
14
+ * Check if the OAuth2 credential needs to be refreshed.
15
+ *
16
+ * @param authCredential The OAuth2 credential to check.
17
+ * @param authScheme The OAuth2 authentication scheme (optional).
18
+ * @returns True if the credential needs to be refreshed, False otherwise.
19
+ */
20
+ isRefreshNeeded(authCredential: AuthCredential): Promise<boolean>;
21
+ /**
22
+ * Refresh the OAuth2 credential.
23
+ *
24
+ * @param authCredential The OAuth2 credential to refresh.
25
+ * @param authScheme The OAuth2 authentication scheme.
26
+ * @returns The refreshed credential.
27
+ */
28
+ refresh(authCredential: AuthCredential, authScheme?: AuthScheme): Promise<AuthCredential>;
29
+ }