@tanstack/ai-gemini 0.20.1 → 0.22.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 +15 -1
- package/dist/esm/adapters/audio.js +113 -61
- package/dist/esm/adapters/audio.js.map +1 -1
- package/dist/esm/adapters/embedding.d.ts +77 -0
- package/dist/esm/adapters/embedding.js +119 -0
- package/dist/esm/adapters/embedding.js.map +1 -0
- package/dist/esm/adapters/image.js +224 -225
- package/dist/esm/adapters/image.js.map +1 -1
- package/dist/esm/adapters/summarize.js +33 -12
- package/dist/esm/adapters/summarize.js.map +1 -1
- package/dist/esm/adapters/text.js +574 -650
- package/dist/esm/adapters/text.js.map +1 -1
- package/dist/esm/adapters/tts.js +197 -178
- package/dist/esm/adapters/tts.js.map +1 -1
- package/dist/esm/adapters/video.js +456 -409
- package/dist/esm/adapters/video.js.map +1 -1
- package/dist/esm/embedding/embedding-provider-options.d.ts +20 -0
- package/dist/esm/experimental/index.js +1 -6
- package/dist/esm/experimental/text-interactions/adapter.js +877 -1014
- package/dist/esm/experimental/text-interactions/adapter.js.map +1 -1
- package/dist/esm/image/image-provider-options.js +74 -54
- package/dist/esm/image/image-provider-options.js.map +1 -1
- package/dist/esm/index.d.ts +4 -1
- package/dist/esm/index.js +5 -36
- package/dist/esm/model-meta.d.ts +72 -5
- package/dist/esm/model-meta.js +737 -129
- package/dist/esm/model-meta.js.map +1 -1
- package/dist/esm/realtime/adapter.js +242 -228
- package/dist/esm/realtime/adapter.js.map +1 -1
- package/dist/esm/realtime/client.js +314 -381
- package/dist/esm/realtime/client.js.map +1 -1
- package/dist/esm/realtime/index.js +3 -0
- package/dist/esm/realtime/token.js +50 -36
- package/dist/esm/realtime/token.js.map +1 -1
- package/dist/esm/realtime/utils.js +202 -245
- package/dist/esm/realtime/utils.js.map +1 -1
- package/dist/esm/tools/code-execution-tool.js +11 -13
- package/dist/esm/tools/code-execution-tool.js.map +1 -1
- package/dist/esm/tools/computer-use-tool.js +18 -28
- package/dist/esm/tools/computer-use-tool.js.map +1 -1
- package/dist/esm/tools/file-search-tool.js +11 -14
- package/dist/esm/tools/file-search-tool.js.map +1 -1
- package/dist/esm/tools/function-declaration-tool.js +11 -25
- package/dist/esm/tools/function-declaration-tool.js.map +1 -1
- package/dist/esm/tools/google-maps-tool.js +11 -14
- package/dist/esm/tools/google-maps-tool.js.map +1 -1
- package/dist/esm/tools/google-search-retriveal-tool.js +11 -14
- package/dist/esm/tools/google-search-retriveal-tool.js.map +1 -1
- package/dist/esm/tools/google-search-tool.js +11 -14
- package/dist/esm/tools/google-search-tool.js.map +1 -1
- package/dist/esm/tools/index.js +2 -13
- package/dist/esm/tools/tool-converter.js +64 -57
- package/dist/esm/tools/tool-converter.js.map +1 -1
- package/dist/esm/tools/url-context-tool.js +11 -13
- package/dist/esm/tools/url-context-tool.js.map +1 -1
- package/dist/esm/usage.js +81 -87
- package/dist/esm/usage.js.map +1 -1
- package/dist/esm/utils/client.js +31 -24
- package/dist/esm/utils/client.js.map +1 -1
- package/dist/esm/utils/index.js +2 -0
- package/dist/esm/video/video-provider-options.js +73 -20
- package/dist/esm/video/video-provider-options.js.map +1 -1
- package/package.json +7 -7
- package/src/adapters/embedding.ts +173 -0
- package/src/embedding/embedding-provider-options.ts +29 -0
- package/src/index.ts +13 -0
- package/src/model-meta.ts +143 -10
- package/dist/esm/experimental/index.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/tools/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computer-use-tool.js","sources":["../../../src/tools/computer-use-tool.ts"],"sourcesContent":["import { brandProviderTool } from '@tanstack/ai'\nimport type { ComputerUse } from '@google/genai'\nimport type { ProviderTool, Tool } from '@tanstack/ai'\n\nexport type ComputerUseToolConfig = ComputerUse\n\n/** @deprecated Renamed to `ComputerUseToolConfig`. Will be removed in a future release. */\nexport type ComputerUseTool = ComputerUseToolConfig\n\nexport type GeminiComputerUseTool = ProviderTool<'gemini', 'computer_use'>\n\nexport function convertComputerUseToolToAdapterFormat(tool: Tool) {\n const metadata = tool.metadata as ComputerUseToolConfig\n // Vendor `ComputerUse` fields are `field?: T` (no `| undefined`) under EOPT,\n // so spread each field conditionally rather than emitting explicit\n // `undefined`s on the wire payload.\n return {\n computerUse: {\n ...(metadata.environment !== undefined && {\n environment: metadata.environment,\n }),\n ...(metadata.excludedPredefinedFunctions !== undefined && {\n excludedPredefinedFunctions: metadata.excludedPredefinedFunctions,\n }),\n },\n }\n}\n\nexport function computerUseTool(\n config: ComputerUseToolConfig,\n): GeminiComputerUseTool {\n return brandProviderTool<GeminiComputerUseTool>({\n name: 'computer_use',\n description: '',\n metadata: {\n ...(config.environment !== undefined && {\n environment: config.environment,\n }),\n ...(config.excludedPredefinedFunctions !== undefined && {\n excludedPredefinedFunctions: config.excludedPredefinedFunctions,\n }),\n },\n })\n}\n"],"
|
|
1
|
+
{"version":3,"file":"computer-use-tool.js","names":[],"sources":["../../../src/tools/computer-use-tool.ts"],"sourcesContent":["import { brandProviderTool } from '@tanstack/ai'\nimport type { ComputerUse } from '@google/genai'\nimport type { ProviderTool, Tool } from '@tanstack/ai'\n\nexport type ComputerUseToolConfig = ComputerUse\n\n/** @deprecated Renamed to `ComputerUseToolConfig`. Will be removed in a future release. */\nexport type ComputerUseTool = ComputerUseToolConfig\n\nexport type GeminiComputerUseTool = ProviderTool<'gemini', 'computer_use'>\n\nexport function convertComputerUseToolToAdapterFormat(tool: Tool) {\n const metadata = tool.metadata as ComputerUseToolConfig\n // Vendor `ComputerUse` fields are `field?: T` (no `| undefined`) under EOPT,\n // so spread each field conditionally rather than emitting explicit\n // `undefined`s on the wire payload.\n return {\n computerUse: {\n ...(metadata.environment !== undefined && {\n environment: metadata.environment,\n }),\n ...(metadata.excludedPredefinedFunctions !== undefined && {\n excludedPredefinedFunctions: metadata.excludedPredefinedFunctions,\n }),\n },\n }\n}\n\nexport function computerUseTool(\n config: ComputerUseToolConfig,\n): GeminiComputerUseTool {\n return brandProviderTool<GeminiComputerUseTool>({\n name: 'computer_use',\n description: '',\n metadata: {\n ...(config.environment !== undefined && {\n environment: config.environment,\n }),\n ...(config.excludedPredefinedFunctions !== undefined && {\n excludedPredefinedFunctions: config.excludedPredefinedFunctions,\n }),\n },\n })\n}\n"],"mappings":";;AAWA,SAAgB,sCAAsC,MAAY;CAChE,MAAM,WAAW,KAAK;CAItB,OAAO,EACL,aAAa;EACX,GAAI,SAAS,gBAAgB,KAAA,KAAa,EACxC,aAAa,SAAS,YACxB;EACA,GAAI,SAAS,gCAAgC,KAAA,KAAa,EACxD,6BAA6B,SAAS,4BACxC;CACF,EACF;AACF;AAEA,SAAgB,gBACd,QACuB;CACvB,OAAO,kBAAyC;EAC9C,MAAM;EACN,aAAa;EACb,UAAU;GACR,GAAI,OAAO,gBAAgB,KAAA,KAAa,EACtC,aAAa,OAAO,YACtB;GACA,GAAI,OAAO,gCAAgC,KAAA,KAAa,EACtD,6BAA6B,OAAO,4BACtC;EACF;CACF,CAAC;AACH"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
import { brandProviderTool } from "@tanstack/ai";
|
|
2
|
+
//#region src/tools/file-search-tool.ts
|
|
2
3
|
function convertFileSearchToolToAdapterFormat(tool) {
|
|
3
|
-
|
|
4
|
-
return {
|
|
5
|
-
fileSearch: metadata
|
|
6
|
-
};
|
|
4
|
+
return { fileSearch: tool.metadata };
|
|
7
5
|
}
|
|
8
6
|
function fileSearchTool(config) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
return brandProviderTool({
|
|
8
|
+
name: "file_search",
|
|
9
|
+
description: "",
|
|
10
|
+
metadata: config
|
|
11
|
+
});
|
|
14
12
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
//# sourceMappingURL=file-search-tool.js.map
|
|
13
|
+
//#endregion
|
|
14
|
+
export { convertFileSearchToolToAdapterFormat, fileSearchTool };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=file-search-tool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-search-tool.js","sources":["../../../src/tools/file-search-tool.ts"],"sourcesContent":["import { brandProviderTool } from '@tanstack/ai'\nimport type { FileSearch } from '@google/genai'\nimport type { ProviderTool, Tool } from '@tanstack/ai'\n\nexport type FileSearchToolConfig = FileSearch\n\n/** @deprecated Renamed to `FileSearchToolConfig`. Will be removed in a future release. */\nexport type FileSearchTool = FileSearchToolConfig\n\nexport type GeminiFileSearchTool = ProviderTool<'gemini', 'file_search'>\n\nexport function convertFileSearchToolToAdapterFormat(tool: Tool) {\n const metadata = tool.metadata as FileSearchToolConfig\n return {\n fileSearch: metadata,\n }\n}\n\nexport function fileSearchTool(\n config: FileSearchToolConfig,\n): GeminiFileSearchTool {\n return brandProviderTool<GeminiFileSearchTool>({\n name: 'file_search',\n description: '',\n metadata: config,\n })\n}\n"],"
|
|
1
|
+
{"version":3,"file":"file-search-tool.js","names":[],"sources":["../../../src/tools/file-search-tool.ts"],"sourcesContent":["import { brandProviderTool } from '@tanstack/ai'\nimport type { FileSearch } from '@google/genai'\nimport type { ProviderTool, Tool } from '@tanstack/ai'\n\nexport type FileSearchToolConfig = FileSearch\n\n/** @deprecated Renamed to `FileSearchToolConfig`. Will be removed in a future release. */\nexport type FileSearchTool = FileSearchToolConfig\n\nexport type GeminiFileSearchTool = ProviderTool<'gemini', 'file_search'>\n\nexport function convertFileSearchToolToAdapterFormat(tool: Tool) {\n const metadata = tool.metadata as FileSearchToolConfig\n return {\n fileSearch: metadata,\n }\n}\n\nexport function fileSearchTool(\n config: FileSearchToolConfig,\n): GeminiFileSearchTool {\n return brandProviderTool<GeminiFileSearchTool>({\n name: 'file_search',\n description: '',\n metadata: config,\n })\n}\n"],"mappings":";;AAWA,SAAgB,qCAAqC,MAAY;CAE/D,OAAO,EACL,YAFe,KAAK,SAGtB;AACF;AAEA,SAAgB,eACd,QACsB;CACtB,OAAO,kBAAwC;EAC7C,MAAM;EACN,aAAa;EACb,UAAU;CACZ,CAAC;AACH"}
|
|
@@ -1,28 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
);
|
|
7
|
-
}
|
|
8
|
-
if (tool.parameters && tool.parametersJsonSchema) {
|
|
9
|
-
throw new Error(
|
|
10
|
-
`FunctionDeclarationTool cannot have both 'parameters' and 'parametersJsonSchema' defined. Please use only one.`
|
|
11
|
-
);
|
|
12
|
-
}
|
|
13
|
-
if (tool.response && tool.responseJsonSchema) {
|
|
14
|
-
throw new Error(
|
|
15
|
-
`FunctionDeclarationTool cannot have both 'response' and 'responseJsonSchema' defined. Please use only one.`
|
|
16
|
-
);
|
|
17
|
-
}
|
|
1
|
+
//#region src/tools/function-declaration-tool.ts
|
|
2
|
+
var validateFunctionDeclarationTool = (tool) => {
|
|
3
|
+
if (tool.name === void 0 || !/^[a-zA-Z0-9_:.-]{1,64}$/.test(tool.name)) throw new Error(`Invalid function name: ${tool.name}. Must be 1-64 characters long and contain only a-z, A-Z, 0-9, underscores, colons, dots, and dashes.`);
|
|
4
|
+
if (tool.parameters && tool.parametersJsonSchema) throw new Error(`FunctionDeclarationTool cannot have both 'parameters' and 'parametersJsonSchema' defined. Please use only one.`);
|
|
5
|
+
if (tool.response && tool.responseJsonSchema) throw new Error(`FunctionDeclarationTool cannot have both 'response' and 'responseJsonSchema' defined. Please use only one.`);
|
|
18
6
|
};
|
|
19
7
|
function functionDeclarationTools(tools) {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
functionDeclarations: tools
|
|
23
|
-
};
|
|
8
|
+
tools.forEach(validateFunctionDeclarationTool);
|
|
9
|
+
return { functionDeclarations: tools };
|
|
24
10
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
//# sourceMappingURL=function-declaration-tool.js.map
|
|
11
|
+
//#endregion
|
|
12
|
+
export { functionDeclarationTools };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=function-declaration-tool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function-declaration-tool.js","sources":["../../../src/tools/function-declaration-tool.ts"],"sourcesContent":["import type { FunctionDeclaration } from '@google/genai'\n\nexport type FunctionDeclarationTool = FunctionDeclaration\n\nconst validateFunctionDeclarationTool = (tool: FunctionDeclarationTool) => {\n const nameRegex = /^[a-zA-Z0-9_:.-]{1,64}$/\n if (tool.name === undefined || !nameRegex.test(tool.name)) {\n throw new Error(\n `Invalid function name: ${tool.name}. Must be 1-64 characters long and contain only a-z, A-Z, 0-9, underscores, colons, dots, and dashes.`,\n )\n }\n\n if (tool.parameters && tool.parametersJsonSchema) {\n throw new Error(\n `FunctionDeclarationTool cannot have both 'parameters' and 'parametersJsonSchema' defined. Please use only one.`,\n )\n }\n\n if (tool.response && tool.responseJsonSchema) {\n throw new Error(\n `FunctionDeclarationTool cannot have both 'response' and 'responseJsonSchema' defined. Please use only one.`,\n )\n }\n}\n\nexport function functionDeclarationTools(\n tools: Array<FunctionDeclarationTool>,\n) {\n tools.forEach(validateFunctionDeclarationTool)\n return {\n functionDeclarations: tools,\n }\n}\n"],"
|
|
1
|
+
{"version":3,"file":"function-declaration-tool.js","names":[],"sources":["../../../src/tools/function-declaration-tool.ts"],"sourcesContent":["import type { FunctionDeclaration } from '@google/genai'\n\nexport type FunctionDeclarationTool = FunctionDeclaration\n\nconst validateFunctionDeclarationTool = (tool: FunctionDeclarationTool) => {\n const nameRegex = /^[a-zA-Z0-9_:.-]{1,64}$/\n if (tool.name === undefined || !nameRegex.test(tool.name)) {\n throw new Error(\n `Invalid function name: ${tool.name}. Must be 1-64 characters long and contain only a-z, A-Z, 0-9, underscores, colons, dots, and dashes.`,\n )\n }\n\n if (tool.parameters && tool.parametersJsonSchema) {\n throw new Error(\n `FunctionDeclarationTool cannot have both 'parameters' and 'parametersJsonSchema' defined. Please use only one.`,\n )\n }\n\n if (tool.response && tool.responseJsonSchema) {\n throw new Error(\n `FunctionDeclarationTool cannot have both 'response' and 'responseJsonSchema' defined. Please use only one.`,\n )\n }\n}\n\nexport function functionDeclarationTools(\n tools: Array<FunctionDeclarationTool>,\n) {\n tools.forEach(validateFunctionDeclarationTool)\n return {\n functionDeclarations: tools,\n }\n}\n"],"mappings":";AAIA,IAAM,mCAAmC,SAAkC;CAEzE,IAAI,KAAK,SAAS,KAAA,KAAa,CAAC,0BAAU,KAAK,KAAK,IAAI,GACtD,MAAM,IAAI,MACR,0BAA0B,KAAK,KAAK,sGACtC;CAGF,IAAI,KAAK,cAAc,KAAK,sBAC1B,MAAM,IAAI,MACR,gHACF;CAGF,IAAI,KAAK,YAAY,KAAK,oBACxB,MAAM,IAAI,MACR,4GACF;AAEJ;AAEA,SAAgB,yBACd,OACA;CACA,MAAM,QAAQ,+BAA+B;CAC7C,OAAO,EACL,sBAAsB,MACxB;AACF"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
import { brandProviderTool } from "@tanstack/ai";
|
|
2
|
+
//#region src/tools/google-maps-tool.ts
|
|
2
3
|
function convertGoogleMapsToolToAdapterFormat(tool) {
|
|
3
|
-
|
|
4
|
-
return {
|
|
5
|
-
googleMaps: metadata
|
|
6
|
-
};
|
|
4
|
+
return { googleMaps: tool.metadata };
|
|
7
5
|
}
|
|
8
6
|
function googleMapsTool(config) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
return brandProviderTool({
|
|
8
|
+
name: "google_maps",
|
|
9
|
+
description: "",
|
|
10
|
+
metadata: config
|
|
11
|
+
});
|
|
14
12
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
//# sourceMappingURL=google-maps-tool.js.map
|
|
13
|
+
//#endregion
|
|
14
|
+
export { convertGoogleMapsToolToAdapterFormat, googleMapsTool };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=google-maps-tool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-maps-tool.js","sources":["../../../src/tools/google-maps-tool.ts"],"sourcesContent":["import { brandProviderTool } from '@tanstack/ai'\nimport type { GoogleMaps } from '@google/genai'\nimport type { ProviderTool, Tool } from '@tanstack/ai'\n\nexport type GoogleMapsToolConfig = GoogleMaps\n\n/** @deprecated Renamed to `GoogleMapsToolConfig`. Will be removed in a future release. */\nexport type GoogleMapsTool = GoogleMapsToolConfig\n\nexport type GeminiGoogleMapsTool = ProviderTool<'gemini', 'google_maps'>\n\nexport function convertGoogleMapsToolToAdapterFormat(tool: Tool) {\n const metadata = tool.metadata as GoogleMapsToolConfig\n return {\n googleMaps: metadata,\n }\n}\n\nexport function googleMapsTool(\n config?: GoogleMapsToolConfig,\n): GeminiGoogleMapsTool {\n return brandProviderTool<GeminiGoogleMapsTool>({\n name: 'google_maps',\n description: '',\n metadata: config,\n })\n}\n"],"
|
|
1
|
+
{"version":3,"file":"google-maps-tool.js","names":[],"sources":["../../../src/tools/google-maps-tool.ts"],"sourcesContent":["import { brandProviderTool } from '@tanstack/ai'\nimport type { GoogleMaps } from '@google/genai'\nimport type { ProviderTool, Tool } from '@tanstack/ai'\n\nexport type GoogleMapsToolConfig = GoogleMaps\n\n/** @deprecated Renamed to `GoogleMapsToolConfig`. Will be removed in a future release. */\nexport type GoogleMapsTool = GoogleMapsToolConfig\n\nexport type GeminiGoogleMapsTool = ProviderTool<'gemini', 'google_maps'>\n\nexport function convertGoogleMapsToolToAdapterFormat(tool: Tool) {\n const metadata = tool.metadata as GoogleMapsToolConfig\n return {\n googleMaps: metadata,\n }\n}\n\nexport function googleMapsTool(\n config?: GoogleMapsToolConfig,\n): GeminiGoogleMapsTool {\n return brandProviderTool<GeminiGoogleMapsTool>({\n name: 'google_maps',\n description: '',\n metadata: config,\n })\n}\n"],"mappings":";;AAWA,SAAgB,qCAAqC,MAAY;CAE/D,OAAO,EACL,YAFe,KAAK,SAGtB;AACF;AAEA,SAAgB,eACd,QACsB;CACtB,OAAO,kBAAwC;EAC7C,MAAM;EACN,aAAa;EACb,UAAU;CACZ,CAAC;AACH"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
import { brandProviderTool } from "@tanstack/ai";
|
|
2
|
+
//#region src/tools/google-search-retriveal-tool.ts
|
|
2
3
|
function convertGoogleSearchRetrievalToolToAdapterFormat(tool) {
|
|
3
|
-
|
|
4
|
-
return {
|
|
5
|
-
googleSearchRetrieval: metadata
|
|
6
|
-
};
|
|
4
|
+
return { googleSearchRetrieval: tool.metadata };
|
|
7
5
|
}
|
|
8
6
|
function googleSearchRetrievalTool(config) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
return brandProviderTool({
|
|
8
|
+
name: "google_search_retrieval",
|
|
9
|
+
description: "",
|
|
10
|
+
metadata: config
|
|
11
|
+
});
|
|
14
12
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
//# sourceMappingURL=google-search-retriveal-tool.js.map
|
|
13
|
+
//#endregion
|
|
14
|
+
export { convertGoogleSearchRetrievalToolToAdapterFormat, googleSearchRetrievalTool };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=google-search-retriveal-tool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-search-retriveal-tool.js","sources":["../../../src/tools/google-search-retriveal-tool.ts"],"sourcesContent":["import { brandProviderTool } from '@tanstack/ai'\nimport type { GoogleSearchRetrieval } from '@google/genai'\nimport type { ProviderTool, Tool } from '@tanstack/ai'\n\nexport type GoogleSearchRetrievalToolConfig = GoogleSearchRetrieval\n\n/** @deprecated Renamed to `GoogleSearchRetrievalToolConfig`. Will be removed in a future release. */\nexport type GoogleSearchRetrievalTool = GoogleSearchRetrievalToolConfig\n\nexport type GeminiGoogleSearchRetrievalTool = ProviderTool<\n 'gemini',\n 'google_search_retrieval'\n>\n\nexport function convertGoogleSearchRetrievalToolToAdapterFormat(tool: Tool) {\n const metadata = tool.metadata as GoogleSearchRetrievalToolConfig\n return {\n googleSearchRetrieval: metadata,\n }\n}\n\nexport function googleSearchRetrievalTool(\n config?: GoogleSearchRetrievalToolConfig,\n): GeminiGoogleSearchRetrievalTool {\n return brandProviderTool<GeminiGoogleSearchRetrievalTool>({\n name: 'google_search_retrieval',\n description: '',\n metadata: config,\n })\n}\n"],"
|
|
1
|
+
{"version":3,"file":"google-search-retriveal-tool.js","names":[],"sources":["../../../src/tools/google-search-retriveal-tool.ts"],"sourcesContent":["import { brandProviderTool } from '@tanstack/ai'\nimport type { GoogleSearchRetrieval } from '@google/genai'\nimport type { ProviderTool, Tool } from '@tanstack/ai'\n\nexport type GoogleSearchRetrievalToolConfig = GoogleSearchRetrieval\n\n/** @deprecated Renamed to `GoogleSearchRetrievalToolConfig`. Will be removed in a future release. */\nexport type GoogleSearchRetrievalTool = GoogleSearchRetrievalToolConfig\n\nexport type GeminiGoogleSearchRetrievalTool = ProviderTool<\n 'gemini',\n 'google_search_retrieval'\n>\n\nexport function convertGoogleSearchRetrievalToolToAdapterFormat(tool: Tool) {\n const metadata = tool.metadata as GoogleSearchRetrievalToolConfig\n return {\n googleSearchRetrieval: metadata,\n }\n}\n\nexport function googleSearchRetrievalTool(\n config?: GoogleSearchRetrievalToolConfig,\n): GeminiGoogleSearchRetrievalTool {\n return brandProviderTool<GeminiGoogleSearchRetrievalTool>({\n name: 'google_search_retrieval',\n description: '',\n metadata: config,\n })\n}\n"],"mappings":";;AAcA,SAAgB,gDAAgD,MAAY;CAE1E,OAAO,EACL,uBAFe,KAAK,SAGtB;AACF;AAEA,SAAgB,0BACd,QACiC;CACjC,OAAO,kBAAmD;EACxD,MAAM;EACN,aAAa;EACb,UAAU;CACZ,CAAC;AACH"}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
import { brandProviderTool } from "@tanstack/ai";
|
|
2
|
+
//#region src/tools/google-search-tool.ts
|
|
2
3
|
function convertGoogleSearchToolToAdapterFormat(tool) {
|
|
3
|
-
|
|
4
|
-
return {
|
|
5
|
-
googleSearch: metadata
|
|
6
|
-
};
|
|
4
|
+
return { googleSearch: tool.metadata };
|
|
7
5
|
}
|
|
8
6
|
function googleSearchTool(config) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
return brandProviderTool({
|
|
8
|
+
name: "google_search",
|
|
9
|
+
description: "",
|
|
10
|
+
metadata: config
|
|
11
|
+
});
|
|
14
12
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
//# sourceMappingURL=google-search-tool.js.map
|
|
13
|
+
//#endregion
|
|
14
|
+
export { convertGoogleSearchToolToAdapterFormat, googleSearchTool };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=google-search-tool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-search-tool.js","sources":["../../../src/tools/google-search-tool.ts"],"sourcesContent":["import { brandProviderTool } from '@tanstack/ai'\nimport type { GoogleSearch } from '@google/genai'\nimport type { ProviderTool, Tool } from '@tanstack/ai'\n\nexport type GoogleSearchToolConfig = GoogleSearch\n\n/** @deprecated Renamed to `GoogleSearchToolConfig`. Will be removed in a future release. */\nexport type GoogleSearchTool = GoogleSearchToolConfig\n\nexport type GeminiGoogleSearchTool = ProviderTool<'gemini', 'google_search'>\n\nexport function convertGoogleSearchToolToAdapterFormat(tool: Tool) {\n const metadata = tool.metadata as GoogleSearchToolConfig\n return {\n googleSearch: metadata,\n }\n}\n\nexport function googleSearchTool(\n config?: GoogleSearchToolConfig,\n): GeminiGoogleSearchTool {\n return brandProviderTool<GeminiGoogleSearchTool>({\n name: 'google_search',\n description: '',\n metadata: config,\n })\n}\n"],"
|
|
1
|
+
{"version":3,"file":"google-search-tool.js","names":[],"sources":["../../../src/tools/google-search-tool.ts"],"sourcesContent":["import { brandProviderTool } from '@tanstack/ai'\nimport type { GoogleSearch } from '@google/genai'\nimport type { ProviderTool, Tool } from '@tanstack/ai'\n\nexport type GoogleSearchToolConfig = GoogleSearch\n\n/** @deprecated Renamed to `GoogleSearchToolConfig`. Will be removed in a future release. */\nexport type GoogleSearchTool = GoogleSearchToolConfig\n\nexport type GeminiGoogleSearchTool = ProviderTool<'gemini', 'google_search'>\n\nexport function convertGoogleSearchToolToAdapterFormat(tool: Tool) {\n const metadata = tool.metadata as GoogleSearchToolConfig\n return {\n googleSearch: metadata,\n }\n}\n\nexport function googleSearchTool(\n config?: GoogleSearchToolConfig,\n): GeminiGoogleSearchTool {\n return brandProviderTool<GeminiGoogleSearchTool>({\n name: 'google_search',\n description: '',\n metadata: config,\n })\n}\n"],"mappings":";;AAWA,SAAgB,uCAAuC,MAAY;CAEjE,OAAO,EACL,cAFe,KAAK,SAGtB;AACF;AAEA,SAAgB,iBACd,QACwB;CACxB,OAAO,kBAA0C;EAC/C,MAAM;EACN,aAAa;EACb,UAAU;CACZ,CAAC;AACH"}
|
package/dist/esm/tools/index.js
CHANGED
|
@@ -1,21 +1,10 @@
|
|
|
1
1
|
import { codeExecutionTool } from "./code-execution-tool.js";
|
|
2
2
|
import { computerUseTool } from "./computer-use-tool.js";
|
|
3
3
|
import { fileSearchTool } from "./file-search-tool.js";
|
|
4
|
-
import { functionDeclarationTools } from "./function-declaration-tool.js";
|
|
5
4
|
import { googleMapsTool } from "./google-maps-tool.js";
|
|
6
5
|
import { googleSearchRetrievalTool } from "./google-search-retriveal-tool.js";
|
|
7
6
|
import { googleSearchTool } from "./google-search-tool.js";
|
|
8
7
|
import { urlContextTool } from "./url-context-tool.js";
|
|
9
8
|
import { convertToolsToProviderFormat } from "./tool-converter.js";
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
computerUseTool,
|
|
13
|
-
convertToolsToProviderFormat,
|
|
14
|
-
fileSearchTool,
|
|
15
|
-
functionDeclarationTools,
|
|
16
|
-
googleMapsTool,
|
|
17
|
-
googleSearchRetrievalTool,
|
|
18
|
-
googleSearchTool,
|
|
19
|
-
urlContextTool
|
|
20
|
-
};
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
|
9
|
+
import { functionDeclarationTools } from "./function-declaration-tool.js";
|
|
10
|
+
export { codeExecutionTool, computerUseTool, convertToolsToProviderFormat, fileSearchTool, functionDeclarationTools, googleMapsTool, googleSearchRetrievalTool, googleSearchTool, urlContextTool };
|
|
@@ -5,62 +5,69 @@ import { convertGoogleMapsToolToAdapterFormat } from "./google-maps-tool.js";
|
|
|
5
5
|
import { convertGoogleSearchRetrievalToolToAdapterFormat } from "./google-search-retriveal-tool.js";
|
|
6
6
|
import { convertGoogleSearchToolToAdapterFormat } from "./google-search-tool.js";
|
|
7
7
|
import { convertUrlContextToolToAdapterFormat } from "./url-context-tool.js";
|
|
8
|
+
//#region src/tools/tool-converter.ts
|
|
9
|
+
/**
|
|
10
|
+
* Converts standard Tool format to Gemini-specific tool format
|
|
11
|
+
*
|
|
12
|
+
* @param tools - Array of standard Tool objects
|
|
13
|
+
* @returns Array of Gemini-specific tool definitions
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const tools: Tool[] = [{
|
|
18
|
+
* name: "get_weather",
|
|
19
|
+
* description: "Get weather for a location",
|
|
20
|
+
* inputSchema: z.object({
|
|
21
|
+
* location: z.string()
|
|
22
|
+
* })
|
|
23
|
+
* }];
|
|
24
|
+
*
|
|
25
|
+
* const geminiTools = convertToolsToProviderFormat(tools);
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
8
28
|
function convertToolsToProviderFormat(tools) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
properties: {},
|
|
50
|
-
required: []
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
break;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
if (functionDeclarations.length > 0) {
|
|
57
|
-
result.push({
|
|
58
|
-
functionDeclarations
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
return result;
|
|
29
|
+
if (!tools || tools.length === 0) return [];
|
|
30
|
+
const result = [];
|
|
31
|
+
const functionDeclarations = [];
|
|
32
|
+
for (const tool of tools) switch (tool.name) {
|
|
33
|
+
case "code_execution":
|
|
34
|
+
result.push(convertCodeExecutionToolToAdapterFormat(tool));
|
|
35
|
+
break;
|
|
36
|
+
case "computer_use":
|
|
37
|
+
result.push(convertComputerUseToolToAdapterFormat(tool));
|
|
38
|
+
break;
|
|
39
|
+
case "file_search":
|
|
40
|
+
result.push(convertFileSearchToolToAdapterFormat(tool));
|
|
41
|
+
break;
|
|
42
|
+
case "google_maps":
|
|
43
|
+
result.push(convertGoogleMapsToolToAdapterFormat(tool));
|
|
44
|
+
break;
|
|
45
|
+
case "google_search_retrieval":
|
|
46
|
+
result.push(convertGoogleSearchRetrievalToolToAdapterFormat(tool));
|
|
47
|
+
break;
|
|
48
|
+
case "google_search":
|
|
49
|
+
result.push(convertGoogleSearchToolToAdapterFormat(tool));
|
|
50
|
+
break;
|
|
51
|
+
case "url_context":
|
|
52
|
+
result.push(convertUrlContextToolToAdapterFormat(tool));
|
|
53
|
+
break;
|
|
54
|
+
default:
|
|
55
|
+
if (!tool.description) throw new Error(`Tool ${tool.name} requires a description for Gemini adapter`);
|
|
56
|
+
functionDeclarations.push({
|
|
57
|
+
name: tool.name,
|
|
58
|
+
description: tool.description,
|
|
59
|
+
parameters: tool.inputSchema ?? {
|
|
60
|
+
type: "object",
|
|
61
|
+
properties: {},
|
|
62
|
+
required: []
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
if (functionDeclarations.length > 0) result.push({ functionDeclarations });
|
|
68
|
+
return result;
|
|
62
69
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
//# sourceMappingURL=tool-converter.js.map
|
|
70
|
+
//#endregion
|
|
71
|
+
export { convertToolsToProviderFormat };
|
|
72
|
+
|
|
73
|
+
//# sourceMappingURL=tool-converter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-converter.js","sources":["../../../src/tools/tool-converter.ts"],"sourcesContent":["import { convertCodeExecutionToolToAdapterFormat } from './code-execution-tool'\nimport { convertComputerUseToolToAdapterFormat } from './computer-use-tool'\nimport { convertFileSearchToolToAdapterFormat } from './file-search-tool'\nimport { convertGoogleMapsToolToAdapterFormat } from './google-maps-tool'\nimport { convertGoogleSearchRetrievalToolToAdapterFormat } from './google-search-retriveal-tool'\nimport { convertGoogleSearchToolToAdapterFormat } from './google-search-tool'\nimport { convertUrlContextToolToAdapterFormat } from './url-context-tool'\nimport type { Tool } from '@tanstack/ai'\nimport type { ToolUnion } from '@google/genai'\n\n/**\n * Converts standard Tool format to Gemini-specific tool format\n *\n * @param tools - Array of standard Tool objects\n * @returns Array of Gemini-specific tool definitions\n *\n * @example\n * ```typescript\n * const tools: Tool[] = [{\n * name: \"get_weather\",\n * description: \"Get weather for a location\",\n * inputSchema: z.object({\n * location: z.string()\n * })\n * }];\n *\n * const geminiTools = convertToolsToProviderFormat(tools);\n * ```\n */\nexport function convertToolsToProviderFormat<TTool extends Tool>(\n tools: Array<TTool> | undefined,\n): Array<ToolUnion> {\n if (!tools || tools.length === 0) {\n return []\n }\n const result: Array<ToolUnion> = []\n const functionDeclarations: Array<{\n name: string\n description?: string\n parameters?: any\n }> = []\n\n // Process each tool and group function declarations together\n for (const tool of tools) {\n const name = tool.name\n\n switch (name) {\n case 'code_execution':\n result.push(convertCodeExecutionToolToAdapterFormat(tool))\n break\n case 'computer_use':\n result.push(convertComputerUseToolToAdapterFormat(tool))\n break\n case 'file_search':\n result.push(convertFileSearchToolToAdapterFormat(tool))\n break\n case 'google_maps':\n result.push(convertGoogleMapsToolToAdapterFormat(tool))\n break\n case 'google_search_retrieval':\n result.push(convertGoogleSearchRetrievalToolToAdapterFormat(tool))\n break\n case 'google_search':\n result.push(convertGoogleSearchToolToAdapterFormat(tool))\n break\n case 'url_context':\n result.push(convertUrlContextToolToAdapterFormat(tool))\n break\n default:\n // Collect function declarations to group together\n // Description is required for Gemini function declarations\n if (!tool.description) {\n throw new Error(\n `Tool ${tool.name} requires a description for Gemini adapter`,\n )\n }\n\n // Tool schemas are already converted to JSON Schema in the ai layer\n functionDeclarations.push({\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema ?? {\n type: 'object',\n properties: {},\n required: [],\n },\n })\n break\n }\n }\n\n // If we have function declarations, add them as a single tool\n if (functionDeclarations.length > 0) {\n result.push({\n functionDeclarations: functionDeclarations,\n })\n }\n\n return result\n}\n"],"
|
|
1
|
+
{"version":3,"file":"tool-converter.js","names":[],"sources":["../../../src/tools/tool-converter.ts"],"sourcesContent":["import { convertCodeExecutionToolToAdapterFormat } from './code-execution-tool'\nimport { convertComputerUseToolToAdapterFormat } from './computer-use-tool'\nimport { convertFileSearchToolToAdapterFormat } from './file-search-tool'\nimport { convertGoogleMapsToolToAdapterFormat } from './google-maps-tool'\nimport { convertGoogleSearchRetrievalToolToAdapterFormat } from './google-search-retriveal-tool'\nimport { convertGoogleSearchToolToAdapterFormat } from './google-search-tool'\nimport { convertUrlContextToolToAdapterFormat } from './url-context-tool'\nimport type { Tool } from '@tanstack/ai'\nimport type { ToolUnion } from '@google/genai'\n\n/**\n * Converts standard Tool format to Gemini-specific tool format\n *\n * @param tools - Array of standard Tool objects\n * @returns Array of Gemini-specific tool definitions\n *\n * @example\n * ```typescript\n * const tools: Tool[] = [{\n * name: \"get_weather\",\n * description: \"Get weather for a location\",\n * inputSchema: z.object({\n * location: z.string()\n * })\n * }];\n *\n * const geminiTools = convertToolsToProviderFormat(tools);\n * ```\n */\nexport function convertToolsToProviderFormat<TTool extends Tool>(\n tools: Array<TTool> | undefined,\n): Array<ToolUnion> {\n if (!tools || tools.length === 0) {\n return []\n }\n const result: Array<ToolUnion> = []\n const functionDeclarations: Array<{\n name: string\n description?: string\n parameters?: any\n }> = []\n\n // Process each tool and group function declarations together\n for (const tool of tools) {\n const name = tool.name\n\n switch (name) {\n case 'code_execution':\n result.push(convertCodeExecutionToolToAdapterFormat(tool))\n break\n case 'computer_use':\n result.push(convertComputerUseToolToAdapterFormat(tool))\n break\n case 'file_search':\n result.push(convertFileSearchToolToAdapterFormat(tool))\n break\n case 'google_maps':\n result.push(convertGoogleMapsToolToAdapterFormat(tool))\n break\n case 'google_search_retrieval':\n result.push(convertGoogleSearchRetrievalToolToAdapterFormat(tool))\n break\n case 'google_search':\n result.push(convertGoogleSearchToolToAdapterFormat(tool))\n break\n case 'url_context':\n result.push(convertUrlContextToolToAdapterFormat(tool))\n break\n default:\n // Collect function declarations to group together\n // Description is required for Gemini function declarations\n if (!tool.description) {\n throw new Error(\n `Tool ${tool.name} requires a description for Gemini adapter`,\n )\n }\n\n // Tool schemas are already converted to JSON Schema in the ai layer\n functionDeclarations.push({\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema ?? {\n type: 'object',\n properties: {},\n required: [],\n },\n })\n break\n }\n }\n\n // If we have function declarations, add them as a single tool\n if (functionDeclarations.length > 0) {\n result.push({\n functionDeclarations: functionDeclarations,\n })\n }\n\n return result\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,SAAgB,6BACd,OACkB;CAClB,IAAI,CAAC,SAAS,MAAM,WAAW,GAC7B,OAAO,CAAC;CAEV,MAAM,SAA2B,CAAC;CAClC,MAAM,uBAID,CAAC;CAGN,KAAK,MAAM,QAAQ,OAGjB,QAFa,KAAK,MAElB;EACE,KAAK;GACH,OAAO,KAAK,wCAAwC,IAAI,CAAC;GACzD;EACF,KAAK;GACH,OAAO,KAAK,sCAAsC,IAAI,CAAC;GACvD;EACF,KAAK;GACH,OAAO,KAAK,qCAAqC,IAAI,CAAC;GACtD;EACF,KAAK;GACH,OAAO,KAAK,qCAAqC,IAAI,CAAC;GACtD;EACF,KAAK;GACH,OAAO,KAAK,gDAAgD,IAAI,CAAC;GACjE;EACF,KAAK;GACH,OAAO,KAAK,uCAAuC,IAAI,CAAC;GACxD;EACF,KAAK;GACH,OAAO,KAAK,qCAAqC,IAAI,CAAC;GACtD;EACF;GAGE,IAAI,CAAC,KAAK,aACR,MAAM,IAAI,MACR,QAAQ,KAAK,KAAK,2CACpB;GAIF,qBAAqB,KAAK;IACxB,MAAM,KAAK;IACX,aAAa,KAAK;IAClB,YAAY,KAAK,eAAe;KAC9B,MAAM;KACN,YAAY,CAAC;KACb,UAAU,CAAC;IACb;GACF,CAAC;GACD;CACJ;CAIF,IAAI,qBAAqB,SAAS,GAChC,OAAO,KAAK,EACY,qBACxB,CAAC;CAGH,OAAO;AACT"}
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
import { brandProviderTool } from "@tanstack/ai";
|
|
2
|
+
//#region src/tools/url-context-tool.ts
|
|
2
3
|
function convertUrlContextToolToAdapterFormat(_tool) {
|
|
3
|
-
|
|
4
|
-
urlContext: {}
|
|
5
|
-
};
|
|
4
|
+
return { urlContext: {} };
|
|
6
5
|
}
|
|
7
6
|
function urlContextTool() {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
return brandProviderTool({
|
|
8
|
+
name: "url_context",
|
|
9
|
+
description: "",
|
|
10
|
+
metadata: {}
|
|
11
|
+
});
|
|
13
12
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
//# sourceMappingURL=url-context-tool.js.map
|
|
13
|
+
//#endregion
|
|
14
|
+
export { convertUrlContextToolToAdapterFormat, urlContextTool };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=url-context-tool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url-context-tool.js","sources":["../../../src/tools/url-context-tool.ts"],"sourcesContent":["import { brandProviderTool } from '@tanstack/ai'\nimport type { ProviderTool, Tool } from '@tanstack/ai'\n\nexport interface UrlContextToolConfig {}\n\n/** @deprecated Renamed to `UrlContextToolConfig`. Will be removed in a future release. */\nexport type UrlContextTool = UrlContextToolConfig\n\nexport type GeminiUrlContextTool = ProviderTool<'gemini', 'url_context'>\n\nexport function convertUrlContextToolToAdapterFormat(_tool: Tool) {\n return {\n urlContext: {},\n }\n}\n\nexport function urlContextTool(): GeminiUrlContextTool {\n return brandProviderTool<GeminiUrlContextTool>({\n name: 'url_context',\n description: '',\n metadata: {},\n })\n}\n"],"
|
|
1
|
+
{"version":3,"file":"url-context-tool.js","names":[],"sources":["../../../src/tools/url-context-tool.ts"],"sourcesContent":["import { brandProviderTool } from '@tanstack/ai'\nimport type { ProviderTool, Tool } from '@tanstack/ai'\n\nexport interface UrlContextToolConfig {}\n\n/** @deprecated Renamed to `UrlContextToolConfig`. Will be removed in a future release. */\nexport type UrlContextTool = UrlContextToolConfig\n\nexport type GeminiUrlContextTool = ProviderTool<'gemini', 'url_context'>\n\nexport function convertUrlContextToolToAdapterFormat(_tool: Tool) {\n return {\n urlContext: {},\n }\n}\n\nexport function urlContextTool(): GeminiUrlContextTool {\n return brandProviderTool<GeminiUrlContextTool>({\n name: 'url_context',\n description: '',\n metadata: {},\n })\n}\n"],"mappings":";;AAUA,SAAgB,qCAAqC,OAAa;CAChE,OAAO,EACL,YAAY,CAAC,EACf;AACF;AAEA,SAAgB,iBAAuC;CACrD,OAAO,kBAAwC;EAC7C,MAAM;EACN,aAAa;EACb,UAAU,CAAC;CACb,CAAC;AACH"}
|