@google/adk 2.2.1 → 2.3.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 (226) 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/functions.js +199 -25
  5. package/dist/cjs/agents/instructions.js +4 -1
  6. package/dist/cjs/agents/invocation_context.js +26 -4
  7. package/dist/cjs/agents/langgraph_agent.js +152 -0
  8. package/dist/cjs/agents/llm_agent.js +175 -101
  9. package/dist/cjs/agents/processors/code_execution_request_processor.js +10 -6
  10. package/dist/cjs/agents/remote_agent.js +187 -0
  11. package/dist/cjs/artifacts/in_memory_artifact_service.js +14 -0
  12. package/dist/cjs/auth/auth_handler.js +37 -5
  13. package/dist/cjs/auth/auth_schemes.js +9 -0
  14. package/dist/cjs/cli/cli_eval.js +532 -0
  15. package/dist/cjs/cli/utils/envs.js +116 -0
  16. package/dist/cjs/cli/utils/evals.js +137 -0
  17. package/dist/cjs/cli/utils/logs.js +150 -0
  18. package/dist/cjs/code_executors/agent_engine_sandbox_code_executor.js +7 -2
  19. package/dist/cjs/code_executors/code_execution_utils.js +48 -16
  20. package/dist/cjs/code_executors/code_executor_context.js +6 -2
  21. package/dist/cjs/common.js +72 -0
  22. package/dist/cjs/context/summarizers/llm_summarizer.js +12 -10
  23. package/dist/cjs/context/token_based_context_compactor.js +2 -1
  24. package/dist/cjs/events/event.js +4 -2
  25. package/dist/cjs/examples/example_util.js +23 -2
  26. package/dist/cjs/flows/llm_flows/audio_transcriber.js +170 -0
  27. package/dist/cjs/index.js +97 -1
  28. package/dist/cjs/integrations/agent_registry/helpers.js +1 -1
  29. package/dist/cjs/models/gemini_llm_connection.js +16 -8
  30. package/dist/cjs/models/google_llm.js +13 -16
  31. package/dist/cjs/models/llm_response.js +9 -1
  32. package/dist/cjs/models/registry.js +1 -1
  33. package/dist/cjs/models/routed_llm.js +9 -8
  34. package/dist/cjs/planners/plan_re_act_planner.js +1 -1
  35. package/dist/cjs/runner/in_memory_runner.js +6 -11
  36. package/dist/cjs/runner/runner.js +105 -33
  37. package/dist/cjs/sessions/db/operations.js +1 -1
  38. package/dist/cjs/sessions/in_memory_session_service.js +3 -1
  39. package/dist/cjs/sessions/state.js +8 -4
  40. package/dist/cjs/sessions/vertex_ai_session_service.js +34 -15
  41. package/dist/cjs/telemetry/tracing.js +97 -66
  42. package/dist/cjs/tools/agent_tool.js +44 -0
  43. package/dist/cjs/tools/apihub_tool/apihub_toolset.js +142 -0
  44. package/dist/cjs/tools/apihub_tool/clients/apihub_client.js +272 -0
  45. package/dist/cjs/tools/apihub_tool/clients/secret_client.js +148 -0
  46. package/dist/cjs/tools/apihub_tool/clients/service_account.js +48 -0
  47. package/dist/cjs/tools/application_integration_tool/application_integration_toolset.js +185 -0
  48. package/dist/cjs/tools/application_integration_tool/clients/cloud_request.js +133 -0
  49. package/dist/cjs/tools/application_integration_tool/clients/connections_client.js +603 -0
  50. package/dist/cjs/tools/application_integration_tool/clients/integration_client.js +219 -0
  51. package/dist/cjs/tools/crewai_tool.js +132 -0
  52. package/dist/cjs/tools/example_tool.js +10 -0
  53. package/dist/cjs/tools/function_tool.js +319 -0
  54. package/dist/cjs/tools/google_api_tool/google_api_tool.js +97 -0
  55. package/dist/cjs/tools/google_api_tool/google_api_tool_set.js +226 -0
  56. package/dist/cjs/tools/google_api_tool/google_api_tool_sets.js +58 -0
  57. package/dist/cjs/tools/google_api_tool/googleapi_to_openapi_converter.js +440 -0
  58. package/dist/cjs/tools/google_api_tool/index.js +64 -0
  59. package/dist/cjs/tools/langchain_tool.js +172 -0
  60. package/dist/cjs/tools/mcp/index.js +12 -0
  61. package/dist/cjs/tools/mcp/mcp_session_manager.js +25 -0
  62. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +1 -2
  63. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +46 -2
  64. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +2 -1
  65. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +94 -10
  66. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +14 -2
  67. package/dist/cjs/tools/retrieval/base_retrieval_tool.js +18 -3
  68. package/dist/cjs/tools/toolbox_tool.js +108 -0
  69. package/dist/cjs/utils/env_aware_utils.js +6 -8
  70. package/dist/cjs/utils/error_utils.js +11 -11
  71. package/dist/cjs/utils/file_extension_utils.js +11 -0
  72. package/dist/cjs/utils/file_utils.js +2 -24
  73. package/dist/cjs/utils/gemini_schema_util.js +4 -1
  74. package/dist/cjs/utils/json_utils.js +49 -0
  75. package/dist/cjs/utils/live_connection_utils.js +4 -5
  76. package/dist/cjs/utils/logger_node.js +7 -1
  77. package/dist/cjs/utils/object_notation_utils.js +6 -3
  78. package/dist/cjs/utils/streaming_utils.js +12 -12
  79. package/dist/cjs/version.js +1 -1
  80. package/dist/esm/a2a/a2a_remote_agent.js +4 -1
  81. package/dist/esm/a2a/agent_card.js +103 -27
  82. package/dist/esm/a2a/agent_to_a2a.js +5 -2
  83. package/dist/esm/agents/functions.js +198 -25
  84. package/dist/esm/agents/instructions.js +4 -1
  85. package/dist/esm/agents/invocation_context.js +24 -4
  86. package/dist/esm/agents/langgraph_agent.js +123 -0
  87. package/dist/esm/agents/llm_agent.js +185 -104
  88. package/dist/esm/agents/processors/code_execution_request_processor.js +13 -8
  89. package/dist/esm/agents/remote_agent.js +164 -0
  90. package/dist/esm/artifacts/in_memory_artifact_service.js +14 -0
  91. package/dist/esm/auth/auth_handler.js +37 -5
  92. package/dist/esm/auth/auth_schemes.js +8 -0
  93. package/dist/esm/cli/cli_eval.js +510 -0
  94. package/dist/esm/cli/utils/envs.js +78 -0
  95. package/dist/esm/cli/utils/evals.js +109 -0
  96. package/dist/esm/cli/utils/logs.js +111 -0
  97. package/dist/esm/code_executors/agent_engine_sandbox_code_executor.js +7 -2
  98. package/dist/esm/code_executors/code_execution_utils.js +46 -16
  99. package/dist/esm/code_executors/code_executor_context.js +5 -2
  100. package/dist/esm/common.js +67 -3
  101. package/dist/esm/context/summarizers/llm_summarizer.js +12 -10
  102. package/dist/esm/context/token_based_context_compactor.js +2 -1
  103. package/dist/esm/events/event.js +4 -2
  104. package/dist/esm/examples/example_util.js +21 -1
  105. package/dist/esm/flows/llm_flows/audio_transcriber.js +142 -0
  106. package/dist/esm/index.js +99 -1
  107. package/dist/esm/integrations/agent_registry/helpers.js +1 -1
  108. package/dist/esm/models/gemini_llm_connection.js +16 -8
  109. package/dist/esm/models/google_llm.js +14 -17
  110. package/dist/esm/models/llm_response.js +9 -1
  111. package/dist/esm/models/registry.js +1 -1
  112. package/dist/esm/models/routed_llm.js +9 -8
  113. package/dist/esm/planners/plan_re_act_planner.js +1 -1
  114. package/dist/esm/runner/in_memory_runner.js +6 -11
  115. package/dist/esm/runner/runner.js +105 -33
  116. package/dist/esm/sessions/db/operations.js +1 -1
  117. package/dist/esm/sessions/in_memory_session_service.js +3 -1
  118. package/dist/esm/sessions/state.js +8 -4
  119. package/dist/esm/sessions/vertex_ai_session_service.js +34 -15
  120. package/dist/esm/telemetry/tracing.js +97 -66
  121. package/dist/esm/tools/agent_tool.js +44 -0
  122. package/dist/esm/tools/apihub_tool/apihub_toolset.js +106 -0
  123. package/dist/esm/tools/apihub_tool/clients/apihub_client.js +244 -0
  124. package/dist/esm/tools/apihub_tool/clients/secret_client.js +132 -0
  125. package/dist/esm/tools/apihub_tool/clients/service_account.js +21 -0
  126. package/dist/esm/tools/application_integration_tool/application_integration_toolset.js +163 -0
  127. package/dist/esm/tools/application_integration_tool/clients/cloud_request.js +103 -0
  128. package/dist/esm/tools/application_integration_tool/clients/connections_client.js +561 -0
  129. package/dist/esm/tools/application_integration_tool/clients/integration_client.js +215 -0
  130. package/dist/esm/tools/crewai_tool.js +107 -0
  131. package/dist/esm/tools/example_tool.js +13 -1
  132. package/dist/esm/tools/function_tool.js +316 -0
  133. package/dist/esm/tools/google_api_tool/google_api_tool.js +70 -0
  134. package/dist/esm/tools/google_api_tool/google_api_tool_set.js +188 -0
  135. package/dist/esm/tools/google_api_tool/google_api_tool_sets.js +24 -0
  136. package/dist/esm/tools/google_api_tool/googleapi_to_openapi_converter.js +393 -0
  137. package/dist/esm/tools/google_api_tool/index.js +33 -0
  138. package/dist/esm/tools/langchain_tool.js +148 -0
  139. package/dist/esm/tools/mcp/index.js +6 -0
  140. package/dist/esm/tools/mcp/mcp_session_manager.js +25 -0
  141. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +1 -2
  142. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +50 -3
  143. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +2 -1
  144. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +94 -10
  145. package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +15 -2
  146. package/dist/esm/tools/retrieval/base_retrieval_tool.js +16 -2
  147. package/dist/esm/tools/toolbox_tool.js +80 -0
  148. package/dist/esm/utils/env_aware_utils.js +6 -8
  149. package/dist/esm/utils/error_utils.js +9 -10
  150. package/dist/esm/utils/file_extension_utils.js +11 -0
  151. package/dist/esm/utils/file_utils.js +2 -23
  152. package/dist/esm/utils/gemini_schema_util.js +4 -1
  153. package/dist/esm/utils/json_utils.js +21 -0
  154. package/dist/esm/utils/live_connection_utils.js +4 -5
  155. package/dist/esm/utils/logger_node.js +7 -1
  156. package/dist/esm/utils/object_notation_utils.js +4 -2
  157. package/dist/esm/utils/streaming_utils.js +11 -11
  158. package/dist/esm/version.js +1 -1
  159. package/dist/types/a2a/a2a_remote_agent.d.ts +9 -0
  160. package/dist/types/a2a/agent_card.d.ts +44 -1
  161. package/dist/types/a2a/agent_to_a2a.d.ts +9 -0
  162. package/dist/types/a2a/index.d.ts +1 -0
  163. package/dist/types/agents/functions.d.ts +33 -1
  164. package/dist/types/agents/invocation_context.d.ts +20 -1
  165. package/dist/types/agents/langgraph_agent.d.ts +153 -0
  166. package/dist/types/agents/remote_agent.d.ts +68 -0
  167. package/dist/types/auth/auth_handler.d.ts +28 -1
  168. package/dist/types/auth/auth_schemes.d.ts +13 -0
  169. package/dist/types/cli/cli_eval.d.ts +173 -0
  170. package/dist/types/cli/utils/envs.d.ts +23 -0
  171. package/dist/types/cli/utils/evals.d.ts +47 -0
  172. package/dist/types/cli/utils/logs.d.ts +38 -0
  173. package/dist/types/code_executors/code_execution_utils.d.ts +39 -0
  174. package/dist/types/code_executors/code_executor_context.d.ts +1 -0
  175. package/dist/types/common.d.ts +27 -4
  176. package/dist/types/events/event.d.ts +4 -0
  177. package/dist/types/examples/example_util.d.ts +17 -0
  178. package/dist/types/flows/llm_flows/audio_transcriber.d.ts +85 -0
  179. package/dist/types/index.d.ts +16 -1
  180. package/dist/types/models/gemini_llm_connection.d.ts +6 -7
  181. package/dist/types/models/routed_llm.d.ts +1 -1
  182. package/dist/types/runner/in_memory_runner.d.ts +2 -1
  183. package/dist/types/runner/runner.d.ts +34 -0
  184. package/dist/types/sessions/state.d.ts +5 -1
  185. package/dist/types/sessions/vertex_ai_session_service.d.ts +8 -0
  186. package/dist/types/skills/skill.d.ts +1 -1
  187. package/dist/types/telemetry/tracing.d.ts +4 -2
  188. package/dist/types/tools/apihub_tool/apihub_toolset.d.ts +122 -0
  189. package/dist/types/tools/apihub_tool/clients/apihub_client.d.ts +142 -0
  190. package/dist/types/tools/apihub_tool/clients/secret_client.d.ts +55 -0
  191. package/dist/types/tools/apihub_tool/clients/service_account.d.ts +11 -0
  192. package/dist/types/tools/application_integration_tool/application_integration_toolset.d.ts +86 -0
  193. package/dist/types/tools/application_integration_tool/clients/cloud_request.d.ts +53 -0
  194. package/dist/types/tools/application_integration_tool/clients/connections_client.d.ts +215 -0
  195. package/dist/types/tools/application_integration_tool/clients/integration_client.d.ts +72 -0
  196. package/dist/types/tools/crewai_tool.d.ts +85 -0
  197. package/dist/types/tools/example_tool.d.ts +10 -0
  198. package/dist/types/tools/function_tool.d.ts +32 -0
  199. package/dist/types/tools/google_api_tool/google_api_tool.d.ts +30 -0
  200. package/dist/types/tools/google_api_tool/google_api_tool_set.d.ts +78 -0
  201. package/dist/types/tools/google_api_tool/google_api_tool_sets.d.ts +33 -0
  202. package/dist/types/tools/google_api_tool/googleapi_to_openapi_converter.d.ts +164 -0
  203. package/dist/types/tools/google_api_tool/index.d.ts +11 -0
  204. package/dist/types/tools/langchain_tool.d.ts +103 -0
  205. package/dist/types/tools/mcp/index.d.ts +3 -0
  206. package/dist/types/tools/mcp/mcp_session_manager.d.ts +34 -1
  207. package/dist/types/tools/mcp/mcp_toolset.d.ts +15 -0
  208. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +19 -0
  209. package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +18 -1
  210. package/dist/types/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.d.ts +2 -1
  211. package/dist/types/tools/retrieval/base_retrieval_tool.d.ts +15 -0
  212. package/dist/types/tools/toolbox_tool.d.ts +73 -0
  213. package/dist/types/utils/env_aware_utils.d.ts +18 -2
  214. package/dist/types/utils/error_utils.d.ts +7 -0
  215. package/dist/types/utils/file_utils.d.ts +6 -1
  216. package/dist/types/utils/gemini_schema_util.d.ts +1 -2
  217. package/dist/types/utils/json_utils.d.ts +11 -0
  218. package/dist/types/utils/object_notation_utils.d.ts +7 -0
  219. package/dist/types/utils/streaming_utils.d.ts +11 -4
  220. package/dist/types/version.d.ts +1 -1
  221. package/dist/web/index_web.js +102 -103
  222. package/dist/web/index_web.js.map +4 -4
  223. package/package.json +8 -3
  224. package/dist/cjs/models/gemini_continuation.js +0 -232
  225. package/dist/esm/models/gemini_continuation.js +0 -205
  226. package/dist/types/models/gemini_continuation.d.ts +0 -59
@@ -0,0 +1,58 @@
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_sets_exports = {};
26
+ __export(google_api_tool_sets_exports, {
27
+ bigqueryToolSet: () => bigqueryToolSet,
28
+ calendarToolSet: () => calendarToolSet,
29
+ docsToolSet: () => docsToolSet,
30
+ gmailToolSet: () => gmailToolSet,
31
+ sheetsToolSet: () => sheetsToolSet,
32
+ slidesToolSet: () => slidesToolSet,
33
+ youtubeToolSet: () => youtubeToolSet
34
+ });
35
+ module.exports = __toCommonJS(google_api_tool_sets_exports);
36
+ var import_google_api_tool_set = require("./google_api_tool_set.js");
37
+ /**
38
+ * @license
39
+ * Copyright 2026 Google LLC
40
+ * SPDX-License-Identifier: Apache-2.0
41
+ */
42
+ const calendarToolSet = (0, import_google_api_tool_set.createLazyGoogleApiToolSet)("calendar", "v3");
43
+ const bigqueryToolSet = (0, import_google_api_tool_set.createLazyGoogleApiToolSet)("bigquery", "v2");
44
+ const gmailToolSet = (0, import_google_api_tool_set.createLazyGoogleApiToolSet)("gmail", "v1");
45
+ const youtubeToolSet = (0, import_google_api_tool_set.createLazyGoogleApiToolSet)("youtube", "v3");
46
+ const slidesToolSet = (0, import_google_api_tool_set.createLazyGoogleApiToolSet)("slides", "v1");
47
+ const sheetsToolSet = (0, import_google_api_tool_set.createLazyGoogleApiToolSet)("sheets", "v4");
48
+ const docsToolSet = (0, import_google_api_tool_set.createLazyGoogleApiToolSet)("docs", "v1");
49
+ // Annotate the CommonJS export names for ESM import in node:
50
+ 0 && (module.exports = {
51
+ bigqueryToolSet,
52
+ calendarToolSet,
53
+ docsToolSet,
54
+ gmailToolSet,
55
+ sheetsToolSet,
56
+ slidesToolSet,
57
+ youtubeToolSet
58
+ });
@@ -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;
323
+ for (const methodData of Object.values(methods)) {
324
+ const httpMethod = ((_a = methodData.httpMethod) != null ? _a : "GET").toLowerCase();
325
+ let restPath = ((_b = methodData.path) != null ? _b : "/").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,64 @@
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
+ GoogleApiToOpenApiConverter: () => import_googleapi_to_openapi_converter.GoogleApiToOpenApiConverter,
28
+ GoogleApiTool: () => import_google_api_tool.GoogleApiTool,
29
+ GoogleApiToolSet: () => import_google_api_tool_set.GoogleApiToolSet,
30
+ bigqueryToolSet: () => import_google_api_tool_sets.bigqueryToolSet,
31
+ calendarToolSet: () => import_google_api_tool_sets.calendarToolSet,
32
+ docsToolSet: () => import_google_api_tool_sets.docsToolSet,
33
+ gmailToolSet: () => import_google_api_tool_sets.gmailToolSet,
34
+ isGoogleApiTool: () => import_google_api_tool.isGoogleApiTool,
35
+ isGoogleApiToolSet: () => import_google_api_tool_set.isGoogleApiToolSet,
36
+ sheetsToolSet: () => import_google_api_tool_sets.sheetsToolSet,
37
+ slidesToolSet: () => import_google_api_tool_sets.slidesToolSet,
38
+ youtubeToolSet: () => import_google_api_tool_sets.youtubeToolSet
39
+ });
40
+ module.exports = __toCommonJS(google_api_tool_exports);
41
+ var import_google_api_tool = require("./google_api_tool.js");
42
+ var import_google_api_tool_set = require("./google_api_tool_set.js");
43
+ var import_google_api_tool_sets = require("./google_api_tool_sets.js");
44
+ var import_googleapi_to_openapi_converter = require("./googleapi_to_openapi_converter.js");
45
+ /**
46
+ * @license
47
+ * Copyright 2026 Google LLC
48
+ * SPDX-License-Identifier: Apache-2.0
49
+ */
50
+ // Annotate the CommonJS export names for ESM import in node:
51
+ 0 && (module.exports = {
52
+ GoogleApiToOpenApiConverter,
53
+ GoogleApiTool,
54
+ GoogleApiToolSet,
55
+ bigqueryToolSet,
56
+ calendarToolSet,
57
+ docsToolSet,
58
+ gmailToolSet,
59
+ isGoogleApiTool,
60
+ isGoogleApiToolSet,
61
+ sheetsToolSet,
62
+ slidesToolSet,
63
+ youtubeToolSet
64
+ });