@google/adk 2.2.1 → 2.4.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 (298) hide show
  1. package/dist/cjs/a2a/a2a_remote_agent.js +4 -1
  2. package/dist/cjs/a2a/agent_card.js +102 -26
  3. package/dist/cjs/a2a/agent_to_a2a.js +1 -1
  4. package/dist/cjs/agents/agent_engine_client.js +172 -0
  5. package/dist/cjs/agents/base_agent.js +20 -4
  6. package/dist/cjs/agents/functions.js +227 -25
  7. package/dist/cjs/agents/instructions.js +6 -2
  8. package/dist/cjs/agents/invocation_context.js +26 -4
  9. package/dist/cjs/agents/langgraph_agent.js +152 -0
  10. package/dist/cjs/agents/llm_agent.js +194 -107
  11. package/dist/cjs/agents/processors/basic_llm_request_processor.js +1 -1
  12. package/dist/cjs/agents/processors/code_execution_request_processor.js +18 -6
  13. package/dist/cjs/agents/processors/content_processor_utils.js +38 -10
  14. package/dist/cjs/agents/processors/content_request_processor.js +34 -2
  15. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +1 -1
  16. package/dist/cjs/agents/processors/nl_planning_processor.js +12 -3
  17. package/dist/cjs/artifacts/in_memory_artifact_service.js +14 -0
  18. package/dist/cjs/auth/auth_handler.js +37 -5
  19. package/dist/cjs/auth/auth_schemes.js +9 -0
  20. package/dist/cjs/cli/cli_eval.js +532 -0
  21. package/dist/cjs/cli/utils/envs.js +116 -0
  22. package/dist/cjs/cli/utils/evals.js +137 -0
  23. package/dist/cjs/cli/utils/logs.js +150 -0
  24. package/dist/cjs/code_executors/agent_engine_sandbox_code_executor.js +7 -2
  25. package/dist/cjs/code_executors/code_execution_utils.js +48 -16
  26. package/dist/cjs/code_executors/code_executor_context.js +6 -2
  27. package/dist/cjs/code_executors/container_code_executor.js +27 -16
  28. package/dist/cjs/code_executors/unsafe_local_code_executor.js +6 -1
  29. package/dist/cjs/common.js +61 -0
  30. package/dist/cjs/context/summarizers/llm_summarizer.js +12 -10
  31. package/dist/cjs/context/token_based_context_compactor.js +2 -1
  32. package/dist/cjs/errors/input_validation_error.js +3 -2
  33. package/dist/cjs/events/event.js +4 -2
  34. package/dist/cjs/examples/example_util.js +23 -2
  35. package/dist/cjs/flows/llm_flows/audio_transcriber.js +170 -0
  36. package/dist/cjs/index.js +104 -1
  37. package/dist/cjs/integrations/agent_registry/helpers.js +1 -1
  38. package/dist/cjs/models/gemini_llm_connection.js +16 -8
  39. package/dist/cjs/models/google_llm.js +13 -16
  40. package/dist/cjs/models/llm_response.js +9 -1
  41. package/dist/cjs/models/registry.js +1 -1
  42. package/dist/cjs/models/routed_llm.js +9 -8
  43. package/dist/cjs/planners/plan_re_act_planner.js +1 -1
  44. package/dist/cjs/plugins/base_plugin.js +13 -23
  45. package/dist/cjs/runner/in_memory_runner.js +6 -11
  46. package/dist/cjs/runner/runner.js +105 -33
  47. package/dist/cjs/sessions/base_session_service.js +14 -8
  48. package/dist/cjs/sessions/database_session_service.js +50 -28
  49. package/dist/cjs/sessions/db/operations.js +1 -1
  50. package/dist/cjs/sessions/in_memory_session_service.js +3 -1
  51. package/dist/cjs/sessions/stale_session_error.js +59 -0
  52. package/dist/cjs/sessions/state.js +8 -4
  53. package/dist/cjs/sessions/vertex_ai_session_service.js +34 -15
  54. package/dist/cjs/skills/loader.js +52 -18
  55. package/dist/cjs/telemetry/setup.js +0 -1
  56. package/dist/cjs/telemetry/tracing.js +147 -73
  57. package/dist/cjs/tools/agent_tool.js +44 -0
  58. package/dist/cjs/tools/apihub_tool/apihub_toolset.js +137 -0
  59. package/dist/cjs/tools/apihub_tool/clients/apihub_client.js +272 -0
  60. package/dist/cjs/tools/apihub_tool/clients/secret_client.js +148 -0
  61. package/dist/cjs/tools/apihub_tool/clients/service_account.js +48 -0
  62. package/dist/cjs/tools/application_integration_tool/application_integration_toolset.js +263 -0
  63. package/dist/cjs/tools/application_integration_tool/clients/cloud_request.js +133 -0
  64. package/dist/cjs/tools/application_integration_tool/clients/connections_client.js +671 -0
  65. package/dist/cjs/tools/application_integration_tool/clients/integration_client.js +223 -0
  66. package/dist/cjs/tools/application_integration_tool/integration_connector_tool.js +184 -0
  67. package/dist/cjs/tools/example_tool.js +10 -0
  68. package/dist/cjs/tools/function_tool.js +319 -0
  69. package/dist/cjs/tools/google_api_tool/google_api_tool.js +100 -0
  70. package/dist/cjs/tools/google_api_tool/google_api_toolset.js +173 -0
  71. package/dist/cjs/tools/google_api_tool/google_api_toolsets.js +124 -0
  72. package/dist/cjs/tools/google_api_tool/googleapi_to_openapi_converter.js +440 -0
  73. package/dist/cjs/tools/google_api_tool/index.js +61 -0
  74. package/dist/cjs/tools/load_artifacts_tool.js +12 -6
  75. package/dist/cjs/tools/load_memory_tool.js +12 -10
  76. package/dist/cjs/tools/mcp/index.js +12 -0
  77. package/dist/cjs/tools/mcp/mcp_session_manager.js +25 -0
  78. package/dist/cjs/tools/mcp/mcp_toolset.js +1 -14
  79. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +1 -2
  80. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +46 -2
  81. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +4 -3
  82. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +94 -10
  83. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
  84. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
  85. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +14 -2
  86. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +7 -13
  87. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +17 -1
  88. package/dist/cjs/tools/retrieval/base_retrieval_tool.js +18 -3
  89. package/dist/cjs/tools/toolbox_toolset.js +174 -0
  90. package/dist/cjs/tools/webmcp/webmcp_toolset.js +1 -14
  91. package/dist/cjs/utils/client_labels.js +19 -2
  92. package/dist/cjs/utils/env_aware_utils.js +6 -8
  93. package/dist/cjs/utils/error_utils.js +11 -11
  94. package/dist/cjs/utils/failover_utils.js +1 -1
  95. package/dist/cjs/utils/file_extension_utils.js +11 -0
  96. package/dist/cjs/utils/file_utils.js +2 -24
  97. package/dist/cjs/utils/gemini_schema_util.js +28 -7
  98. package/dist/cjs/utils/json_utils.js +49 -0
  99. package/dist/cjs/utils/live_connection_utils.js +4 -5
  100. package/dist/cjs/utils/logger_node.js +11 -1
  101. package/dist/cjs/utils/object_notation_utils.js +6 -3
  102. package/dist/cjs/utils/output_schema_utils.js +5 -2
  103. package/dist/cjs/utils/streaming_utils.js +12 -12
  104. package/dist/cjs/utils/task.js +1 -1
  105. package/dist/cjs/version.js +1 -1
  106. package/dist/esm/a2a/a2a_remote_agent.js +4 -1
  107. package/dist/esm/a2a/agent_card.js +103 -27
  108. package/dist/esm/a2a/agent_to_a2a.js +5 -2
  109. package/dist/esm/agents/agent_engine_client.js +144 -0
  110. package/dist/esm/agents/base_agent.js +20 -4
  111. package/dist/esm/agents/functions.js +226 -25
  112. package/dist/esm/agents/instructions.js +6 -2
  113. package/dist/esm/agents/invocation_context.js +24 -4
  114. package/dist/esm/agents/langgraph_agent.js +123 -0
  115. package/dist/esm/agents/llm_agent.js +204 -110
  116. package/dist/esm/agents/processors/basic_llm_request_processor.js +1 -1
  117. package/dist/esm/agents/processors/code_execution_request_processor.js +21 -8
  118. package/dist/esm/agents/processors/content_processor_utils.js +38 -10
  119. package/dist/esm/agents/processors/content_request_processor.js +34 -2
  120. package/dist/esm/agents/processors/instructions_llm_request_processor.js +1 -1
  121. package/dist/esm/agents/processors/nl_planning_processor.js +12 -3
  122. package/dist/esm/artifacts/in_memory_artifact_service.js +14 -0
  123. package/dist/esm/auth/auth_handler.js +37 -5
  124. package/dist/esm/auth/auth_schemes.js +8 -0
  125. package/dist/esm/cli/cli_eval.js +510 -0
  126. package/dist/esm/cli/utils/envs.js +78 -0
  127. package/dist/esm/cli/utils/evals.js +109 -0
  128. package/dist/esm/cli/utils/logs.js +111 -0
  129. package/dist/esm/code_executors/agent_engine_sandbox_code_executor.js +7 -2
  130. package/dist/esm/code_executors/code_execution_utils.js +46 -16
  131. package/dist/esm/code_executors/code_executor_context.js +5 -2
  132. package/dist/esm/code_executors/container_code_executor.js +27 -16
  133. package/dist/esm/code_executors/unsafe_local_code_executor.js +6 -1
  134. package/dist/esm/common.js +65 -4
  135. package/dist/esm/context/summarizers/llm_summarizer.js +12 -10
  136. package/dist/esm/context/token_based_context_compactor.js +2 -1
  137. package/dist/esm/errors/input_validation_error.js +3 -2
  138. package/dist/esm/events/event.js +4 -2
  139. package/dist/esm/examples/example_util.js +21 -1
  140. package/dist/esm/flows/llm_flows/audio_transcriber.js +142 -0
  141. package/dist/esm/index.js +114 -2
  142. package/dist/esm/integrations/agent_registry/helpers.js +1 -1
  143. package/dist/esm/models/gemini_llm_connection.js +16 -8
  144. package/dist/esm/models/google_llm.js +14 -17
  145. package/dist/esm/models/llm_response.js +9 -1
  146. package/dist/esm/models/registry.js +1 -1
  147. package/dist/esm/models/routed_llm.js +9 -8
  148. package/dist/esm/planners/plan_re_act_planner.js +1 -1
  149. package/dist/esm/plugins/base_plugin.js +13 -23
  150. package/dist/esm/runner/in_memory_runner.js +6 -11
  151. package/dist/esm/runner/runner.js +105 -33
  152. package/dist/esm/sessions/base_session_service.js +12 -7
  153. package/dist/esm/sessions/database_session_service.js +49 -28
  154. package/dist/esm/sessions/db/operations.js +1 -1
  155. package/dist/esm/sessions/in_memory_session_service.js +3 -1
  156. package/dist/esm/sessions/stale_session_error.js +31 -0
  157. package/dist/esm/sessions/state.js +8 -4
  158. package/dist/esm/sessions/vertex_ai_session_service.js +34 -15
  159. package/dist/esm/skills/loader.js +51 -17
  160. package/dist/esm/telemetry/setup.js +1 -2
  161. package/dist/esm/telemetry/tracing.js +151 -74
  162. package/dist/esm/tools/agent_tool.js +44 -0
  163. package/dist/esm/tools/apihub_tool/apihub_toolset.js +101 -0
  164. package/dist/esm/tools/apihub_tool/clients/apihub_client.js +244 -0
  165. package/dist/esm/tools/apihub_tool/clients/secret_client.js +132 -0
  166. package/dist/esm/tools/apihub_tool/clients/service_account.js +21 -0
  167. package/dist/esm/tools/application_integration_tool/application_integration_toolset.js +245 -0
  168. package/dist/esm/tools/application_integration_tool/clients/cloud_request.js +103 -0
  169. package/dist/esm/tools/application_integration_tool/clients/connections_client.js +629 -0
  170. package/dist/esm/tools/application_integration_tool/clients/integration_client.js +219 -0
  171. package/dist/esm/tools/application_integration_tool/integration_connector_tool.js +158 -0
  172. package/dist/esm/tools/example_tool.js +13 -1
  173. package/dist/esm/tools/function_tool.js +316 -0
  174. package/dist/esm/tools/google_api_tool/google_api_tool.js +73 -0
  175. package/dist/esm/tools/google_api_tool/google_api_toolset.js +146 -0
  176. package/dist/esm/tools/google_api_tool/google_api_toolsets.js +94 -0
  177. package/dist/esm/tools/google_api_tool/googleapi_to_openapi_converter.js +393 -0
  178. package/dist/esm/tools/google_api_tool/index.js +31 -0
  179. package/dist/esm/tools/load_artifacts_tool.js +10 -5
  180. package/dist/esm/tools/load_memory_tool.js +12 -10
  181. package/dist/esm/tools/mcp/index.js +6 -0
  182. package/dist/esm/tools/mcp/mcp_session_manager.js +25 -0
  183. package/dist/esm/tools/mcp/mcp_toolset.js +1 -14
  184. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +1 -2
  185. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +50 -3
  186. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +4 -3
  187. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +94 -10
  188. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
  189. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
  190. package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +15 -2
  191. package/dist/esm/tools/openapi_tool/openapi_toolset.js +6 -12
  192. package/dist/esm/tools/openapi_tool/rest_api_tool.js +17 -1
  193. package/dist/esm/tools/retrieval/base_retrieval_tool.js +16 -2
  194. package/dist/esm/tools/toolbox_toolset.js +148 -0
  195. package/dist/esm/tools/webmcp/webmcp_toolset.js +1 -14
  196. package/dist/esm/utils/client_labels.js +19 -2
  197. package/dist/esm/utils/env_aware_utils.js +6 -8
  198. package/dist/esm/utils/error_utils.js +9 -10
  199. package/dist/esm/utils/failover_utils.js +1 -1
  200. package/dist/esm/utils/file_extension_utils.js +11 -0
  201. package/dist/esm/utils/file_utils.js +2 -23
  202. package/dist/esm/utils/gemini_schema_util.js +27 -7
  203. package/dist/esm/utils/json_utils.js +21 -0
  204. package/dist/esm/utils/live_connection_utils.js +4 -5
  205. package/dist/esm/utils/logger_node.js +11 -1
  206. package/dist/esm/utils/object_notation_utils.js +4 -2
  207. package/dist/esm/utils/output_schema_utils.js +5 -2
  208. package/dist/esm/utils/streaming_utils.js +11 -11
  209. package/dist/esm/utils/task.js +1 -1
  210. package/dist/esm/version.js +1 -1
  211. package/dist/types/a2a/a2a_remote_agent.d.ts +9 -0
  212. package/dist/types/a2a/agent_card.d.ts +44 -1
  213. package/dist/types/a2a/agent_to_a2a.d.ts +9 -0
  214. package/dist/types/a2a/index.d.ts +1 -0
  215. package/dist/types/agents/agent_engine_client.d.ts +37 -0
  216. package/dist/types/agents/base_agent.d.ts +12 -0
  217. package/dist/types/agents/functions.d.ts +33 -1
  218. package/dist/types/agents/invocation_context.d.ts +20 -1
  219. package/dist/types/agents/langgraph_agent.d.ts +153 -0
  220. package/dist/types/agents/llm_agent.d.ts +5 -1
  221. package/dist/types/agents/processors/content_processor_utils.d.ts +4 -2
  222. package/dist/types/agents/processors/nl_planning_processor.d.ts +2 -1
  223. package/dist/types/auth/auth_handler.d.ts +28 -1
  224. package/dist/types/auth/auth_schemes.d.ts +13 -0
  225. package/dist/types/cli/cli_eval.d.ts +173 -0
  226. package/dist/types/cli/utils/envs.d.ts +23 -0
  227. package/dist/types/cli/utils/evals.d.ts +47 -0
  228. package/dist/types/cli/utils/logs.d.ts +38 -0
  229. package/dist/types/code_executors/code_execution_utils.d.ts +39 -0
  230. package/dist/types/code_executors/code_executor_context.d.ts +1 -0
  231. package/dist/types/code_executors/container_code_executor.d.ts +17 -5
  232. package/dist/types/common.d.ts +24 -5
  233. package/dist/types/errors/input_validation_error.d.ts +2 -1
  234. package/dist/types/events/event.d.ts +4 -0
  235. package/dist/types/examples/example_util.d.ts +17 -0
  236. package/dist/types/flows/llm_flows/audio_transcriber.d.ts +85 -0
  237. package/dist/types/index.d.ts +19 -2
  238. package/dist/types/models/gemini_llm_connection.d.ts +6 -7
  239. package/dist/types/models/routed_llm.d.ts +1 -1
  240. package/dist/types/plugins/base_plugin.d.ts +0 -10
  241. package/dist/types/runner/in_memory_runner.d.ts +2 -1
  242. package/dist/types/runner/runner.d.ts +34 -0
  243. package/dist/types/sessions/base_session_service.d.ts +5 -0
  244. package/dist/types/sessions/database_session_service.d.ts +17 -1
  245. package/dist/types/sessions/stale_session_error.d.ts +21 -0
  246. package/dist/types/sessions/state.d.ts +5 -1
  247. package/dist/types/sessions/vertex_ai_session_service.d.ts +8 -0
  248. package/dist/types/skills/loader.d.ts +3 -2
  249. package/dist/types/skills/skill.d.ts +1 -1
  250. package/dist/types/telemetry/tracing.d.ts +20 -4
  251. package/dist/types/tools/apihub_tool/apihub_toolset.d.ts +115 -0
  252. package/dist/types/tools/apihub_tool/clients/apihub_client.d.ts +142 -0
  253. package/dist/types/tools/apihub_tool/clients/secret_client.d.ts +55 -0
  254. package/dist/types/tools/apihub_tool/clients/service_account.d.ts +11 -0
  255. package/dist/types/tools/application_integration_tool/application_integration_toolset.d.ts +109 -0
  256. package/dist/types/tools/application_integration_tool/clients/cloud_request.d.ts +53 -0
  257. package/dist/types/tools/application_integration_tool/clients/connections_client.d.ts +229 -0
  258. package/dist/types/tools/application_integration_tool/clients/integration_client.d.ts +72 -0
  259. package/dist/types/tools/application_integration_tool/integration_connector_tool.d.ts +70 -0
  260. package/dist/types/tools/base_toolset.d.ts +6 -5
  261. package/dist/types/tools/example_tool.d.ts +10 -0
  262. package/dist/types/tools/function_tool.d.ts +32 -0
  263. package/dist/types/tools/google_api_tool/google_api_tool.d.ts +37 -0
  264. package/dist/types/tools/google_api_tool/google_api_toolset.d.ts +55 -0
  265. package/dist/types/tools/google_api_tool/google_api_toolsets.d.ts +48 -0
  266. package/dist/types/tools/google_api_tool/googleapi_to_openapi_converter.d.ts +165 -0
  267. package/dist/types/tools/google_api_tool/index.d.ts +10 -0
  268. package/dist/types/tools/load_artifacts_tool.d.ts +14 -1
  269. package/dist/types/tools/load_memory_tool.d.ts +23 -1
  270. package/dist/types/tools/mcp/index.d.ts +3 -0
  271. package/dist/types/tools/mcp/mcp_session_manager.d.ts +34 -1
  272. package/dist/types/tools/mcp/mcp_toolset.d.ts +15 -0
  273. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +19 -0
  274. package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +18 -1
  275. package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +12 -0
  276. package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +8 -0
  277. package/dist/types/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.d.ts +2 -1
  278. package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +5 -0
  279. package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +10 -0
  280. package/dist/types/tools/retrieval/base_retrieval_tool.d.ts +15 -0
  281. package/dist/types/tools/toolbox_toolset.d.ts +159 -0
  282. package/dist/types/utils/client_labels.d.ts +2 -1
  283. package/dist/types/utils/env_aware_utils.d.ts +18 -2
  284. package/dist/types/utils/error_utils.d.ts +7 -0
  285. package/dist/types/utils/file_utils.d.ts +6 -1
  286. package/dist/types/utils/gemini_schema_util.d.ts +9 -2
  287. package/dist/types/utils/json_utils.d.ts +11 -0
  288. package/dist/types/utils/object_notation_utils.d.ts +7 -0
  289. package/dist/types/utils/output_schema_utils.d.ts +3 -2
  290. package/dist/types/utils/simple_zod_to_json.d.ts +1 -2
  291. package/dist/types/utils/streaming_utils.d.ts +11 -4
  292. package/dist/types/version.d.ts +1 -1
  293. package/dist/web/index_web.js +117 -110
  294. package/dist/web/index_web.js.map +4 -4
  295. package/package.json +38 -26
  296. package/dist/cjs/models/gemini_continuation.js +0 -232
  297. package/dist/esm/models/gemini_continuation.js +0 -205
  298. package/dist/types/models/gemini_continuation.d.ts +0 -59
@@ -0,0 +1,124 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
13
+ var __export = (target, all) => {
14
+ for (var name in all)
15
+ __defProp(target, name, { get: all[name], enumerable: true });
16
+ };
17
+ var __copyProps = (to, from, except, desc) => {
18
+ if (from && typeof from === "object" || typeof from === "function") {
19
+ for (let key of __getOwnPropNames(from))
20
+ if (!__hasOwnProp.call(to, key) && key !== except)
21
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22
+ }
23
+ return to;
24
+ };
25
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
+ var __decorateClass = (decorators, target, key, kind) => {
27
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
28
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
29
+ if (decorator = decorators[i])
30
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
31
+ if (kind && result) __defProp(target, key, result);
32
+ return result;
33
+ };
34
+ var google_api_toolsets_exports = {};
35
+ __export(google_api_toolsets_exports, {
36
+ BigQueryToolset: () => BigQueryToolset,
37
+ CalendarToolset: () => CalendarToolset,
38
+ DocsToolset: () => DocsToolset,
39
+ GmailToolset: () => GmailToolset,
40
+ SheetsToolset: () => SheetsToolset,
41
+ SlidesToolset: () => SlidesToolset,
42
+ YoutubeToolset: () => YoutubeToolset
43
+ });
44
+ module.exports = __toCommonJS(google_api_toolsets_exports);
45
+ var import_experimental = require("../../utils/experimental.js");
46
+ var import_google_api_toolset = require("./google_api_toolset.js");
47
+ /**
48
+ * @license
49
+ * Copyright 2026 Google LLC
50
+ * SPDX-License-Identifier: Apache-2.0
51
+ */
52
+ let BigQueryToolset = class extends import_google_api_toolset.GoogleApiToolset {
53
+ constructor(options = {}) {
54
+ super({ ...options, apiName: "bigquery", apiVersion: "v2" });
55
+ }
56
+ };
57
+ __name(BigQueryToolset, "BigQueryToolset");
58
+ BigQueryToolset = __decorateClass([
59
+ import_experimental.experimental
60
+ ], BigQueryToolset);
61
+ let CalendarToolset = class extends import_google_api_toolset.GoogleApiToolset {
62
+ constructor(options = {}) {
63
+ super({ ...options, apiName: "calendar", apiVersion: "v3" });
64
+ }
65
+ };
66
+ __name(CalendarToolset, "CalendarToolset");
67
+ CalendarToolset = __decorateClass([
68
+ import_experimental.experimental
69
+ ], CalendarToolset);
70
+ let GmailToolset = class extends import_google_api_toolset.GoogleApiToolset {
71
+ constructor(options = {}) {
72
+ super({ ...options, apiName: "gmail", apiVersion: "v1" });
73
+ }
74
+ };
75
+ __name(GmailToolset, "GmailToolset");
76
+ GmailToolset = __decorateClass([
77
+ import_experimental.experimental
78
+ ], GmailToolset);
79
+ let YoutubeToolset = class extends import_google_api_toolset.GoogleApiToolset {
80
+ constructor(options = {}) {
81
+ super({ ...options, apiName: "youtube", apiVersion: "v3" });
82
+ }
83
+ };
84
+ __name(YoutubeToolset, "YoutubeToolset");
85
+ YoutubeToolset = __decorateClass([
86
+ import_experimental.experimental
87
+ ], YoutubeToolset);
88
+ let SlidesToolset = class extends import_google_api_toolset.GoogleApiToolset {
89
+ constructor(options = {}) {
90
+ super({ ...options, apiName: "slides", apiVersion: "v1" });
91
+ }
92
+ };
93
+ __name(SlidesToolset, "SlidesToolset");
94
+ SlidesToolset = __decorateClass([
95
+ import_experimental.experimental
96
+ ], SlidesToolset);
97
+ let SheetsToolset = class extends import_google_api_toolset.GoogleApiToolset {
98
+ constructor(options = {}) {
99
+ super({ ...options, apiName: "sheets", apiVersion: "v4" });
100
+ }
101
+ };
102
+ __name(SheetsToolset, "SheetsToolset");
103
+ SheetsToolset = __decorateClass([
104
+ import_experimental.experimental
105
+ ], SheetsToolset);
106
+ let DocsToolset = class extends import_google_api_toolset.GoogleApiToolset {
107
+ constructor(options = {}) {
108
+ super({ ...options, apiName: "docs", apiVersion: "v1" });
109
+ }
110
+ };
111
+ __name(DocsToolset, "DocsToolset");
112
+ DocsToolset = __decorateClass([
113
+ import_experimental.experimental
114
+ ], DocsToolset);
115
+ // Annotate the CommonJS export names for ESM import in node:
116
+ 0 && (module.exports = {
117
+ BigQueryToolset,
118
+ CalendarToolset,
119
+ DocsToolset,
120
+ GmailToolset,
121
+ SheetsToolset,
122
+ SlidesToolset,
123
+ YoutubeToolset
124
+ });
@@ -0,0 +1,440 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __create = Object.create;
9
+ var __defProp = Object.defineProperty;
10
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11
+ var __getOwnPropNames = Object.getOwnPropertyNames;
12
+ var __getProtoOf = Object.getPrototypeOf;
13
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
15
+ var __export = (target, all) => {
16
+ for (var name in all)
17
+ __defProp(target, name, { get: all[name], enumerable: true });
18
+ };
19
+ var __copyProps = (to, from, except, desc) => {
20
+ if (from && typeof from === "object" || typeof from === "function") {
21
+ for (let key of __getOwnPropNames(from))
22
+ if (!__hasOwnProp.call(to, key) && key !== except)
23
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
24
+ }
25
+ return to;
26
+ };
27
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
28
+ // If the importer is in node compatibility mode or this is not an ESM
29
+ // file that has been converted to a CommonJS file using a Babel-
30
+ // compatible transform (i.e. "__esModule" has not been set), then set
31
+ // "default" to the CommonJS "module.exports" for node compatibility.
32
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
33
+ mod
34
+ ));
35
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
36
+ var __decorateClass = (decorators, target, key, kind) => {
37
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
38
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
39
+ if (decorator = decorators[i])
40
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
41
+ if (kind && result) __defProp(target, key, result);
42
+ return result;
43
+ };
44
+ var googleapi_to_openapi_converter_exports = {};
45
+ __export(googleapi_to_openapi_converter_exports, {
46
+ GoogleApiToOpenApiConverter: () => GoogleApiToOpenApiConverter,
47
+ convertInfo: () => convertInfo,
48
+ convertMethods: () => convertMethods,
49
+ convertOperation: () => convertOperation,
50
+ convertParameterSchema: () => convertParameterSchema,
51
+ convertResources: () => convertResources,
52
+ convertSchemaObject: () => convertSchemaObject,
53
+ convertSchemas: () => convertSchemas,
54
+ convertSecuritySchemes: () => convertSecuritySchemes,
55
+ convertServers: () => convertServers,
56
+ extractPathParameters: () => extractPathParameters,
57
+ normalizeGoogleSchemaRef: () => normalizeGoogleSchemaRef
58
+ });
59
+ module.exports = __toCommonJS(googleapi_to_openapi_converter_exports);
60
+ var fs = __toESM(require("node:fs"), 1);
61
+ var import_experimental = require("../../utils/experimental.js");
62
+ var import_logger = require("../../utils/logger.js");
63
+ /**
64
+ * @license
65
+ * Copyright 2026 Google LLC
66
+ * SPDX-License-Identifier: Apache-2.0
67
+ */
68
+ const GOOGLE_DISCOVERY_BASE_URL = "https://www.googleapis.com/discovery/v1/apis";
69
+ const GOOGLE_OAUTH2_AUTH_URL = "https://accounts.google.com/o/oauth2/auth";
70
+ const GOOGLE_OAUTH2_TOKEN_URL = "https://oauth2.googleapis.com/token";
71
+ function normalizeGoogleSchemaRef(ref) {
72
+ if (ref.startsWith("#")) {
73
+ return `#/components/schemas/${ref.slice(1)}`;
74
+ }
75
+ return `#/components/schemas/${ref}`;
76
+ }
77
+ __name(normalizeGoogleSchemaRef, "normalizeGoogleSchemaRef");
78
+ function convertInfo(googleApiSpec, openapiSpec, apiName, apiVersion) {
79
+ var _a, _b, _c, _d;
80
+ openapiSpec.info = {
81
+ title: (_a = googleApiSpec.title) != null ? _a : `${apiName} API`,
82
+ description: (_b = googleApiSpec.description) != null ? _b : "",
83
+ version: (_c = googleApiSpec.version) != null ? _c : apiVersion,
84
+ contact: {},
85
+ termsOfService: (_d = googleApiSpec.documentationLink) != null ? _d : ""
86
+ };
87
+ const docsLink = googleApiSpec.documentationLink;
88
+ if (docsLink) {
89
+ openapiSpec.externalDocs = {
90
+ description: "API Documentation",
91
+ url: docsLink
92
+ };
93
+ }
94
+ }
95
+ __name(convertInfo, "convertInfo");
96
+ function convertServers(googleApiSpec, openapiSpec, apiName, apiVersion) {
97
+ var _a, _b;
98
+ let baseUrl = `${(_a = googleApiSpec.rootUrl) != null ? _a : ""}${(_b = googleApiSpec.servicePath) != null ? _b : ""}`;
99
+ if (baseUrl.endsWith("/")) {
100
+ baseUrl = baseUrl.slice(0, -1);
101
+ }
102
+ openapiSpec.servers = [
103
+ {
104
+ url: baseUrl,
105
+ description: `${apiName} ${apiVersion} API`
106
+ }
107
+ ];
108
+ }
109
+ __name(convertServers, "convertServers");
110
+ function convertSecuritySchemes(googleApiSpec, openapiSpec) {
111
+ var _a, _b, _c, _d, _e;
112
+ openapiSpec.components = (_a = openapiSpec.components) != null ? _a : {};
113
+ openapiSpec.components.securitySchemes = (_b = openapiSpec.components.securitySchemes) != null ? _b : {};
114
+ const oauth2 = (_c = googleApiSpec.auth) == null ? void 0 : _c.oauth2;
115
+ const hasOauth2 = oauth2 !== void 0 && Object.keys(oauth2).length > 0;
116
+ const formattedScopes = {};
117
+ if (hasOauth2) {
118
+ const scopes = (_d = oauth2.scopes) != null ? _d : {};
119
+ for (const [scope, scopeInfo] of Object.entries(scopes)) {
120
+ formattedScopes[scope] = (_e = scopeInfo.description) != null ? _e : "";
121
+ }
122
+ openapiSpec.components.securitySchemes["oauth2"] = {
123
+ type: "oauth2",
124
+ description: "OAuth 2.0 authentication",
125
+ flows: {
126
+ authorizationCode: {
127
+ authorizationUrl: GOOGLE_OAUTH2_AUTH_URL,
128
+ tokenUrl: GOOGLE_OAUTH2_TOKEN_URL,
129
+ scopes: formattedScopes
130
+ }
131
+ }
132
+ };
133
+ }
134
+ openapiSpec.components.securitySchemes["apiKey"] = {
135
+ type: "apiKey",
136
+ in: "query",
137
+ name: "key",
138
+ description: "API key for accessing this API"
139
+ };
140
+ openapiSpec.security = [
141
+ hasOauth2 ? { oauth2: Object.keys(formattedScopes) } : {},
142
+ { apiKey: [] }
143
+ ];
144
+ }
145
+ __name(convertSecuritySchemes, "convertSecuritySchemes");
146
+ function convertSchemaObject(schemaDef) {
147
+ var _a;
148
+ const result = {};
149
+ if (schemaDef.type !== void 0) {
150
+ const gtype = schemaDef.type;
151
+ if (gtype === "object") {
152
+ result["type"] = "object";
153
+ if (schemaDef.properties !== void 0) {
154
+ const properties = {};
155
+ for (const [propName, propDef] of Object.entries(
156
+ schemaDef.properties
157
+ )) {
158
+ properties[propName] = convertSchemaObject(propDef);
159
+ }
160
+ result["properties"] = properties;
161
+ }
162
+ const requiredFields = [];
163
+ for (const [propName, propDef] of Object.entries(
164
+ (_a = schemaDef.properties) != null ? _a : {}
165
+ )) {
166
+ if (propDef.required) {
167
+ requiredFields.push(propName);
168
+ }
169
+ }
170
+ if (requiredFields.length > 0) {
171
+ result["required"] = requiredFields;
172
+ }
173
+ } else if (gtype === "array") {
174
+ result["type"] = "array";
175
+ if (schemaDef.items !== void 0) {
176
+ result["items"] = convertSchemaObject(schemaDef.items);
177
+ }
178
+ } else if (gtype === "any") {
179
+ result["oneOf"] = [
180
+ { type: "object" },
181
+ { type: "array" },
182
+ { type: "string" },
183
+ { type: "number" },
184
+ { type: "boolean" },
185
+ { type: "null" }
186
+ ];
187
+ } else {
188
+ result["type"] = gtype;
189
+ }
190
+ }
191
+ if (schemaDef.$ref !== void 0) {
192
+ result["$ref"] = normalizeGoogleSchemaRef(schemaDef.$ref);
193
+ }
194
+ if (schemaDef.format !== void 0) {
195
+ result["format"] = schemaDef.format;
196
+ }
197
+ if (schemaDef.enum !== void 0) {
198
+ result["enum"] = schemaDef.enum;
199
+ }
200
+ if (schemaDef.description !== void 0) {
201
+ result["description"] = schemaDef.description;
202
+ }
203
+ if (schemaDef.pattern !== void 0) {
204
+ result["pattern"] = schemaDef.pattern;
205
+ }
206
+ if (schemaDef.default !== void 0) {
207
+ result["default"] = schemaDef.default;
208
+ }
209
+ return result;
210
+ }
211
+ __name(convertSchemaObject, "convertSchemaObject");
212
+ function convertSchemas(googleApiSpec, openapiSpec) {
213
+ var _a, _b, _c;
214
+ openapiSpec.components = (_a = openapiSpec.components) != null ? _a : {};
215
+ openapiSpec.components.schemas = (_b = openapiSpec.components.schemas) != null ? _b : {};
216
+ const schemas = (_c = googleApiSpec.schemas) != null ? _c : {};
217
+ for (const [schemaName, schemaDef] of Object.entries(schemas)) {
218
+ openapiSpec.components.schemas[schemaName] = convertSchemaObject(schemaDef);
219
+ }
220
+ }
221
+ __name(convertSchemas, "convertSchemas");
222
+ function extractPathParameters(path) {
223
+ const params = [];
224
+ for (const match of path.matchAll(/\{\+?([^{}]+)\}/g)) {
225
+ params.push(match[1]);
226
+ }
227
+ return params;
228
+ }
229
+ __name(extractPathParameters, "extractPathParameters");
230
+ function convertParameterSchema(paramData) {
231
+ var _a;
232
+ const schema = {
233
+ type: (_a = paramData.type) != null ? _a : "string"
234
+ };
235
+ if (paramData.enum !== void 0) {
236
+ schema["enum"] = paramData.enum;
237
+ }
238
+ if (paramData.format !== void 0) {
239
+ schema["format"] = paramData.format;
240
+ }
241
+ if (paramData.default !== void 0) {
242
+ schema["default"] = paramData.default;
243
+ }
244
+ if (paramData.pattern !== void 0) {
245
+ schema["pattern"] = paramData.pattern;
246
+ }
247
+ return schema;
248
+ }
249
+ __name(convertParameterSchema, "convertParameterSchema");
250
+ function convertOperation(methodData, pathParams) {
251
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
252
+ const parameters = [];
253
+ for (const paramName of pathParams) {
254
+ parameters.push({
255
+ name: paramName,
256
+ in: "path",
257
+ required: true,
258
+ schema: { type: "string" }
259
+ });
260
+ }
261
+ const pathParamSet = new Set(pathParams);
262
+ for (const [paramName, paramData] of Object.entries(
263
+ (_a = methodData.parameters) != null ? _a : {}
264
+ )) {
265
+ if (pathParamSet.has(paramName)) {
266
+ continue;
267
+ }
268
+ const location = (_b = paramData.location) != null ? _b : "query";
269
+ parameters.push({
270
+ name: paramName,
271
+ in: location,
272
+ description: (_c = paramData.description) != null ? _c : "",
273
+ required: location === "path" ? true : (_d = paramData.required) != null ? _d : false,
274
+ schema: convertParameterSchema(paramData)
275
+ });
276
+ }
277
+ const response200 = {
278
+ description: "Successful operation"
279
+ };
280
+ const responseRef = (_e = methodData.response) == null ? void 0 : _e.$ref;
281
+ if (responseRef) {
282
+ response200.content = {
283
+ "application/json": {
284
+ schema: { $ref: normalizeGoogleSchemaRef(responseRef) }
285
+ }
286
+ };
287
+ }
288
+ const operation = {
289
+ operationId: (_f = methodData.id) != null ? _f : "",
290
+ summary: (_g = methodData.description) != null ? _g : "",
291
+ description: (_h = methodData.description) != null ? _h : "",
292
+ parameters,
293
+ responses: {
294
+ "200": response200,
295
+ "400": { description: "Bad request" },
296
+ "401": { description: "Unauthorized" },
297
+ "403": { description: "Forbidden" },
298
+ "404": { description: "Not found" },
299
+ "500": { description: "Server error" }
300
+ }
301
+ };
302
+ const requestRef = (_i = methodData.request) == null ? void 0 : _i.$ref;
303
+ if (requestRef) {
304
+ operation.requestBody = {
305
+ description: "Request body",
306
+ content: {
307
+ "application/json": {
308
+ schema: { $ref: normalizeGoogleSchemaRef(requestRef) }
309
+ }
310
+ },
311
+ required: true
312
+ };
313
+ }
314
+ const scopes = (_j = methodData.scopes) != null ? _j : [];
315
+ if (scopes.length > 0) {
316
+ operation.security = [{ oauth2: scopes }];
317
+ }
318
+ return operation;
319
+ }
320
+ __name(convertOperation, "convertOperation");
321
+ function convertMethods(methods, _resourcePath, openapiSpec) {
322
+ var _a, _b, _c;
323
+ for (const methodData of Object.values(methods)) {
324
+ const httpMethod = ((_a = methodData.httpMethod) != null ? _a : "GET").toLowerCase();
325
+ let restPath = ((_c = (_b = methodData.flatPath) != null ? _b : methodData.path) != null ? _c : "/").replace(
326
+ /\{\+([^{}]+)\}/g,
327
+ (_match, paramName) => `{${paramName}}`
328
+ );
329
+ if (!restPath.startsWith("/")) {
330
+ restPath = `/${restPath}`;
331
+ }
332
+ const pathParams = extractPathParameters(restPath);
333
+ if (!openapiSpec.paths[restPath]) {
334
+ openapiSpec.paths[restPath] = {};
335
+ }
336
+ const pathItem = openapiSpec.paths[restPath];
337
+ pathItem[httpMethod] = convertOperation(methodData, pathParams);
338
+ }
339
+ }
340
+ __name(convertMethods, "convertMethods");
341
+ function convertResources(resources, openapiSpec, parentPath = "") {
342
+ var _a;
343
+ for (const [resourceName, resourceData] of Object.entries(resources)) {
344
+ const resourcePath = `${parentPath}/${resourceName}`;
345
+ convertMethods((_a = resourceData.methods) != null ? _a : {}, resourcePath, openapiSpec);
346
+ if (resourceData.resources && Object.keys(resourceData.resources).length > 0) {
347
+ convertResources(resourceData.resources, openapiSpec, resourcePath);
348
+ }
349
+ }
350
+ }
351
+ __name(convertResources, "convertResources");
352
+ let GoogleApiToOpenApiConverter = class {
353
+ constructor(apiName, apiVersion) {
354
+ this.googleApiSpec = null;
355
+ this.apiName = apiName;
356
+ this.apiVersion = apiVersion;
357
+ this.openapiSpec = {
358
+ openapi: "3.0.0",
359
+ info: {},
360
+ servers: [],
361
+ paths: {},
362
+ components: { schemas: {}, securitySchemes: {} }
363
+ };
364
+ }
365
+ async fetchGoogleApiSpec() {
366
+ try {
367
+ import_logger.logger.debug(
368
+ `Fetching Google API spec for ${this.apiName} ${this.apiVersion}`
369
+ );
370
+ const url = `${GOOGLE_DISCOVERY_BASE_URL}/${encodeURIComponent(this.apiName)}/${encodeURIComponent(this.apiVersion)}/rest`;
371
+ const response = await globalThis.fetch(url);
372
+ if (response.status >= 400) {
373
+ throw new Error(
374
+ `HTTP Error ${response.status}: Failed to fetch Google API spec for ${this.apiName} ${this.apiVersion}`
375
+ );
376
+ }
377
+ const spec = await response.json();
378
+ if (!spec || typeof spec !== "object" || Object.keys(spec).length === 0) {
379
+ throw new Error("Failed to retrieve API specification");
380
+ }
381
+ this.googleApiSpec = spec;
382
+ import_logger.logger.debug(`Successfully fetched ${this.apiName} API specification`);
383
+ } catch (error) {
384
+ import_logger.logger.error(
385
+ `Error fetching API spec: ${error instanceof Error ? error.message : String(error)}`
386
+ );
387
+ throw error;
388
+ }
389
+ }
390
+ async convert() {
391
+ var _a, _b, _c;
392
+ if (!this.googleApiSpec) {
393
+ await this.fetchGoogleApiSpec();
394
+ }
395
+ const spec = (_a = this.googleApiSpec) != null ? _a : {};
396
+ convertInfo(spec, this.openapiSpec, this.apiName, this.apiVersion);
397
+ convertServers(spec, this.openapiSpec, this.apiName, this.apiVersion);
398
+ convertSecuritySchemes(spec, this.openapiSpec);
399
+ convertSchemas(spec, this.openapiSpec);
400
+ convertResources((_b = spec.resources) != null ? _b : {}, this.openapiSpec);
401
+ convertMethods((_c = spec.methods) != null ? _c : {}, "/", this.openapiSpec);
402
+ return this.openapiSpec;
403
+ }
404
+ saveOpenapiSpec(outputPath) {
405
+ fs.writeFileSync(
406
+ outputPath,
407
+ JSON.stringify(this.openapiSpec, null, 2),
408
+ "utf-8"
409
+ );
410
+ import_logger.logger.info(`OpenAPI specification saved to ${outputPath}`);
411
+ }
412
+ };
413
+ __name(GoogleApiToOpenApiConverter, "GoogleApiToOpenApiConverter");
414
+ __decorateClass([
415
+ import_experimental.experimental
416
+ ], GoogleApiToOpenApiConverter.prototype, "fetchGoogleApiSpec", 1);
417
+ __decorateClass([
418
+ import_experimental.experimental
419
+ ], GoogleApiToOpenApiConverter.prototype, "convert", 1);
420
+ __decorateClass([
421
+ import_experimental.experimental
422
+ ], GoogleApiToOpenApiConverter.prototype, "saveOpenapiSpec", 1);
423
+ GoogleApiToOpenApiConverter = __decorateClass([
424
+ import_experimental.experimental
425
+ ], GoogleApiToOpenApiConverter);
426
+ // Annotate the CommonJS export names for ESM import in node:
427
+ 0 && (module.exports = {
428
+ GoogleApiToOpenApiConverter,
429
+ convertInfo,
430
+ convertMethods,
431
+ convertOperation,
432
+ convertParameterSchema,
433
+ convertResources,
434
+ convertSchemaObject,
435
+ convertSchemas,
436
+ convertSecuritySchemes,
437
+ convertServers,
438
+ extractPathParameters,
439
+ normalizeGoogleSchemaRef
440
+ });
@@ -0,0 +1,61 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __export = (target, all) => {
13
+ for (var name in all)
14
+ __defProp(target, name, { get: all[name], enumerable: true });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var google_api_tool_exports = {};
26
+ __export(google_api_tool_exports, {
27
+ BigQueryToolset: () => import_google_api_toolsets.BigQueryToolset,
28
+ CalendarToolset: () => import_google_api_toolsets.CalendarToolset,
29
+ DocsToolset: () => import_google_api_toolsets.DocsToolset,
30
+ GmailToolset: () => import_google_api_toolsets.GmailToolset,
31
+ GoogleApiTool: () => import_google_api_tool.GoogleApiTool,
32
+ GoogleApiToolset: () => import_google_api_toolset.GoogleApiToolset,
33
+ SheetsToolset: () => import_google_api_toolsets.SheetsToolset,
34
+ SlidesToolset: () => import_google_api_toolsets.SlidesToolset,
35
+ YoutubeToolset: () => import_google_api_toolsets.YoutubeToolset,
36
+ isGoogleApiTool: () => import_google_api_tool.isGoogleApiTool,
37
+ isGoogleApiToolset: () => import_google_api_toolset.isGoogleApiToolset
38
+ });
39
+ module.exports = __toCommonJS(google_api_tool_exports);
40
+ var import_google_api_tool = require("./google_api_tool.js");
41
+ var import_google_api_toolset = require("./google_api_toolset.js");
42
+ var import_google_api_toolsets = require("./google_api_toolsets.js");
43
+ /**
44
+ * @license
45
+ * Copyright 2026 Google LLC
46
+ * SPDX-License-Identifier: Apache-2.0
47
+ */
48
+ // Annotate the CommonJS export names for ESM import in node:
49
+ 0 && (module.exports = {
50
+ BigQueryToolset,
51
+ CalendarToolset,
52
+ DocsToolset,
53
+ GmailToolset,
54
+ GoogleApiTool,
55
+ GoogleApiToolset,
56
+ SheetsToolset,
57
+ SlidesToolset,
58
+ YoutubeToolset,
59
+ isGoogleApiTool,
60
+ isGoogleApiToolset
61
+ });
@@ -26,11 +26,13 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
26
26
  var load_artifacts_tool_exports = {};
27
27
  __export(load_artifacts_tool_exports, {
28
28
  LOAD_ARTIFACTS: () => LOAD_ARTIFACTS,
29
- LoadArtifactsTool: () => LoadArtifactsTool
29
+ LoadArtifactsTool: () => LoadArtifactsTool,
30
+ asSafePartForLlm: () => asSafePartForLlm
30
31
  });
31
32
  module.exports = __toCommonJS(load_artifacts_tool_exports);
32
33
  var import_genai = require("@google/genai");
33
34
  var import_llm_request = require("../models/llm_request.js");
35
+ var import_env_aware_utils = require("../utils/env_aware_utils.js");
34
36
  var import_logger = require("../utils/logger.js");
35
37
  var import_base_tool = require("./base_tool.js");
36
38
  /**
@@ -62,6 +64,11 @@ function isInlineMimeTypeSupported(mimeType) {
62
64
  ) || GEMINI_SUPPORTED_INLINE_MIME_TYPES.has(normalized);
63
65
  }
64
66
  __name(isInlineMimeTypeSupported, "isInlineMimeTypeSupported");
67
+ function base64ByteLength(data) {
68
+ const digits = data.replace(/[=\s]/g, "").length;
69
+ return Math.floor(digits * 3 / 4);
70
+ }
71
+ __name(base64ByteLength, "base64ByteLength");
65
72
  function asSafePartForLlm(artifact, artifactName) {
66
73
  const inlineData = artifact.inlineData;
67
74
  if (!inlineData) {
@@ -78,15 +85,13 @@ function asSafePartForLlm(artifact, artifactName) {
78
85
  };
79
86
  }
80
87
  const isTextLike = mimeType.startsWith("text/") || TEXT_LIKE_MIME_TYPES.has(mimeType);
81
- const decodedBuffer = Buffer.from(data, "base64");
82
88
  if (isTextLike) {
83
89
  try {
84
- const decoded = decodedBuffer.toString("utf8");
85
- return { text: decoded };
90
+ return { text: (0, import_env_aware_utils.base64Decode)(data.replace(/-/g, "+").replace(/_/g, "/")) };
86
91
  } catch {
87
92
  }
88
93
  }
89
- const sizeKb = decodedBuffer.length / 1024;
94
+ const sizeKb = base64ByteLength(data) / 1024;
90
95
  return {
91
96
  text: `[Binary artifact: ${artifactName}, type: ${mimeType}, size: ${sizeKb.toFixed(1)} KB. Content cannot be displayed inline.]`
92
97
  };
@@ -214,5 +219,6 @@ const LOAD_ARTIFACTS = new LoadArtifactsTool();
214
219
  // Annotate the CommonJS export names for ESM import in node:
215
220
  0 && (module.exports = {
216
221
  LOAD_ARTIFACTS,
217
- LoadArtifactsTool
222
+ LoadArtifactsTool,
223
+ asSafePartForLlm
218
224
  });