@toolbox-sdk/adk 0.1.5 → 0.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.
- package/README.md +33 -1
- package/build/{client.d.ts → cjs/client.d.ts} +2 -2
- package/build/cjs/client.js +68 -0
- package/build/cjs/client.js.map +1 -0
- package/build/{index.d.ts → cjs/index.d.ts} +1 -0
- package/build/{index.js → cjs/index.js} +1 -0
- package/build/cjs/index.js.map +1 -0
- package/build/cjs/protocol.js +87 -0
- package/build/cjs/protocol.js.map +1 -0
- package/build/cjs/tool.js +102 -0
- package/build/cjs/tool.js.map +1 -0
- package/build/cjs/version.d.ts +1 -0
- package/build/cjs/version.js +15 -0
- package/build/cjs/version.js.map +1 -0
- package/build/esm/client.d.ts +47 -0
- package/build/{client.js → esm/client.js} +4 -3
- package/build/esm/client.js.map +1 -0
- package/build/esm/index.d.ts +3 -0
- package/build/esm/index.js +19 -0
- package/build/esm/index.js.map +1 -0
- package/build/esm/protocol.d.ts +11 -0
- package/build/esm/protocol.js.map +1 -0
- package/build/esm/tool.d.ts +67 -0
- package/build/esm/tool.js.map +1 -0
- package/build/esm/version.d.ts +1 -0
- package/build/esm/version.js +15 -0
- package/build/esm/version.js.map +1 -0
- package/package.json +11 -8
- package/build/client.js.map +0 -1
- package/build/index.js.map +0 -1
- package/build/protocol.js.map +0 -1
- package/build/tool.js.map +0 -1
- /package/build/{protocol.d.ts → cjs/protocol.d.ts} +0 -0
- /package/build/{tool.d.ts → cjs/tool.d.ts} +0 -0
- /package/build/{protocol.js → esm/protocol.js} +0 -0
- /package/build/{tool.js → esm/tool.js} +0 -0
package/README.md
CHANGED
|
@@ -20,6 +20,9 @@ involving Large Language Models (LLMs).
|
|
|
20
20
|
- [Installation](#installation)
|
|
21
21
|
- [Quickstart](#quickstart)
|
|
22
22
|
- [Usage](#usage)
|
|
23
|
+
- [Transport Protocols](#transport-protocols)
|
|
24
|
+
- [Available Protocols](#available-protocols)
|
|
25
|
+
- [Specifying a Protocol](#specifying-a-protocol)
|
|
23
26
|
- [Loading Tools](#loading-tools)
|
|
24
27
|
- [Load a toolset](#load-a-toolset)
|
|
25
28
|
- [Load a single tool](#load-a-single-tool)
|
|
@@ -123,6 +126,35 @@ All interactions for loading and invoking tools happen through this client.
|
|
|
123
126
|
> For advanced use cases, you can provide an external `AxiosInstance`
|
|
124
127
|
> during initialization (e.g., `ToolboxClient(url, my_session)`).
|
|
125
128
|
|
|
129
|
+
|
|
130
|
+
## Transport Protocols
|
|
131
|
+
|
|
132
|
+
The SDK supports multiple transport protocols to communicate with the Toolbox server. You can specify the protocol version during client initialization.
|
|
133
|
+
|
|
134
|
+
### Available Protocols
|
|
135
|
+
|
|
136
|
+
We currently support different versions of the MCP protocol.
|
|
137
|
+
- `Protocol.MCP`: The default protocol version (currently aliases to `MCP_v20250618`).
|
|
138
|
+
- `Protocol.MCP_v20241105`: Use this for compatibility with older MCP servers (November 2024 version).
|
|
139
|
+
- `Protocol.MCP_v20250326`: March 2025 version.
|
|
140
|
+
- `Protocol.MCP_v20250618`: June 2025 version.
|
|
141
|
+
- `Protocol.MCP_v20251125`: November 2025 version.
|
|
142
|
+
|
|
143
|
+
### Specifying a Protocol
|
|
144
|
+
|
|
145
|
+
You can explicitly set the protocol by passing the `protocol` argument to the `ToolboxClient` constructor.
|
|
146
|
+
|
|
147
|
+
```javascript
|
|
148
|
+
import { ToolboxClient, Protocol } from '@toolbox-sdk/adk';
|
|
149
|
+
|
|
150
|
+
const URL = 'http://127.0.0.1:5000';
|
|
151
|
+
|
|
152
|
+
// Initialize with a specific protocol version
|
|
153
|
+
const client = new ToolboxClient(URL, null, null, Protocol.MCP_v20241105);
|
|
154
|
+
|
|
155
|
+
const tools = await client.loadToolset();
|
|
156
|
+
```
|
|
157
|
+
|
|
126
158
|
## Loading Tools
|
|
127
159
|
|
|
128
160
|
You can load tools individually or in groups (toolsets) as defined in your
|
|
@@ -463,7 +495,7 @@ const loadedTools = await toolboxClient.loadToolset();
|
|
|
463
495
|
|
|
464
496
|
export const rootAgent = new LlmAgent({
|
|
465
497
|
name: 'weather_time_agent',
|
|
466
|
-
model: 'gemini-
|
|
498
|
+
model: 'gemini-3-flash-preview',
|
|
467
499
|
description:
|
|
468
500
|
'Agent to answer questions about the time and weather in a city.',
|
|
469
501
|
instruction:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AuthTokenGetters, BoundParams, ClientHeadersConfig } from '@toolbox-sdk/core';
|
|
1
|
+
import { AuthTokenGetters, BoundParams, ClientHeadersConfig, Protocol } from '@toolbox-sdk/core';
|
|
2
2
|
import { ToolboxTool } from './tool.js';
|
|
3
3
|
import type { AxiosInstance } from 'axios';
|
|
4
4
|
/**
|
|
@@ -19,7 +19,7 @@ export declare class ToolboxClient {
|
|
|
19
19
|
* @param {ClientHeadersConfig} [clientHeaders] - Optional initial headers to
|
|
20
20
|
* be included in each request.
|
|
21
21
|
*/
|
|
22
|
-
constructor(url: string, session?: AxiosInstance | null, clientHeaders?: ClientHeadersConfig | null);
|
|
22
|
+
constructor(url: string, session?: AxiosInstance | null, clientHeaders?: ClientHeadersConfig | null, protocol?: Protocol);
|
|
23
23
|
/**
|
|
24
24
|
* Asynchronously loads a tool from the server.
|
|
25
25
|
*
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// Copyright 2025 Google LLC
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
import { ToolboxClient as CoreToolboxClient, Protocol, } from '@toolbox-sdk/core';
|
|
15
|
+
import { ToolboxTool } from './tool.js';
|
|
16
|
+
import { VERSION } from './version.js';
|
|
17
|
+
/**
|
|
18
|
+
* An asynchronous client for interacting with a Toolbox service, specifically
|
|
19
|
+
* designed to work with the Google ADK.
|
|
20
|
+
*
|
|
21
|
+
* This client mirrors the interface of the core ToolboxClient but returns
|
|
22
|
+
* ADK-compatible `ToolboxTool` instances that can be used directly in an
|
|
23
|
+
* ADK Agent.
|
|
24
|
+
*/
|
|
25
|
+
export class ToolboxClient {
|
|
26
|
+
/**
|
|
27
|
+
* Initializes the ADK ToolboxClient.
|
|
28
|
+
* @param {string} url - The base URL for the Toolbox service API (e.g., "http://localhost:5000").
|
|
29
|
+
* @param {AxiosInstance} [session] - Optional Axios instance for making HTTP
|
|
30
|
+
* requests. If not provided, a new one will be created.
|
|
31
|
+
* @param {ClientHeadersConfig} [clientHeaders] - Optional initial headers to
|
|
32
|
+
* be included in each request.
|
|
33
|
+
*/
|
|
34
|
+
constructor(url, session, clientHeaders, protocol = Protocol.MCP) {
|
|
35
|
+
this.coreClient = new CoreToolboxClient(url, session, clientHeaders, protocol, 'toolbox-adk-js', VERSION);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Asynchronously loads a tool from the server.
|
|
39
|
+
*
|
|
40
|
+
* Retrieves the schema for the specified tool and returns an ADK-compatible
|
|
41
|
+
* `ToolboxTool` adapter instance, ready to be used in an ADK Agent.
|
|
42
|
+
*
|
|
43
|
+
* @param {string} name - The unique name or identifier of the tool to load.
|
|
44
|
+
* @param {AuthTokenGetters | null} [authTokenGetters] - Optional map of auth service names to token getters.
|
|
45
|
+
* @param {BoundParams | null} [boundParams] - Optional parameters to pre-bind to the tool.
|
|
46
|
+
* @returns {Promise<ToolboxTool>} A promise that resolves to an ADK ToolboxTool,
|
|
47
|
+
* ready for execution.
|
|
48
|
+
*/
|
|
49
|
+
async loadTool(name, authTokenGetters = {}, boundParams = {}) {
|
|
50
|
+
const coreTool = await this.coreClient.loadTool(name, authTokenGetters, boundParams);
|
|
51
|
+
return new ToolboxTool(coreTool);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Asynchronously fetches a toolset and loads all tools defined within it.
|
|
55
|
+
*
|
|
56
|
+
* @param {string | null} [name] - Name of the toolset to load. If null or undefined, loads the default toolset.
|
|
57
|
+
* @param {AuthTokenGetters | null} [authTokenGetters] - Optional map of auth service names to token getters.
|
|
58
|
+
* @param {BoundParams | null} [boundParams] - Optional parameters to pre-bind to the tools in the toolset.
|
|
59
|
+
* @param {boolean} [strict=false] - If true, throws an error if any provided auth token or bound param is not used by at least one tool.
|
|
60
|
+
* @returns {Promise<Array<ToolboxTool>>} A promise that resolves to a list of
|
|
61
|
+
* ADK ToolboxTool instances, ready for execution.
|
|
62
|
+
*/
|
|
63
|
+
async loadToolset(name, authTokenGetters = {}, boundParams = {}, strict = false) {
|
|
64
|
+
const coreTools = await this.coreClient.loadToolset(name, authTokenGetters, boundParams, strict);
|
|
65
|
+
return coreTools.map(coreTool => new ToolboxTool(coreTool));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/toolbox_adk/client.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EACL,aAAa,IAAI,iBAAiB,EAIlC,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,WAAW,EAAW,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAErC;;;;;;;GAOG;AACH,MAAM,OAAO,aAAa;IAGxB;;;;;;;OAOG;IACH,YACE,GAAW,EACX,OAA8B,EAC9B,aAA0C,EAC1C,WAAqB,QAAQ,CAAC,GAAG;QAEjC,IAAI,CAAC,UAAU,GAAG,IAAI,iBAAiB,CACrC,GAAG,EACH,OAAO,EACP,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,QAAQ,CACZ,IAAY,EACZ,mBAA4C,EAAE,EAC9C,cAAkC,EAAE;QAEpC,MAAM,QAAQ,GAAa,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CACvD,IAAI,EACJ,gBAAgB,EAChB,WAAW,CACZ,CAAC;QACF,OAAO,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,WAAW,CACf,IAAa,EACb,mBAA4C,EAAE,EAC9C,cAAkC,EAAE,EACpC,MAAM,GAAG,KAAK;QAEd,MAAM,SAAS,GAAe,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAC7D,IAAI,EACJ,gBAAgB,EAChB,WAAW,EACX,MAAM,CACP,CAAC;QACF,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/toolbox_adk/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,qEAAqE;AAErE,0DAA0D;AAC1D,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AACtC,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// Copyright 2025 Google LLC
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
import { Type } from '@google/genai';
|
|
15
|
+
import { z } from 'zod';
|
|
16
|
+
/**
|
|
17
|
+
* Safely determines the JSON Schema type enum from a Zod type object.
|
|
18
|
+
*
|
|
19
|
+
* @param zodType The Zod type instance to inspect.
|
|
20
|
+
* @returns A value from the `Type` enum.
|
|
21
|
+
*/
|
|
22
|
+
function getJsonSchemaTypeFromZod(zodType) {
|
|
23
|
+
// Handle optional and nullable types by recursively unwrapping them
|
|
24
|
+
if (zodType instanceof z.ZodOptional || zodType instanceof z.ZodNullable) {
|
|
25
|
+
return getJsonSchemaTypeFromZod(zodType.unwrap());
|
|
26
|
+
}
|
|
27
|
+
// Handle specific base types
|
|
28
|
+
if (zodType instanceof z.ZodNull) {
|
|
29
|
+
return Type.NULL;
|
|
30
|
+
}
|
|
31
|
+
if (zodType instanceof z.ZodString || zodType instanceof z.ZodEnum) {
|
|
32
|
+
return Type.STRING;
|
|
33
|
+
}
|
|
34
|
+
if (zodType instanceof z.ZodNumber) {
|
|
35
|
+
const isInteger = zodType._def.checks.some(check => check.kind === 'int');
|
|
36
|
+
return isInteger ? Type.INTEGER : Type.NUMBER;
|
|
37
|
+
}
|
|
38
|
+
if (zodType instanceof z.ZodBoolean) {
|
|
39
|
+
return Type.BOOLEAN;
|
|
40
|
+
}
|
|
41
|
+
if (zodType instanceof z.ZodArray) {
|
|
42
|
+
return Type.ARRAY;
|
|
43
|
+
}
|
|
44
|
+
if (zodType instanceof z.ZodObject) {
|
|
45
|
+
return Type.OBJECT;
|
|
46
|
+
}
|
|
47
|
+
// Fallback for unhandled types
|
|
48
|
+
return Type.TYPE_UNSPECIFIED;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Converts a ZodObject schema into a FunctionDeclaration for the Google ADK.
|
|
52
|
+
*
|
|
53
|
+
* @param name The name of the function/tool.
|
|
54
|
+
* @param description The description of the function/tool.
|
|
55
|
+
* @param zodSchema The Zod schema for the tool's parameters.
|
|
56
|
+
* @returns A FunctionDeclaration object for the Google Genai API.
|
|
57
|
+
*/
|
|
58
|
+
export function ConvertZodToFunctionDeclaration(name, description, zodSchema) {
|
|
59
|
+
const properties = {};
|
|
60
|
+
const required = [];
|
|
61
|
+
if (!(zodSchema === null || zodSchema === void 0 ? void 0 : zodSchema.shape)) {
|
|
62
|
+
return {
|
|
63
|
+
name,
|
|
64
|
+
description,
|
|
65
|
+
parameters: { type: Type.OBJECT, properties, required },
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
for (const [key, zodType] of Object.entries(zodSchema.shape)) {
|
|
69
|
+
properties[key] = {
|
|
70
|
+
type: getJsonSchemaTypeFromZod(zodType),
|
|
71
|
+
description: zodType.description || '',
|
|
72
|
+
};
|
|
73
|
+
if (!zodType.isOptional()) {
|
|
74
|
+
required.push(key);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
name,
|
|
79
|
+
description,
|
|
80
|
+
parameters: {
|
|
81
|
+
type: Type.OBJECT,
|
|
82
|
+
properties,
|
|
83
|
+
required,
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/toolbox_adk/protocol.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAGjC,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAC;AACnC,OAAO,EAAC,CAAC,EAAqC,MAAM,KAAK,CAAC;AAE1D;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,OAAmB;IACnD,oEAAoE;IACpE,IAAI,OAAO,YAAY,CAAC,CAAC,WAAW,IAAI,OAAO,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACzE,OAAO,wBAAwB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,6BAA6B;IAC7B,IAAI,OAAO,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,YAAY,CAAC,CAAC,SAAS,IAAI,OAAO,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,OAAO,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;QAC1E,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAChD,CAAC;IAED,IAAI,OAAO,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,IAAI,OAAO,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,+BAA+B;IAC/B,OAAO,IAAI,CAAC,gBAAgB,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,+BAA+B,CAC7C,IAAY,EACZ,WAAmB,EACnB,SAAiC;IAEjC,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,CAAA,EAAE,CAAC;QACtB,OAAO;YACL,IAAI;YACJ,WAAW;YACX,UAAU,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAC;SACtD,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7D,UAAU,CAAC,GAAG,CAAC,GAAG;YAChB,IAAI,EAAE,wBAAwB,CAAC,OAAO,CAAC;YACvC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;SACvC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI;QACJ,WAAW;QACX,UAAU,EAAE;YACV,IAAI,EAAE,IAAI,CAAC,MAAM;YACjB,UAAU;YACV,QAAQ;SACT;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
// Copyright 2025 Google LLC
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
import { BaseTool } from '@google/adk';
|
|
15
|
+
import { ConvertZodToFunctionDeclaration } from './protocol.js';
|
|
16
|
+
/**
|
|
17
|
+
* An adapter class that wraps a `CoreTool` from the `@toolbox-sdk/core`
|
|
18
|
+
* to make it compatible with the `@google/adk` `BaseTool` interface.
|
|
19
|
+
*/
|
|
20
|
+
export class ToolboxTool extends BaseTool {
|
|
21
|
+
/**
|
|
22
|
+
* Creates a new instance of the ADK-compatible tool wrapper.
|
|
23
|
+
* @param coreTool The original callable tool object from `@toolbox-sdk/core`.
|
|
24
|
+
*/
|
|
25
|
+
constructor(coreTool) {
|
|
26
|
+
super({
|
|
27
|
+
name: coreTool.toolName,
|
|
28
|
+
description: coreTool.description,
|
|
29
|
+
isLongRunning: false,
|
|
30
|
+
});
|
|
31
|
+
this.coreTool = coreTool;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Runs the tool by delegating the call to the wrapped `coreTool`.
|
|
35
|
+
*
|
|
36
|
+
* @param request The `RunAsyncToolRequest` from the ADK agent.
|
|
37
|
+
* @returns A promise that resolves to the tool's execution result.
|
|
38
|
+
*/
|
|
39
|
+
async runAsync(request) {
|
|
40
|
+
return this.coreTool(request.args);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Generates the `FunctionDeclaration` (JSON Schema) for this tool
|
|
44
|
+
* by converting the Zod schema from the `coreTool`.
|
|
45
|
+
*
|
|
46
|
+
* @returns A `FunctionDeclaration` for the LLM.
|
|
47
|
+
*/
|
|
48
|
+
_getDeclaration() {
|
|
49
|
+
const zodSchema = this.coreTool.params;
|
|
50
|
+
return ConvertZodToFunctionDeclaration(this.name, this.description, zodSchema);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Creates a new `ToolboxTool` with additional auth token getters.
|
|
54
|
+
*
|
|
55
|
+
* @param newAuthTokenGetters A map of auth sources to token getters.
|
|
56
|
+
* @returns A new `ToolboxTool` instance.
|
|
57
|
+
*/
|
|
58
|
+
addAuthTokenGetters(newAuthTokenGetters) {
|
|
59
|
+
const newCoreTool = this.coreTool.addAuthTokenGetters(newAuthTokenGetters);
|
|
60
|
+
return new ToolboxTool(newCoreTool);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Creates a new `ToolboxTool` with an additional auth token getter.
|
|
64
|
+
*
|
|
65
|
+
* @param authSource The name of the auth source.
|
|
66
|
+
* @param getIdToken The token getter function.
|
|
67
|
+
* @returns A new `ToolboxTool` instance.
|
|
68
|
+
*/
|
|
69
|
+
addAuthTokenGetter(authSource, getIdToken) {
|
|
70
|
+
const newCoreTool = this.coreTool.addAuthTokenGetter(authSource, getIdToken);
|
|
71
|
+
return new ToolboxTool(newCoreTool);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Creates a new `ToolboxTool` with bound parameters.
|
|
75
|
+
*
|
|
76
|
+
* @param paramsToBind A map of parameter names to values or getters.
|
|
77
|
+
* @returns A new `ToolboxTool` instance.
|
|
78
|
+
*/
|
|
79
|
+
bindParams(paramsToBind) {
|
|
80
|
+
const newCoreTool = this.coreTool.bindParams(paramsToBind);
|
|
81
|
+
return new ToolboxTool(newCoreTool);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Creates a new `ToolboxTool` with a single bound parameter.
|
|
85
|
+
*
|
|
86
|
+
* @param paramName The name of the parameter to bind.
|
|
87
|
+
* @param paramValue The value or getter to bind.
|
|
88
|
+
* @returns A new `ToolboxTool` instance.
|
|
89
|
+
*/
|
|
90
|
+
bindParam(paramName, paramValue) {
|
|
91
|
+
const newCoreTool = this.coreTool.bindParam(paramName, paramValue);
|
|
92
|
+
return new ToolboxTool(newCoreTool);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Gets the underlying `CoreTool` object.
|
|
96
|
+
* @returns The wrapped `CoreTool` instance.
|
|
97
|
+
*/
|
|
98
|
+
getCoreTool() {
|
|
99
|
+
return this.coreTool;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/toolbox_adk/tool.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAC,QAAQ,EAAsB,MAAM,aAAa,CAAC;AAU1D,OAAO,EAAC,+BAA+B,EAAC,MAAM,eAAe,CAAC;AAU9D;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,QAAQ;IAGvC;;;OAGG;IACH,YAAY,QAAkB;QAC5B,KAAK,CAAC;YACJ,IAAI,EAAE,QAAQ,CAAC,QAAQ;YACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,aAAa,EAAE,KAAK;SACrB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,OAA4B;QACzC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACM,eAAe;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAgC,CAAC;QAEjE,OAAO,+BAA+B,CACpC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,mBAAmB,CAAC,mBAAqC;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;QAC3E,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAChB,UAAkB,EAClB,UAA2B;QAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAClD,UAAU,EACV,UAAU,CACX,CAAC;QACF,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,YAAyB;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC3D,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,SAAiB,EAAE,UAAsB;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACnE,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACI,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const VERSION = "0.3.0";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Copyright 2026 Google LLC
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
export const VERSION = '0.3.0'; // x-release-please-version
|
|
15
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/toolbox_adk/version.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,2BAA2B"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { AuthTokenGetters, BoundParams, ClientHeadersConfig, Protocol } from '@toolbox-sdk/core';
|
|
2
|
+
import { ToolboxTool } from './tool.js';
|
|
3
|
+
import type { AxiosInstance } from 'axios';
|
|
4
|
+
/**
|
|
5
|
+
* An asynchronous client for interacting with a Toolbox service, specifically
|
|
6
|
+
* designed to work with the Google ADK.
|
|
7
|
+
*
|
|
8
|
+
* This client mirrors the interface of the core ToolboxClient but returns
|
|
9
|
+
* ADK-compatible `ToolboxTool` instances that can be used directly in an
|
|
10
|
+
* ADK Agent.
|
|
11
|
+
*/
|
|
12
|
+
export declare class ToolboxClient {
|
|
13
|
+
private readonly coreClient;
|
|
14
|
+
/**
|
|
15
|
+
* Initializes the ADK ToolboxClient.
|
|
16
|
+
* @param {string} url - The base URL for the Toolbox service API (e.g., "http://localhost:5000").
|
|
17
|
+
* @param {AxiosInstance} [session] - Optional Axios instance for making HTTP
|
|
18
|
+
* requests. If not provided, a new one will be created.
|
|
19
|
+
* @param {ClientHeadersConfig} [clientHeaders] - Optional initial headers to
|
|
20
|
+
* be included in each request.
|
|
21
|
+
*/
|
|
22
|
+
constructor(url: string, session?: AxiosInstance | null, clientHeaders?: ClientHeadersConfig | null, protocol?: Protocol);
|
|
23
|
+
/**
|
|
24
|
+
* Asynchronously loads a tool from the server.
|
|
25
|
+
*
|
|
26
|
+
* Retrieves the schema for the specified tool and returns an ADK-compatible
|
|
27
|
+
* `ToolboxTool` adapter instance, ready to be used in an ADK Agent.
|
|
28
|
+
*
|
|
29
|
+
* @param {string} name - The unique name or identifier of the tool to load.
|
|
30
|
+
* @param {AuthTokenGetters | null} [authTokenGetters] - Optional map of auth service names to token getters.
|
|
31
|
+
* @param {BoundParams | null} [boundParams] - Optional parameters to pre-bind to the tool.
|
|
32
|
+
* @returns {Promise<ToolboxTool>} A promise that resolves to an ADK ToolboxTool,
|
|
33
|
+
* ready for execution.
|
|
34
|
+
*/
|
|
35
|
+
loadTool(name: string, authTokenGetters?: AuthTokenGetters | null, boundParams?: BoundParams | null): Promise<ToolboxTool>;
|
|
36
|
+
/**
|
|
37
|
+
* Asynchronously fetches a toolset and loads all tools defined within it.
|
|
38
|
+
*
|
|
39
|
+
* @param {string | null} [name] - Name of the toolset to load. If null or undefined, loads the default toolset.
|
|
40
|
+
* @param {AuthTokenGetters | null} [authTokenGetters] - Optional map of auth service names to token getters.
|
|
41
|
+
* @param {BoundParams | null} [boundParams] - Optional parameters to pre-bind to the tools in the toolset.
|
|
42
|
+
* @param {boolean} [strict=false] - If true, throws an error if any provided auth token or bound param is not used by at least one tool.
|
|
43
|
+
* @returns {Promise<Array<ToolboxTool>>} A promise that resolves to a list of
|
|
44
|
+
* ADK ToolboxTool instances, ready for execution.
|
|
45
|
+
*/
|
|
46
|
+
loadToolset(name?: string, authTokenGetters?: AuthTokenGetters | null, boundParams?: BoundParams | null, strict?: boolean): Promise<Array<ToolboxTool>>;
|
|
47
|
+
}
|
|
@@ -11,8 +11,9 @@
|
|
|
11
11
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
|
-
import { ToolboxClient as CoreToolboxClient, } from '@toolbox-sdk/core';
|
|
14
|
+
import { ToolboxClient as CoreToolboxClient, Protocol, } from '@toolbox-sdk/core';
|
|
15
15
|
import { ToolboxTool } from './tool.js';
|
|
16
|
+
import { VERSION } from './version.js';
|
|
16
17
|
/**
|
|
17
18
|
* An asynchronous client for interacting with a Toolbox service, specifically
|
|
18
19
|
* designed to work with the Google ADK.
|
|
@@ -31,8 +32,8 @@ export class ToolboxClient {
|
|
|
31
32
|
* @param {ClientHeadersConfig} [clientHeaders] - Optional initial headers to
|
|
32
33
|
* be included in each request.
|
|
33
34
|
*/
|
|
34
|
-
constructor(url, session, clientHeaders) {
|
|
35
|
-
this.coreClient = new CoreToolboxClient(url, session, clientHeaders);
|
|
35
|
+
constructor(url, session, clientHeaders, protocol = Protocol.MCP) {
|
|
36
|
+
this.coreClient = new CoreToolboxClient(url, session, clientHeaders, protocol, 'toolbox-adk-js', VERSION);
|
|
36
37
|
}
|
|
37
38
|
/**
|
|
38
39
|
* Asynchronously loads a tool from the server.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/toolbox_adk/client.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EACL,aAAa,IAAI,iBAAiB,EAIlC,QAAQ,GACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,WAAW,EAAW,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAErC;;;;;;;GAOG;AACH,MAAM,OAAO,aAAa;IACP,UAAU,CAAoB;IAE/C;;;;;;;OAOG;IACH,YACE,GAAW,EACX,OAA8B,EAC9B,aAA0C,EAC1C,WAAqB,QAAQ,CAAC,GAAG;QAEjC,IAAI,CAAC,UAAU,GAAG,IAAI,iBAAiB,CACrC,GAAG,EACH,OAAO,EACP,aAAa,EACb,QAAQ,EACR,gBAAgB,EAChB,OAAO,CACR,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,QAAQ,CACZ,IAAY,EACZ,mBAA4C,EAAE,EAC9C,cAAkC,EAAE;QAEpC,MAAM,QAAQ,GAAa,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CACvD,IAAI,EACJ,gBAAgB,EAChB,WAAW,CACZ,CAAC;QACF,OAAO,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,WAAW,CACf,IAAa,EACb,mBAA4C,EAAE,EAC9C,cAAkC,EAAE,EACpC,MAAM,GAAG,KAAK;QAEd,MAAM,SAAS,GAAe,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAC7D,IAAI,EACJ,gBAAgB,EAChB,WAAW,EACX,MAAM,CACP,CAAC;QACF,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,CAAC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// Copyright 2025 Google LLC
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
// This file defines the public API for the @toolbox-sdk/adk package.
|
|
15
|
+
// Export the main factory function and the core tool type
|
|
16
|
+
export { ToolboxClient } from './client.js';
|
|
17
|
+
export { ToolboxTool } from './tool.js';
|
|
18
|
+
export { Protocol } from '@toolbox-sdk/core';
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/toolbox_adk/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,qEAAqE;AAErE,0DAA0D;AAC1D,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AACtC,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { FunctionDeclaration } from '@google/genai';
|
|
2
|
+
import { ZodObject, ZodRawShape } from 'zod';
|
|
3
|
+
/**
|
|
4
|
+
* Converts a ZodObject schema into a FunctionDeclaration for the Google ADK.
|
|
5
|
+
*
|
|
6
|
+
* @param name The name of the function/tool.
|
|
7
|
+
* @param description The description of the function/tool.
|
|
8
|
+
* @param zodSchema The Zod schema for the tool's parameters.
|
|
9
|
+
* @returns A FunctionDeclaration object for the Google Genai API.
|
|
10
|
+
*/
|
|
11
|
+
export declare function ConvertZodToFunctionDeclaration(name: string, description: string, zodSchema: ZodObject<ZodRawShape>): FunctionDeclaration;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/toolbox_adk/protocol.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAGjC,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAC;AACnC,OAAO,EAAC,CAAC,EAAqC,MAAM,KAAK,CAAC;AAE1D;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,OAAmB;IACnD,oEAAoE;IACpE,IAAI,OAAO,YAAY,CAAC,CAAC,WAAW,IAAI,OAAO,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACzE,OAAO,wBAAwB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,6BAA6B;IAC7B,IAAI,OAAO,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,YAAY,CAAC,CAAC,SAAS,IAAI,OAAO,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,OAAO,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;QAC1E,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAChD,CAAC;IAED,IAAI,OAAO,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,IAAI,OAAO,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,+BAA+B;IAC/B,OAAO,IAAI,CAAC,gBAAgB,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,+BAA+B,CAC7C,IAAY,EACZ,WAAmB,EACnB,SAAiC;IAEjC,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;QACtB,OAAO;YACL,IAAI;YACJ,WAAW;YACX,UAAU,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAC;SACtD,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7D,UAAU,CAAC,GAAG,CAAC,GAAG;YAChB,IAAI,EAAE,wBAAwB,CAAC,OAAO,CAAC;YACvC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;SACvC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI;QACJ,WAAW;QACX,UAAU,EAAE;YACV,IAAI,EAAE,IAAI,CAAC,MAAM;YACjB,UAAU;YACV,QAAQ;SACT;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { BaseTool, RunAsyncToolRequest } from '@google/adk';
|
|
2
|
+
import type { FunctionDeclaration } from '@google/genai';
|
|
3
|
+
import { ToolboxClient, AuthTokenGetter, AuthTokenGetters, BoundParams, BoundValue } from '@toolbox-sdk/core';
|
|
4
|
+
type ResolvedPromiseType<T> = T extends Promise<infer U> ? U : T;
|
|
5
|
+
export type CoreTool = ResolvedPromiseType<ReturnType<typeof ToolboxClient.prototype.loadTool>>;
|
|
6
|
+
/**
|
|
7
|
+
* An adapter class that wraps a `CoreTool` from the `@toolbox-sdk/core`
|
|
8
|
+
* to make it compatible with the `@google/adk` `BaseTool` interface.
|
|
9
|
+
*/
|
|
10
|
+
export declare class ToolboxTool extends BaseTool {
|
|
11
|
+
private readonly coreTool;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new instance of the ADK-compatible tool wrapper.
|
|
14
|
+
* @param coreTool The original callable tool object from `@toolbox-sdk/core`.
|
|
15
|
+
*/
|
|
16
|
+
constructor(coreTool: CoreTool);
|
|
17
|
+
/**
|
|
18
|
+
* Runs the tool by delegating the call to the wrapped `coreTool`.
|
|
19
|
+
*
|
|
20
|
+
* @param request The `RunAsyncToolRequest` from the ADK agent.
|
|
21
|
+
* @returns A promise that resolves to the tool's execution result.
|
|
22
|
+
*/
|
|
23
|
+
runAsync(request: RunAsyncToolRequest): Promise<unknown>;
|
|
24
|
+
/**
|
|
25
|
+
* Generates the `FunctionDeclaration` (JSON Schema) for this tool
|
|
26
|
+
* by converting the Zod schema from the `coreTool`.
|
|
27
|
+
*
|
|
28
|
+
* @returns A `FunctionDeclaration` for the LLM.
|
|
29
|
+
*/
|
|
30
|
+
_getDeclaration(): FunctionDeclaration | undefined;
|
|
31
|
+
/**
|
|
32
|
+
* Creates a new `ToolboxTool` with additional auth token getters.
|
|
33
|
+
*
|
|
34
|
+
* @param newAuthTokenGetters A map of auth sources to token getters.
|
|
35
|
+
* @returns A new `ToolboxTool` instance.
|
|
36
|
+
*/
|
|
37
|
+
addAuthTokenGetters(newAuthTokenGetters: AuthTokenGetters): ToolboxTool;
|
|
38
|
+
/**
|
|
39
|
+
* Creates a new `ToolboxTool` with an additional auth token getter.
|
|
40
|
+
*
|
|
41
|
+
* @param authSource The name of the auth source.
|
|
42
|
+
* @param getIdToken The token getter function.
|
|
43
|
+
* @returns A new `ToolboxTool` instance.
|
|
44
|
+
*/
|
|
45
|
+
addAuthTokenGetter(authSource: string, getIdToken: AuthTokenGetter): ToolboxTool;
|
|
46
|
+
/**
|
|
47
|
+
* Creates a new `ToolboxTool` with bound parameters.
|
|
48
|
+
*
|
|
49
|
+
* @param paramsToBind A map of parameter names to values or getters.
|
|
50
|
+
* @returns A new `ToolboxTool` instance.
|
|
51
|
+
*/
|
|
52
|
+
bindParams(paramsToBind: BoundParams): ToolboxTool;
|
|
53
|
+
/**
|
|
54
|
+
* Creates a new `ToolboxTool` with a single bound parameter.
|
|
55
|
+
*
|
|
56
|
+
* @param paramName The name of the parameter to bind.
|
|
57
|
+
* @param paramValue The value or getter to bind.
|
|
58
|
+
* @returns A new `ToolboxTool` instance.
|
|
59
|
+
*/
|
|
60
|
+
bindParam(paramName: string, paramValue: BoundValue): ToolboxTool;
|
|
61
|
+
/**
|
|
62
|
+
* Gets the underlying `CoreTool` object.
|
|
63
|
+
* @returns The wrapped `CoreTool` instance.
|
|
64
|
+
*/
|
|
65
|
+
getCoreTool(): CoreTool;
|
|
66
|
+
}
|
|
67
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/toolbox_adk/tool.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAC,QAAQ,EAAsB,MAAM,aAAa,CAAC;AAU1D,OAAO,EAAC,+BAA+B,EAAC,MAAM,eAAe,CAAC;AAU9D;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,QAAQ;IACtB,QAAQ,CAAW;IAEpC;;;OAGG;IACH,YAAY,QAAkB;QAC5B,KAAK,CAAC;YACJ,IAAI,EAAE,QAAQ,CAAC,QAAQ;YACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,aAAa,EAAE,KAAK;SACrB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,OAA4B;QACzC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACM,eAAe;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAgC,CAAC;QAEjE,OAAO,+BAA+B,CACpC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,mBAAmB,CAAC,mBAAqC;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;QAC3E,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAChB,UAAkB,EAClB,UAA2B;QAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAClD,UAAU,EACV,UAAU,CACX,CAAC;QACF,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,YAAyB;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC3D,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,SAAiB,EAAE,UAAsB;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACnE,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACI,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const VERSION = "0.3.0";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Copyright 2026 Google LLC
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
export const VERSION = '0.3.0'; // x-release-please-version
|
|
15
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/toolbox_adk/version.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,2BAA2B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@toolbox-sdk/adk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "JavaScript ADK SDK for interacting with the Toolbox service",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -17,9 +17,9 @@
|
|
|
17
17
|
],
|
|
18
18
|
"exports": {
|
|
19
19
|
".": {
|
|
20
|
-
"import": "./build/index.js",
|
|
20
|
+
"import": "./build/esm/index.js",
|
|
21
21
|
"require": "./build/cjs/index.js",
|
|
22
|
-
"types": "./build/index.d.ts"
|
|
22
|
+
"types": "./build/esm/index.d.ts"
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
"files": [
|
|
@@ -45,18 +45,21 @@
|
|
|
45
45
|
"test:unit": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --config jest.config.json",
|
|
46
46
|
"test:e2e": "npx tsc -p tsconfig.test.json && cross-env NODE_OPTIONS=--experimental-vm-modules jest --config jest.e2e.config.json --runInBand",
|
|
47
47
|
"coverage": "cross-env NODE_OPTIONS=--experimental-vm-modules jest --config jest.config.json --coverage",
|
|
48
|
-
"clean": "
|
|
48
|
+
"clean": "rm -rf ./build *.tsbuildinfo",
|
|
49
49
|
"build": "npm run clean && npm run compile",
|
|
50
50
|
"//": "Change prepack to invoke turbo from the root context",
|
|
51
51
|
"prepack": "npx turbo run build --filter=@toolbox-sdk/adk"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@google/adk": "^0.
|
|
54
|
+
"@google/adk": "^0.4.0",
|
|
55
55
|
"@google/genai": "^1.14.0",
|
|
56
|
-
"@modelcontextprotocol/sdk": "1.
|
|
57
|
-
"@toolbox-sdk/core": "^0.
|
|
58
|
-
"axios": "^1.
|
|
56
|
+
"@modelcontextprotocol/sdk": "1.27.1",
|
|
57
|
+
"@toolbox-sdk/core": "^0.3.0",
|
|
58
|
+
"axios": "^1.13.5",
|
|
59
59
|
"openapi-types": "^12.1.3",
|
|
60
60
|
"zod": "^3.24.4"
|
|
61
|
+
},
|
|
62
|
+
"devDependencies": {
|
|
63
|
+
"rimraf": "^6.1.2"
|
|
61
64
|
}
|
|
62
65
|
}
|
package/build/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/toolbox_adk/client.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EACL,aAAa,IAAI,iBAAiB,GAInC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAC,WAAW,EAAW,MAAM,WAAW,CAAC;AAGhD;;;;;;;GAOG;AACH,MAAM,OAAO,aAAa;IACP,UAAU,CAAoB;IAE/C;;;;;;;OAOG;IACH,YACE,GAAW,EACX,OAA8B,EAC9B,aAA0C;QAE1C,IAAI,CAAC,UAAU,GAAG,IAAI,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,QAAQ,CACZ,IAAY,EACZ,mBAA4C,EAAE,EAC9C,cAAkC,EAAE;QAEpC,MAAM,QAAQ,GAAa,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CACvD,IAAI,EACJ,gBAAgB,EAChB,WAAW,CACZ,CAAC;QACF,OAAO,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,WAAW,CACf,IAAa,EACb,mBAA4C,EAAE,EAC9C,cAAkC,EAAE,EACpC,MAAM,GAAG,KAAK;QAEd,MAAM,SAAS,GAAe,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAC7D,IAAI,EACJ,gBAAgB,EAChB,WAAW,EACX,MAAM,CACP,CAAC;QACF,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9D,CAAC;CACF"}
|
package/build/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/toolbox_adk/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,qEAAqE;AAErE,0DAA0D;AAC1D,OAAO,EAAC,aAAa,EAAC,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC"}
|
package/build/protocol.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/toolbox_adk/protocol.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAGjC,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAC;AACnC,OAAO,EAAC,CAAC,EAAqC,MAAM,KAAK,CAAC;AAE1D;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,OAAmB;IACnD,oEAAoE;IACpE,IAAI,OAAO,YAAY,CAAC,CAAC,WAAW,IAAI,OAAO,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACzE,OAAO,wBAAwB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,6BAA6B;IAC7B,IAAI,OAAO,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,YAAY,CAAC,CAAC,SAAS,IAAI,OAAO,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;QACnE,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,OAAO,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;QAC1E,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAChD,CAAC;IAED,IAAI,OAAO,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,IAAI,OAAO,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,IAAI,OAAO,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,+BAA+B;IAC/B,OAAO,IAAI,CAAC,gBAAgB,CAAC;AAC/B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,+BAA+B,CAC7C,IAAY,EACZ,WAAmB,EACnB,SAAiC;IAEjC,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC;QACtB,OAAO;YACL,IAAI;YACJ,WAAW;YACX,UAAU,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAC;SACtD,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7D,UAAU,CAAC,GAAG,CAAC,GAAG;YAChB,IAAI,EAAE,wBAAwB,CAAC,OAAO,CAAC;YACvC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;SACvC,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;YAC1B,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI;QACJ,WAAW;QACX,UAAU,EAAE;YACV,IAAI,EAAE,IAAI,CAAC,MAAM;YACjB,UAAU;YACV,QAAQ;SACT;KACF,CAAC;AACJ,CAAC"}
|
package/build/tool.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/toolbox_adk/tool.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,kDAAkD;AAClD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,OAAO,EAAC,QAAQ,EAAsB,MAAM,aAAa,CAAC;AAU1D,OAAO,EAAC,+BAA+B,EAAC,MAAM,eAAe,CAAC;AAU9D;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,QAAQ;IACtB,QAAQ,CAAW;IAEpC;;;OAGG;IACH,YAAY,QAAkB;QAC5B,KAAK,CAAC;YACJ,IAAI,EAAE,QAAQ,CAAC,QAAQ;YACvB,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,aAAa,EAAE,KAAK;SACrB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,OAA4B;QACzC,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED;;;;;OAKG;IACM,eAAe;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAgC,CAAC;QAEjE,OAAO,+BAA+B,CACpC,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,WAAW,EAChB,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,mBAAmB,CAAC,mBAAqC;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;QAC3E,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,kBAAkB,CAChB,UAAkB,EAClB,UAA2B;QAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAClD,UAAU,EACV,UAAU,CACX,CAAC;QACF,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,YAAyB;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC3D,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,SAAiB,EAAE,UAAsB;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACnE,OAAO,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACI,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|