integrate-sdk 0.7.43 → 0.7.44
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/adapters/index.js +69 -24
- package/dist/adapters/solid-start.js +69 -24
- package/dist/adapters/svelte-kit.js +69 -24
- package/dist/ai/index.d.ts +1 -3
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +0 -32
- package/dist/index.js +69 -24
- package/dist/server.js +69 -55
- package/dist/src/ai/index.d.ts +1 -3
- package/dist/src/ai/index.d.ts.map +1 -1
- package/dist/src/client.d.ts +5 -2
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/config/types.d.ts +63 -0
- package/dist/src/config/types.d.ts.map +1 -1
- package/dist/src/oauth/manager.d.ts +23 -12
- package/dist/src/oauth/manager.d.ts.map +1 -1
- package/dist/src/server.d.ts +1 -0
- package/dist/src/server.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/ai/openai-agents.d.ts +0 -99
- package/dist/ai/openai-agents.d.ts.map +0 -1
- package/dist/ai/openai-agents.js +0 -4235
- package/dist/src/ai/openai-agents.d.ts +0 -99
- package/dist/src/ai/openai-agents.d.ts.map +0 -1
package/dist/ai/index.js
CHANGED
|
@@ -4525,33 +4525,6 @@ async function handleOpenAIResponse(client, response, options) {
|
|
|
4525
4525
|
return handleOpenAIToolCalls(client, functionCalls, finalOptions);
|
|
4526
4526
|
}
|
|
4527
4527
|
|
|
4528
|
-
// openai-agents.ts
|
|
4529
|
-
function convertMCPToolToOpenAIAgents(mcpTool, client, options) {
|
|
4530
|
-
return {
|
|
4531
|
-
name: mcpTool.name,
|
|
4532
|
-
description: mcpTool.description || `Execute ${mcpTool.name}`,
|
|
4533
|
-
parameters: jsonSchemaToZod(mcpTool.inputSchema),
|
|
4534
|
-
execute: async (args) => {
|
|
4535
|
-
return await executeToolWithToken(client, mcpTool.name, args, options);
|
|
4536
|
-
}
|
|
4537
|
-
};
|
|
4538
|
-
}
|
|
4539
|
-
function convertMCPToolsToOpenAIAgents(client, options) {
|
|
4540
|
-
const mcpTools = client.getEnabledTools();
|
|
4541
|
-
return mcpTools.map((mcpTool) => convertMCPToolToOpenAIAgents(mcpTool, client, options));
|
|
4542
|
-
}
|
|
4543
|
-
async function getOpenAIAgentsTools(client, options) {
|
|
4544
|
-
await ensureClientConnected(client);
|
|
4545
|
-
let providerTokens = options?.providerTokens;
|
|
4546
|
-
if (!providerTokens) {
|
|
4547
|
-
try {
|
|
4548
|
-
providerTokens = await getProviderTokens();
|
|
4549
|
-
} catch {}
|
|
4550
|
-
}
|
|
4551
|
-
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
4552
|
-
return convertMCPToolsToOpenAIAgents(client, finalOptions);
|
|
4553
|
-
}
|
|
4554
|
-
|
|
4555
4528
|
// langchain.ts
|
|
4556
4529
|
function convertMCPToolToLangChain(mcpTool, client, options) {
|
|
4557
4530
|
return {
|
|
@@ -4647,8 +4620,6 @@ async function getAITools(client, provider, options) {
|
|
|
4647
4620
|
return await getVercelAITools(client, options);
|
|
4648
4621
|
case "openai":
|
|
4649
4622
|
return await getOpenAITools(client, options);
|
|
4650
|
-
case "openai-agents":
|
|
4651
|
-
return await getOpenAIAgentsTools(client, options);
|
|
4652
4623
|
case "anthropic":
|
|
4653
4624
|
return await getAnthropicTools(client, options);
|
|
4654
4625
|
case "google":
|
|
@@ -4677,7 +4648,6 @@ export {
|
|
|
4677
4648
|
getProviderTokens,
|
|
4678
4649
|
getProviderForTool,
|
|
4679
4650
|
getOpenAITools,
|
|
4680
|
-
getOpenAIAgentsTools,
|
|
4681
4651
|
getMastraTools,
|
|
4682
4652
|
getLlamaIndexTools,
|
|
4683
4653
|
getLangChainTools,
|
|
@@ -4693,7 +4663,6 @@ export {
|
|
|
4693
4663
|
executeAnthropicToolCall,
|
|
4694
4664
|
ensureClientConnected,
|
|
4695
4665
|
convertMCPToolsToVercelAI,
|
|
4696
|
-
convertMCPToolsToOpenAIAgents,
|
|
4697
4666
|
convertMCPToolsToOpenAI,
|
|
4698
4667
|
convertMCPToolsToMastra,
|
|
4699
4668
|
convertMCPToolsToLlamaIndex,
|
|
@@ -4702,7 +4671,6 @@ export {
|
|
|
4702
4671
|
convertMCPToolsToCloudflare,
|
|
4703
4672
|
convertMCPToolsToAnthropic,
|
|
4704
4673
|
convertMCPToolToVercelAI,
|
|
4705
|
-
convertMCPToolToOpenAIAgents,
|
|
4706
4674
|
convertMCPToolToOpenAI,
|
|
4707
4675
|
convertMCPToolToMastra,
|
|
4708
4676
|
convertMCPToolToLlamaIndex,
|
package/dist/index.js
CHANGED
|
@@ -829,7 +829,9 @@ class OAuthManager {
|
|
|
829
829
|
flowConfig;
|
|
830
830
|
oauthApiBase;
|
|
831
831
|
apiBaseUrl;
|
|
832
|
-
|
|
832
|
+
getTokenCallback;
|
|
833
|
+
setTokenCallback;
|
|
834
|
+
constructor(oauthApiBase, flowConfig, apiBaseUrl, tokenCallbacks) {
|
|
833
835
|
this.oauthApiBase = oauthApiBase;
|
|
834
836
|
this.apiBaseUrl = apiBaseUrl;
|
|
835
837
|
this.windowManager = new OAuthWindowManager;
|
|
@@ -838,6 +840,8 @@ class OAuthManager {
|
|
|
838
840
|
popupOptions: flowConfig?.popupOptions,
|
|
839
841
|
onAuthCallback: flowConfig?.onAuthCallback
|
|
840
842
|
};
|
|
843
|
+
this.getTokenCallback = tokenCallbacks?.getProviderToken;
|
|
844
|
+
this.setTokenCallback = tokenCallbacks?.setProviderToken;
|
|
841
845
|
this.cleanupExpiredPendingAuths();
|
|
842
846
|
}
|
|
843
847
|
async initiateFlow(provider, config, returnUrl) {
|
|
@@ -901,7 +905,7 @@ class OAuthManager {
|
|
|
901
905
|
scopes: response.scopes
|
|
902
906
|
};
|
|
903
907
|
this.providerTokens.set(pendingAuth.provider, tokenData);
|
|
904
|
-
this.saveProviderToken(pendingAuth.provider, tokenData);
|
|
908
|
+
await this.saveProviderToken(pendingAuth.provider, tokenData);
|
|
905
909
|
this.pendingAuths.delete(state);
|
|
906
910
|
this.removePendingAuthFromStorage(state);
|
|
907
911
|
return { ...tokenData, provider: pendingAuth.provider };
|
|
@@ -912,7 +916,7 @@ class OAuthManager {
|
|
|
912
916
|
}
|
|
913
917
|
}
|
|
914
918
|
async checkAuthStatus(provider) {
|
|
915
|
-
const tokenData = this.
|
|
919
|
+
const tokenData = await this.getProviderToken(provider);
|
|
916
920
|
if (!tokenData) {
|
|
917
921
|
return {
|
|
918
922
|
authorized: false,
|
|
@@ -927,26 +931,38 @@ class OAuthManager {
|
|
|
927
931
|
};
|
|
928
932
|
}
|
|
929
933
|
async disconnectProvider(provider) {
|
|
930
|
-
const tokenData = this.
|
|
934
|
+
const tokenData = await this.getProviderToken(provider);
|
|
931
935
|
if (!tokenData) {
|
|
932
936
|
throw new Error(`No access token available for provider "${provider}". Cannot disconnect provider.`);
|
|
933
937
|
}
|
|
934
938
|
this.providerTokens.delete(provider);
|
|
935
939
|
this.clearProviderToken(provider);
|
|
936
940
|
}
|
|
937
|
-
getProviderToken(provider) {
|
|
941
|
+
async getProviderToken(provider) {
|
|
942
|
+
if (this.getTokenCallback) {
|
|
943
|
+
try {
|
|
944
|
+
const tokenData = await this.getTokenCallback(provider);
|
|
945
|
+
if (tokenData) {
|
|
946
|
+
this.providerTokens.set(provider, tokenData);
|
|
947
|
+
}
|
|
948
|
+
return tokenData;
|
|
949
|
+
} catch (error) {
|
|
950
|
+
console.error(`Failed to get token for ${provider} via callback:`, error);
|
|
951
|
+
return;
|
|
952
|
+
}
|
|
953
|
+
}
|
|
938
954
|
return this.providerTokens.get(provider);
|
|
939
955
|
}
|
|
940
956
|
getAllProviderTokens() {
|
|
941
957
|
return new Map(this.providerTokens);
|
|
942
958
|
}
|
|
943
|
-
setProviderToken(provider, tokenData) {
|
|
959
|
+
async setProviderToken(provider, tokenData) {
|
|
944
960
|
this.providerTokens.set(provider, tokenData);
|
|
945
|
-
this.saveProviderToken(provider, tokenData);
|
|
961
|
+
await this.saveProviderToken(provider, tokenData);
|
|
946
962
|
}
|
|
947
963
|
clearProviderToken(provider) {
|
|
948
964
|
this.providerTokens.delete(provider);
|
|
949
|
-
if (typeof window !== "undefined" && window.localStorage) {
|
|
965
|
+
if (!this.getTokenCallback && typeof window !== "undefined" && window.localStorage) {
|
|
950
966
|
try {
|
|
951
967
|
window.localStorage.removeItem(`integrate_token_${provider}`);
|
|
952
968
|
} catch (error) {
|
|
@@ -957,7 +973,7 @@ class OAuthManager {
|
|
|
957
973
|
clearAllProviderTokens() {
|
|
958
974
|
const providers = Array.from(this.providerTokens.keys());
|
|
959
975
|
this.providerTokens.clear();
|
|
960
|
-
if (typeof window !== "undefined" && window.localStorage) {
|
|
976
|
+
if (!this.getTokenCallback && typeof window !== "undefined" && window.localStorage) {
|
|
961
977
|
for (const provider of providers) {
|
|
962
978
|
try {
|
|
963
979
|
window.localStorage.removeItem(`integrate_token_${provider}`);
|
|
@@ -985,7 +1001,16 @@ class OAuthManager {
|
|
|
985
1001
|
}
|
|
986
1002
|
}
|
|
987
1003
|
}
|
|
988
|
-
saveProviderToken(provider, tokenData) {
|
|
1004
|
+
async saveProviderToken(provider, tokenData) {
|
|
1005
|
+
if (this.setTokenCallback) {
|
|
1006
|
+
try {
|
|
1007
|
+
await this.setTokenCallback(provider, tokenData);
|
|
1008
|
+
} catch (error) {
|
|
1009
|
+
console.error(`Failed to save token for ${provider} via callback:`, error);
|
|
1010
|
+
throw error;
|
|
1011
|
+
}
|
|
1012
|
+
return;
|
|
1013
|
+
}
|
|
989
1014
|
if (typeof window !== "undefined" && window.localStorage) {
|
|
990
1015
|
try {
|
|
991
1016
|
const key = `integrate_token_${provider}`;
|
|
@@ -995,7 +1020,15 @@ class OAuthManager {
|
|
|
995
1020
|
}
|
|
996
1021
|
}
|
|
997
1022
|
}
|
|
998
|
-
loadProviderToken(provider) {
|
|
1023
|
+
async loadProviderToken(provider) {
|
|
1024
|
+
if (this.getTokenCallback) {
|
|
1025
|
+
try {
|
|
1026
|
+
return await this.getTokenCallback(provider);
|
|
1027
|
+
} catch (error) {
|
|
1028
|
+
console.error(`Failed to load token for ${provider} via callback:`, error);
|
|
1029
|
+
return;
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
999
1032
|
if (typeof window !== "undefined" && window.localStorage) {
|
|
1000
1033
|
try {
|
|
1001
1034
|
const key = `integrate_token_${provider}`;
|
|
@@ -1009,9 +1042,9 @@ class OAuthManager {
|
|
|
1009
1042
|
}
|
|
1010
1043
|
return;
|
|
1011
1044
|
}
|
|
1012
|
-
loadAllProviderTokens(providers) {
|
|
1045
|
+
async loadAllProviderTokens(providers) {
|
|
1013
1046
|
for (const provider of providers) {
|
|
1014
|
-
const tokenData = this.loadProviderToken(provider);
|
|
1047
|
+
const tokenData = await this.loadProviderToken(provider);
|
|
1015
1048
|
if (tokenData) {
|
|
1016
1049
|
this.providerTokens.set(provider, tokenData);
|
|
1017
1050
|
}
|
|
@@ -1211,16 +1244,28 @@ class MCPClientBase {
|
|
|
1211
1244
|
};
|
|
1212
1245
|
this.onReauthRequired = config.onReauthRequired;
|
|
1213
1246
|
this.maxReauthRetries = config.maxReauthRetries ?? 1;
|
|
1214
|
-
this.oauthManager = new OAuthManager(oauthApiBase, config.oauthFlow, this.apiBaseUrl
|
|
1247
|
+
this.oauthManager = new OAuthManager(oauthApiBase, config.oauthFlow, this.apiBaseUrl, {
|
|
1248
|
+
getProviderToken: config.getProviderToken,
|
|
1249
|
+
setProviderToken: config.setProviderToken
|
|
1250
|
+
});
|
|
1215
1251
|
const providers = this.integrations.filter((p) => p.oauth).map((p) => p.oauth.provider);
|
|
1216
|
-
this.oauthManager.loadAllProviderTokens(providers)
|
|
1252
|
+
this.oauthManager.loadAllProviderTokens(providers).catch((error) => {
|
|
1253
|
+
console.error("Failed to load provider tokens:", error);
|
|
1254
|
+
});
|
|
1217
1255
|
for (const integration of this.integrations) {
|
|
1218
1256
|
for (const toolName of integration.tools) {
|
|
1219
1257
|
this.enabledToolNames.add(toolName);
|
|
1220
1258
|
}
|
|
1221
1259
|
if (integration.oauth) {
|
|
1222
|
-
const
|
|
1223
|
-
this.authState.set(
|
|
1260
|
+
const provider = integration.oauth.provider;
|
|
1261
|
+
this.authState.set(provider, { authenticated: false });
|
|
1262
|
+
this.oauthManager.getProviderToken(provider).then((tokenData) => {
|
|
1263
|
+
if (tokenData) {
|
|
1264
|
+
this.authState.set(provider, { authenticated: true });
|
|
1265
|
+
}
|
|
1266
|
+
}).catch((error) => {
|
|
1267
|
+
console.error(`Failed to check token for ${provider}:`, error);
|
|
1268
|
+
});
|
|
1224
1269
|
}
|
|
1225
1270
|
}
|
|
1226
1271
|
const integrationIds = this.integrations.map((i) => i.id);
|
|
@@ -1334,7 +1379,7 @@ class MCPClientBase {
|
|
|
1334
1379
|
const hasApiKey = !!transportHeaders["X-API-KEY"];
|
|
1335
1380
|
if (hasApiKey) {
|
|
1336
1381
|
if (provider) {
|
|
1337
|
-
const tokenData = this.oauthManager.getProviderToken(provider);
|
|
1382
|
+
const tokenData = await this.oauthManager.getProviderToken(provider);
|
|
1338
1383
|
if (tokenData && this.transport.setHeader) {
|
|
1339
1384
|
const previousAuthHeader = transportHeaders["Authorization"];
|
|
1340
1385
|
try {
|
|
@@ -1364,7 +1409,7 @@ class MCPClientBase {
|
|
|
1364
1409
|
"Content-Type": "application/json"
|
|
1365
1410
|
};
|
|
1366
1411
|
if (provider) {
|
|
1367
|
-
const tokenData = this.oauthManager.getProviderToken(provider);
|
|
1412
|
+
const tokenData = await this.oauthManager.getProviderToken(provider);
|
|
1368
1413
|
if (tokenData) {
|
|
1369
1414
|
headers["Authorization"] = `Bearer ${tokenData.accessToken}`;
|
|
1370
1415
|
}
|
|
@@ -1559,7 +1604,7 @@ class MCPClientBase {
|
|
|
1559
1604
|
this.eventEmitter.emit("auth:started", { provider });
|
|
1560
1605
|
try {
|
|
1561
1606
|
await this.oauthManager.initiateFlow(provider, integration.oauth, options?.returnUrl);
|
|
1562
|
-
const tokenData = this.oauthManager.getProviderToken(provider);
|
|
1607
|
+
const tokenData = await this.oauthManager.getProviderToken(provider);
|
|
1563
1608
|
if (tokenData) {
|
|
1564
1609
|
this.eventEmitter.emit("auth:complete", {
|
|
1565
1610
|
provider,
|
|
@@ -1590,11 +1635,11 @@ class MCPClientBase {
|
|
|
1590
1635
|
throw error;
|
|
1591
1636
|
}
|
|
1592
1637
|
}
|
|
1593
|
-
getProviderToken(provider) {
|
|
1594
|
-
return this.oauthManager.getProviderToken(provider);
|
|
1638
|
+
async getProviderToken(provider) {
|
|
1639
|
+
return await this.oauthManager.getProviderToken(provider);
|
|
1595
1640
|
}
|
|
1596
|
-
setProviderToken(provider, tokenData) {
|
|
1597
|
-
this.oauthManager.setProviderToken(provider, tokenData);
|
|
1641
|
+
async setProviderToken(provider, tokenData) {
|
|
1642
|
+
await this.oauthManager.setProviderToken(provider, tokenData);
|
|
1598
1643
|
this.authState.set(provider, { authenticated: true });
|
|
1599
1644
|
}
|
|
1600
1645
|
getAllProviderTokens() {
|
package/dist/server.js
CHANGED
|
@@ -822,7 +822,9 @@ class OAuthManager {
|
|
|
822
822
|
flowConfig;
|
|
823
823
|
oauthApiBase;
|
|
824
824
|
apiBaseUrl;
|
|
825
|
-
|
|
825
|
+
getTokenCallback;
|
|
826
|
+
setTokenCallback;
|
|
827
|
+
constructor(oauthApiBase, flowConfig, apiBaseUrl, tokenCallbacks) {
|
|
826
828
|
this.oauthApiBase = oauthApiBase;
|
|
827
829
|
this.apiBaseUrl = apiBaseUrl;
|
|
828
830
|
this.windowManager = new OAuthWindowManager;
|
|
@@ -831,6 +833,8 @@ class OAuthManager {
|
|
|
831
833
|
popupOptions: flowConfig?.popupOptions,
|
|
832
834
|
onAuthCallback: flowConfig?.onAuthCallback
|
|
833
835
|
};
|
|
836
|
+
this.getTokenCallback = tokenCallbacks?.getProviderToken;
|
|
837
|
+
this.setTokenCallback = tokenCallbacks?.setProviderToken;
|
|
834
838
|
this.cleanupExpiredPendingAuths();
|
|
835
839
|
}
|
|
836
840
|
async initiateFlow(provider, config, returnUrl) {
|
|
@@ -894,7 +898,7 @@ class OAuthManager {
|
|
|
894
898
|
scopes: response.scopes
|
|
895
899
|
};
|
|
896
900
|
this.providerTokens.set(pendingAuth.provider, tokenData);
|
|
897
|
-
this.saveProviderToken(pendingAuth.provider, tokenData);
|
|
901
|
+
await this.saveProviderToken(pendingAuth.provider, tokenData);
|
|
898
902
|
this.pendingAuths.delete(state);
|
|
899
903
|
this.removePendingAuthFromStorage(state);
|
|
900
904
|
return { ...tokenData, provider: pendingAuth.provider };
|
|
@@ -905,7 +909,7 @@ class OAuthManager {
|
|
|
905
909
|
}
|
|
906
910
|
}
|
|
907
911
|
async checkAuthStatus(provider) {
|
|
908
|
-
const tokenData = this.
|
|
912
|
+
const tokenData = await this.getProviderToken(provider);
|
|
909
913
|
if (!tokenData) {
|
|
910
914
|
return {
|
|
911
915
|
authorized: false,
|
|
@@ -920,26 +924,38 @@ class OAuthManager {
|
|
|
920
924
|
};
|
|
921
925
|
}
|
|
922
926
|
async disconnectProvider(provider) {
|
|
923
|
-
const tokenData = this.
|
|
927
|
+
const tokenData = await this.getProviderToken(provider);
|
|
924
928
|
if (!tokenData) {
|
|
925
929
|
throw new Error(`No access token available for provider "${provider}". Cannot disconnect provider.`);
|
|
926
930
|
}
|
|
927
931
|
this.providerTokens.delete(provider);
|
|
928
932
|
this.clearProviderToken(provider);
|
|
929
933
|
}
|
|
930
|
-
getProviderToken(provider) {
|
|
934
|
+
async getProviderToken(provider) {
|
|
935
|
+
if (this.getTokenCallback) {
|
|
936
|
+
try {
|
|
937
|
+
const tokenData = await this.getTokenCallback(provider);
|
|
938
|
+
if (tokenData) {
|
|
939
|
+
this.providerTokens.set(provider, tokenData);
|
|
940
|
+
}
|
|
941
|
+
return tokenData;
|
|
942
|
+
} catch (error) {
|
|
943
|
+
console.error(`Failed to get token for ${provider} via callback:`, error);
|
|
944
|
+
return;
|
|
945
|
+
}
|
|
946
|
+
}
|
|
931
947
|
return this.providerTokens.get(provider);
|
|
932
948
|
}
|
|
933
949
|
getAllProviderTokens() {
|
|
934
950
|
return new Map(this.providerTokens);
|
|
935
951
|
}
|
|
936
|
-
setProviderToken(provider, tokenData) {
|
|
952
|
+
async setProviderToken(provider, tokenData) {
|
|
937
953
|
this.providerTokens.set(provider, tokenData);
|
|
938
|
-
this.saveProviderToken(provider, tokenData);
|
|
954
|
+
await this.saveProviderToken(provider, tokenData);
|
|
939
955
|
}
|
|
940
956
|
clearProviderToken(provider) {
|
|
941
957
|
this.providerTokens.delete(provider);
|
|
942
|
-
if (typeof window !== "undefined" && window.localStorage) {
|
|
958
|
+
if (!this.getTokenCallback && typeof window !== "undefined" && window.localStorage) {
|
|
943
959
|
try {
|
|
944
960
|
window.localStorage.removeItem(`integrate_token_${provider}`);
|
|
945
961
|
} catch (error) {
|
|
@@ -950,7 +966,7 @@ class OAuthManager {
|
|
|
950
966
|
clearAllProviderTokens() {
|
|
951
967
|
const providers = Array.from(this.providerTokens.keys());
|
|
952
968
|
this.providerTokens.clear();
|
|
953
|
-
if (typeof window !== "undefined" && window.localStorage) {
|
|
969
|
+
if (!this.getTokenCallback && typeof window !== "undefined" && window.localStorage) {
|
|
954
970
|
for (const provider of providers) {
|
|
955
971
|
try {
|
|
956
972
|
window.localStorage.removeItem(`integrate_token_${provider}`);
|
|
@@ -978,7 +994,16 @@ class OAuthManager {
|
|
|
978
994
|
}
|
|
979
995
|
}
|
|
980
996
|
}
|
|
981
|
-
saveProviderToken(provider, tokenData) {
|
|
997
|
+
async saveProviderToken(provider, tokenData) {
|
|
998
|
+
if (this.setTokenCallback) {
|
|
999
|
+
try {
|
|
1000
|
+
await this.setTokenCallback(provider, tokenData);
|
|
1001
|
+
} catch (error) {
|
|
1002
|
+
console.error(`Failed to save token for ${provider} via callback:`, error);
|
|
1003
|
+
throw error;
|
|
1004
|
+
}
|
|
1005
|
+
return;
|
|
1006
|
+
}
|
|
982
1007
|
if (typeof window !== "undefined" && window.localStorage) {
|
|
983
1008
|
try {
|
|
984
1009
|
const key = `integrate_token_${provider}`;
|
|
@@ -988,7 +1013,15 @@ class OAuthManager {
|
|
|
988
1013
|
}
|
|
989
1014
|
}
|
|
990
1015
|
}
|
|
991
|
-
loadProviderToken(provider) {
|
|
1016
|
+
async loadProviderToken(provider) {
|
|
1017
|
+
if (this.getTokenCallback) {
|
|
1018
|
+
try {
|
|
1019
|
+
return await this.getTokenCallback(provider);
|
|
1020
|
+
} catch (error) {
|
|
1021
|
+
console.error(`Failed to load token for ${provider} via callback:`, error);
|
|
1022
|
+
return;
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
992
1025
|
if (typeof window !== "undefined" && window.localStorage) {
|
|
993
1026
|
try {
|
|
994
1027
|
const key = `integrate_token_${provider}`;
|
|
@@ -1002,9 +1035,9 @@ class OAuthManager {
|
|
|
1002
1035
|
}
|
|
1003
1036
|
return;
|
|
1004
1037
|
}
|
|
1005
|
-
loadAllProviderTokens(providers) {
|
|
1038
|
+
async loadAllProviderTokens(providers) {
|
|
1006
1039
|
for (const provider of providers) {
|
|
1007
|
-
const tokenData = this.loadProviderToken(provider);
|
|
1040
|
+
const tokenData = await this.loadProviderToken(provider);
|
|
1008
1041
|
if (tokenData) {
|
|
1009
1042
|
this.providerTokens.set(provider, tokenData);
|
|
1010
1043
|
}
|
|
@@ -1202,16 +1235,28 @@ class MCPClientBase {
|
|
|
1202
1235
|
};
|
|
1203
1236
|
this.onReauthRequired = config.onReauthRequired;
|
|
1204
1237
|
this.maxReauthRetries = config.maxReauthRetries ?? 1;
|
|
1205
|
-
this.oauthManager = new OAuthManager(oauthApiBase, config.oauthFlow, this.apiBaseUrl
|
|
1238
|
+
this.oauthManager = new OAuthManager(oauthApiBase, config.oauthFlow, this.apiBaseUrl, {
|
|
1239
|
+
getProviderToken: config.getProviderToken,
|
|
1240
|
+
setProviderToken: config.setProviderToken
|
|
1241
|
+
});
|
|
1206
1242
|
const providers = this.integrations.filter((p) => p.oauth).map((p) => p.oauth.provider);
|
|
1207
|
-
this.oauthManager.loadAllProviderTokens(providers)
|
|
1243
|
+
this.oauthManager.loadAllProviderTokens(providers).catch((error) => {
|
|
1244
|
+
console.error("Failed to load provider tokens:", error);
|
|
1245
|
+
});
|
|
1208
1246
|
for (const integration of this.integrations) {
|
|
1209
1247
|
for (const toolName of integration.tools) {
|
|
1210
1248
|
this.enabledToolNames.add(toolName);
|
|
1211
1249
|
}
|
|
1212
1250
|
if (integration.oauth) {
|
|
1213
|
-
const
|
|
1214
|
-
this.authState.set(
|
|
1251
|
+
const provider = integration.oauth.provider;
|
|
1252
|
+
this.authState.set(provider, { authenticated: false });
|
|
1253
|
+
this.oauthManager.getProviderToken(provider).then((tokenData) => {
|
|
1254
|
+
if (tokenData) {
|
|
1255
|
+
this.authState.set(provider, { authenticated: true });
|
|
1256
|
+
}
|
|
1257
|
+
}).catch((error) => {
|
|
1258
|
+
console.error(`Failed to check token for ${provider}:`, error);
|
|
1259
|
+
});
|
|
1215
1260
|
}
|
|
1216
1261
|
}
|
|
1217
1262
|
const integrationIds = this.integrations.map((i) => i.id);
|
|
@@ -1325,7 +1370,7 @@ class MCPClientBase {
|
|
|
1325
1370
|
const hasApiKey = !!transportHeaders["X-API-KEY"];
|
|
1326
1371
|
if (hasApiKey) {
|
|
1327
1372
|
if (provider) {
|
|
1328
|
-
const tokenData = this.oauthManager.getProviderToken(provider);
|
|
1373
|
+
const tokenData = await this.oauthManager.getProviderToken(provider);
|
|
1329
1374
|
if (tokenData && this.transport.setHeader) {
|
|
1330
1375
|
const previousAuthHeader = transportHeaders["Authorization"];
|
|
1331
1376
|
try {
|
|
@@ -1355,7 +1400,7 @@ class MCPClientBase {
|
|
|
1355
1400
|
"Content-Type": "application/json"
|
|
1356
1401
|
};
|
|
1357
1402
|
if (provider) {
|
|
1358
|
-
const tokenData = this.oauthManager.getProviderToken(provider);
|
|
1403
|
+
const tokenData = await this.oauthManager.getProviderToken(provider);
|
|
1359
1404
|
if (tokenData) {
|
|
1360
1405
|
headers["Authorization"] = `Bearer ${tokenData.accessToken}`;
|
|
1361
1406
|
}
|
|
@@ -1550,7 +1595,7 @@ class MCPClientBase {
|
|
|
1550
1595
|
this.eventEmitter.emit("auth:started", { provider });
|
|
1551
1596
|
try {
|
|
1552
1597
|
await this.oauthManager.initiateFlow(provider, integration.oauth, options?.returnUrl);
|
|
1553
|
-
const tokenData = this.oauthManager.getProviderToken(provider);
|
|
1598
|
+
const tokenData = await this.oauthManager.getProviderToken(provider);
|
|
1554
1599
|
if (tokenData) {
|
|
1555
1600
|
this.eventEmitter.emit("auth:complete", {
|
|
1556
1601
|
provider,
|
|
@@ -1581,11 +1626,11 @@ class MCPClientBase {
|
|
|
1581
1626
|
throw error;
|
|
1582
1627
|
}
|
|
1583
1628
|
}
|
|
1584
|
-
getProviderToken(provider) {
|
|
1585
|
-
return this.oauthManager.getProviderToken(provider);
|
|
1629
|
+
async getProviderToken(provider) {
|
|
1630
|
+
return await this.oauthManager.getProviderToken(provider);
|
|
1586
1631
|
}
|
|
1587
|
-
setProviderToken(provider, tokenData) {
|
|
1588
|
-
this.oauthManager.setProviderToken(provider, tokenData);
|
|
1632
|
+
async setProviderToken(provider, tokenData) {
|
|
1633
|
+
await this.oauthManager.setProviderToken(provider, tokenData);
|
|
1589
1634
|
this.authState.set(provider, { authenticated: true });
|
|
1590
1635
|
}
|
|
1591
1636
|
getAllProviderTokens() {
|
|
@@ -6575,32 +6620,6 @@ async function handleOpenAIResponse(client, response, options) {
|
|
|
6575
6620
|
}
|
|
6576
6621
|
return handleOpenAIToolCalls(client, functionCalls, finalOptions);
|
|
6577
6622
|
}
|
|
6578
|
-
// src/ai/openai-agents.ts
|
|
6579
|
-
function convertMCPToolToOpenAIAgents(mcpTool, client, options) {
|
|
6580
|
-
return {
|
|
6581
|
-
name: mcpTool.name,
|
|
6582
|
-
description: mcpTool.description || `Execute ${mcpTool.name}`,
|
|
6583
|
-
parameters: jsonSchemaToZod(mcpTool.inputSchema),
|
|
6584
|
-
execute: async (args) => {
|
|
6585
|
-
return await executeToolWithToken(client, mcpTool.name, args, options);
|
|
6586
|
-
}
|
|
6587
|
-
};
|
|
6588
|
-
}
|
|
6589
|
-
function convertMCPToolsToOpenAIAgents(client, options) {
|
|
6590
|
-
const mcpTools = client.getEnabledTools();
|
|
6591
|
-
return mcpTools.map((mcpTool) => convertMCPToolToOpenAIAgents(mcpTool, client, options));
|
|
6592
|
-
}
|
|
6593
|
-
async function getOpenAIAgentsTools(client, options) {
|
|
6594
|
-
await ensureClientConnected(client);
|
|
6595
|
-
let providerTokens = options?.providerTokens;
|
|
6596
|
-
if (!providerTokens) {
|
|
6597
|
-
try {
|
|
6598
|
-
providerTokens = await getProviderTokens();
|
|
6599
|
-
} catch {}
|
|
6600
|
-
}
|
|
6601
|
-
const finalOptions = providerTokens ? { ...options, providerTokens } : options;
|
|
6602
|
-
return convertMCPToolsToOpenAIAgents(client, finalOptions);
|
|
6603
|
-
}
|
|
6604
6623
|
// src/ai/anthropic.ts
|
|
6605
6624
|
function convertMCPToolToAnthropic(mcpTool, _client, _options) {
|
|
6606
6625
|
return {
|
|
@@ -6909,8 +6928,6 @@ async function getAITools(client, provider, options) {
|
|
|
6909
6928
|
return await getVercelAITools(client, options);
|
|
6910
6929
|
case "openai":
|
|
6911
6930
|
return await getOpenAITools(client, options);
|
|
6912
|
-
case "openai-agents":
|
|
6913
|
-
return await getOpenAIAgentsTools(client, options);
|
|
6914
6931
|
case "anthropic":
|
|
6915
6932
|
return await getAnthropicTools(client, options);
|
|
6916
6933
|
case "google":
|
|
@@ -7106,7 +7123,6 @@ export {
|
|
|
7106
7123
|
getProviderTokens,
|
|
7107
7124
|
getProviderForTool,
|
|
7108
7125
|
getOpenAITools,
|
|
7109
|
-
getOpenAIAgentsTools,
|
|
7110
7126
|
getMastraTools,
|
|
7111
7127
|
getLlamaIndexTools,
|
|
7112
7128
|
getLangChainTools,
|
|
@@ -7128,7 +7144,6 @@ export {
|
|
|
7128
7144
|
createNextOAuthHandler,
|
|
7129
7145
|
createMCPServer,
|
|
7130
7146
|
convertMCPToolsToVercelAI,
|
|
7131
|
-
convertMCPToolsToOpenAIAgents,
|
|
7132
7147
|
convertMCPToolsToOpenAI,
|
|
7133
7148
|
convertMCPToolsToMastra,
|
|
7134
7149
|
convertMCPToolsToLlamaIndex,
|
|
@@ -7137,7 +7152,6 @@ export {
|
|
|
7137
7152
|
convertMCPToolsToCloudflare,
|
|
7138
7153
|
convertMCPToolsToAnthropic,
|
|
7139
7154
|
convertMCPToolToVercelAI,
|
|
7140
|
-
convertMCPToolToOpenAIAgents,
|
|
7141
7155
|
convertMCPToolToOpenAI,
|
|
7142
7156
|
convertMCPToolToMastra,
|
|
7143
7157
|
convertMCPToolToLlamaIndex,
|
package/dist/src/ai/index.d.ts
CHANGED
|
@@ -7,7 +7,6 @@ import type { MCPClient } from "../client.js";
|
|
|
7
7
|
import type { AIToolsOptions } from "./utils.js";
|
|
8
8
|
export * from "./vercel-ai.js";
|
|
9
9
|
export * from "./openai.js";
|
|
10
|
-
export * from "./openai-agents.js";
|
|
11
10
|
export * from "./anthropic.js";
|
|
12
11
|
export * from "./google.js";
|
|
13
12
|
export * from "./cloudflare.js";
|
|
@@ -18,7 +17,7 @@ export * from "./utils.js";
|
|
|
18
17
|
/**
|
|
19
18
|
* Supported AI provider names
|
|
20
19
|
*/
|
|
21
|
-
export type AIProviderName = "vercel-ai" | "openai" | "
|
|
20
|
+
export type AIProviderName = "vercel-ai" | "openai" | "anthropic" | "google" | "cloudflare" | "langchain" | "llamaindex" | "mastra";
|
|
22
21
|
/**
|
|
23
22
|
* Generic function to get AI tools for any supported provider
|
|
24
23
|
*
|
|
@@ -69,7 +68,6 @@ export type AIProviderName = "vercel-ai" | "openai" | "openai-agents" | "anthrop
|
|
|
69
68
|
*/
|
|
70
69
|
export declare function getAITools(client: MCPClient<any>, provider: "vercel-ai", options?: AIToolsOptions): Promise<Record<string, any>>;
|
|
71
70
|
export declare function getAITools(client: MCPClient<any>, provider: "openai", options?: AIToolsOptions): Promise<Array<any>>;
|
|
72
|
-
export declare function getAITools(client: MCPClient<any>, provider: "openai-agents", options?: AIToolsOptions): Promise<Array<any>>;
|
|
73
71
|
export declare function getAITools(client: MCPClient<any>, provider: "anthropic", options?: AIToolsOptions): Promise<Array<any>>;
|
|
74
72
|
export declare function getAITools(client: MCPClient<any>, provider: "google", options?: AIToolsOptions): Promise<Array<any>>;
|
|
75
73
|
export declare function getAITools(client: MCPClient<any>, provider: "cloudflare", options?: AIToolsOptions): Promise<Record<string, any>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ai/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGjD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAY3B;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,YAAY,GACZ,WAAW,GACX,YAAY,GACZ,QAAQ,CAAC;AAEb;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,QAAQ,EAAE,WAAW,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AAEhC,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAEvB,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,QAAQ,EAAE,WAAW,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAEvB,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAEvB,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,QAAQ,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AAEhC,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,QAAQ,EAAE,WAAW,EACrB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAEvB,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,QAAQ,EAAE,YAAY,EACtB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAEvB,wBAAsB,UAAU,CAC9B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,QAAQ,EAAE,QAAQ,EAClB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC"}
|
package/dist/src/client.d.ts
CHANGED
|
@@ -355,7 +355,7 @@ export declare class MCPClientBase<TIntegrations extends readonly MCPIntegration
|
|
|
355
355
|
* @param provider - Provider name (e.g., 'github', 'gmail')
|
|
356
356
|
* @returns Provider token data or undefined if not authorized
|
|
357
357
|
*/
|
|
358
|
-
getProviderToken(provider: string): import('./oauth/types.js').ProviderTokenData | undefined
|
|
358
|
+
getProviderToken(provider: string): Promise<import('./oauth/types.js').ProviderTokenData | undefined>;
|
|
359
359
|
/**
|
|
360
360
|
* Set provider token manually
|
|
361
361
|
* Use this if you have an existing provider token
|
|
@@ -363,12 +363,15 @@ export declare class MCPClientBase<TIntegrations extends readonly MCPIntegration
|
|
|
363
363
|
* @param provider - Provider name
|
|
364
364
|
* @param tokenData - Provider token data
|
|
365
365
|
*/
|
|
366
|
-
setProviderToken(provider: string, tokenData: import('./oauth/types.js').ProviderTokenData): void
|
|
366
|
+
setProviderToken(provider: string, tokenData: import('./oauth/types.js').ProviderTokenData): Promise<void>;
|
|
367
367
|
/**
|
|
368
368
|
* Get all provider tokens
|
|
369
369
|
* Returns a map of provider names to access tokens
|
|
370
370
|
* Useful for server-side usage where you need to pass tokens from client to server
|
|
371
371
|
*
|
|
372
|
+
* Note: This returns tokens from the in-memory cache. For fresh data from database,
|
|
373
|
+
* ensure tokens are loaded first via loadAllProviderTokens or individual getProviderToken calls.
|
|
374
|
+
*
|
|
372
375
|
* @returns Record of provider names to access tokens
|
|
373
376
|
*
|
|
374
377
|
* @example
|
package/dist/src/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,OAAO,EAEP,mBAAmB,EAGpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAiB,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE/E,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAgE1B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,KAAK,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,EAAE,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,EAAE,GAAG,KAAK,CAAC;AACvE,KAAK,cAAc,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,IAAI,oBAAoB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AAEnH;;;GAGG;AACH,KAAK,qBAAqB,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,IAAI;KAC3E,CAAC,IAAI,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,QAAQ,GACrD,QAAQ,GACR,CAAC,SAAS,OAAO,GACjB,OAAO,GACP,KAAK,GACL,CAAC,SAAS,QAAQ,GAAG,uBAAuB,GAC5C,CAAC,SAAS,OAAO,GAAG,sBAAsB,GAC1C,KAAK;CACV,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,GAAG,SAAS,cAAc,EAAE,IAC/F,aAAa,CAAC,aAAa,CAAC,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC;AAEtE;;;;GAIG;AACH,qBAAa,aAAa,CAAC,aAAa,SAAS,SAAS,cAAc,EAAE,GAAG,SAAS,cAAc,EAAE;IACpG,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,cAAc,CAAmC;IACzD,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,gBAAgB,CAAC,CAAgB;IACzC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,SAAS,CAAuF;IACxG,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAgD;IACpE,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAS;IAG5B,SAAgB,MAAM,EAAG,uBAAuB,CAAC;gBAErC,MAAM,EAAE,eAAe,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|