@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,219 @@
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 integration_client_exports = {};
35
+ __export(integration_client_exports, {
36
+ IntegrationClient: () => IntegrationClient
37
+ });
38
+ module.exports = __toCommonJS(integration_client_exports);
39
+ var import_experimental = require("../../../utils/experimental.js");
40
+ var import_json_utils = require("../../../utils/json_utils.js");
41
+ var import_cloud_request = require("./cloud_request.js");
42
+ var import_connections_client = require("./connections_client.js");
43
+ /**
44
+ * @license
45
+ * Copyright 2026 Google LLC
46
+ * SPDX-License-Identifier: Apache-2.0
47
+ */
48
+ const EXECUTE_CONNECTION_INTEGRATION = "ExecuteConnection";
49
+ const EXECUTE_CUSTOM_QUERY_ACTION = "ExecuteCustomQuery";
50
+ let IntegrationClient = class {
51
+ constructor(options) {
52
+ var _a, _b;
53
+ this.project = options.project;
54
+ this.location = options.location;
55
+ this.integration = options.integration;
56
+ this.trigger = options.trigger;
57
+ this.connection = options.connection;
58
+ this.entityOperations = (_a = options.entityOperations) != null ? _a : {};
59
+ this.actions = (_b = options.actions) != null ? _b : [];
60
+ this.serviceAccountJson = options.serviceAccountJson;
61
+ this.tokenSource = new import_cloud_request.CloudPlatformTokenSource(options.serviceAccountJson);
62
+ }
63
+ /**
64
+ * Fetches the OpenAPI spec Application Integration generates for the API
65
+ * trigger of the integration.
66
+ *
67
+ * @throws Error For a rejected request, a missing credential, or a response
68
+ * that carries no parseable spec.
69
+ */
70
+ async getOpenApiSpecForIntegration() {
71
+ const url = `https://${this.location}-integrations.googleapis.com/v1/projects/${this.project}/locations/${this.location}:generateOpenApiSpec`;
72
+ const body = await (0, import_cloud_request.sendCloudRequest)({
73
+ url,
74
+ method: "POST",
75
+ body: {
76
+ apiTriggerResources: [
77
+ {
78
+ integrationResource: this.integration,
79
+ triggerId: [this.trigger]
80
+ }
81
+ ],
82
+ fileFormat: "JSON"
83
+ },
84
+ tokenSource: this.tokenSource,
85
+ invalidRequestMessage: `Invalid request. Please check the provided values of project(${this.project}), location(${this.location}), integration(${this.integration}) and trigger(${this.trigger}).`
86
+ });
87
+ try {
88
+ const spec = (0, import_json_utils.isJsonObject)(body) ? body["openApiSpec"] : void 0;
89
+ if (typeof spec !== "string") {
90
+ throw new Error("The response carries no openApiSpec string.");
91
+ }
92
+ const parsed = JSON.parse(spec);
93
+ if (!(0, import_json_utils.isJsonObject)(parsed)) {
94
+ throw new Error("The openApiSpec is not a JSON object.");
95
+ }
96
+ return parsed;
97
+ } catch (e) {
98
+ throw (0, import_cloud_request.unexpectedError)(e);
99
+ }
100
+ }
101
+ /**
102
+ * Builds an OpenAPI spec for the entity operations and actions of the
103
+ * connection.
104
+ *
105
+ * Every operation becomes a POST to the `ExecuteConnection` integration,
106
+ * with a path fragment that keeps the paths distinct.
107
+ *
108
+ * @param toolName Prefix of every generated `operationId`.
109
+ * @param toolInstructions Text appended to every operation description.
110
+ * @throws Error When neither entity operations nor actions are configured,
111
+ * or an operation is not one of create, update, delete, list or get.
112
+ */
113
+ async getOpenApiSpecForConnection(toolName = "", toolInstructions = "") {
114
+ var _a;
115
+ if (Object.keys(this.entityOperations).length === 0 && this.actions.length === 0) {
116
+ throw new Error(
117
+ "No entity operations or actions provided. Please provide at least one of them."
118
+ );
119
+ }
120
+ const connectionsClient = new import_connections_client.ConnectionsClient({
121
+ project: this.project,
122
+ location: this.location,
123
+ connection: (_a = this.connection) != null ? _a : "",
124
+ serviceAccountJson: this.serviceAccountJson
125
+ });
126
+ const connectorSpec = structuredClone(import_connections_client.CONNECTOR_BASE_SPEC);
127
+ const schemas = connectorSpec.components.schemas;
128
+ const pathPrefix = `/v2/projects/${this.project}/locations/${this.location}/integrations/${EXECUTE_CONNECTION_INTEGRATION}:execute?triggerId=api_trigger/${EXECUTE_CONNECTION_INTEGRATION}`;
129
+ for (const [entity, requestedOperations] of Object.entries(
130
+ this.entityOperations
131
+ )) {
132
+ const { schema, operations: supportedOperations } = await connectionsClient.getEntitySchemaAndOperations(entity);
133
+ const operations = requestedOperations.length > 0 ? requestedOperations : supportedOperations;
134
+ const schemaAsString = JSON.stringify(schema);
135
+ schemas[`connectorInputPayload_${entity}`] = (0, import_connections_client.connectorPayload)(schema);
136
+ for (const operation of operations) {
137
+ const operationLower = operation.toLowerCase();
138
+ const path = `${pathPrefix}#${operationLower}_${entity}`;
139
+ switch (operationLower) {
140
+ case "create":
141
+ connectorSpec.paths[path] = (0, import_connections_client.createOperation)({
142
+ entity,
143
+ toolName,
144
+ toolInstructions
145
+ });
146
+ schemas[`create_${entity}_Request`] = (0, import_connections_client.createOperationRequest)(entity);
147
+ break;
148
+ case "update":
149
+ connectorSpec.paths[path] = (0, import_connections_client.updateOperation)({
150
+ entity,
151
+ toolName,
152
+ toolInstructions
153
+ });
154
+ schemas[`update_${entity}_Request`] = (0, import_connections_client.updateOperationRequest)(entity);
155
+ break;
156
+ case "delete":
157
+ connectorSpec.paths[path] = (0, import_connections_client.deleteOperation)({
158
+ entity,
159
+ toolName,
160
+ toolInstructions
161
+ });
162
+ schemas[`delete_${entity}_Request`] = (0, import_connections_client.deleteOperationRequest)();
163
+ break;
164
+ case "list":
165
+ connectorSpec.paths[path] = (0, import_connections_client.listOperation)({
166
+ entity,
167
+ schemaAsString,
168
+ toolName,
169
+ toolInstructions
170
+ });
171
+ schemas[`list_${entity}_Request`] = (0, import_connections_client.listOperationRequest)();
172
+ break;
173
+ case "get":
174
+ connectorSpec.paths[path] = (0, import_connections_client.getOperation)({
175
+ entity,
176
+ schemaAsString,
177
+ toolName,
178
+ toolInstructions
179
+ });
180
+ schemas[`get_${entity}_Request`] = (0, import_connections_client.getOperationRequest)();
181
+ break;
182
+ default:
183
+ throw new Error(
184
+ `Invalid operation: ${operation} for entity: ${entity}`
185
+ );
186
+ }
187
+ }
188
+ }
189
+ for (const action of this.actions) {
190
+ const { inputSchema, outputSchema, displayName } = await connectionsClient.getActionSchema(action);
191
+ let operation = "EXECUTE_ACTION";
192
+ if (action === EXECUTE_CUSTOM_QUERY_ACTION) {
193
+ schemas[`${action}_Request`] = (0, import_connections_client.executeCustomQueryRequest)();
194
+ operation = "EXECUTE_QUERY";
195
+ } else {
196
+ schemas[`${displayName}_Request`] = (0, import_connections_client.actionRequest)(displayName);
197
+ schemas[`connectorInputPayload_${displayName}`] = (0, import_connections_client.connectorPayload)(inputSchema);
198
+ }
199
+ schemas[`connectorOutputPayload_${displayName}`] = (0, import_connections_client.connectorPayload)(outputSchema);
200
+ schemas[`${displayName}_Response`] = (0, import_connections_client.actionResponse)(displayName);
201
+ connectorSpec.paths[`${pathPrefix}#${action}`] = (0, import_connections_client.getActionOperation)({
202
+ action,
203
+ operation,
204
+ actionDisplayName: displayName,
205
+ toolName,
206
+ toolInstructions
207
+ });
208
+ }
209
+ return connectorSpec;
210
+ }
211
+ };
212
+ __name(IntegrationClient, "IntegrationClient");
213
+ IntegrationClient = __decorateClass([
214
+ import_experimental.experimental
215
+ ], IntegrationClient);
216
+ // Annotate the CommonJS export names for ESM import in node:
217
+ 0 && (module.exports = {
218
+ IntegrationClient
219
+ });
@@ -0,0 +1,132 @@
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 crewai_tool_exports = {};
27
+ __export(crewai_tool_exports, {
28
+ CrewaiTool: () => CrewaiTool,
29
+ isCrewaiTool: () => isCrewaiTool
30
+ });
31
+ module.exports = __toCommonJS(crewai_tool_exports);
32
+ var import_schema = require("../utils/schema.js");
33
+ var import_simple_zod_to_json = require("../utils/simple_zod_to_json.js");
34
+ var import_variant_utils = require("../utils/variant_utils.js");
35
+ var import_function_tool = require("./function_tool.js");
36
+ /**
37
+ * @license
38
+ * Copyright 2026 Google LLC
39
+ * SPDX-License-Identifier: Apache-2.0
40
+ */
41
+ var _a, _b;
42
+ const CREWAI_TOOL_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.crewaiTool");
43
+ function isCrewaiTool(obj) {
44
+ return typeof obj === "object" && obj !== null && CREWAI_TOOL_SIGNATURE_SYMBOL in obj && obj[CREWAI_TOOL_SIGNATURE_SYMBOL] === true;
45
+ }
46
+ __name(isCrewaiTool, "isCrewaiTool");
47
+ function isCrewaiToolConfig(value) {
48
+ return typeof value === "object" && value !== null && "tool" in value && typeof value.tool === "object" && value.tool !== null && typeof value.tool.run === "function";
49
+ }
50
+ __name(isCrewaiToolConfig, "isCrewaiToolConfig");
51
+ function normalizeCrewaiSchemaJson(argsSchema) {
52
+ if (!argsSchema) {
53
+ return {};
54
+ }
55
+ if (typeof argsSchema.modelJsonSchema === "function") {
56
+ return argsSchema.modelJsonSchema();
57
+ }
58
+ if (typeof argsSchema.jsonSchema === "function") {
59
+ return argsSchema.jsonSchema();
60
+ }
61
+ if ((0, import_simple_zod_to_json.isZodSchema)(argsSchema)) {
62
+ const raw = structuredClone((0, import_schema.toJsonSchema)(argsSchema));
63
+ const requiredSet = new Set(
64
+ Array.isArray(raw["required"]) ? raw["required"] : []
65
+ );
66
+ const properties = raw["properties"];
67
+ if (properties && typeof properties === "object") {
68
+ for (const [key, prop] of Object.entries(properties)) {
69
+ if (!prop || typeof prop !== "object") {
70
+ continue;
71
+ }
72
+ if (Array.isArray(prop["type"])) {
73
+ const types = prop["type"];
74
+ delete prop["type"];
75
+ prop["anyOf"] = types.map((t) => ({ type: t }));
76
+ } else if (!requiredSet.has(key) && !("default" in prop) && !("anyOf" in prop) && typeof prop["type"] === "string") {
77
+ const propType = prop["type"];
78
+ delete prop["type"];
79
+ prop["anyOf"] = [{ type: propType }, { type: "null" }];
80
+ }
81
+ }
82
+ }
83
+ return raw;
84
+ }
85
+ return structuredClone(argsSchema);
86
+ }
87
+ __name(normalizeCrewaiSchemaJson, "normalizeCrewaiSchemaJson");
88
+ const _CrewaiTool = class _CrewaiTool extends (_b = import_function_tool.FunctionTool, _a = CREWAI_TOOL_SIGNATURE_SYMBOL, _b) {
89
+ constructor(toolOrConfig, options) {
90
+ const config = isCrewaiToolConfig(toolOrConfig) ? toolOrConfig : {
91
+ tool: toolOrConfig,
92
+ name: options == null ? void 0 : options.name,
93
+ description: options == null ? void 0 : options.description
94
+ };
95
+ const resolvedName = config.name || (config.tool.name ? config.tool.name.replace(/ /g, "_").toLowerCase() : config.tool.run.name || "crewai_tool");
96
+ const resolvedDescription = config.description || config.tool.description || "";
97
+ super({
98
+ name: resolvedName,
99
+ description: resolvedDescription,
100
+ parameters: (0, import_simple_zod_to_json.isZodObject)(config.tool.argsSchema) ? config.tool.argsSchema : void 0,
101
+ execute: /* @__PURE__ */ __name(async (args, toolContext) => {
102
+ return await config.tool.run(
103
+ args != null ? args : {},
104
+ toolContext
105
+ );
106
+ }, "execute")
107
+ });
108
+ /** A unique symbol to identify ADK CrewaiTool class. */
109
+ this[_a] = true;
110
+ this.tool = config.tool;
111
+ }
112
+ /**
113
+ * Builds the `FunctionDeclaration` for the wrapped CrewAI tool.
114
+ */
115
+ _getDeclaration() {
116
+ const schemaJson = normalizeCrewaiSchemaJson(this.tool.argsSchema);
117
+ return (0, import_function_tool.buildFunctionDeclarationForParamsForCrewai)(
118
+ this.apiVariant === import_variant_utils.GoogleLLMVariant.VERTEX_AI,
119
+ this.name,
120
+ this.description,
121
+ this.tool.run,
122
+ schemaJson
123
+ );
124
+ }
125
+ };
126
+ __name(_CrewaiTool, "CrewaiTool");
127
+ let CrewaiTool = _CrewaiTool;
128
+ // Annotate the CommonJS export names for ESM import in node:
129
+ 0 && (module.exports = {
130
+ CrewaiTool,
131
+ isCrewaiTool
132
+ });
@@ -28,6 +28,7 @@ __export(example_tool_exports, {
28
28
  ExampleTool: () => ExampleTool
29
29
  });
30
30
  module.exports = __toCommonJS(example_tool_exports);
31
+ var import_base_example_provider = require("../examples/base_example_provider.js");
31
32
  var import_example_util = require("../examples/example_util.js");
32
33
  var import_llm_request = require("../models/llm_request.js");
33
34
  var import_base_tool = require("./base_tool.js");
@@ -37,6 +38,12 @@ var import_base_tool = require("./base_tool.js");
37
38
  * SPDX-License-Identifier: Apache-2.0
38
39
  */
39
40
  const _ExampleTool = class _ExampleTool extends import_base_tool.BaseTool {
41
+ /**
42
+ * @param examples - A list of {@link Example}s, or a
43
+ * {@link BaseExampleProvider} that returns them for a query.
44
+ * @throws {InputValidationError} When `examples` is neither a
45
+ * {@link BaseExampleProvider} nor a list of well-formed examples.
46
+ */
40
47
  constructor(examples) {
41
48
  super({
42
49
  // Name and description are not used because this tool only changes
@@ -44,6 +51,9 @@ const _ExampleTool = class _ExampleTool extends import_base_tool.BaseTool {
44
51
  name: "example_tool",
45
52
  description: "example tool"
46
53
  });
54
+ if (!(0, import_base_example_provider.isBaseExampleProvider)(examples)) {
55
+ (0, import_example_util.validateExamples)(examples);
56
+ }
47
57
  this.examples = examples;
48
58
  }
49
59
  async runAsync(_request) {