@softactivate/adk 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 (616) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +3 -0
  3. package/dist/cjs/a2a/a2a_event.js +317 -0
  4. package/dist/cjs/a2a/a2a_remote_agent.js +179 -0
  5. package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +205 -0
  6. package/dist/cjs/a2a/a2a_remote_agent_utils.js +165 -0
  7. package/dist/cjs/a2a/agent_card.js +380 -0
  8. package/dist/cjs/a2a/agent_executor.js +221 -0
  9. package/dist/cjs/a2a/agent_to_a2a.js +115 -0
  10. package/dist/cjs/a2a/event_converter_utils.js +201 -0
  11. package/dist/cjs/a2a/event_processor_utils.js +180 -0
  12. package/dist/cjs/a2a/executor_context.js +53 -0
  13. package/dist/cjs/a2a/metadata_converter_utils.js +126 -0
  14. package/dist/cjs/a2a/part_converter_utils.js +223 -0
  15. package/dist/cjs/agents/active_streaming_tool.js +44 -0
  16. package/dist/cjs/agents/base_agent.js +294 -0
  17. package/dist/cjs/agents/context.js +180 -0
  18. package/dist/cjs/agents/functions.js +525 -0
  19. package/dist/cjs/agents/instructions.js +110 -0
  20. package/dist/cjs/agents/invocation_context.js +110 -0
  21. package/dist/cjs/agents/live_request_queue.js +136 -0
  22. package/dist/cjs/agents/llm_agent.js +722 -0
  23. package/dist/cjs/agents/loop_agent.js +84 -0
  24. package/dist/cjs/agents/parallel_agent.js +95 -0
  25. package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +132 -0
  26. package/dist/cjs/agents/processors/base_llm_processor.js +44 -0
  27. package/dist/cjs/agents/processors/basic_llm_request_processor.js +68 -0
  28. package/dist/cjs/agents/processors/code_execution_request_processor.js +391 -0
  29. package/dist/cjs/agents/processors/content_processor_utils.js +338 -0
  30. package/dist/cjs/agents/processors/content_request_processor.js +87 -0
  31. package/dist/cjs/agents/processors/context_compactor_request_processor.js +70 -0
  32. package/dist/cjs/agents/processors/identity_llm_request_processor.js +54 -0
  33. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +85 -0
  34. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +165 -0
  35. package/dist/cjs/agents/processors/tool_filter_request_processor.js +73 -0
  36. package/dist/cjs/agents/readonly_context.js +83 -0
  37. package/dist/cjs/agents/routed_agent.js +97 -0
  38. package/dist/cjs/agents/run_config.js +71 -0
  39. package/dist/cjs/agents/sequential_agent.js +106 -0
  40. package/dist/cjs/agents/transcription_entry.js +27 -0
  41. package/dist/cjs/artifacts/base_artifact_service.js +27 -0
  42. package/dist/cjs/artifacts/file_artifact_service.js +522 -0
  43. package/dist/cjs/artifacts/gcs_artifact_service.js +227 -0
  44. package/dist/cjs/artifacts/in_memory_artifact_service.js +181 -0
  45. package/dist/cjs/artifacts/registry.js +55 -0
  46. package/dist/cjs/auth/auth_credential.js +46 -0
  47. package/dist/cjs/auth/auth_handler.js +159 -0
  48. package/dist/cjs/auth/auth_preprocessor.js +178 -0
  49. package/dist/cjs/auth/auth_provider_registry.js +61 -0
  50. package/dist/cjs/auth/auth_schemes.js +62 -0
  51. package/dist/cjs/auth/auth_tool.js +27 -0
  52. package/dist/cjs/auth/base_auth_provider.js +27 -0
  53. package/dist/cjs/auth/credential_service/base_credential_service.js +27 -0
  54. package/dist/cjs/auth/credential_service/in_memory_credential_service.js +63 -0
  55. package/dist/cjs/auth/credential_service/session_state_credential_service.js +51 -0
  56. package/dist/cjs/auth/exchanger/base_credential_exchanger.js +40 -0
  57. package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +59 -0
  58. package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +198 -0
  59. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +109 -0
  60. package/dist/cjs/auth/oauth2/oauth2_discovery.js +186 -0
  61. package/dist/cjs/auth/oauth2/oauth2_utils.js +119 -0
  62. package/dist/cjs/auth/refresher/base_credential_refresher.js +44 -0
  63. package/dist/cjs/auth/refresher/credential_refresher_registry.js +68 -0
  64. package/dist/cjs/code_executors/base_code_executor.js +92 -0
  65. package/dist/cjs/code_executors/built_in_code_executor.js +74 -0
  66. package/dist/cjs/code_executors/code_execution_utils.js +161 -0
  67. package/dist/cjs/code_executors/code_executor_context.js +198 -0
  68. package/dist/cjs/code_executors/unsafe_local_code_executor.js +241 -0
  69. package/dist/cjs/common.js +362 -0
  70. package/dist/cjs/context/base_context_compactor.js +27 -0
  71. package/dist/cjs/context/summarizers/base_summarizer.js +27 -0
  72. package/dist/cjs/context/summarizers/llm_summarizer.js +93 -0
  73. package/dist/cjs/context/token_based_context_compactor.js +135 -0
  74. package/dist/cjs/context/truncating_context_compactor.js +58 -0
  75. package/dist/cjs/events/compacted_event.js +53 -0
  76. package/dist/cjs/events/event.js +146 -0
  77. package/dist/cjs/events/event_actions.js +83 -0
  78. package/dist/cjs/events/structured_events.js +105 -0
  79. package/dist/cjs/examples/base_example_provider.js +56 -0
  80. package/dist/cjs/examples/example.js +27 -0
  81. package/dist/cjs/examples/example_util.js +107 -0
  82. package/dist/cjs/features/feature_registry.js +141 -0
  83. package/dist/cjs/index.js +94 -0
  84. package/dist/cjs/index_web.js +33 -0
  85. package/dist/cjs/memory/base_memory_service.js +27 -0
  86. package/dist/cjs/memory/in_memory_memory_service.js +99 -0
  87. package/dist/cjs/memory/memory_entry.js +27 -0
  88. package/dist/cjs/models/apigee_llm.js +182 -0
  89. package/dist/cjs/models/base_llm.js +102 -0
  90. package/dist/cjs/models/base_llm_connection.js +27 -0
  91. package/dist/cjs/models/gemini_llm_connection.js +133 -0
  92. package/dist/cjs/models/google_llm.js +291 -0
  93. package/dist/cjs/models/llm_request.js +82 -0
  94. package/dist/cjs/models/llm_response.js +73 -0
  95. package/dist/cjs/models/registry.js +123 -0
  96. package/dist/cjs/models/routed_llm.js +99 -0
  97. package/dist/cjs/package.json +1 -0
  98. package/dist/cjs/plugins/base_plugin.js +295 -0
  99. package/dist/cjs/plugins/logging_plugin.js +259 -0
  100. package/dist/cjs/plugins/plugin_manager.js +310 -0
  101. package/dist/cjs/plugins/security_plugin.js +156 -0
  102. package/dist/cjs/runner/in_memory_runner.js +58 -0
  103. package/dist/cjs/runner/runner.js +380 -0
  104. package/dist/cjs/sessions/base_session_service.js +121 -0
  105. package/dist/cjs/sessions/database_session_service.js +367 -0
  106. package/dist/cjs/sessions/db/operations.js +109 -0
  107. package/dist/cjs/sessions/db/schema.js +204 -0
  108. package/dist/cjs/sessions/in_memory_session_service.js +210 -0
  109. package/dist/cjs/sessions/registry.js +49 -0
  110. package/dist/cjs/sessions/session.js +48 -0
  111. package/dist/cjs/sessions/state.js +101 -0
  112. package/dist/cjs/skills/loader.js +283 -0
  113. package/dist/cjs/skills/prompt.js +58 -0
  114. package/dist/cjs/skills/skill.js +78 -0
  115. package/dist/cjs/telemetry/google_cloud.js +83 -0
  116. package/dist/cjs/telemetry/setup.js +105 -0
  117. package/dist/cjs/telemetry/tracing.js +253 -0
  118. package/dist/cjs/tools/agent_tool.js +219 -0
  119. package/dist/cjs/tools/base_tool.js +122 -0
  120. package/dist/cjs/tools/base_toolset.js +86 -0
  121. package/dist/cjs/tools/exit_loop_tool.js +63 -0
  122. package/dist/cjs/tools/forwarding_artifact_service.js +87 -0
  123. package/dist/cjs/tools/function_tool.js +109 -0
  124. package/dist/cjs/tools/google_maps_grounding_tool.js +80 -0
  125. package/dist/cjs/tools/google_search_tool.js +80 -0
  126. package/dist/cjs/tools/load_artifacts_tool.js +188 -0
  127. package/dist/cjs/tools/load_memory_tool.js +107 -0
  128. package/dist/cjs/tools/long_running_tool.js +63 -0
  129. package/dist/cjs/tools/mcp/mcp_session_manager.js +77 -0
  130. package/dist/cjs/tools/mcp/mcp_tool.js +68 -0
  131. package/dist/cjs/tools/mcp/mcp_toolset.js +80 -0
  132. package/dist/cjs/tools/preload_memory_tool.js +109 -0
  133. package/dist/cjs/tools/skill/list_skills_tool.js +76 -0
  134. package/dist/cjs/tools/skill/load_skill_resource_tool.js +225 -0
  135. package/dist/cjs/tools/skill/load_skill_tool.js +108 -0
  136. package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +146 -0
  137. package/dist/cjs/tools/skill/run_skill_script_tool.js +224 -0
  138. package/dist/cjs/tools/skill/skill_toolset.js +163 -0
  139. package/dist/cjs/tools/tool_confirmation.js +49 -0
  140. package/dist/cjs/tools/url_context_tool.js +73 -0
  141. package/dist/cjs/tools/vertex_ai_search_tool.js +127 -0
  142. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +64 -0
  143. package/dist/cjs/utils/client_labels.js +56 -0
  144. package/dist/cjs/utils/env_aware_utils.js +92 -0
  145. package/dist/cjs/utils/experimental.js +74 -0
  146. package/dist/cjs/utils/failover_utils.js +93 -0
  147. package/dist/cjs/utils/file_extension_utils.js +77 -0
  148. package/dist/cjs/utils/file_utils.js +94 -0
  149. package/dist/cjs/utils/gemini_schema_util.js +152 -0
  150. package/dist/cjs/utils/logger.js +173 -0
  151. package/dist/cjs/utils/model_name.js +90 -0
  152. package/dist/cjs/utils/object_notation_utils.js +78 -0
  153. package/dist/cjs/utils/simple_zod_to_json.js +150 -0
  154. package/dist/cjs/utils/streaming_utils.js +330 -0
  155. package/dist/cjs/utils/variant_utils.js +49 -0
  156. package/dist/cjs/version.js +39 -0
  157. package/dist/esm/a2a/a2a_event.js +271 -0
  158. package/dist/esm/a2a/a2a_remote_agent.js +155 -0
  159. package/dist/esm/a2a/a2a_remote_agent_run_processor.js +184 -0
  160. package/dist/esm/a2a/a2a_remote_agent_utils.js +133 -0
  161. package/dist/esm/a2a/agent_card.js +342 -0
  162. package/dist/esm/a2a/agent_executor.js +204 -0
  163. package/dist/esm/a2a/agent_to_a2a.js +82 -0
  164. package/dist/esm/a2a/event_converter_utils.js +189 -0
  165. package/dist/esm/a2a/event_processor_utils.js +161 -0
  166. package/dist/esm/a2a/executor_context.js +25 -0
  167. package/dist/esm/a2a/metadata_converter_utils.js +93 -0
  168. package/dist/esm/a2a/part_converter_utils.js +188 -0
  169. package/dist/esm/agents/active_streaming_tool.js +16 -0
  170. package/dist/esm/agents/base_agent.js +268 -0
  171. package/dist/esm/agents/context.js +152 -0
  172. package/dist/esm/agents/functions.js +489 -0
  173. package/dist/esm/agents/instructions.js +82 -0
  174. package/dist/esm/agents/invocation_context.js +81 -0
  175. package/dist/esm/agents/live_request_queue.js +108 -0
  176. package/dist/esm/agents/llm_agent.js +708 -0
  177. package/dist/esm/agents/loop_agent.js +55 -0
  178. package/dist/esm/agents/parallel_agent.js +66 -0
  179. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +103 -0
  180. package/dist/esm/agents/processors/base_llm_processor.js +15 -0
  181. package/dist/esm/agents/processors/basic_llm_request_processor.js +39 -0
  182. package/dist/esm/agents/processors/code_execution_request_processor.js +368 -0
  183. package/dist/esm/agents/processors/content_processor_utils.js +319 -0
  184. package/dist/esm/agents/processors/content_request_processor.js +61 -0
  185. package/dist/esm/agents/processors/context_compactor_request_processor.js +42 -0
  186. package/dist/esm/agents/processors/identity_llm_request_processor.js +25 -0
  187. package/dist/esm/agents/processors/instructions_llm_request_processor.js +56 -0
  188. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +142 -0
  189. package/dist/esm/agents/processors/tool_filter_request_processor.js +44 -0
  190. package/dist/esm/agents/readonly_context.js +55 -0
  191. package/dist/esm/agents/routed_agent.js +70 -0
  192. package/dist/esm/agents/run_config.js +42 -0
  193. package/dist/esm/agents/sequential_agent.js +77 -0
  194. package/dist/esm/agents/transcription_entry.js +7 -0
  195. package/dist/esm/artifacts/base_artifact_service.js +7 -0
  196. package/dist/esm/artifacts/file_artifact_service.js +480 -0
  197. package/dist/esm/artifacts/gcs_artifact_service.js +199 -0
  198. package/dist/esm/artifacts/in_memory_artifact_service.js +152 -0
  199. package/dist/esm/artifacts/registry.js +30 -0
  200. package/dist/esm/auth/auth_credential.js +18 -0
  201. package/dist/esm/auth/auth_handler.js +131 -0
  202. package/dist/esm/auth/auth_preprocessor.js +155 -0
  203. package/dist/esm/auth/auth_provider_registry.js +33 -0
  204. package/dist/esm/auth/auth_schemes.js +33 -0
  205. package/dist/esm/auth/auth_tool.js +7 -0
  206. package/dist/esm/auth/base_auth_provider.js +7 -0
  207. package/dist/esm/auth/credential_service/base_credential_service.js +7 -0
  208. package/dist/esm/auth/credential_service/in_memory_credential_service.js +35 -0
  209. package/dist/esm/auth/credential_service/session_state_credential_service.js +23 -0
  210. package/dist/esm/auth/exchanger/base_credential_exchanger.js +12 -0
  211. package/dist/esm/auth/exchanger/credential_exchanger_registry.js +31 -0
  212. package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +177 -0
  213. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +85 -0
  214. package/dist/esm/auth/oauth2/oauth2_discovery.js +156 -0
  215. package/dist/esm/auth/oauth2/oauth2_utils.js +87 -0
  216. package/dist/esm/auth/refresher/base_credential_refresher.js +16 -0
  217. package/dist/esm/auth/refresher/credential_refresher_registry.js +40 -0
  218. package/dist/esm/code_executors/base_code_executor.js +63 -0
  219. package/dist/esm/code_executors/built_in_code_executor.js +45 -0
  220. package/dist/esm/code_executors/code_execution_utils.js +127 -0
  221. package/dist/esm/code_executors/code_executor_context.js +170 -0
  222. package/dist/esm/code_executors/unsafe_local_code_executor.js +205 -0
  223. package/dist/esm/common.js +245 -0
  224. package/dist/esm/context/base_context_compactor.js +7 -0
  225. package/dist/esm/context/summarizers/base_summarizer.js +7 -0
  226. package/dist/esm/context/summarizers/llm_summarizer.js +67 -0
  227. package/dist/esm/context/token_based_context_compactor.js +107 -0
  228. package/dist/esm/context/truncating_context_compactor.js +30 -0
  229. package/dist/esm/events/compacted_event.js +24 -0
  230. package/dist/esm/events/event.js +110 -0
  231. package/dist/esm/events/event_actions.js +54 -0
  232. package/dist/esm/events/structured_events.js +76 -0
  233. package/dist/esm/examples/base_example_provider.js +27 -0
  234. package/dist/esm/examples/example.js +7 -0
  235. package/dist/esm/examples/example_util.js +80 -0
  236. package/dist/esm/features/feature_registry.js +107 -0
  237. package/dist/esm/index.js +50 -0
  238. package/dist/esm/index_web.js +8 -0
  239. package/dist/esm/memory/base_memory_service.js +7 -0
  240. package/dist/esm/memory/in_memory_memory_service.js +71 -0
  241. package/dist/esm/memory/memory_entry.js +7 -0
  242. package/dist/esm/models/apigee_llm.js +154 -0
  243. package/dist/esm/models/base_llm.js +73 -0
  244. package/dist/esm/models/base_llm_connection.js +7 -0
  245. package/dist/esm/models/gemini_llm_connection.js +105 -0
  246. package/dist/esm/models/google_llm.js +265 -0
  247. package/dist/esm/models/llm_request.js +52 -0
  248. package/dist/esm/models/llm_response.js +45 -0
  249. package/dist/esm/models/registry.js +95 -0
  250. package/dist/esm/models/routed_llm.js +73 -0
  251. package/dist/esm/plugins/base_plugin.js +268 -0
  252. package/dist/esm/plugins/logging_plugin.js +235 -0
  253. package/dist/esm/plugins/plugin_manager.js +282 -0
  254. package/dist/esm/plugins/security_plugin.js +124 -0
  255. package/dist/esm/runner/in_memory_runner.js +30 -0
  256. package/dist/esm/runner/runner.js +360 -0
  257. package/dist/esm/sessions/base_session_service.js +91 -0
  258. package/dist/esm/sessions/database_session_service.js +355 -0
  259. package/dist/esm/sessions/db/operations.js +96 -0
  260. package/dist/esm/sessions/db/schema.js +174 -0
  261. package/dist/esm/sessions/in_memory_session_service.js +184 -0
  262. package/dist/esm/sessions/registry.js +27 -0
  263. package/dist/esm/sessions/session.js +20 -0
  264. package/dist/esm/sessions/state.js +73 -0
  265. package/dist/esm/skills/loader.js +244 -0
  266. package/dist/esm/skills/prompt.js +30 -0
  267. package/dist/esm/skills/skill.js +49 -0
  268. package/dist/esm/telemetry/google_cloud.js +54 -0
  269. package/dist/esm/telemetry/setup.js +83 -0
  270. package/dist/esm/telemetry/tracing.js +219 -0
  271. package/dist/esm/tools/agent_tool.js +190 -0
  272. package/dist/esm/tools/base_tool.js +93 -0
  273. package/dist/esm/tools/base_toolset.js +57 -0
  274. package/dist/esm/tools/exit_loop_tool.js +34 -0
  275. package/dist/esm/tools/forwarding_artifact_service.js +59 -0
  276. package/dist/esm/tools/function_tool.js +80 -0
  277. package/dist/esm/tools/google_maps_grounding_tool.js +54 -0
  278. package/dist/esm/tools/google_search_tool.js +51 -0
  279. package/dist/esm/tools/load_artifacts_tool.js +161 -0
  280. package/dist/esm/tools/load_memory_tool.js +80 -0
  281. package/dist/esm/tools/long_running_tool.js +37 -0
  282. package/dist/esm/tools/mcp/mcp_session_manager.js +53 -0
  283. package/dist/esm/tools/mcp/mcp_tool.js +40 -0
  284. package/dist/esm/tools/mcp/mcp_toolset.js +52 -0
  285. package/dist/esm/tools/preload_memory_tool.js +82 -0
  286. package/dist/esm/tools/skill/list_skills_tool.js +50 -0
  287. package/dist/esm/tools/skill/load_skill_resource_tool.js +191 -0
  288. package/dist/esm/tools/skill/load_skill_tool.js +82 -0
  289. package/dist/esm/tools/skill/run_skill_inline_script_tool.js +120 -0
  290. package/dist/esm/tools/skill/run_skill_script_tool.js +192 -0
  291. package/dist/esm/tools/skill/skill_toolset.js +137 -0
  292. package/dist/esm/tools/tool_confirmation.js +21 -0
  293. package/dist/esm/tools/url_context_tool.js +44 -0
  294. package/dist/esm/tools/vertex_ai_search_tool.js +103 -0
  295. package/dist/esm/tools/vertex_rag_retrieval_tool.js +36 -0
  296. package/dist/esm/utils/client_labels.js +28 -0
  297. package/dist/esm/utils/env_aware_utils.js +59 -0
  298. package/dist/esm/utils/experimental.js +46 -0
  299. package/dist/esm/utils/failover_utils.js +65 -0
  300. package/dist/esm/utils/file_extension_utils.js +51 -0
  301. package/dist/esm/utils/file_utils.js +56 -0
  302. package/dist/esm/utils/gemini_schema_util.js +124 -0
  303. package/dist/esm/utils/logger.js +130 -0
  304. package/dist/esm/utils/model_name.js +58 -0
  305. package/dist/esm/utils/object_notation_utils.js +49 -0
  306. package/dist/esm/utils/simple_zod_to_json.js +123 -0
  307. package/dist/esm/utils/streaming_utils.js +304 -0
  308. package/dist/esm/utils/variant_utils.js +20 -0
  309. package/dist/esm/version.js +11 -0
  310. package/dist/types/a2a/a2a_event.d.ts +139 -0
  311. package/dist/types/a2a/a2a_remote_agent.d.ts +67 -0
  312. package/dist/types/a2a/a2a_remote_agent_run_processor.d.ts +31 -0
  313. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +38 -0
  314. package/dist/types/a2a/agent_card.d.ts +23 -0
  315. package/dist/types/a2a/agent_executor.d.ts +52 -0
  316. package/dist/types/a2a/agent_to_a2a.d.ts +45 -0
  317. package/dist/types/a2a/event_converter_utils.d.ts +20 -0
  318. package/dist/types/a2a/event_processor_utils.d.ts +24 -0
  319. package/dist/types/a2a/executor_context.d.ts +33 -0
  320. package/dist/types/a2a/metadata_converter_utils.d.ts +63 -0
  321. package/dist/types/a2a/part_converter_utils.d.ts +48 -0
  322. package/dist/types/agents/active_streaming_tool.d.ts +29 -0
  323. package/dist/types/agents/base_agent.d.ts +194 -0
  324. package/dist/types/agents/context.d.ts +99 -0
  325. package/dist/types/agents/functions.d.ts +112 -0
  326. package/dist/types/agents/instructions.d.ts +32 -0
  327. package/dist/types/agents/invocation_context.d.ts +162 -0
  328. package/dist/types/agents/live_request_queue.d.ts +67 -0
  329. package/dist/types/agents/llm_agent.d.ts +351 -0
  330. package/dist/types/agents/loop_agent.d.ts +47 -0
  331. package/dist/types/agents/parallel_agent.d.ts +37 -0
  332. package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +18 -0
  333. package/dist/types/agents/processors/base_llm_processor.d.ts +27 -0
  334. package/dist/types/agents/processors/basic_llm_request_processor.d.ts +13 -0
  335. package/dist/types/agents/processors/code_execution_request_processor.d.ts +34 -0
  336. package/dist/types/agents/processors/content_processor_utils.d.ts +36 -0
  337. package/dist/types/agents/processors/content_request_processor.d.ts +13 -0
  338. package/dist/types/agents/processors/context_compactor_request_processor.d.ts +22 -0
  339. package/dist/types/agents/processors/identity_llm_request_processor.d.ts +13 -0
  340. package/dist/types/agents/processors/instructions_llm_request_processor.d.ts +16 -0
  341. package/dist/types/agents/processors/request_confirmation_llm_request_processor.d.ts +13 -0
  342. package/dist/types/agents/processors/tool_filter_request_processor.d.ts +14 -0
  343. package/dist/types/agents/readonly_context.d.ts +39 -0
  344. package/dist/types/agents/routed_agent.d.ts +59 -0
  345. package/dist/types/agents/run_config.d.ts +94 -0
  346. package/dist/types/agents/sequential_agent.d.ts +42 -0
  347. package/dist/types/agents/transcription_entry.d.ts +17 -0
  348. package/dist/types/artifacts/base_artifact_service.d.ts +158 -0
  349. package/dist/types/artifacts/file_artifact_service.d.ts +47 -0
  350. package/dist/types/artifacts/gcs_artifact_service.d.ts +18 -0
  351. package/dist/types/artifacts/in_memory_artifact_service.d.ts +21 -0
  352. package/dist/types/artifacts/registry.d.ts +7 -0
  353. package/dist/types/auth/auth_credential.d.ts +244 -0
  354. package/dist/types/auth/auth_handler.d.ts +28 -0
  355. package/dist/types/auth/auth_preprocessor.d.ts +12 -0
  356. package/dist/types/auth/auth_provider_registry.d.ts +27 -0
  357. package/dist/types/auth/auth_schemes.d.ts +39 -0
  358. package/dist/types/auth/auth_tool.d.ts +51 -0
  359. package/dist/types/auth/base_auth_provider.d.ts +20 -0
  360. package/dist/types/auth/credential_service/base_credential_service.d.ts +27 -0
  361. package/dist/types/auth/credential_service/in_memory_credential_service.d.ts +19 -0
  362. package/dist/types/auth/credential_service/session_state_credential_service.d.ts +20 -0
  363. package/dist/types/auth/exchanger/base_credential_exchanger.d.ts +39 -0
  364. package/dist/types/auth/exchanger/credential_exchanger_registry.d.ts +28 -0
  365. package/dist/types/auth/oauth2/oauth2_credential_exchanger.d.ts +26 -0
  366. package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +29 -0
  367. package/dist/types/auth/oauth2/oauth2_discovery.d.ts +38 -0
  368. package/dist/types/auth/oauth2/oauth2_utils.d.ts +56 -0
  369. package/dist/types/auth/refresher/base_credential_refresher.d.ts +38 -0
  370. package/dist/types/auth/refresher/credential_refresher_registry.d.ts +27 -0
  371. package/dist/types/code_executors/base_code_executor.d.ts +74 -0
  372. package/dist/types/code_executors/built_in_code_executor.d.ts +32 -0
  373. package/dist/types/code_executors/code_execution_utils.d.ts +127 -0
  374. package/dist/types/code_executors/code_executor_context.d.ts +85 -0
  375. package/dist/types/code_executors/unsafe_local_code_executor.d.ts +48 -0
  376. package/dist/types/common.d.ts +137 -0
  377. package/dist/types/context/base_context_compactor.d.ts +24 -0
  378. package/dist/types/context/summarizers/base_summarizer.d.ts +19 -0
  379. package/dist/types/context/summarizers/llm_summarizer.d.ts +23 -0
  380. package/dist/types/context/token_based_context_compactor.d.ts +33 -0
  381. package/dist/types/context/truncating_context_compactor.d.ts +24 -0
  382. package/dist/types/events/compacted_event.d.ts +33 -0
  383. package/dist/types/events/event.d.ts +102 -0
  384. package/dist/types/events/event_actions.d.ts +74 -0
  385. package/dist/types/events/structured_events.d.ts +106 -0
  386. package/dist/types/examples/base_example_provider.d.ts +36 -0
  387. package/dist/types/examples/example.d.ts +19 -0
  388. package/dist/types/examples/example_util.d.ts +13 -0
  389. package/dist/types/features/feature_registry.d.ts +66 -0
  390. package/dist/types/index.d.ts +28 -0
  391. package/dist/types/index_web.d.ts +6 -0
  392. package/dist/types/memory/base_memory_service.d.ts +53 -0
  393. package/dist/types/memory/in_memory_memory_service.d.ts +18 -0
  394. package/dist/types/memory/memory_entry.d.ts +30 -0
  395. package/dist/types/models/apigee_llm.d.ts +59 -0
  396. package/dist/types/models/base_llm.d.ts +66 -0
  397. package/dist/types/models/base_llm_connection.d.ts +51 -0
  398. package/dist/types/models/gemini_llm_connection.d.ts +54 -0
  399. package/dist/types/models/google_llm.d.ts +90 -0
  400. package/dist/types/models/llm_request.d.ts +53 -0
  401. package/dist/types/models/llm_response.d.ts +83 -0
  402. package/dist/types/models/registry.d.ts +49 -0
  403. package/dist/types/models/routed_llm.d.ts +38 -0
  404. package/dist/types/plugins/base_plugin.d.ts +368 -0
  405. package/dist/types/plugins/logging_plugin.d.ts +103 -0
  406. package/dist/types/plugins/plugin_manager.d.ts +175 -0
  407. package/dist/types/plugins/security_plugin.d.ts +60 -0
  408. package/dist/types/runner/in_memory_runner.d.ts +15 -0
  409. package/dist/types/runner/runner.d.ts +117 -0
  410. package/dist/types/sessions/base_session_service.d.ts +149 -0
  411. package/dist/types/sessions/database_session_service.d.ts +32 -0
  412. package/dist/types/sessions/db/operations.d.ts +28 -0
  413. package/dist/types/sessions/db/schema.d.ts +45 -0
  414. package/dist/types/sessions/in_memory_session_service.d.ts +30 -0
  415. package/dist/types/sessions/registry.d.ts +7 -0
  416. package/dist/types/sessions/session.d.ts +46 -0
  417. package/dist/types/sessions/state.d.ts +57 -0
  418. package/dist/types/skills/loader.d.ts +38 -0
  419. package/dist/types/skills/prompt.d.ts +13 -0
  420. package/dist/types/skills/skill.d.ts +48 -0
  421. package/dist/types/telemetry/google_cloud.d.ts +9 -0
  422. package/dist/types/telemetry/setup.d.ts +48 -0
  423. package/dist/types/telemetry/tracing.d.ts +112 -0
  424. package/dist/types/tools/agent_tool.d.ts +73 -0
  425. package/dist/types/tools/base_tool.d.ts +98 -0
  426. package/dist/types/tools/base_toolset.d.ts +74 -0
  427. package/dist/types/tools/exit_loop_tool.d.ts +24 -0
  428. package/dist/types/tools/forwarding_artifact_service.d.ts +23 -0
  429. package/dist/types/tools/function_tool.d.ts +62 -0
  430. package/dist/types/tools/google_maps_grounding_tool.d.ts +22 -0
  431. package/dist/types/tools/google_search_tool.d.ts +17 -0
  432. package/dist/types/tools/load_artifacts_tool.d.ts +21 -0
  433. package/dist/types/tools/load_memory_tool.d.ts +22 -0
  434. package/dist/types/tools/long_running_tool.d.ts +18 -0
  435. package/dist/types/tools/mcp/mcp_session_manager.d.ts +64 -0
  436. package/dist/types/tools/mcp/mcp_tool.d.ts +36 -0
  437. package/dist/types/tools/mcp/mcp_toolset.d.ts +44 -0
  438. package/dist/types/tools/preload_memory_tool.d.ts +23 -0
  439. package/dist/types/tools/skill/list_skills_tool.d.ts +14 -0
  440. package/dist/types/tools/skill/load_skill_resource_tool.d.ts +15 -0
  441. package/dist/types/tools/skill/load_skill_tool.d.ts +14 -0
  442. package/dist/types/tools/skill/run_skill_inline_script_tool.d.ts +14 -0
  443. package/dist/types/tools/skill/run_skill_script_tool.d.ts +17 -0
  444. package/dist/types/tools/skill/skill_toolset.d.ts +28 -0
  445. package/dist/types/tools/tool_confirmation.d.ts +25 -0
  446. package/dist/types/tools/url_context_tool.d.ts +17 -0
  447. package/dist/types/tools/vertex_ai_search_tool.d.ts +55 -0
  448. package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +42 -0
  449. package/dist/types/utils/client_labels.d.ts +9 -0
  450. package/dist/types/utils/env_aware_utils.d.ts +38 -0
  451. package/dist/types/utils/experimental.d.ts +11 -0
  452. package/dist/types/utils/failover_utils.d.ts +17 -0
  453. package/dist/types/utils/file_extension_utils.d.ts +21 -0
  454. package/dist/types/utils/file_utils.d.ts +11 -0
  455. package/dist/types/utils/gemini_schema_util.d.ts +15 -0
  456. package/dist/types/utils/logger.d.ts +38 -0
  457. package/dist/types/utils/model_name.d.ts +38 -0
  458. package/dist/types/utils/object_notation_utils.d.ts +21 -0
  459. package/dist/types/utils/simple_zod_to_json.d.ts +13 -0
  460. package/dist/types/utils/streaming_utils.d.ts +40 -0
  461. package/dist/types/utils/variant_utils.d.ts +24 -0
  462. package/dist/types/version.d.ts +6 -0
  463. package/dist/web/a2a/a2a_event.js +271 -0
  464. package/dist/web/a2a/a2a_remote_agent.js +186 -0
  465. package/dist/web/a2a/a2a_remote_agent_run_processor.js +184 -0
  466. package/dist/web/a2a/a2a_remote_agent_utils.js +133 -0
  467. package/dist/web/a2a/agent_card.js +342 -0
  468. package/dist/web/a2a/agent_executor.js +218 -0
  469. package/dist/web/a2a/agent_to_a2a.js +82 -0
  470. package/dist/web/a2a/event_converter_utils.js +203 -0
  471. package/dist/web/a2a/event_processor_utils.js +170 -0
  472. package/dist/web/a2a/executor_context.js +25 -0
  473. package/dist/web/a2a/metadata_converter_utils.js +110 -0
  474. package/dist/web/a2a/part_converter_utils.js +188 -0
  475. package/dist/web/agents/active_streaming_tool.js +16 -0
  476. package/dist/web/agents/base_agent.js +354 -0
  477. package/dist/web/agents/context.js +152 -0
  478. package/dist/web/agents/functions.js +520 -0
  479. package/dist/web/agents/instructions.js +82 -0
  480. package/dist/web/agents/invocation_context.js +81 -0
  481. package/dist/web/agents/live_request_queue.js +126 -0
  482. package/dist/web/agents/llm_agent.js +907 -0
  483. package/dist/web/agents/loop_agent.js +88 -0
  484. package/dist/web/agents/parallel_agent.js +101 -0
  485. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +102 -0
  486. package/dist/web/agents/processors/base_llm_processor.js +15 -0
  487. package/dist/web/agents/processors/basic_llm_request_processor.js +73 -0
  488. package/dist/web/agents/processors/code_execution_request_processor.js +370 -0
  489. package/dist/web/agents/processors/content_processor_utils.js +318 -0
  490. package/dist/web/agents/processors/content_request_processor.js +79 -0
  491. package/dist/web/agents/processors/context_compactor_request_processor.js +60 -0
  492. package/dist/web/agents/processors/identity_llm_request_processor.js +43 -0
  493. package/dist/web/agents/processors/instructions_llm_request_processor.js +74 -0
  494. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +160 -0
  495. package/dist/web/agents/processors/tool_filter_request_processor.js +62 -0
  496. package/dist/web/agents/readonly_context.js +55 -0
  497. package/dist/web/agents/routed_agent.js +138 -0
  498. package/dist/web/agents/run_config.js +57 -0
  499. package/dist/web/agents/sequential_agent.js +122 -0
  500. package/dist/web/agents/transcription_entry.js +7 -0
  501. package/dist/web/artifacts/base_artifact_service.js +7 -0
  502. package/dist/web/artifacts/file_artifact_service.js +535 -0
  503. package/dist/web/artifacts/gcs_artifact_service.js +213 -0
  504. package/dist/web/artifacts/in_memory_artifact_service.js +152 -0
  505. package/dist/web/artifacts/registry.js +30 -0
  506. package/dist/web/auth/auth_credential.js +18 -0
  507. package/dist/web/auth/auth_handler.js +148 -0
  508. package/dist/web/auth/auth_preprocessor.js +173 -0
  509. package/dist/web/auth/auth_provider_registry.js +33 -0
  510. package/dist/web/auth/auth_schemes.js +33 -0
  511. package/dist/web/auth/auth_tool.js +7 -0
  512. package/dist/web/auth/base_auth_provider.js +7 -0
  513. package/dist/web/auth/credential_service/base_credential_service.js +7 -0
  514. package/dist/web/auth/credential_service/in_memory_credential_service.js +35 -0
  515. package/dist/web/auth/credential_service/session_state_credential_service.js +23 -0
  516. package/dist/web/auth/exchanger/base_credential_exchanger.js +12 -0
  517. package/dist/web/auth/exchanger/credential_exchanger_registry.js +31 -0
  518. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +188 -0
  519. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +102 -0
  520. package/dist/web/auth/oauth2/oauth2_discovery.js +156 -0
  521. package/dist/web/auth/oauth2/oauth2_utils.js +87 -0
  522. package/dist/web/auth/refresher/base_credential_refresher.js +16 -0
  523. package/dist/web/auth/refresher/credential_refresher_registry.js +40 -0
  524. package/dist/web/code_executors/base_code_executor.js +63 -0
  525. package/dist/web/code_executors/built_in_code_executor.js +45 -0
  526. package/dist/web/code_executors/code_execution_utils.js +124 -0
  527. package/dist/web/code_executors/code_executor_context.js +170 -0
  528. package/dist/web/code_executors/unsafe_local_code_executor.js +203 -0
  529. package/dist/web/common.js +245 -0
  530. package/dist/web/context/base_context_compactor.js +7 -0
  531. package/dist/web/context/summarizers/base_summarizer.js +7 -0
  532. package/dist/web/context/summarizers/llm_summarizer.js +76 -0
  533. package/dist/web/context/token_based_context_compactor.js +107 -0
  534. package/dist/web/context/truncating_context_compactor.js +30 -0
  535. package/dist/web/events/compacted_event.js +42 -0
  536. package/dist/web/events/event.js +128 -0
  537. package/dist/web/events/event_actions.js +69 -0
  538. package/dist/web/events/structured_events.js +76 -0
  539. package/dist/web/examples/base_example_provider.js +27 -0
  540. package/dist/web/examples/example.js +7 -0
  541. package/dist/web/examples/example_util.js +79 -0
  542. package/dist/web/features/feature_registry.js +107 -0
  543. package/dist/web/index.js +50 -0
  544. package/dist/web/index_web.js +8 -0
  545. package/dist/web/memory/base_memory_service.js +7 -0
  546. package/dist/web/memory/in_memory_memory_service.js +71 -0
  547. package/dist/web/memory/memory_entry.js +7 -0
  548. package/dist/web/models/apigee_llm.js +221 -0
  549. package/dist/web/models/base_llm.js +73 -0
  550. package/dist/web/models/base_llm_connection.js +7 -0
  551. package/dist/web/models/gemini_llm_connection.js +123 -0
  552. package/dist/web/models/google_llm.js +321 -0
  553. package/dist/web/models/llm_request.js +52 -0
  554. package/dist/web/models/llm_response.js +45 -0
  555. package/dist/web/models/registry.js +95 -0
  556. package/dist/web/models/routed_llm.js +122 -0
  557. package/dist/web/plugins/base_plugin.js +268 -0
  558. package/dist/web/plugins/logging_plugin.js +235 -0
  559. package/dist/web/plugins/plugin_manager.js +282 -0
  560. package/dist/web/plugins/security_plugin.js +124 -0
  561. package/dist/web/runner/in_memory_runner.js +30 -0
  562. package/dist/web/runner/runner.js +426 -0
  563. package/dist/web/sessions/base_session_service.js +91 -0
  564. package/dist/web/sessions/database_session_service.js +373 -0
  565. package/dist/web/sessions/db/operations.js +96 -0
  566. package/dist/web/sessions/db/schema.js +174 -0
  567. package/dist/web/sessions/in_memory_session_service.js +184 -0
  568. package/dist/web/sessions/registry.js +27 -0
  569. package/dist/web/sessions/session.js +20 -0
  570. package/dist/web/sessions/state.js +89 -0
  571. package/dist/web/skills/loader.js +262 -0
  572. package/dist/web/skills/prompt.js +30 -0
  573. package/dist/web/skills/skill.js +67 -0
  574. package/dist/web/telemetry/google_cloud.js +54 -0
  575. package/dist/web/telemetry/setup.js +83 -0
  576. package/dist/web/telemetry/tracing.js +234 -0
  577. package/dist/web/tools/agent_tool.js +233 -0
  578. package/dist/web/tools/base_tool.js +93 -0
  579. package/dist/web/tools/base_toolset.js +57 -0
  580. package/dist/web/tools/exit_loop_tool.js +34 -0
  581. package/dist/web/tools/forwarding_artifact_service.js +59 -0
  582. package/dist/web/tools/function_tool.js +80 -0
  583. package/dist/web/tools/google_maps_grounding_tool.js +54 -0
  584. package/dist/web/tools/google_search_tool.js +51 -0
  585. package/dist/web/tools/load_artifacts_tool.js +152 -0
  586. package/dist/web/tools/load_memory_tool.js +79 -0
  587. package/dist/web/tools/long_running_tool.js +54 -0
  588. package/dist/web/tools/mcp/mcp_session_manager.js +53 -0
  589. package/dist/web/tools/mcp/mcp_tool.js +40 -0
  590. package/dist/web/tools/mcp/mcp_toolset.js +70 -0
  591. package/dist/web/tools/preload_memory_tool.js +77 -0
  592. package/dist/web/tools/skill/list_skills_tool.js +50 -0
  593. package/dist/web/tools/skill/load_skill_resource_tool.js +191 -0
  594. package/dist/web/tools/skill/load_skill_tool.js +82 -0
  595. package/dist/web/tools/skill/run_skill_inline_script_tool.js +120 -0
  596. package/dist/web/tools/skill/run_skill_script_tool.js +190 -0
  597. package/dist/web/tools/skill/skill_toolset.js +123 -0
  598. package/dist/web/tools/tool_confirmation.js +21 -0
  599. package/dist/web/tools/url_context_tool.js +44 -0
  600. package/dist/web/tools/vertex_ai_search_tool.js +103 -0
  601. package/dist/web/tools/vertex_rag_retrieval_tool.js +36 -0
  602. package/dist/web/utils/client_labels.js +28 -0
  603. package/dist/web/utils/env_aware_utils.js +59 -0
  604. package/dist/web/utils/experimental.js +46 -0
  605. package/dist/web/utils/failover_utils.js +96 -0
  606. package/dist/web/utils/file_extension_utils.js +51 -0
  607. package/dist/web/utils/file_utils.js +74 -0
  608. package/dist/web/utils/gemini_schema_util.js +155 -0
  609. package/dist/web/utils/logger.js +130 -0
  610. package/dist/web/utils/model_name.js +58 -0
  611. package/dist/web/utils/object_notation_utils.js +49 -0
  612. package/dist/web/utils/simple_zod_to_json.js +123 -0
  613. package/dist/web/utils/streaming_utils.js +322 -0
  614. package/dist/web/utils/variant_utils.js +20 -0
  615. package/dist/web/version.js +11 -0
  616. package/package.json +84 -0
@@ -0,0 +1,177 @@
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 { logger } from "../../utils/logger.js";
9
+ import {
10
+ getOAuthGrantTypeFromFlow,
11
+ OAuthGrantType
12
+ } from "../auth_schemes.js";
13
+ import {
14
+ CredentialExchangeError
15
+ } from "../exchanger/base_credential_exchanger.js";
16
+ import {
17
+ createOAuth2TokenRequestBody,
18
+ fetchOAuth2Tokens,
19
+ getTokenEndpoint,
20
+ parseAuthorizationCode
21
+ } from "./oauth2_utils.js";
22
+ class OAuth2CredentialExchanger {
23
+ async exchange({
24
+ authCredential,
25
+ authScheme
26
+ }) {
27
+ var _a;
28
+ if (!authScheme) {
29
+ throw new CredentialExchangeError(
30
+ "authScheme is required for OAuth2 credential exchange"
31
+ );
32
+ }
33
+ if ((_a = authCredential.oauth2) == null ? void 0 : _a.accessToken) {
34
+ return {
35
+ credential: authCredential,
36
+ wasExchanged: false
37
+ };
38
+ }
39
+ const grantType = determineGrantType(authScheme);
40
+ if (grantType === OAuthGrantType.CLIENT_CREDENTIALS) {
41
+ return exchangeClientCredentials({ authCredential, authScheme });
42
+ }
43
+ if (grantType === OAuthGrantType.AUTHORIZATION_CODE) {
44
+ return exchangeAuthorizationCode({ authCredential, authScheme });
45
+ }
46
+ logger.warn(`Unsupported OAuth2 grant type: ${grantType}`);
47
+ return {
48
+ credential: authCredential,
49
+ wasExchanged: false
50
+ };
51
+ }
52
+ }
53
+ function determineGrantType(authScheme) {
54
+ var _a;
55
+ if ("flows" in authScheme && authScheme.flows) {
56
+ return getOAuthGrantTypeFromFlow(authScheme.flows);
57
+ }
58
+ if (authScheme.grantTypesSupported) {
59
+ const oidcScheme = authScheme;
60
+ if ((_a = oidcScheme.grantTypesSupported) == null ? void 0 : _a.includes("client_credentials")) {
61
+ return OAuthGrantType.CLIENT_CREDENTIALS;
62
+ }
63
+ return OAuthGrantType.AUTHORIZATION_CODE;
64
+ }
65
+ return void 0;
66
+ }
67
+ async function exchangeClientCredentials({
68
+ authCredential,
69
+ authScheme
70
+ }) {
71
+ var _a, _b;
72
+ const tokenEndpoint = getTokenEndpoint(authScheme);
73
+ if (!tokenEndpoint) {
74
+ throw new CredentialExchangeError(
75
+ "Token endpoint not found in auth scheme."
76
+ );
77
+ }
78
+ if (!((_a = authCredential.oauth2) == null ? void 0 : _a.clientId) || !((_b = authCredential.oauth2) == null ? void 0 : _b.clientSecret)) {
79
+ throw new CredentialExchangeError(
80
+ "clientId and clientSecret are required for client credentials exchange."
81
+ );
82
+ }
83
+ const body = createOAuth2TokenRequestBody({
84
+ grantType: "client_credentials",
85
+ clientId: authCredential.oauth2.clientId,
86
+ clientSecret: authCredential.oauth2.clientSecret
87
+ });
88
+ try {
89
+ const oauth2Auth = await fetchOAuth2Tokens(tokenEndpoint, body);
90
+ return {
91
+ credential: {
92
+ ...authCredential,
93
+ oauth2: {
94
+ ...authCredential.oauth2,
95
+ ...oauth2Auth
96
+ }
97
+ },
98
+ wasExchanged: true
99
+ };
100
+ } catch (error) {
101
+ throw new CredentialExchangeError(
102
+ `Failed to exchange tokens: ${error instanceof Error ? error.message : String(error)}`
103
+ );
104
+ }
105
+ }
106
+ async function exchangeAuthorizationCode({
107
+ authCredential,
108
+ authScheme
109
+ }) {
110
+ var _a, _b, _c, _d;
111
+ const tokenEndpoint = getTokenEndpoint(authScheme);
112
+ if (!tokenEndpoint) {
113
+ throw new CredentialExchangeError(
114
+ "Token endpoint not found in auth scheme."
115
+ );
116
+ }
117
+ if (!((_a = authCredential.oauth2) == null ? void 0 : _a.clientId) || !((_b = authCredential.oauth2) == null ? void 0 : _b.clientSecret) || !((_c = authCredential.oauth2) == null ? void 0 : _c.authCode) && !((_d = authCredential.oauth2) == null ? void 0 : _d.authResponseUri)) {
118
+ throw new CredentialExchangeError(
119
+ "clientId, clientSecret, and either authCode or authResponseUri are required for authorization code exchange."
120
+ );
121
+ }
122
+ let code = authCredential.oauth2.authCode;
123
+ if (!code && authCredential.oauth2.authResponseUri) {
124
+ code = parseAuthorizationCode(authCredential.oauth2.authResponseUri);
125
+ }
126
+ if (authCredential.oauth2.authResponseUri && authCredential.oauth2.state) {
127
+ try {
128
+ const url = new URL(authCredential.oauth2.authResponseUri);
129
+ const receivedState = url.searchParams.get("state") || void 0;
130
+ if (authCredential.oauth2.state !== receivedState) {
131
+ throw new CredentialExchangeError(
132
+ "State mismatch detected. Potential CSRF attack."
133
+ );
134
+ }
135
+ } catch (e) {
136
+ throw new CredentialExchangeError(
137
+ `Failed to parse authResponseUri for state validation: ${e instanceof Error ? e.message : String(e)}`
138
+ );
139
+ }
140
+ }
141
+ if (!code) {
142
+ throw new CredentialExchangeError(
143
+ "Authorization code not found in auth response."
144
+ );
145
+ }
146
+ const body = createOAuth2TokenRequestBody({
147
+ grantType: "authorization_code",
148
+ clientId: authCredential.oauth2.clientId,
149
+ clientSecret: authCredential.oauth2.clientSecret,
150
+ code,
151
+ redirectUri: authCredential.oauth2.redirectUri,
152
+ codeVerifier: authCredential.oauth2.codeVerifier
153
+ });
154
+ try {
155
+ const oauth2Auth = await fetchOAuth2Tokens(tokenEndpoint, body);
156
+ return {
157
+ credential: {
158
+ ...authCredential,
159
+ oauth2: {
160
+ ...authCredential.oauth2,
161
+ ...oauth2Auth
162
+ }
163
+ },
164
+ wasExchanged: true
165
+ };
166
+ } catch (error) {
167
+ throw new CredentialExchangeError(
168
+ `Failed to exchange tokens: ${error instanceof Error ? error.message : String(error)}`
169
+ );
170
+ }
171
+ }
172
+ export {
173
+ OAuth2CredentialExchanger,
174
+ determineGrantType,
175
+ exchangeAuthorizationCode,
176
+ exchangeClientCredentials
177
+ };
@@ -0,0 +1,85 @@
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 { logger } from "../../utils/logger.js";
9
+ import {
10
+ fetchOAuth2Tokens,
11
+ getTokenEndpoint,
12
+ isTokenExpired
13
+ } from "./oauth2_utils.js";
14
+ class OAuth2CredentialRefresher {
15
+ /**
16
+ * Check if the OAuth2 credential needs to be refreshed.
17
+ *
18
+ * @param authCredential The OAuth2 credential to check.
19
+ * @param authScheme The OAuth2 authentication scheme (optional).
20
+ * @returns True if the credential needs to be refreshed, False otherwise.
21
+ */
22
+ async isRefreshNeeded(authCredential) {
23
+ if (!authCredential.oauth2) {
24
+ return false;
25
+ }
26
+ if (authCredential.oauth2 && authCredential.oauth2.expiresAt) {
27
+ return isTokenExpired(authCredential.oauth2);
28
+ }
29
+ return false;
30
+ }
31
+ /**
32
+ * Refresh the OAuth2 credential.
33
+ *
34
+ * @param authCredential The OAuth2 credential to refresh.
35
+ * @param authScheme The OAuth2 authentication scheme.
36
+ * @returns The refreshed credential.
37
+ */
38
+ async refresh(authCredential, authScheme) {
39
+ if (!authCredential.oauth2 || !authScheme) {
40
+ return authCredential;
41
+ }
42
+ if (!authCredential.oauth2.refreshToken) {
43
+ logger.warn("No refresh token available to refresh credential");
44
+ return authCredential;
45
+ }
46
+ const isNeeded = await this.isRefreshNeeded(authCredential);
47
+ if (!isNeeded) {
48
+ return authCredential;
49
+ }
50
+ const tokenEndpoint = getTokenEndpoint(authScheme);
51
+ if (!tokenEndpoint) {
52
+ logger.warn("Token endpoint not found in auth scheme.");
53
+ return authCredential;
54
+ }
55
+ if (!authCredential.oauth2.clientId || !authCredential.oauth2.clientSecret) {
56
+ logger.warn("clientId and clientSecret are required for token refresh.");
57
+ return authCredential;
58
+ }
59
+ const body = new URLSearchParams();
60
+ body.set("grant_type", "refresh_token");
61
+ body.set("refresh_token", authCredential.oauth2.refreshToken);
62
+ body.set("client_id", authCredential.oauth2.clientId);
63
+ body.set("client_secret", authCredential.oauth2.clientSecret);
64
+ try {
65
+ const data = await fetchOAuth2Tokens(tokenEndpoint, body);
66
+ const updatedOAuth2 = {
67
+ ...authCredential.oauth2,
68
+ accessToken: data.accessToken || authCredential.oauth2.accessToken,
69
+ refreshToken: data.refreshToken || authCredential.oauth2.refreshToken,
70
+ expiresIn: data.expiresIn,
71
+ expiresAt: data.expiresAt || authCredential.oauth2.expiresAt
72
+ };
73
+ return {
74
+ ...authCredential,
75
+ oauth2: updatedOAuth2
76
+ };
77
+ } catch (error) {
78
+ logger.error("Failed to refresh tokens:", error);
79
+ return authCredential;
80
+ }
81
+ }
82
+ }
83
+ export {
84
+ OAuth2CredentialRefresher
85
+ };
@@ -0,0 +1,156 @@
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 { z } from "zod";
9
+ import { logger } from "../../utils/logger.js";
10
+ const AuthorizationServerMetadataSchema = z.object({
11
+ issuer: z.string(),
12
+ authorization_endpoint: z.string(),
13
+ token_endpoint: z.string(),
14
+ scopes_supported: z.array(z.string()).optional(),
15
+ registration_endpoint: z.string().optional()
16
+ });
17
+ const ProtectedResourceMetadataSchema = z.object({
18
+ resource: z.string(),
19
+ authorization_servers: z.array(z.string()).default([])
20
+ });
21
+ class OAuth2DiscoveryManager {
22
+ /**
23
+ * Discovers the OAuth2 authorization server metadata.
24
+ */
25
+ async discoverAuthServerMetadata(issuerUrl) {
26
+ if (!validateDiscoveryUrl(issuerUrl)) {
27
+ return void 0;
28
+ }
29
+ let baseUrl;
30
+ let path;
31
+ try {
32
+ const url = new URL(issuerUrl);
33
+ baseUrl = `${url.protocol}//${url.host}`;
34
+ path = url.pathname;
35
+ } catch (e) {
36
+ logger.warn(`Failed to parse issuerUrl ${issuerUrl}: ${e}`);
37
+ return void 0;
38
+ }
39
+ const endpointsToTry = [];
40
+ if (path && path !== "/") {
41
+ endpointsToTry.push(
42
+ `${baseUrl}/.well-known/oauth-authorization-server${path}`,
43
+ `${baseUrl}/.well-known/openid-configuration${path}`,
44
+ `${baseUrl}${path}/.well-known/openid-configuration`
45
+ );
46
+ } else {
47
+ endpointsToTry.push(
48
+ `${baseUrl}/.well-known/oauth-authorization-server`,
49
+ `${baseUrl}/.well-known/openid-configuration`
50
+ );
51
+ }
52
+ for (const endpoint of endpointsToTry) {
53
+ try {
54
+ const response = await fetch(endpoint, {
55
+ method: "GET",
56
+ headers: {
57
+ Accept: "application/json"
58
+ }
59
+ });
60
+ if (!response.ok) {
61
+ continue;
62
+ }
63
+ const data = await response.json();
64
+ const metadata = AuthorizationServerMetadataSchema.parse(data);
65
+ if (metadata.issuer.replace(/\/$/, "") === issuerUrl.replace(/\/$/, "")) {
66
+ return metadata;
67
+ } else {
68
+ logger.warn(
69
+ `Issuer in metadata ${metadata.issuer} does not match issuerUrl ${issuerUrl}`
70
+ );
71
+ }
72
+ } catch (e) {
73
+ logger.debug(`Failed to fetch metadata from ${endpoint}: ${e}`);
74
+ }
75
+ }
76
+ return void 0;
77
+ }
78
+ /**
79
+ * Discovers the OAuth2 protected resource metadata.
80
+ */
81
+ async discoverResourceMetadata(resourceUrl) {
82
+ if (!validateDiscoveryUrl(resourceUrl)) {
83
+ return void 0;
84
+ }
85
+ let baseUrl;
86
+ let path;
87
+ try {
88
+ const url = new URL(resourceUrl);
89
+ baseUrl = `${url.protocol}//${url.host}`;
90
+ path = url.pathname;
91
+ } catch (e) {
92
+ logger.warn(`Failed to parse resourceUrl ${resourceUrl}: ${e}`);
93
+ return void 0;
94
+ }
95
+ let wellKnownEndpoint;
96
+ if (path && path !== "/") {
97
+ wellKnownEndpoint = `${baseUrl}/.well-known/oauth-protected-resource${path}`;
98
+ } else {
99
+ wellKnownEndpoint = `${baseUrl}/.well-known/oauth-protected-resource`;
100
+ }
101
+ try {
102
+ const response = await fetch(wellKnownEndpoint, {
103
+ method: "GET",
104
+ headers: {
105
+ Accept: "application/json"
106
+ }
107
+ });
108
+ if (!response.ok) {
109
+ return void 0;
110
+ }
111
+ const data = await response.json();
112
+ const metadata = ProtectedResourceMetadataSchema.parse(data);
113
+ if (metadata.resource.replace(/\/$/, "") === resourceUrl.replace(/\/$/, "")) {
114
+ return metadata;
115
+ } else {
116
+ logger.warn(
117
+ `Resource in metadata ${metadata.resource} does not match resourceUrl ${resourceUrl}`
118
+ );
119
+ }
120
+ } catch (e) {
121
+ logger.debug(`Failed to fetch metadata from ${wellKnownEndpoint}: ${e}`);
122
+ }
123
+ return void 0;
124
+ }
125
+ }
126
+ function validateDiscoveryUrl(urlStr) {
127
+ try {
128
+ const url = new URL(urlStr);
129
+ if (url.protocol !== "https:") {
130
+ logger.warn(`Unsafe protocol for discovery URL: ${url.protocol}`);
131
+ return false;
132
+ }
133
+ const host = url.hostname.toLowerCase();
134
+ if (host === "localhost" || host === "127.0.0.1" || host === "[::1]" || host.startsWith("10.") || host.startsWith("192.168.") || host.startsWith("169.254.")) {
135
+ logger.warn(`Unsafe host for discovery URL: ${host}`);
136
+ return false;
137
+ }
138
+ const match = host.match(/^172\.(\d+)\./);
139
+ if (match) {
140
+ const secondOctet = parseInt(match[1], 10);
141
+ if (secondOctet >= 16 && secondOctet <= 31) {
142
+ logger.warn(`Unsafe host for discovery URL: ${host}`);
143
+ return false;
144
+ }
145
+ }
146
+ return true;
147
+ } catch (e) {
148
+ logger.warn(`Failed to parse URL for validation ${urlStr}: ${e}`);
149
+ return false;
150
+ }
151
+ }
152
+ export {
153
+ AuthorizationServerMetadataSchema,
154
+ OAuth2DiscoveryManager,
155
+ ProtectedResourceMetadataSchema
156
+ };
@@ -0,0 +1,87 @@
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 { logger } from "../../utils/logger.js";
9
+ function getTokenEndpoint(authScheme) {
10
+ if (authScheme.type === "openIdConnect" && authScheme.tokenEndpoint) {
11
+ return authScheme.tokenEndpoint;
12
+ }
13
+ if (authScheme.type === "oauth2" && authScheme.flows) {
14
+ const flows = authScheme.flows;
15
+ const flow = flows.authorizationCode || flows.clientCredentials || flows.password || flows.implicit;
16
+ if (flow && "tokenUrl" in flow) {
17
+ return flow.tokenUrl;
18
+ }
19
+ }
20
+ return void 0;
21
+ }
22
+ async function fetchOAuth2Tokens(endpoint, body) {
23
+ try {
24
+ const response = await fetch(endpoint, {
25
+ method: "POST",
26
+ headers: {
27
+ "Content-Type": "application/x-www-form-urlencoded"
28
+ },
29
+ body: body.toString()
30
+ });
31
+ if (!response.ok) {
32
+ throw new Error(`Token request failed with status ${response.status}`);
33
+ }
34
+ const data = await response.json();
35
+ return {
36
+ accessToken: data.access_token,
37
+ refreshToken: data.refresh_token,
38
+ idToken: data.id_token,
39
+ expiresIn: data.expires_in,
40
+ expiresAt: data.expires_in ? Date.now() + data.expires_in * 1e3 : void 0
41
+ };
42
+ } catch (e) {
43
+ logger.error(`Failed to fetch OAuth2 tokens: ${e}`);
44
+ throw e;
45
+ }
46
+ }
47
+ function parseAuthorizationCode(uri) {
48
+ try {
49
+ const url = new URL(uri);
50
+ return url.searchParams.get("code") || void 0;
51
+ } catch (e) {
52
+ logger.warn(`Failed to parse authorization URI ${uri}: ${e}`);
53
+ return void 0;
54
+ }
55
+ }
56
+ function createOAuth2TokenRequestBody(params) {
57
+ const body = new URLSearchParams();
58
+ body.set("grant_type", params.grantType);
59
+ body.set("client_id", params.clientId);
60
+ body.set("client_secret", params.clientSecret);
61
+ if (params.grantType === "authorization_code") {
62
+ body.set("code", params.code);
63
+ if (params.redirectUri) {
64
+ body.set("redirect_uri", params.redirectUri);
65
+ }
66
+ if (params.codeVerifier) {
67
+ body.set("code_verifier", params.codeVerifier);
68
+ }
69
+ } else if (params.grantType === "refresh_token") {
70
+ body.set("refresh_token", params.refreshToken);
71
+ }
72
+ return body;
73
+ }
74
+ function isTokenExpired(token, leeway = 60) {
75
+ if (typeof token.expiresAt !== "number") {
76
+ return false;
77
+ }
78
+ const expirationThreshold = token.expiresAt - leeway * 1e3;
79
+ return expirationThreshold < Date.now();
80
+ }
81
+ export {
82
+ createOAuth2TokenRequestBody,
83
+ fetchOAuth2Tokens,
84
+ getTokenEndpoint,
85
+ isTokenExpired,
86
+ parseAuthorizationCode
87
+ };
@@ -0,0 +1,16 @@
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
+ class CredentialRefresherError extends Error {
9
+ constructor(message) {
10
+ super(message);
11
+ this.name = "CredentialRefresherError";
12
+ }
13
+ }
14
+ export {
15
+ CredentialRefresherError
16
+ };
@@ -0,0 +1,40 @@
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 { AuthCredentialTypes } from "../auth_credential.js";
9
+ class CredentialRefresherRegistry {
10
+ constructor() {
11
+ this.refreshers = {
12
+ [AuthCredentialTypes.API_KEY]: void 0,
13
+ [AuthCredentialTypes.HTTP]: void 0,
14
+ [AuthCredentialTypes.OAUTH2]: void 0,
15
+ [AuthCredentialTypes.OPEN_ID_CONNECT]: void 0,
16
+ [AuthCredentialTypes.SERVICE_ACCOUNT]: void 0
17
+ };
18
+ }
19
+ /**
20
+ * Register a refresher instance for a credential type.
21
+ *
22
+ * @param credentialType The credential type to register for.
23
+ * @param refresherInstance The refresher instance to register.
24
+ */
25
+ register(credentialType, refresherInstance) {
26
+ this.refreshers[credentialType] = refresherInstance;
27
+ }
28
+ /**
29
+ * Get the refresher instance for a credential type.
30
+ *
31
+ * @param credentialType The credential type to get refresher for.
32
+ * @returns The refresher instance if registered, undefined otherwise.
33
+ */
34
+ getRefresher(credentialType) {
35
+ return this.refreshers[credentialType];
36
+ }
37
+ }
38
+ export {
39
+ CredentialRefresherRegistry
40
+ };
@@ -0,0 +1,63 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2025 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ var _a;
9
+ const BASE_CODE_EXECUTOR_SIGNATURE_SYMBOL = Symbol.for(
10
+ "google.adk.baseCodeExecutor"
11
+ );
12
+ function isBaseCodeExecutor(obj) {
13
+ return typeof obj === "object" && obj !== null && BASE_CODE_EXECUTOR_SIGNATURE_SYMBOL in obj && obj[BASE_CODE_EXECUTOR_SIGNATURE_SYMBOL] === true;
14
+ }
15
+ _a = BASE_CODE_EXECUTOR_SIGNATURE_SYMBOL;
16
+ class BaseCodeExecutor {
17
+ constructor() {
18
+ /** A unique symbol to identify BaseCodeExecutor class. */
19
+ this[_a] = true;
20
+ /**
21
+ * If true, extract and process data files from the model request
22
+ * and attach them to the code executor.
23
+ *
24
+ * Supported data file MimeTypes are [text/csv].
25
+ * Default to false.
26
+ */
27
+ this.optimizeDataFile = false;
28
+ /**
29
+ * Whether the code executor is stateful. Default to false.
30
+ */
31
+ this.stateful = false;
32
+ /**
33
+ * The number of attempts to retry on consecutive code execution errors.
34
+ * Default to 2.
35
+ */
36
+ this.errorRetryAttempts = 2;
37
+ /**
38
+ * The list of the enclosing delimiters to identify the code blocks.
39
+ * For example, the delimiter('```javascript\\n', '\\n```') can be used to
40
+ * identify code blocks with the following format:
41
+ *
42
+ * ```javascript
43
+ * console.log("hello")
44
+ * ```
45
+ */
46
+ this.codeBlockDelimiters = [
47
+ ["```tool_code\n", "\n```"],
48
+ ["```python\n", "\n```"],
49
+ ["```javascript\n", "\n```"],
50
+ ["```typescript\n", "\n```"],
51
+ ["```bash\n", "\n```"],
52
+ ["```sh\n", "\n```"]
53
+ ];
54
+ /**
55
+ * The delimiters to format the code execution result.
56
+ */
57
+ this.executionResultDelimiters = ["```tool_output\n", "\n```"];
58
+ }
59
+ }
60
+ export {
61
+ BaseCodeExecutor,
62
+ isBaseCodeExecutor
63
+ };
@@ -0,0 +1,45 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2025 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ var _a, _b;
9
+ import { isGemini2OrAbove } from "../utils/model_name.js";
10
+ import { BaseCodeExecutor } from "./base_code_executor.js";
11
+ const BUILT_IN_CODE_EXECUTOR_SIGNATURE_SYMBOL = Symbol.for(
12
+ "google.adk.builtInCodeExecutor"
13
+ );
14
+ function isBuiltInCodeExecutor(obj) {
15
+ return typeof obj === "object" && obj !== null && BUILT_IN_CODE_EXECUTOR_SIGNATURE_SYMBOL in obj && obj[BUILT_IN_CODE_EXECUTOR_SIGNATURE_SYMBOL] === true;
16
+ }
17
+ class BuiltInCodeExecutor extends (_b = BaseCodeExecutor, _a = BUILT_IN_CODE_EXECUTOR_SIGNATURE_SYMBOL, _b) {
18
+ constructor() {
19
+ super(...arguments);
20
+ /** A unique symbol to identify BuiltInCodeExecutor class. */
21
+ this[_a] = true;
22
+ }
23
+ executeCode(_params) {
24
+ return Promise.resolve({
25
+ stdout: "",
26
+ stderr: "",
27
+ outputFiles: []
28
+ });
29
+ }
30
+ processLlmRequest(llmRequest) {
31
+ if (llmRequest.model && isGemini2OrAbove(llmRequest.model)) {
32
+ llmRequest.config = llmRequest.config || {};
33
+ llmRequest.config.tools = llmRequest.config.tools || [];
34
+ llmRequest.config.tools.push({ codeExecution: {} });
35
+ return;
36
+ }
37
+ throw new Error(
38
+ `Gemini code execution tool is not supported for model ${llmRequest.model}`
39
+ );
40
+ }
41
+ }
42
+ export {
43
+ BuiltInCodeExecutor,
44
+ isBuiltInCodeExecutor
45
+ };