@google/adk 2.3.0 → 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 (162) hide show
  1. package/dist/cjs/agents/agent_engine_client.js +172 -0
  2. package/dist/cjs/agents/base_agent.js +20 -4
  3. package/dist/cjs/agents/functions.js +28 -0
  4. package/dist/cjs/agents/instructions.js +2 -1
  5. package/dist/cjs/agents/llm_agent.js +19 -6
  6. package/dist/cjs/agents/processors/basic_llm_request_processor.js +1 -1
  7. package/dist/cjs/agents/processors/code_execution_request_processor.js +8 -0
  8. package/dist/cjs/agents/processors/content_processor_utils.js +38 -10
  9. package/dist/cjs/agents/processors/content_request_processor.js +34 -2
  10. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +1 -1
  11. package/dist/cjs/agents/processors/nl_planning_processor.js +12 -3
  12. package/dist/cjs/cli/utils/logs.js +6 -6
  13. package/dist/cjs/code_executors/container_code_executor.js +27 -16
  14. package/dist/cjs/code_executors/unsafe_local_code_executor.js +6 -1
  15. package/dist/cjs/common.js +9 -20
  16. package/dist/cjs/errors/input_validation_error.js +3 -2
  17. package/dist/cjs/index.js +9 -2
  18. package/dist/cjs/plugins/base_plugin.js +13 -23
  19. package/dist/cjs/sessions/base_session_service.js +14 -8
  20. package/dist/cjs/sessions/database_session_service.js +50 -28
  21. package/dist/cjs/sessions/stale_session_error.js +59 -0
  22. package/dist/cjs/skills/loader.js +52 -18
  23. package/dist/cjs/telemetry/setup.js +0 -1
  24. package/dist/cjs/telemetry/tracing.js +53 -10
  25. package/dist/cjs/tools/apihub_tool/apihub_toolset.js +18 -23
  26. package/dist/cjs/tools/application_integration_tool/application_integration_toolset.js +120 -42
  27. package/dist/cjs/tools/application_integration_tool/clients/connections_client.js +163 -95
  28. package/dist/cjs/tools/application_integration_tool/clients/integration_client.js +13 -9
  29. package/dist/cjs/tools/application_integration_tool/integration_connector_tool.js +184 -0
  30. package/dist/cjs/tools/google_api_tool/google_api_tool.js +4 -1
  31. package/dist/cjs/tools/google_api_tool/google_api_toolset.js +173 -0
  32. package/dist/cjs/tools/google_api_tool/google_api_toolsets.js +124 -0
  33. package/dist/cjs/tools/google_api_tool/googleapi_to_openapi_converter.js +2 -2
  34. package/dist/cjs/tools/google_api_tool/index.js +20 -23
  35. package/dist/cjs/tools/load_artifacts_tool.js +12 -6
  36. package/dist/cjs/tools/load_memory_tool.js +12 -10
  37. package/dist/cjs/tools/mcp/mcp_toolset.js +1 -14
  38. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +2 -2
  39. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
  40. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
  41. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +7 -13
  42. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +17 -1
  43. package/dist/cjs/tools/toolbox_toolset.js +174 -0
  44. package/dist/cjs/tools/webmcp/webmcp_toolset.js +1 -14
  45. package/dist/cjs/utils/client_labels.js +19 -2
  46. package/dist/cjs/utils/failover_utils.js +1 -1
  47. package/dist/cjs/utils/gemini_schema_util.js +24 -6
  48. package/dist/cjs/utils/logger_node.js +4 -0
  49. package/dist/cjs/utils/output_schema_utils.js +5 -2
  50. package/dist/cjs/utils/task.js +1 -1
  51. package/dist/cjs/version.js +1 -1
  52. package/dist/esm/agents/agent_engine_client.js +144 -0
  53. package/dist/esm/agents/base_agent.js +20 -4
  54. package/dist/esm/agents/functions.js +28 -0
  55. package/dist/esm/agents/instructions.js +2 -1
  56. package/dist/esm/agents/llm_agent.js +19 -6
  57. package/dist/esm/agents/processors/basic_llm_request_processor.js +1 -1
  58. package/dist/esm/agents/processors/code_execution_request_processor.js +8 -0
  59. package/dist/esm/agents/processors/content_processor_utils.js +38 -10
  60. package/dist/esm/agents/processors/content_request_processor.js +34 -2
  61. package/dist/esm/agents/processors/instructions_llm_request_processor.js +1 -1
  62. package/dist/esm/agents/processors/nl_planning_processor.js +12 -3
  63. package/dist/esm/cli/utils/logs.js +4 -4
  64. package/dist/esm/code_executors/container_code_executor.js +27 -16
  65. package/dist/esm/code_executors/unsafe_local_code_executor.js +6 -1
  66. package/dist/esm/common.js +10 -13
  67. package/dist/esm/errors/input_validation_error.js +3 -2
  68. package/dist/esm/index.js +17 -3
  69. package/dist/esm/plugins/base_plugin.js +13 -23
  70. package/dist/esm/sessions/base_session_service.js +12 -7
  71. package/dist/esm/sessions/database_session_service.js +49 -28
  72. package/dist/esm/sessions/stale_session_error.js +31 -0
  73. package/dist/esm/skills/loader.js +51 -17
  74. package/dist/esm/telemetry/setup.js +1 -2
  75. package/dist/esm/telemetry/tracing.js +57 -11
  76. package/dist/esm/tools/apihub_tool/apihub_toolset.js +17 -22
  77. package/dist/esm/tools/application_integration_tool/application_integration_toolset.js +124 -42
  78. package/dist/esm/tools/application_integration_tool/clients/connections_client.js +163 -95
  79. package/dist/esm/tools/application_integration_tool/clients/integration_client.js +13 -9
  80. package/dist/esm/tools/application_integration_tool/integration_connector_tool.js +158 -0
  81. package/dist/esm/tools/google_api_tool/google_api_tool.js +4 -1
  82. package/dist/esm/tools/google_api_tool/google_api_toolset.js +146 -0
  83. package/dist/esm/tools/google_api_tool/google_api_toolsets.js +94 -0
  84. package/dist/esm/tools/google_api_tool/googleapi_to_openapi_converter.js +2 -2
  85. package/dist/esm/tools/google_api_tool/index.js +18 -20
  86. package/dist/esm/tools/load_artifacts_tool.js +10 -5
  87. package/dist/esm/tools/load_memory_tool.js +12 -10
  88. package/dist/esm/tools/mcp/mcp_toolset.js +1 -14
  89. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +2 -2
  90. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
  91. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
  92. package/dist/esm/tools/openapi_tool/openapi_toolset.js +6 -12
  93. package/dist/esm/tools/openapi_tool/rest_api_tool.js +17 -1
  94. package/dist/esm/tools/toolbox_toolset.js +148 -0
  95. package/dist/esm/tools/webmcp/webmcp_toolset.js +1 -14
  96. package/dist/esm/utils/client_labels.js +19 -2
  97. package/dist/esm/utils/failover_utils.js +1 -1
  98. package/dist/esm/utils/gemini_schema_util.js +23 -6
  99. package/dist/esm/utils/logger_node.js +4 -0
  100. package/dist/esm/utils/output_schema_utils.js +5 -2
  101. package/dist/esm/utils/task.js +1 -1
  102. package/dist/esm/version.js +1 -1
  103. package/dist/types/agents/agent_engine_client.d.ts +37 -0
  104. package/dist/types/agents/base_agent.d.ts +12 -0
  105. package/dist/types/agents/llm_agent.d.ts +5 -1
  106. package/dist/types/agents/processors/content_processor_utils.d.ts +4 -2
  107. package/dist/types/agents/processors/nl_planning_processor.d.ts +2 -1
  108. package/dist/types/cli/utils/logs.d.ts +1 -1
  109. package/dist/types/code_executors/container_code_executor.d.ts +17 -5
  110. package/dist/types/common.d.ts +5 -9
  111. package/dist/types/errors/input_validation_error.d.ts +2 -1
  112. package/dist/types/index.d.ts +4 -2
  113. package/dist/types/plugins/base_plugin.d.ts +0 -10
  114. package/dist/types/sessions/base_session_service.d.ts +5 -0
  115. package/dist/types/sessions/database_session_service.d.ts +17 -1
  116. package/dist/types/sessions/stale_session_error.d.ts +21 -0
  117. package/dist/types/skills/loader.d.ts +3 -2
  118. package/dist/types/telemetry/tracing.d.ts +17 -3
  119. package/dist/types/tools/apihub_tool/apihub_toolset.d.ts +14 -21
  120. package/dist/types/tools/application_integration_tool/application_integration_toolset.d.ts +32 -9
  121. package/dist/types/tools/application_integration_tool/clients/connections_client.d.ts +22 -8
  122. package/dist/types/tools/application_integration_tool/clients/integration_client.d.ts +3 -3
  123. package/dist/types/tools/application_integration_tool/integration_connector_tool.d.ts +70 -0
  124. package/dist/types/tools/base_toolset.d.ts +6 -5
  125. package/dist/types/tools/google_api_tool/google_api_tool.d.ts +10 -3
  126. package/dist/types/tools/google_api_tool/google_api_toolset.d.ts +55 -0
  127. package/dist/types/tools/google_api_tool/google_api_toolsets.d.ts +48 -0
  128. package/dist/types/tools/google_api_tool/googleapi_to_openapi_converter.d.ts +5 -4
  129. package/dist/types/tools/google_api_tool/index.d.ts +4 -5
  130. package/dist/types/tools/load_artifacts_tool.d.ts +14 -1
  131. package/dist/types/tools/load_memory_tool.d.ts +23 -1
  132. package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +12 -0
  133. package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +8 -0
  134. package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +5 -0
  135. package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +10 -0
  136. package/dist/types/tools/toolbox_toolset.d.ts +159 -0
  137. package/dist/types/utils/client_labels.d.ts +2 -1
  138. package/dist/types/utils/gemini_schema_util.d.ts +8 -0
  139. package/dist/types/utils/output_schema_utils.d.ts +3 -2
  140. package/dist/types/utils/simple_zod_to_json.d.ts +1 -2
  141. package/dist/types/version.d.ts +1 -1
  142. package/dist/web/index_web.js +74 -66
  143. package/dist/web/index_web.js.map +4 -4
  144. package/package.json +34 -27
  145. package/dist/cjs/agents/remote_agent.js +0 -187
  146. package/dist/cjs/tools/crewai_tool.js +0 -132
  147. package/dist/cjs/tools/google_api_tool/google_api_tool_set.js +0 -226
  148. package/dist/cjs/tools/google_api_tool/google_api_tool_sets.js +0 -58
  149. package/dist/cjs/tools/langchain_tool.js +0 -172
  150. package/dist/cjs/tools/toolbox_tool.js +0 -108
  151. package/dist/esm/agents/remote_agent.js +0 -164
  152. package/dist/esm/tools/crewai_tool.js +0 -107
  153. package/dist/esm/tools/google_api_tool/google_api_tool_set.js +0 -188
  154. package/dist/esm/tools/google_api_tool/google_api_tool_sets.js +0 -24
  155. package/dist/esm/tools/langchain_tool.js +0 -148
  156. package/dist/esm/tools/toolbox_tool.js +0 -80
  157. package/dist/types/agents/remote_agent.d.ts +0 -68
  158. package/dist/types/tools/crewai_tool.d.ts +0 -85
  159. package/dist/types/tools/google_api_tool/google_api_tool_set.d.ts +0 -78
  160. package/dist/types/tools/google_api_tool/google_api_tool_sets.d.ts +0 -33
  161. package/dist/types/tools/langchain_tool.d.ts +0 -103
  162. package/dist/types/tools/toolbox_tool.d.ts +0 -73
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@google/adk",
3
- "version": "2.3.0",
3
+ "version": "2.4.0",
4
4
  "description": "Google ADK JS",
5
5
  "author": "Google",
6
6
  "license": "Apache-2.0",
@@ -37,6 +37,12 @@
37
37
  "require": "./dist/cjs/a2a/index.js",
38
38
  "default": "./dist/esm/a2a/index.js"
39
39
  },
40
+ "./agents/agent-engine": {
41
+ "types": "./dist/types/agents/agent_engine_client.d.ts",
42
+ "import": "./dist/esm/agents/agent_engine_client.js",
43
+ "require": "./dist/cjs/agents/agent_engine_client.js",
44
+ "default": "./dist/esm/agents/agent_engine_client.js"
45
+ },
40
46
  "./artifacts/gcs": {
41
47
  "types": "./dist/types/artifacts/gcs_artifact_service.d.ts",
42
48
  "import": "./dist/esm/artifacts/gcs_artifact_service.js",
@@ -83,41 +89,42 @@
83
89
  },
84
90
  "dependencies": {
85
91
  "@a2a-js/sdk": "^0.3.10",
92
+ "@google-cloud/aiplatform": "^6.10.0",
86
93
  "@google-cloud/vertexai": "^1.12.0",
87
94
  "@google/genai": "^2.29.1",
88
- "@mikro-orm/core": "^7.2.0",
89
- "@opentelemetry/api": "^1.9.0",
90
- "@opentelemetry/api-logs": "^0.222.0",
91
- "@opentelemetry/exporter-logs-otlp-http": "^0.222.0",
92
- "@opentelemetry/exporter-metrics-otlp-http": "^0.222.0",
93
- "@opentelemetry/exporter-trace-otlp-http": "^0.222.0",
94
- "@opentelemetry/resource-detector-gcp": "^0.40.0",
95
- "@opentelemetry/resources": "^2.1.0",
96
- "@opentelemetry/sdk-logs": "^0.222.0",
97
- "@opentelemetry/sdk-metrics": "^2.1.0",
98
- "@opentelemetry/sdk-trace-base": "^2.1.0",
99
- "@opentelemetry/sdk-trace-node": "^2.1.0",
100
- "@types/dockerode": "^4.0.1",
95
+ "@mikro-orm/core": "^7.2.5",
96
+ "@opentelemetry/api": "^1.9.1",
97
+ "@opentelemetry/api-logs": "^0.223.0",
98
+ "@opentelemetry/exporter-logs-otlp-http": "^0.223.0",
99
+ "@opentelemetry/exporter-metrics-otlp-http": "^0.223.0",
100
+ "@opentelemetry/exporter-trace-otlp-http": "^0.223.0",
101
+ "@opentelemetry/resource-detector-gcp": "^0.58.0",
102
+ "@opentelemetry/resources": "^2.12.0",
103
+ "@opentelemetry/sdk-logs": "^0.223.0",
104
+ "@opentelemetry/sdk-metrics": "^2.12.0",
105
+ "@opentelemetry/sdk-trace-base": "^2.12.0",
106
+ "@opentelemetry/sdk-trace-node": "^2.12.0",
107
+ "@types/dockerode": "^4.0.2",
101
108
  "adm-zip": "^0.6.1",
102
109
  "google-auth-library": "^10.3.0",
103
- "js-yaml": "^4.1.1",
110
+ "js-yaml": "^5.4.3",
104
111
  "jsonpath-plus": "^10.4.0",
105
112
  "lodash-es": "^4.18.1",
106
113
  "winston": "^3.19.0",
107
- "zod": "^4.2.1",
114
+ "zod": "^4.6.7",
108
115
  "zod-to-json-schema": "^3.25.1"
109
116
  },
110
117
  "optionalDependencies": {
111
118
  "dockerode": "^5.0.1"
112
119
  },
113
120
  "devDependencies": {
114
- "@google-cloud/opentelemetry-cloud-monitoring-exporter": "^0.21.0",
121
+ "@google-cloud/opentelemetry-cloud-monitoring-exporter": "^0.22.0",
115
122
  "@google-cloud/opentelemetry-cloud-trace-exporter": "^3.0.0",
116
- "@google-cloud/secret-manager": "^7.1.1",
123
+ "@google-cloud/secret-manager": "^7.2.0",
117
124
  "@google-cloud/storage": "^7.17.1",
118
- "@mikro-orm/sqlite": "^7.2.0",
125
+ "@mikro-orm/sqlite": "^7.2.5",
119
126
  "@modelcontextprotocol/sdk": "^1.26.0",
120
- "@opentelemetry/context-async-hooks": "^2.1.0",
127
+ "@opentelemetry/context-async-hooks": "^2.12.0",
121
128
  "@types/adm-zip": "^0.5.8",
122
129
  "@types/express": "^4.17.25",
123
130
  "@types/lodash-es": "^4.17.12",
@@ -125,15 +132,15 @@
125
132
  "openapi-types": "^12.1.3"
126
133
  },
127
134
  "peerDependencies": {
128
- "@google-cloud/opentelemetry-cloud-monitoring-exporter": "^0.21.0",
135
+ "@google-cloud/opentelemetry-cloud-monitoring-exporter": "^0.22.0",
129
136
  "@google-cloud/opentelemetry-cloud-trace-exporter": "^3.0.0",
130
- "@google-cloud/secret-manager": "^7.1.1",
137
+ "@google-cloud/secret-manager": "^7.2.0",
131
138
  "@google-cloud/storage": "^7.17.1",
132
- "@mikro-orm/mariadb": "^7.2.0",
133
- "@mikro-orm/mssql": "^7.2.0",
134
- "@mikro-orm/mysql": "^7.2.0",
135
- "@mikro-orm/postgresql": "^7.2.0",
136
- "@mikro-orm/sqlite": "^7.2.0",
139
+ "@mikro-orm/mariadb": "^7.2.5",
140
+ "@mikro-orm/mssql": "^7.2.5",
141
+ "@mikro-orm/mysql": "^7.2.5",
142
+ "@mikro-orm/postgresql": "^7.2.5",
143
+ "@mikro-orm/sqlite": "^7.2.5",
137
144
  "@modelcontextprotocol/sdk": "^1.26.0",
138
145
  "express": "^4.22.1 || ^5.1.0"
139
146
  },
@@ -1,187 +0,0 @@
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 remote_agent_exports = {};
35
- __export(remote_agent_exports, {
36
- RemoteAgent: () => RemoteAgent,
37
- isRemoteAgent: () => isRemoteAgent
38
- });
39
- module.exports = __toCommonJS(remote_agent_exports);
40
- var import_event = require("../events/event.js");
41
- var import_experimental = require("../utils/experimental.js");
42
- var import_base_agent = require("./base_agent.js");
43
- /**
44
- * @license
45
- * Copyright 2026 Google LLC
46
- * SPDX-License-Identifier: Apache-2.0
47
- */
48
- var _a, _b;
49
- const DEFAULT_REMOTE_AGENT_TIMEOUT_MS = 12e4;
50
- const MILLIS_PER_SECOND = 1e3;
51
- const SESSION_PRESERVE_KEYS = /* @__PURE__ */ new Set(["state", "events"]);
52
- const EVENT_PRESERVE_KEYS = /* @__PURE__ */ new Set([
53
- "actions.state_delta",
54
- "actions.artifact_delta",
55
- "actions.requested_auth_configs",
56
- "actions.requested_tool_confirmations",
57
- "actions.custom_metadata",
58
- "custom_metadata",
59
- "content.parts.function_call.args",
60
- "content.parts.function_response.response",
61
- "output",
62
- "route",
63
- "actions.agent_state"
64
- ]);
65
- const REMOTE_AGENT_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.remoteAgent");
66
- function isRemoteAgent(obj) {
67
- return typeof obj === "object" && obj !== null && REMOTE_AGENT_SIGNATURE_SYMBOL in obj && obj[REMOTE_AGENT_SIGNATURE_SYMBOL] === true;
68
- }
69
- __name(isRemoteAgent, "isRemoteAgent");
70
- function isRecord(value) {
71
- return typeof value === "object" && value !== null && !Array.isArray(value);
72
- }
73
- __name(isRecord, "isRecord");
74
- function stripNullish(value, preserveKeys, parentKey = "") {
75
- if (Array.isArray(value)) {
76
- return value.map((item) => stripNullish(item, preserveKeys, parentKey));
77
- }
78
- if (value !== null && typeof value === "object") {
79
- return stripNullishRecord(value, preserveKeys, parentKey);
80
- }
81
- return value;
82
- }
83
- __name(stripNullish, "stripNullish");
84
- function stripNullishRecord(record, preserveKeys, parentKey = "") {
85
- const result = {};
86
- for (const [key, entryValue] of Object.entries(record)) {
87
- if (entryValue === void 0 || entryValue === null) {
88
- continue;
89
- }
90
- const fullPath = parentKey !== "" ? `${parentKey}.${key}` : key;
91
- result[key] = preserveKeys.has(fullPath) ? entryValue : stripNullish(entryValue, preserveKeys, fullPath);
92
- }
93
- return result;
94
- }
95
- __name(stripNullishRecord, "stripNullishRecord");
96
- function serializeEventToSnakeCase(event) {
97
- const snakeEvent = (0, import_event.transformToSnakeCaseEvent)(event);
98
- snakeEvent["timestamp"] = event.timestamp / MILLIS_PER_SECOND;
99
- return stripNullishRecord(snakeEvent, EVENT_PRESERVE_KEYS);
100
- }
101
- __name(serializeEventToSnakeCase, "serializeEventToSnakeCase");
102
- function serializeSessionToSnakeCase(session) {
103
- return stripNullishRecord(
104
- {
105
- id: session.id,
106
- app_name: session.appName,
107
- user_id: session.userId,
108
- state: session.state,
109
- events: session.events.map((event) => serializeEventToSnakeCase(event)),
110
- last_update_time: session.lastUpdateTime / MILLIS_PER_SECOND
111
- },
112
- SESSION_PRESERVE_KEYS
113
- );
114
- }
115
- __name(serializeSessionToSnakeCase, "serializeSessionToSnakeCase");
116
- let RemoteAgent = class extends (_b = import_base_agent.BaseAgent, _a = REMOTE_AGENT_SIGNATURE_SYMBOL, _b) {
117
- constructor(config) {
118
- var _a2, _b2;
119
- const runtimeSubAgents = config.subAgents;
120
- if (Array.isArray(runtimeSubAgents) ? runtimeSubAgents.length > 0 : Boolean(runtimeSubAgents)) {
121
- throw new Error("subAgents is disabled in RemoteAgent.");
122
- }
123
- super({ ...config, subAgents: [] });
124
- this[_a] = true;
125
- this.url = config.url;
126
- this.timeoutMs = (_a2 = config.timeoutMs) != null ? _a2 : DEFAULT_REMOTE_AGENT_TIMEOUT_MS;
127
- this.fetchImpl = (_b2 = config.fetchImpl) != null ? _b2 : globalThis.fetch;
128
- }
129
- async *runAsyncImpl(ctx) {
130
- var _a2;
131
- const data = {
132
- invocation_id: ctx.invocationId,
133
- session: serializeSessionToSnakeCase(ctx.session)
134
- };
135
- const timeoutSignal = AbortSignal.timeout(this.timeoutMs);
136
- const signal = ctx.abortSignal ? AbortSignal.any([ctx.abortSignal, timeoutSignal]) : timeoutSignal;
137
- const response = await this.fetchImpl(this.url, {
138
- method: "POST",
139
- headers: { "Content-Type": "application/json" },
140
- body: JSON.stringify(data),
141
- signal
142
- });
143
- if (response.status >= 400) {
144
- throw new Error(
145
- `RemoteAgent request to '${this.url}' failed with HTTP status ${response.status}.`
146
- );
147
- }
148
- const rawEvents = await response.json();
149
- if (!Array.isArray(rawEvents)) {
150
- throw new Error(
151
- `RemoteAgent expected a JSON array of events from '${this.url}'.`
152
- );
153
- }
154
- for (const rawEvent of rawEvents) {
155
- if (!isRecord(rawEvent)) {
156
- throw new Error(
157
- `RemoteAgent expected each item in the response from '${this.url}' to be a JSON event object.`
158
- );
159
- }
160
- if ((_a2 = ctx.abortSignal) == null ? void 0 : _a2.aborted) {
161
- return;
162
- }
163
- const camelEvent = (0, import_event.transformToCamelCaseEvent)(rawEvent);
164
- const invocationId = camelEvent.invocationId !== void 0 && camelEvent.invocationId !== "" ? camelEvent.invocationId : ctx.invocationId;
165
- const timestamp = typeof camelEvent.timestamp === "number" ? camelEvent.timestamp * MILLIS_PER_SECOND : void 0;
166
- yield (0, import_event.createEvent)({
167
- ...camelEvent,
168
- invocationId,
169
- timestamp,
170
- author: this.name
171
- });
172
- }
173
- }
174
- async *runLiveImpl(_ctx) {
175
- yield* [];
176
- throw new Error("This is not supported yet for RemoteAgent.");
177
- }
178
- };
179
- __name(RemoteAgent, "RemoteAgent");
180
- RemoteAgent = __decorateClass([
181
- import_experimental.experimental
182
- ], RemoteAgent);
183
- // Annotate the CommonJS export names for ESM import in node:
184
- 0 && (module.exports = {
185
- RemoteAgent,
186
- isRemoteAgent
187
- });
@@ -1,132 +0,0 @@
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
- });
@@ -1,226 +0,0 @@
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 google_api_tool_set_exports = {};
45
- __export(google_api_tool_set_exports, {
46
- GoogleApiToolSet: () => GoogleApiToolSet,
47
- createLazyGoogleApiToolSet: () => createLazyGoogleApiToolSet,
48
- isGoogleApiToolSet: () => isGoogleApiToolSet
49
- });
50
- module.exports = __toCommonJS(google_api_tool_set_exports);
51
- var fs = __toESM(require("node:fs"), 1);
52
- var path = __toESM(require("node:path"), 1);
53
- var import_experimental = require("../../utils/experimental.js");
54
- var import_base_toolset = require("../base_toolset.js");
55
- var import_openapi_toolset = require("../openapi_tool/openapi_toolset.js");
56
- var import_google_api_tool = require("./google_api_tool.js");
57
- var import_googleapi_to_openapi_converter = require("./googleapi_to_openapi_converter.js");
58
- /**
59
- * @license
60
- * Copyright 2026 Google LLC
61
- * SPDX-License-Identifier: Apache-2.0
62
- */
63
- var _a, _b;
64
- const GOOGLE_API_TOOL_SET_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for(
65
- "google.adk.googleApiToolSet"
66
- );
67
- const GOOGLE_OIDC_AUTH_ENDPOINT = "https://accounts.google.com/o/oauth2/v2/auth";
68
- const GOOGLE_OIDC_TOKEN_ENDPOINT = "https://oauth2.googleapis.com/token";
69
- const GOOGLE_OIDC_USERINFO_ENDPOINT = "https://openidconnect.googleapis.com/v1/userinfo";
70
- const GOOGLE_OIDC_REVOCATION_ENDPOINT = "https://oauth2.googleapis.com/revoke";
71
- function isGoogleApiToolSet(obj) {
72
- return typeof obj === "object" && obj !== null && GOOGLE_API_TOOL_SET_SIGNATURE_SYMBOL in obj && obj[GOOGLE_API_TOOL_SET_SIGNATURE_SYMBOL] === true;
73
- }
74
- __name(isGoogleApiToolSet, "isGoogleApiToolSet");
75
- let GoogleApiToolSet = class extends (_b = import_base_toolset.BaseToolset, _a = GOOGLE_API_TOOL_SET_SIGNATURE_SYMBOL, _b) {
76
- constructor(tools, options = {}) {
77
- var _a2;
78
- super((_a2 = options.toolFilter) != null ? _a2 : []);
79
- this[_a] = true;
80
- this.apiName = options.apiName;
81
- this.apiVersion = options.apiVersion;
82
- if (tools !== void 0) {
83
- this.tools = tools.map(
84
- (tool) => (0, import_google_api_tool.isGoogleApiTool)(tool) ? tool : new import_google_api_tool.GoogleApiTool(tool)
85
- );
86
- this.toolsLoaded = true;
87
- } else {
88
- this.tools = [];
89
- this.toolsLoaded = false;
90
- }
91
- }
92
- async ensureToolsLoaded() {
93
- if (this.toolsLoaded || !this.apiName || !this.apiVersion) {
94
- return;
95
- }
96
- if (!this.loadingPromise) {
97
- const apiName = this.apiName;
98
- const apiVersion = this.apiVersion;
99
- this.loadingPromise = (async () => {
100
- try {
101
- const loaded = await GoogleApiToolSet.loadToolSet(
102
- apiName,
103
- apiVersion
104
- );
105
- this.tools = loaded.tools;
106
- if (this.pendingAuth) {
107
- for (const tool of this.tools) {
108
- tool.configureAuth(
109
- this.pendingAuth.clientId,
110
- this.pendingAuth.clientSecret
111
- );
112
- }
113
- }
114
- this.toolsLoaded = true;
115
- } finally {
116
- this.loadingPromise = void 0;
117
- }
118
- })();
119
- }
120
- await this.loadingPromise;
121
- }
122
- async getTools(context) {
123
- await this.ensureToolsLoaded();
124
- return this.tools.filter(
125
- (tool) => this.isToolSelected(tool, context)
126
- );
127
- }
128
- async getTool(toolName) {
129
- await this.ensureToolsLoaded();
130
- return this.tools.find((tool) => tool.name === toolName);
131
- }
132
- configureAuth(clientId, clientSecret) {
133
- this.pendingAuth = { clientId, clientSecret };
134
- for (const tool of this.tools) {
135
- tool.configureAuth(clientId, clientSecret);
136
- }
137
- }
138
- async close() {
139
- return Promise.resolve();
140
- }
141
- static loadToolSetWithOidcAuth(options = {}) {
142
- var _a2;
143
- let specStr;
144
- if (options.specFile) {
145
- const dir = (_a2 = options.callerDir) != null ? _a2 : process.cwd();
146
- const yamlPath = path.isAbsolute(options.specFile) ? options.specFile : path.join(dir, options.specFile);
147
- specStr = fs.readFileSync(yamlPath, "utf-8");
148
- }
149
- const authScheme = {
150
- type: "openIdConnect",
151
- openIdConnectUrl: "",
152
- authorizationEndpoint: GOOGLE_OIDC_AUTH_ENDPOINT,
153
- tokenEndpoint: GOOGLE_OIDC_TOKEN_ENDPOINT,
154
- userinfoEndpoint: GOOGLE_OIDC_USERINFO_ENDPOINT,
155
- revocationEndpoint: GOOGLE_OIDC_REVOCATION_ENDPOINT,
156
- tokenEndpointAuthMethodsSupported: [
157
- "client_secret_post",
158
- "client_secret_basic"
159
- ],
160
- grantTypesSupported: ["authorization_code"],
161
- scopes: options.scopes
162
- };
163
- return new import_openapi_toolset.OpenAPIToolset({
164
- specDict: options.specDict,
165
- specStr,
166
- specType: "yaml",
167
- authScheme
168
- });
169
- }
170
- static async loadToolSet(apiName, apiVersion) {
171
- var _a2, _b2, _c, _d, _e;
172
- const specDict = await new import_googleapi_to_openapi_converter.GoogleApiToOpenApiConverter(
173
- apiName,
174
- apiVersion
175
- ).convert();
176
- const oauth2Scheme = (_b2 = (_a2 = specDict.components) == null ? void 0 : _a2.securitySchemes) == null ? void 0 : _b2["oauth2"];
177
- const scopesMap = (_e = (_d = (_c = oauth2Scheme == null ? void 0 : oauth2Scheme.flows) == null ? void 0 : _c.authorizationCode) == null ? void 0 : _d.scopes) != null ? _e : {};
178
- const firstScope = Object.keys(scopesMap)[0];
179
- const scopes = firstScope ? [firstScope] : void 0;
180
- const openapiToolset = this.loadToolSetWithOidcAuth({
181
- specDict,
182
- scopes
183
- });
184
- const tools = await openapiToolset.getTools();
185
- return new this(tools, { apiName, apiVersion });
186
- }
187
- };
188
- __name(GoogleApiToolSet, "GoogleApiToolSet");
189
- __decorateClass([
190
- import_experimental.experimental
191
- ], GoogleApiToolSet.prototype, "getTools", 1);
192
- __decorateClass([
193
- import_experimental.experimental
194
- ], GoogleApiToolSet.prototype, "getTool", 1);
195
- __decorateClass([
196
- import_experimental.experimental
197
- ], GoogleApiToolSet.prototype, "configureAuth", 1);
198
- __decorateClass([
199
- import_experimental.experimental
200
- ], GoogleApiToolSet.prototype, "close", 1);
201
- __decorateClass([
202
- import_experimental.experimental
203
- ], GoogleApiToolSet, "loadToolSetWithOidcAuth", 1);
204
- __decorateClass([
205
- import_experimental.experimental
206
- ], GoogleApiToolSet, "loadToolSet", 1);
207
- GoogleApiToolSet = __decorateClass([
208
- import_experimental.experimental
209
- ], GoogleApiToolSet);
210
- function createLazyGoogleApiToolSet(apiName, apiVersion) {
211
- const BaseConstructor = Object.getPrototypeOf(
212
- GoogleApiToolSet
213
- );
214
- return Reflect.construct(
215
- BaseConstructor,
216
- [void 0, { apiName, apiVersion }],
217
- GoogleApiToolSet
218
- );
219
- }
220
- __name(createLazyGoogleApiToolSet, "createLazyGoogleApiToolSet");
221
- // Annotate the CommonJS export names for ESM import in node:
222
- 0 && (module.exports = {
223
- GoogleApiToolSet,
224
- createLazyGoogleApiToolSet,
225
- isGoogleApiToolSet
226
- });