integrate-sdk 0.7.42 → 0.7.43
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/dist/ai/google.d.ts +26 -3
- package/dist/ai/google.d.ts.map +1 -1
- package/dist/ai/google.js +16 -2
- package/dist/ai/index.js +16 -2
- package/dist/server.js +16 -2
- package/dist/src/ai/google.d.ts +26 -3
- package/dist/src/ai/google.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/ai/google.d.ts
CHANGED
|
@@ -52,6 +52,8 @@ export declare function convertMCPToolsToGoogle(client: MCPClient<any>, options?
|
|
|
52
52
|
/**
|
|
53
53
|
* Execute a function call from Google GenAI
|
|
54
54
|
*
|
|
55
|
+
* Automatically extracts provider tokens from the request if not provided.
|
|
56
|
+
*
|
|
55
57
|
* @param client - The MCP client instance
|
|
56
58
|
* @param functionCall - The function call from Google GenAI response
|
|
57
59
|
* @param options - Optional configuration including provider tokens
|
|
@@ -59,6 +61,16 @@ export declare function convertMCPToolsToGoogle(client: MCPClient<any>, options?
|
|
|
59
61
|
*
|
|
60
62
|
* @example
|
|
61
63
|
* ```typescript
|
|
64
|
+
* // Tokens are automatically extracted
|
|
65
|
+
* const result = await executeGoogleFunctionCall(client, {
|
|
66
|
+
* name: 'github_create_issue',
|
|
67
|
+
* args: { owner: 'user', repo: 'repo', title: 'Bug' }
|
|
68
|
+
* });
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* // Or explicitly pass provider tokens
|
|
62
74
|
* const result = await executeGoogleFunctionCall(client, {
|
|
63
75
|
* name: 'github_create_issue',
|
|
64
76
|
* args: { owner: 'user', repo: 'repo', title: 'Bug' }
|
|
@@ -72,6 +84,8 @@ export declare function executeGoogleFunctionCall(client: MCPClient<any>, functi
|
|
|
72
84
|
* This function handles the transformation from Google's function call format
|
|
73
85
|
* to the format expected by the SDK, then executes each call.
|
|
74
86
|
*
|
|
87
|
+
* Automatically extracts provider tokens from the request if not provided.
|
|
88
|
+
*
|
|
75
89
|
* @param client - The MCP client instance
|
|
76
90
|
* @param functionCalls - Array of function calls from Google GenAI response
|
|
77
91
|
* @param options - Optional configuration including provider tokens
|
|
@@ -79,7 +93,7 @@ export declare function executeGoogleFunctionCall(client: MCPClient<any>, functi
|
|
|
79
93
|
*
|
|
80
94
|
* @example
|
|
81
95
|
* ```typescript
|
|
82
|
-
* // In your API route
|
|
96
|
+
* // In your API route - tokens are automatically extracted
|
|
83
97
|
* const response = await ai.models.generateContent({
|
|
84
98
|
* model: 'gemini-2.0-flash-001',
|
|
85
99
|
* contents: messages,
|
|
@@ -91,12 +105,21 @@ export declare function executeGoogleFunctionCall(client: MCPClient<any>, functi
|
|
|
91
105
|
* if (response.functionCalls && response.functionCalls.length > 0) {
|
|
92
106
|
* const results = await executeGoogleFunctionCalls(
|
|
93
107
|
* serverClient,
|
|
94
|
-
* response.functionCalls
|
|
95
|
-
* { providerTokens }
|
|
108
|
+
* response.functionCalls
|
|
96
109
|
* );
|
|
97
110
|
* return Response.json(results);
|
|
98
111
|
* }
|
|
99
112
|
* ```
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```typescript
|
|
116
|
+
* // Or explicitly pass provider tokens
|
|
117
|
+
* const results = await executeGoogleFunctionCalls(
|
|
118
|
+
* serverClient,
|
|
119
|
+
* response.functionCalls,
|
|
120
|
+
* { providerTokens }
|
|
121
|
+
* );
|
|
122
|
+
* ```
|
|
100
123
|
*/
|
|
101
124
|
export declare function executeGoogleFunctionCalls(client: MCPClient<any>, functionCalls: GoogleFunctionCall[] | undefined | null, options?: GoogleToolsOptions): Promise<string[]>;
|
|
102
125
|
/**
|
package/dist/ai/google.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../src/ai/google.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAkE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EACV,MAAM,EACN,mBAAmB,EACnB,YAAY,EACb,MAAM,eAAe,CAAC;AAGvB,MAAM,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAC7C,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAC9C,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;CAAI;AA4D9D;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EACvB,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,UAAU,CAoBZ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,UAAU,EAAE,CAGd;AAED
|
|
1
|
+
{"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../src/ai/google.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAkE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EACV,MAAM,EACN,mBAAmB,EACnB,YAAY,EACb,MAAM,eAAe,CAAC;AAGvB,MAAM,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAC7C,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAC9C,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;CAAI;AA4D9D;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EACvB,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,UAAU,CAoBZ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,UAAU,EAAE,CAGd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,YAAY,EAAE,kBAAkB,EAChC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,CAAC,CA2BjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,aAAa,EAAE,kBAAkB,EAAE,GAAG,SAAS,GAAG,IAAI,EACtD,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC,CAsBnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,UAAU,EAAE,CAAC,CAevB"}
|
package/dist/ai/google.js
CHANGED
|
@@ -4269,15 +4269,29 @@ async function executeGoogleFunctionCall(client, functionCall, options) {
|
|
|
4269
4269
|
if (!functionCall?.name) {
|
|
4270
4270
|
throw new Error("Function call must have a name");
|
|
4271
4271
|
}
|
|
4272
|
+
let providerTokens = options?.providerTokens;
|
|
4273
|
+
if (!providerTokens) {
|
|
4274
|
+
try {
|
|
4275
|
+
providerTokens = await getProviderTokens();
|
|
4276
|
+
} catch {}
|
|
4277
|
+
}
|
|
4278
|
+
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
4272
4279
|
const args = functionCall.args || {};
|
|
4273
|
-
const result = await executeToolWithToken(client, functionCall.name, args,
|
|
4280
|
+
const result = await executeToolWithToken(client, functionCall.name, args, finalOptions);
|
|
4274
4281
|
return JSON.stringify(result);
|
|
4275
4282
|
}
|
|
4276
4283
|
async function executeGoogleFunctionCalls(client, functionCalls, options) {
|
|
4277
4284
|
if (!functionCalls || functionCalls.length === 0) {
|
|
4278
4285
|
return [];
|
|
4279
4286
|
}
|
|
4280
|
-
|
|
4287
|
+
let providerTokens = options?.providerTokens;
|
|
4288
|
+
if (!providerTokens) {
|
|
4289
|
+
try {
|
|
4290
|
+
providerTokens = await getProviderTokens();
|
|
4291
|
+
} catch {}
|
|
4292
|
+
}
|
|
4293
|
+
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
4294
|
+
const results = await Promise.all(functionCalls.map((call) => executeGoogleFunctionCall(client, call, finalOptions)));
|
|
4281
4295
|
return results;
|
|
4282
4296
|
}
|
|
4283
4297
|
async function getGoogleTools(client, options) {
|
package/dist/ai/index.js
CHANGED
|
@@ -4383,15 +4383,29 @@ async function executeGoogleFunctionCall(client, functionCall, options) {
|
|
|
4383
4383
|
if (!functionCall?.name) {
|
|
4384
4384
|
throw new Error("Function call must have a name");
|
|
4385
4385
|
}
|
|
4386
|
+
let providerTokens = options?.providerTokens;
|
|
4387
|
+
if (!providerTokens) {
|
|
4388
|
+
try {
|
|
4389
|
+
providerTokens = await getProviderTokens();
|
|
4390
|
+
} catch {}
|
|
4391
|
+
}
|
|
4392
|
+
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
4386
4393
|
const args = functionCall.args || {};
|
|
4387
|
-
const result = await executeToolWithToken(client, functionCall.name, args,
|
|
4394
|
+
const result = await executeToolWithToken(client, functionCall.name, args, finalOptions);
|
|
4388
4395
|
return JSON.stringify(result);
|
|
4389
4396
|
}
|
|
4390
4397
|
async function executeGoogleFunctionCalls(client, functionCalls, options) {
|
|
4391
4398
|
if (!functionCalls || functionCalls.length === 0) {
|
|
4392
4399
|
return [];
|
|
4393
4400
|
}
|
|
4394
|
-
|
|
4401
|
+
let providerTokens = options?.providerTokens;
|
|
4402
|
+
if (!providerTokens) {
|
|
4403
|
+
try {
|
|
4404
|
+
providerTokens = await getProviderTokens();
|
|
4405
|
+
} catch {}
|
|
4406
|
+
}
|
|
4407
|
+
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
4408
|
+
const results = await Promise.all(functionCalls.map((call) => executeGoogleFunctionCall(client, call, finalOptions)));
|
|
4395
4409
|
return results;
|
|
4396
4410
|
}
|
|
4397
4411
|
async function getGoogleTools(client, options) {
|
package/dist/server.js
CHANGED
|
@@ -6741,15 +6741,29 @@ async function executeGoogleFunctionCall(client, functionCall, options) {
|
|
|
6741
6741
|
if (!functionCall?.name) {
|
|
6742
6742
|
throw new Error("Function call must have a name");
|
|
6743
6743
|
}
|
|
6744
|
+
let providerTokens = options?.providerTokens;
|
|
6745
|
+
if (!providerTokens) {
|
|
6746
|
+
try {
|
|
6747
|
+
providerTokens = await getProviderTokens();
|
|
6748
|
+
} catch {}
|
|
6749
|
+
}
|
|
6750
|
+
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
6744
6751
|
const args = functionCall.args || {};
|
|
6745
|
-
const result = await executeToolWithToken(client, functionCall.name, args,
|
|
6752
|
+
const result = await executeToolWithToken(client, functionCall.name, args, finalOptions);
|
|
6746
6753
|
return JSON.stringify(result);
|
|
6747
6754
|
}
|
|
6748
6755
|
async function executeGoogleFunctionCalls(client, functionCalls, options) {
|
|
6749
6756
|
if (!functionCalls || functionCalls.length === 0) {
|
|
6750
6757
|
return [];
|
|
6751
6758
|
}
|
|
6752
|
-
|
|
6759
|
+
let providerTokens = options?.providerTokens;
|
|
6760
|
+
if (!providerTokens) {
|
|
6761
|
+
try {
|
|
6762
|
+
providerTokens = await getProviderTokens();
|
|
6763
|
+
} catch {}
|
|
6764
|
+
}
|
|
6765
|
+
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
6766
|
+
const results = await Promise.all(functionCalls.map((call) => executeGoogleFunctionCall(client, call, finalOptions)));
|
|
6753
6767
|
return results;
|
|
6754
6768
|
}
|
|
6755
6769
|
async function getGoogleTools(client, options) {
|
package/dist/src/ai/google.d.ts
CHANGED
|
@@ -52,6 +52,8 @@ export declare function convertMCPToolsToGoogle(client: MCPClient<any>, options?
|
|
|
52
52
|
/**
|
|
53
53
|
* Execute a function call from Google GenAI
|
|
54
54
|
*
|
|
55
|
+
* Automatically extracts provider tokens from the request if not provided.
|
|
56
|
+
*
|
|
55
57
|
* @param client - The MCP client instance
|
|
56
58
|
* @param functionCall - The function call from Google GenAI response
|
|
57
59
|
* @param options - Optional configuration including provider tokens
|
|
@@ -59,6 +61,16 @@ export declare function convertMCPToolsToGoogle(client: MCPClient<any>, options?
|
|
|
59
61
|
*
|
|
60
62
|
* @example
|
|
61
63
|
* ```typescript
|
|
64
|
+
* // Tokens are automatically extracted
|
|
65
|
+
* const result = await executeGoogleFunctionCall(client, {
|
|
66
|
+
* name: 'github_create_issue',
|
|
67
|
+
* args: { owner: 'user', repo: 'repo', title: 'Bug' }
|
|
68
|
+
* });
|
|
69
|
+
* ```
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* // Or explicitly pass provider tokens
|
|
62
74
|
* const result = await executeGoogleFunctionCall(client, {
|
|
63
75
|
* name: 'github_create_issue',
|
|
64
76
|
* args: { owner: 'user', repo: 'repo', title: 'Bug' }
|
|
@@ -72,6 +84,8 @@ export declare function executeGoogleFunctionCall(client: MCPClient<any>, functi
|
|
|
72
84
|
* This function handles the transformation from Google's function call format
|
|
73
85
|
* to the format expected by the SDK, then executes each call.
|
|
74
86
|
*
|
|
87
|
+
* Automatically extracts provider tokens from the request if not provided.
|
|
88
|
+
*
|
|
75
89
|
* @param client - The MCP client instance
|
|
76
90
|
* @param functionCalls - Array of function calls from Google GenAI response
|
|
77
91
|
* @param options - Optional configuration including provider tokens
|
|
@@ -79,7 +93,7 @@ export declare function executeGoogleFunctionCall(client: MCPClient<any>, functi
|
|
|
79
93
|
*
|
|
80
94
|
* @example
|
|
81
95
|
* ```typescript
|
|
82
|
-
* // In your API route
|
|
96
|
+
* // In your API route - tokens are automatically extracted
|
|
83
97
|
* const response = await ai.models.generateContent({
|
|
84
98
|
* model: 'gemini-2.0-flash-001',
|
|
85
99
|
* contents: messages,
|
|
@@ -91,12 +105,21 @@ export declare function executeGoogleFunctionCall(client: MCPClient<any>, functi
|
|
|
91
105
|
* if (response.functionCalls && response.functionCalls.length > 0) {
|
|
92
106
|
* const results = await executeGoogleFunctionCalls(
|
|
93
107
|
* serverClient,
|
|
94
|
-
* response.functionCalls
|
|
95
|
-
* { providerTokens }
|
|
108
|
+
* response.functionCalls
|
|
96
109
|
* );
|
|
97
110
|
* return Response.json(results);
|
|
98
111
|
* }
|
|
99
112
|
* ```
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```typescript
|
|
116
|
+
* // Or explicitly pass provider tokens
|
|
117
|
+
* const results = await executeGoogleFunctionCalls(
|
|
118
|
+
* serverClient,
|
|
119
|
+
* response.functionCalls,
|
|
120
|
+
* { providerTokens }
|
|
121
|
+
* );
|
|
122
|
+
* ```
|
|
100
123
|
*/
|
|
101
124
|
export declare function executeGoogleFunctionCalls(client: MCPClient<any>, functionCalls: GoogleFunctionCall[] | undefined | null, options?: GoogleToolsOptions): Promise<string[]>;
|
|
102
125
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../src/ai/google.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAkE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EACV,MAAM,EACN,mBAAmB,EACnB,YAAY,EACb,MAAM,eAAe,CAAC;AAGvB,MAAM,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAC7C,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAC9C,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;CAAI;AA4D9D;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EACvB,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,UAAU,CAoBZ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,UAAU,EAAE,CAGd;AAED
|
|
1
|
+
{"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../src/ai/google.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAkE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjH,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EACV,MAAM,EACN,mBAAmB,EACnB,YAAY,EACb,MAAM,eAAe,CAAC;AAGvB,MAAM,MAAM,UAAU,GAAG,mBAAmB,CAAC;AAC7C,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC;AAC9C,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc;CAAI;AA4D9D;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EACvB,QAAQ,CAAC,EAAE,kBAAkB,GAC5B,UAAU,CAoBZ;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,UAAU,EAAE,CAGd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,YAAY,EAAE,kBAAkB,EAChC,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,CAAC,CA2BjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,aAAa,EAAE,kBAAkB,EAAE,GAAG,SAAS,GAAG,IAAI,EACtD,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC,CAsBnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,UAAU,EAAE,CAAC,CAevB"}
|