integrate-sdk 0.8.42 → 0.8.44-dev.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/dist/adapters/auto-routes.d.ts.map +1 -1
- package/dist/adapters/auto-routes.js +309 -143
- package/dist/adapters/base-handler.d.ts.map +1 -1
- package/dist/adapters/index.js +305 -141
- package/dist/adapters/nextjs-oauth-redirect.d.ts.map +1 -1
- package/dist/adapters/nextjs-oauth-redirect.js +47 -2
- package/dist/adapters/nextjs.d.ts.map +1 -1
- package/dist/adapters/nextjs.js +304 -141
- package/dist/adapters/node.js +304 -141
- package/dist/adapters/svelte-kit.js +304 -141
- package/dist/adapters/tanstack-start.js +304 -141
- package/dist/index.d.ts +19 -40
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +319 -183
- package/dist/oauth.js +309 -143
- package/dist/react.js +59 -14
- package/dist/server.js +308 -141
- package/dist/src/adapters/auto-routes.d.ts.map +1 -1
- package/dist/src/adapters/base-handler.d.ts.map +1 -1
- package/dist/src/adapters/nextjs-oauth-redirect.d.ts.map +1 -1
- package/dist/src/adapters/nextjs.d.ts.map +1 -1
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/config/types.d.ts +15 -0
- package/dist/src/config/types.d.ts.map +1 -1
- package/dist/src/integrations/airtable.d.ts.map +1 -1
- package/dist/src/integrations/calcom.d.ts.map +1 -1
- package/dist/src/integrations/cursor.d.ts.map +1 -1
- package/dist/src/integrations/figma.d.ts.map +1 -1
- package/dist/src/integrations/gcal.d.ts.map +1 -1
- package/dist/src/integrations/github.d.ts.map +1 -1
- package/dist/src/integrations/gmail.d.ts.map +1 -1
- package/dist/src/integrations/gworkspace.d.ts.map +1 -1
- package/dist/src/integrations/hubspot.d.ts.map +1 -1
- package/dist/src/integrations/intercom.d.ts.map +1 -1
- package/dist/src/integrations/linear.d.ts.map +1 -1
- package/dist/src/integrations/notion.d.ts.map +1 -1
- package/dist/src/integrations/onedrive.d.ts.map +1 -1
- package/dist/src/integrations/outlook.d.ts.map +1 -1
- package/dist/src/integrations/polar.d.ts.map +1 -1
- package/dist/src/integrations/ramp.d.ts.map +1 -1
- package/dist/src/integrations/server-client.d.ts +15 -1
- package/dist/src/integrations/server-client.d.ts.map +1 -1
- package/dist/src/integrations/slack.d.ts.map +1 -1
- package/dist/src/integrations/stripe.d.ts.map +1 -1
- package/dist/src/integrations/todoist.d.ts.map +1 -1
- package/dist/src/integrations/vercel.d.ts.map +1 -1
- package/dist/src/integrations/whatsapp.d.ts.map +1 -1
- package/dist/src/integrations/youtube.d.ts.map +1 -1
- package/dist/src/integrations/zendesk.d.ts.map +1 -1
- package/dist/src/oauth/email-fetcher.d.ts.map +1 -1
- package/dist/src/oauth/manager.d.ts.map +1 -1
- package/dist/src/oauth/window-manager.d.ts.map +1 -1
- package/dist/src/react/hooks.d.ts.map +1 -1
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/transport/http-session.d.ts.map +1 -1
- package/dist/src/transport/http-stream.d.ts.map +1 -1
- package/dist/src/utils/logger.d.ts +37 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/index.ts +20 -72
- package/package.json +2 -2
- package/dist/adapters/base-handler.js +0 -561
- package/dist/ai/cloudflare.d.ts +0 -158
- package/dist/ai/cloudflare.d.ts.map +0 -1
- package/dist/ai/cloudflare.js +0 -4249
- package/dist/ai/langchain.d.ts +0 -139
- package/dist/ai/langchain.d.ts.map +0 -1
- package/dist/ai/langchain.js +0 -4237
- package/dist/ai/llamaindex.d.ts +0 -125
- package/dist/ai/llamaindex.d.ts.map +0 -1
- package/dist/ai/llamaindex.js +0 -4236
- package/dist/ai/mastra.d.ts +0 -138
- package/dist/ai/mastra.d.ts.map +0 -1
- package/dist/ai/mastra.js +0 -4240
- package/dist/src/ai/cloudflare.d.ts +0 -158
- package/dist/src/ai/cloudflare.d.ts.map +0 -1
- package/dist/src/ai/langchain.d.ts +0 -139
- package/dist/src/ai/langchain.d.ts.map +0 -1
- package/dist/src/ai/llamaindex.d.ts +0 -125
- package/dist/src/ai/llamaindex.d.ts.map +0 -1
- package/dist/src/ai/mastra.d.ts +0 -138
- package/dist/src/ai/mastra.d.ts.map +0 -1
- package/dist/src/integrations/vercel-ai.d.ts +0 -127
- package/dist/src/integrations/vercel-ai.d.ts.map +0 -1
- package/dist/src/plugins/generic.d.ts +0 -99
- package/dist/src/plugins/generic.d.ts.map +0 -1
- package/dist/src/plugins/github-client.d.ts +0 -320
- package/dist/src/plugins/github-client.d.ts.map +0 -1
- package/dist/src/plugins/github.d.ts +0 -89
- package/dist/src/plugins/github.d.ts.map +0 -1
- package/dist/src/plugins/gmail-client.d.ts +0 -106
- package/dist/src/plugins/gmail-client.d.ts.map +0 -1
- package/dist/src/plugins/gmail.d.ts +0 -87
- package/dist/src/plugins/gmail.d.ts.map +0 -1
- package/dist/src/plugins/server-client.d.ts +0 -18
- package/dist/src/plugins/server-client.d.ts.map +0 -1
- package/dist/src/plugins/types.d.ts +0 -70
- package/dist/src/plugins/types.d.ts.map +0 -1
|
@@ -10,6 +10,49 @@ var __export = (target, all) => {
|
|
|
10
10
|
};
|
|
11
11
|
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
12
12
|
|
|
13
|
+
// ../utils/logger.ts
|
|
14
|
+
function shouldLog(level) {
|
|
15
|
+
return logLevelHierarchy[level] <= logLevelHierarchy[globalLogLevel];
|
|
16
|
+
}
|
|
17
|
+
function setLogLevel(level) {
|
|
18
|
+
globalLogLevel = level;
|
|
19
|
+
}
|
|
20
|
+
function createLogger(namespace) {
|
|
21
|
+
const prefix = `[${namespace}]`;
|
|
22
|
+
return {
|
|
23
|
+
debug: (...args) => {
|
|
24
|
+
if (shouldLog("debug")) {
|
|
25
|
+
console.log(prefix, ...args);
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
info: (...args) => {
|
|
29
|
+
if (shouldLog("info")) {
|
|
30
|
+
console.log(prefix, ...args);
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
warn: (...args) => {
|
|
34
|
+
if (shouldLog("warn")) {
|
|
35
|
+
console.warn(prefix, ...args);
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
error: (...args) => {
|
|
39
|
+
if (shouldLog("error")) {
|
|
40
|
+
console.error(prefix, ...args);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
var globalLogLevel = "error", logLevelHierarchy;
|
|
46
|
+
var init_logger = __esm(() => {
|
|
47
|
+
logLevelHierarchy = {
|
|
48
|
+
none: 0,
|
|
49
|
+
error: 1,
|
|
50
|
+
warn: 2,
|
|
51
|
+
info: 3,
|
|
52
|
+
debug: 4
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
|
|
13
56
|
// ../protocol/jsonrpc.ts
|
|
14
57
|
function parseMessage(message) {
|
|
15
58
|
try {
|
|
@@ -75,7 +118,7 @@ class HttpSessionTransport {
|
|
|
75
118
|
const sid = response.headers.get("mcp-session-id");
|
|
76
119
|
if (sid) {
|
|
77
120
|
this.sessionId = sid;
|
|
78
|
-
|
|
121
|
+
logger.debug("Session established:", sid);
|
|
79
122
|
this.startSSEListener();
|
|
80
123
|
}
|
|
81
124
|
}
|
|
@@ -125,7 +168,7 @@ class HttpSessionTransport {
|
|
|
125
168
|
if (error instanceof Error && error.name === "AbortError") {
|
|
126
169
|
return;
|
|
127
170
|
}
|
|
128
|
-
|
|
171
|
+
logger.error("SSE connection error:", error);
|
|
129
172
|
}
|
|
130
173
|
}
|
|
131
174
|
async processSSEStream(body) {
|
|
@@ -154,7 +197,7 @@ class HttpSessionTransport {
|
|
|
154
197
|
if (error instanceof Error && error.name === "AbortError") {
|
|
155
198
|
return;
|
|
156
199
|
}
|
|
157
|
-
|
|
200
|
+
logger.error("SSE stream error:", error);
|
|
158
201
|
} finally {
|
|
159
202
|
reader.releaseLock();
|
|
160
203
|
}
|
|
@@ -166,11 +209,11 @@ class HttpSessionTransport {
|
|
|
166
209
|
try {
|
|
167
210
|
handler(message);
|
|
168
211
|
} catch (error) {
|
|
169
|
-
|
|
212
|
+
logger.error("Error in message handler:", error);
|
|
170
213
|
}
|
|
171
214
|
});
|
|
172
215
|
} catch (error) {
|
|
173
|
-
|
|
216
|
+
logger.error("Failed to parse notification:", error);
|
|
174
217
|
}
|
|
175
218
|
}
|
|
176
219
|
onMessage(handler) {
|
|
@@ -207,7 +250,11 @@ class HttpSessionTransport {
|
|
|
207
250
|
return { ...this.headers };
|
|
208
251
|
}
|
|
209
252
|
}
|
|
210
|
-
var
|
|
253
|
+
var logger;
|
|
254
|
+
var init_http_session = __esm(() => {
|
|
255
|
+
init_logger();
|
|
256
|
+
logger = createLogger("HTTPSession");
|
|
257
|
+
});
|
|
211
258
|
|
|
212
259
|
// ../protocol/messages.ts
|
|
213
260
|
var init_messages = () => {};
|
|
@@ -566,7 +613,7 @@ class OAuthWindowManager {
|
|
|
566
613
|
const windowName = `oauth_popup_${Date.now()}`;
|
|
567
614
|
this.popupWindow = window.open(url, windowName, features);
|
|
568
615
|
if (!this.popupWindow) {
|
|
569
|
-
|
|
616
|
+
logger2.warn("Popup was blocked by the browser. Please allow popups for this site.");
|
|
570
617
|
return null;
|
|
571
618
|
}
|
|
572
619
|
this.popupWindow.focus();
|
|
@@ -576,7 +623,7 @@ class OAuthWindowManager {
|
|
|
576
623
|
if (!isBrowser()) {
|
|
577
624
|
throw new Error("OAuthWindowManager.openRedirect() can only be used in browser environments");
|
|
578
625
|
}
|
|
579
|
-
|
|
626
|
+
logger2.debug("[OAuthWindowManager] Redirecting to:", url.substring(0, 100) + (url.length > 100 ? "..." : ""));
|
|
580
627
|
window.location.href = url;
|
|
581
628
|
}
|
|
582
629
|
listenForCallback(mode, timeoutMs = 5 * 60 * 1000) {
|
|
@@ -655,7 +702,7 @@ class OAuthWindowManager {
|
|
|
655
702
|
window.history.replaceState(null, "", window.location.pathname + window.location.search);
|
|
656
703
|
}
|
|
657
704
|
} catch (e) {
|
|
658
|
-
|
|
705
|
+
logger2.error("Failed to parse OAuth callback params from hash:", e);
|
|
659
706
|
}
|
|
660
707
|
}
|
|
661
708
|
if (!code && !error) {
|
|
@@ -668,7 +715,7 @@ class OAuthWindowManager {
|
|
|
668
715
|
sessionStorage.removeItem("oauth_callback_params");
|
|
669
716
|
}
|
|
670
717
|
} catch (e) {
|
|
671
|
-
|
|
718
|
+
logger2.error("Failed to parse OAuth callback params from sessionStorage:", e);
|
|
672
719
|
}
|
|
673
720
|
}
|
|
674
721
|
if (error) {
|
|
@@ -701,6 +748,11 @@ class OAuthWindowManager {
|
|
|
701
748
|
this.cleanup();
|
|
702
749
|
}
|
|
703
750
|
}
|
|
751
|
+
var logger2;
|
|
752
|
+
var init_window_manager = __esm(() => {
|
|
753
|
+
init_logger();
|
|
754
|
+
logger2 = createLogger("OAuthWindowManager");
|
|
755
|
+
});
|
|
704
756
|
|
|
705
757
|
// ../oauth/indexeddb-storage.ts
|
|
706
758
|
class IndexedDBStorage {
|
|
@@ -891,7 +943,7 @@ async function fetchUserEmail(provider, tokenData) {
|
|
|
891
943
|
return tokenData.email;
|
|
892
944
|
}
|
|
893
945
|
} catch (error) {
|
|
894
|
-
|
|
946
|
+
logger3.error(`Failed to fetch email for ${provider}:`, error);
|
|
895
947
|
return;
|
|
896
948
|
}
|
|
897
949
|
}
|
|
@@ -933,7 +985,7 @@ async function fetchGitHubEmail(accessToken) {
|
|
|
933
985
|
}
|
|
934
986
|
return;
|
|
935
987
|
} catch (error) {
|
|
936
|
-
|
|
988
|
+
logger3.error("Failed to fetch GitHub email:", error);
|
|
937
989
|
return;
|
|
938
990
|
}
|
|
939
991
|
}
|
|
@@ -950,7 +1002,7 @@ async function fetchGoogleEmail(accessToken) {
|
|
|
950
1002
|
const user = await response.json();
|
|
951
1003
|
return user.email;
|
|
952
1004
|
} catch (error) {
|
|
953
|
-
|
|
1005
|
+
logger3.error("Failed to fetch Google email:", error);
|
|
954
1006
|
return;
|
|
955
1007
|
}
|
|
956
1008
|
}
|
|
@@ -968,10 +1020,15 @@ async function fetchNotionEmail(accessToken) {
|
|
|
968
1020
|
const user = await response.json();
|
|
969
1021
|
return user.person?.email;
|
|
970
1022
|
} catch (error) {
|
|
971
|
-
|
|
1023
|
+
logger3.error("Failed to fetch Notion email:", error);
|
|
972
1024
|
return;
|
|
973
1025
|
}
|
|
974
1026
|
}
|
|
1027
|
+
var logger3;
|
|
1028
|
+
var init_email_fetcher = __esm(() => {
|
|
1029
|
+
init_logger();
|
|
1030
|
+
logger3 = createLogger("EmailFetcher");
|
|
1031
|
+
});
|
|
975
1032
|
|
|
976
1033
|
// ../oauth/manager.ts
|
|
977
1034
|
class OAuthManager {
|
|
@@ -1084,7 +1141,7 @@ class OAuthManager {
|
|
|
1084
1141
|
try {
|
|
1085
1142
|
await this.flowConfig.onAuthCallback(pendingAuth.provider, code, state);
|
|
1086
1143
|
} catch (error) {
|
|
1087
|
-
|
|
1144
|
+
logger4.error("Custom OAuth callback handler failed:", error);
|
|
1088
1145
|
}
|
|
1089
1146
|
}
|
|
1090
1147
|
try {
|
|
@@ -1132,20 +1189,20 @@ class OAuthManager {
|
|
|
1132
1189
|
try {
|
|
1133
1190
|
await this.removeTokenCallback(provider, email, context);
|
|
1134
1191
|
} catch (error) {
|
|
1135
|
-
|
|
1192
|
+
logger4.error(`Failed to delete token for ${provider} (${email}) from database:`, error);
|
|
1136
1193
|
}
|
|
1137
1194
|
} else if (this.setTokenCallback) {
|
|
1138
1195
|
try {
|
|
1139
1196
|
await this.setTokenCallback(provider, null, email, context);
|
|
1140
1197
|
} catch (error) {
|
|
1141
|
-
|
|
1198
|
+
logger4.error(`Failed to delete token for ${provider} (${email}) from database:`, error);
|
|
1142
1199
|
}
|
|
1143
1200
|
}
|
|
1144
1201
|
if (!this.setTokenCallback && !this.removeTokenCallback) {
|
|
1145
1202
|
try {
|
|
1146
1203
|
await this.indexedDBStorage.deleteToken(provider, email);
|
|
1147
1204
|
} catch (error) {
|
|
1148
|
-
|
|
1205
|
+
logger4.error(`Failed to delete token from IndexedDB for ${provider} (${email}):`, error);
|
|
1149
1206
|
}
|
|
1150
1207
|
}
|
|
1151
1208
|
this.providerTokens.delete(provider);
|
|
@@ -1155,13 +1212,13 @@ class OAuthManager {
|
|
|
1155
1212
|
try {
|
|
1156
1213
|
await this.removeTokenCallback(provider, undefined, context);
|
|
1157
1214
|
} catch (error) {
|
|
1158
|
-
|
|
1215
|
+
logger4.error(`Failed to delete tokens for ${provider} from database:`, error);
|
|
1159
1216
|
}
|
|
1160
1217
|
} else if (this.setTokenCallback) {
|
|
1161
1218
|
try {
|
|
1162
1219
|
await this.setTokenCallback(provider, null, undefined, context);
|
|
1163
1220
|
} catch (error) {
|
|
1164
|
-
|
|
1221
|
+
logger4.error(`Failed to delete tokens for ${provider} from database:`, error);
|
|
1165
1222
|
}
|
|
1166
1223
|
}
|
|
1167
1224
|
if (!this.setTokenCallback && !this.removeTokenCallback) {
|
|
@@ -1194,7 +1251,7 @@ class OAuthManager {
|
|
|
1194
1251
|
try {
|
|
1195
1252
|
return await this.indexedDBStorage.listAccounts(provider);
|
|
1196
1253
|
} catch (error) {
|
|
1197
|
-
|
|
1254
|
+
logger4.error(`Failed to list accounts for ${provider}:`, error);
|
|
1198
1255
|
return [];
|
|
1199
1256
|
}
|
|
1200
1257
|
}
|
|
@@ -1209,7 +1266,7 @@ class OAuthManager {
|
|
|
1209
1266
|
}
|
|
1210
1267
|
return tokenData;
|
|
1211
1268
|
} catch (error) {
|
|
1212
|
-
|
|
1269
|
+
logger4.error(`Failed to get token for ${provider} via callback:`, error);
|
|
1213
1270
|
return;
|
|
1214
1271
|
}
|
|
1215
1272
|
}
|
|
@@ -1221,7 +1278,7 @@ class OAuthManager {
|
|
|
1221
1278
|
}
|
|
1222
1279
|
return tokenData;
|
|
1223
1280
|
} catch (error) {
|
|
1224
|
-
|
|
1281
|
+
logger4.error(`Failed to get token from IndexedDB for ${provider}:`, error);
|
|
1225
1282
|
}
|
|
1226
1283
|
}
|
|
1227
1284
|
return this.providerTokens.get(provider);
|
|
@@ -1249,7 +1306,7 @@ class OAuthManager {
|
|
|
1249
1306
|
this.providerTokens.delete(provider);
|
|
1250
1307
|
if (!this.setTokenCallback && !this.removeTokenCallback && !this.skipLocalStorage) {
|
|
1251
1308
|
this.indexedDBStorage.deleteTokensByProvider(provider).catch((error) => {
|
|
1252
|
-
|
|
1309
|
+
logger4.error(`Failed to clear tokens for ${provider} from IndexedDB:`, error);
|
|
1253
1310
|
});
|
|
1254
1311
|
}
|
|
1255
1312
|
}
|
|
@@ -1269,7 +1326,7 @@ class OAuthManager {
|
|
|
1269
1326
|
} catch (localStorageError) {}
|
|
1270
1327
|
}
|
|
1271
1328
|
this.indexedDBStorage.clearAll().catch((error) => {
|
|
1272
|
-
|
|
1329
|
+
logger4.error("Failed to clear all tokens from IndexedDB:", error);
|
|
1273
1330
|
});
|
|
1274
1331
|
}
|
|
1275
1332
|
}
|
|
@@ -1287,7 +1344,7 @@ class OAuthManager {
|
|
|
1287
1344
|
}
|
|
1288
1345
|
keysToRemove.forEach((key) => window.localStorage.removeItem(key));
|
|
1289
1346
|
} catch (error) {
|
|
1290
|
-
|
|
1347
|
+
logger4.error("Failed to clear pending auths from localStorage:", error);
|
|
1291
1348
|
}
|
|
1292
1349
|
}
|
|
1293
1350
|
}
|
|
@@ -1296,7 +1353,7 @@ class OAuthManager {
|
|
|
1296
1353
|
try {
|
|
1297
1354
|
await this.setTokenCallback(provider, tokenData, email, context);
|
|
1298
1355
|
} catch (error) {
|
|
1299
|
-
|
|
1356
|
+
logger4.error(`Failed to ${tokenData === null ? "delete" : "save"} token for ${provider} via callback:`, error);
|
|
1300
1357
|
throw error;
|
|
1301
1358
|
}
|
|
1302
1359
|
return;
|
|
@@ -1337,10 +1394,10 @@ class OAuthManager {
|
|
|
1337
1394
|
const key = `integrate_token_${provider}`;
|
|
1338
1395
|
window.localStorage.setItem(key, JSON.stringify(tokenData));
|
|
1339
1396
|
} catch (localStorageError) {
|
|
1340
|
-
|
|
1397
|
+
logger4.error(`Failed to save token for ${provider} to localStorage:`, localStorageError);
|
|
1341
1398
|
}
|
|
1342
1399
|
} else {
|
|
1343
|
-
|
|
1400
|
+
logger4.error(`Failed to save token for ${provider} to IndexedDB:`, error);
|
|
1344
1401
|
}
|
|
1345
1402
|
}
|
|
1346
1403
|
} else {
|
|
@@ -1349,7 +1406,7 @@ class OAuthManager {
|
|
|
1349
1406
|
const key = `integrate_token_${provider}`;
|
|
1350
1407
|
window.localStorage.setItem(key, JSON.stringify(tokenData));
|
|
1351
1408
|
} catch (localStorageError) {
|
|
1352
|
-
|
|
1409
|
+
logger4.error(`Failed to save token for ${provider} to localStorage:`, localStorageError);
|
|
1353
1410
|
}
|
|
1354
1411
|
}
|
|
1355
1412
|
}
|
|
@@ -1359,7 +1416,7 @@ class OAuthManager {
|
|
|
1359
1416
|
try {
|
|
1360
1417
|
return await this.getTokenCallback(provider, email, context);
|
|
1361
1418
|
} catch (error) {
|
|
1362
|
-
|
|
1419
|
+
logger4.error(`Failed to load token for ${provider} via callback:`, error);
|
|
1363
1420
|
return;
|
|
1364
1421
|
}
|
|
1365
1422
|
}
|
|
@@ -1436,7 +1493,7 @@ class OAuthManager {
|
|
|
1436
1493
|
const key = `integrate_oauth_pending_${state}`;
|
|
1437
1494
|
window.localStorage.setItem(key, JSON.stringify(pendingAuth));
|
|
1438
1495
|
} catch (error) {
|
|
1439
|
-
|
|
1496
|
+
logger4.error("Failed to save pending auth to localStorage:", error);
|
|
1440
1497
|
}
|
|
1441
1498
|
}
|
|
1442
1499
|
}
|
|
@@ -1449,7 +1506,7 @@ class OAuthManager {
|
|
|
1449
1506
|
return JSON.parse(stored);
|
|
1450
1507
|
}
|
|
1451
1508
|
} catch (error) {
|
|
1452
|
-
|
|
1509
|
+
logger4.error("Failed to load pending auth from localStorage:", error);
|
|
1453
1510
|
}
|
|
1454
1511
|
}
|
|
1455
1512
|
return;
|
|
@@ -1460,7 +1517,7 @@ class OAuthManager {
|
|
|
1460
1517
|
const key = `integrate_oauth_pending_${state}`;
|
|
1461
1518
|
window.localStorage.removeItem(key);
|
|
1462
1519
|
} catch (error) {
|
|
1463
|
-
|
|
1520
|
+
logger4.error("Failed to remove pending auth from localStorage:", error);
|
|
1464
1521
|
}
|
|
1465
1522
|
}
|
|
1466
1523
|
}
|
|
@@ -1489,7 +1546,7 @@ class OAuthManager {
|
|
|
1489
1546
|
}
|
|
1490
1547
|
keysToRemove.forEach((key) => window.localStorage.removeItem(key));
|
|
1491
1548
|
} catch (error) {
|
|
1492
|
-
|
|
1549
|
+
logger4.error("Failed to cleanup expired pending auths:", error);
|
|
1493
1550
|
}
|
|
1494
1551
|
}
|
|
1495
1552
|
}
|
|
@@ -1557,7 +1614,13 @@ class OAuthManager {
|
|
|
1557
1614
|
this.windowManager.close();
|
|
1558
1615
|
}
|
|
1559
1616
|
}
|
|
1560
|
-
var
|
|
1617
|
+
var logger4;
|
|
1618
|
+
var init_manager = __esm(() => {
|
|
1619
|
+
init_window_manager();
|
|
1620
|
+
init_email_fetcher();
|
|
1621
|
+
init_logger();
|
|
1622
|
+
logger4 = createLogger("OAuth");
|
|
1623
|
+
});
|
|
1561
1624
|
|
|
1562
1625
|
// ../client.ts
|
|
1563
1626
|
class SimpleEventEmitter {
|
|
@@ -1581,7 +1644,7 @@ class SimpleEventEmitter {
|
|
|
1581
1644
|
try {
|
|
1582
1645
|
handler(payload);
|
|
1583
1646
|
} catch (error) {
|
|
1584
|
-
|
|
1647
|
+
logger5.error(`Error in event handler for ${event}:`, error);
|
|
1585
1648
|
}
|
|
1586
1649
|
});
|
|
1587
1650
|
}
|
|
@@ -1673,7 +1736,7 @@ class MCPClientBase {
|
|
|
1673
1736
|
this.authState.set(provider, { authenticated: !!tokenData });
|
|
1674
1737
|
}
|
|
1675
1738
|
} catch (error) {
|
|
1676
|
-
|
|
1739
|
+
logger5.error(`Failed to check token for ${provider}:`, error);
|
|
1677
1740
|
const currentState = this.authState.get(provider);
|
|
1678
1741
|
if (currentState && !currentState.authenticated && !currentState.lastError) {
|
|
1679
1742
|
this.authState.set(provider, { authenticated: false });
|
|
@@ -1682,7 +1745,7 @@ class MCPClientBase {
|
|
|
1682
1745
|
}
|
|
1683
1746
|
}
|
|
1684
1747
|
}).catch((error) => {
|
|
1685
|
-
|
|
1748
|
+
logger5.error("Failed to load provider tokens:", error);
|
|
1686
1749
|
});
|
|
1687
1750
|
} else {
|
|
1688
1751
|
this.oauthManager.loadAllProviderTokensSync(providers);
|
|
@@ -1777,16 +1840,56 @@ class MCPClientBase {
|
|
|
1777
1840
|
return new Proxy({}, {
|
|
1778
1841
|
get: (_target, methodName) => {
|
|
1779
1842
|
if (methodName === "listConfiguredIntegrations") {
|
|
1780
|
-
return async () =>
|
|
1781
|
-
|
|
1843
|
+
return async () => {
|
|
1844
|
+
const localIntegrations = this.integrations.map((integration) => ({
|
|
1782
1845
|
id: integration.id,
|
|
1783
1846
|
name: integration.name || integration.id,
|
|
1784
1847
|
tools: integration.tools,
|
|
1785
1848
|
hasOAuth: !!integration.oauth,
|
|
1786
1849
|
scopes: integration.oauth?.scopes,
|
|
1787
1850
|
provider: integration.oauth?.provider
|
|
1788
|
-
}))
|
|
1789
|
-
|
|
1851
|
+
}));
|
|
1852
|
+
let serverMetadataMap = new Map;
|
|
1853
|
+
try {
|
|
1854
|
+
const serverResponse = await this.callServerToolInternal("list_all_providers");
|
|
1855
|
+
if (serverResponse.content && serverResponse.content.length > 0) {
|
|
1856
|
+
const textContent = serverResponse.content[0]?.text;
|
|
1857
|
+
if (textContent) {
|
|
1858
|
+
try {
|
|
1859
|
+
const parsed = JSON.parse(textContent);
|
|
1860
|
+
const integrations = parsed.integrations || [];
|
|
1861
|
+
for (const metadata of integrations) {
|
|
1862
|
+
const key = metadata.name.toLowerCase();
|
|
1863
|
+
serverMetadataMap.set(key, metadata);
|
|
1864
|
+
}
|
|
1865
|
+
} catch (parseError) {
|
|
1866
|
+
logger5.debug("Failed to parse server metadata response:", parseError);
|
|
1867
|
+
}
|
|
1868
|
+
}
|
|
1869
|
+
}
|
|
1870
|
+
} catch (error) {
|
|
1871
|
+
logger5.debug("Failed to fetch server metadata, returning local-only data:", error);
|
|
1872
|
+
return { integrations: localIntegrations };
|
|
1873
|
+
}
|
|
1874
|
+
const mergedIntegrations = localIntegrations.map((local) => {
|
|
1875
|
+
const metadataKey = local.name.toLowerCase();
|
|
1876
|
+
const serverMetadata = serverMetadataMap.get(metadataKey);
|
|
1877
|
+
const idKey = local.id.toLowerCase();
|
|
1878
|
+
const serverMetadataById = serverMetadataMap.get(idKey) || serverMetadata;
|
|
1879
|
+
if (serverMetadataById) {
|
|
1880
|
+
return {
|
|
1881
|
+
...local,
|
|
1882
|
+
name: serverMetadataById.name || local.name,
|
|
1883
|
+
logoUrl: serverMetadataById.logo_url,
|
|
1884
|
+
description: serverMetadataById.description,
|
|
1885
|
+
owner: serverMetadataById.owner,
|
|
1886
|
+
exampleUsage: serverMetadataById.example_usage
|
|
1887
|
+
};
|
|
1888
|
+
}
|
|
1889
|
+
return local;
|
|
1890
|
+
});
|
|
1891
|
+
return { integrations: mergedIntegrations };
|
|
1892
|
+
};
|
|
1790
1893
|
}
|
|
1791
1894
|
return async (args, options) => {
|
|
1792
1895
|
const toolName = methodToToolName(methodName, "");
|
|
@@ -1845,7 +1948,7 @@ class MCPClientBase {
|
|
|
1845
1948
|
this.availableTools.set(tool.name, tool);
|
|
1846
1949
|
}
|
|
1847
1950
|
const enabledTools = response.tools.filter((tool) => this.enabledToolNames.has(tool.name));
|
|
1848
|
-
|
|
1951
|
+
logger5.debug(`Discovered ${response.tools.length} tools, ${enabledTools.length} enabled by integrations`);
|
|
1849
1952
|
}
|
|
1850
1953
|
async _callToolByName(name, args, options) {
|
|
1851
1954
|
return await this.callToolWithRetry(name, args, 0, options);
|
|
@@ -2238,12 +2341,14 @@ class MCPClientBase {
|
|
|
2238
2341
|
return success;
|
|
2239
2342
|
}
|
|
2240
2343
|
}
|
|
2241
|
-
var MCP_SERVER_URL = "https://mcp.integrate.dev/api/v1/mcp", clientCache, cleanupClients;
|
|
2344
|
+
var MCP_SERVER_URL = "https://mcp.integrate.dev/api/v1/mcp", logger5, clientCache, cleanupClients;
|
|
2242
2345
|
var init_client = __esm(() => {
|
|
2243
2346
|
init_http_session();
|
|
2244
2347
|
init_messages();
|
|
2245
2348
|
init_errors();
|
|
2349
|
+
init_logger();
|
|
2246
2350
|
init_manager();
|
|
2351
|
+
logger5 = createLogger("MCPClient");
|
|
2247
2352
|
clientCache = new Map;
|
|
2248
2353
|
cleanupClients = new Set;
|
|
2249
2354
|
});
|
|
@@ -2330,15 +2435,17 @@ function githubIntegration(config = {}) {
|
|
|
2330
2435
|
tools: [...GITHUB_TOOLS],
|
|
2331
2436
|
oauth,
|
|
2332
2437
|
async onInit(_client) {
|
|
2333
|
-
|
|
2438
|
+
logger6.debug("GitHub integration initialized");
|
|
2334
2439
|
},
|
|
2335
2440
|
async onAfterConnect(_client) {
|
|
2336
|
-
|
|
2441
|
+
logger6.debug("GitHub integration connected");
|
|
2337
2442
|
}
|
|
2338
2443
|
};
|
|
2339
2444
|
}
|
|
2340
|
-
var GITHUB_TOOLS;
|
|
2445
|
+
var logger6, GITHUB_TOOLS;
|
|
2341
2446
|
var init_github = __esm(() => {
|
|
2447
|
+
init_logger();
|
|
2448
|
+
logger6 = createLogger("GitHub");
|
|
2342
2449
|
GITHUB_TOOLS = [
|
|
2343
2450
|
"github_create_issue",
|
|
2344
2451
|
"github_list_issues",
|
|
@@ -2381,15 +2488,17 @@ function gmailIntegration(config = {}) {
|
|
|
2381
2488
|
tools: [...GMAIL_TOOLS],
|
|
2382
2489
|
oauth,
|
|
2383
2490
|
async onInit(_client) {
|
|
2384
|
-
|
|
2491
|
+
logger7.debug("Gmail integration initialized");
|
|
2385
2492
|
},
|
|
2386
2493
|
async onAfterConnect(_client) {
|
|
2387
|
-
|
|
2494
|
+
logger7.debug("Gmail integration connected");
|
|
2388
2495
|
}
|
|
2389
2496
|
};
|
|
2390
2497
|
}
|
|
2391
|
-
var GMAIL_TOOLS;
|
|
2498
|
+
var logger7, GMAIL_TOOLS;
|
|
2392
2499
|
var init_gmail = __esm(() => {
|
|
2500
|
+
init_logger();
|
|
2501
|
+
logger7 = createLogger("Gmail");
|
|
2393
2502
|
GMAIL_TOOLS = [
|
|
2394
2503
|
"gmail_send_message",
|
|
2395
2504
|
"gmail_list_messages",
|
|
@@ -2418,15 +2527,17 @@ function notionIntegration(config = {}) {
|
|
|
2418
2527
|
tools: [...NOTION_TOOLS],
|
|
2419
2528
|
oauth,
|
|
2420
2529
|
async onInit(_client) {
|
|
2421
|
-
|
|
2530
|
+
logger8.debug("Notion integration initialized");
|
|
2422
2531
|
},
|
|
2423
2532
|
async onAfterConnect(_client) {
|
|
2424
|
-
|
|
2533
|
+
logger8.debug("Notion integration connected");
|
|
2425
2534
|
}
|
|
2426
2535
|
};
|
|
2427
2536
|
}
|
|
2428
|
-
var NOTION_TOOLS;
|
|
2537
|
+
var logger8, NOTION_TOOLS;
|
|
2429
2538
|
var init_notion = __esm(() => {
|
|
2539
|
+
init_logger();
|
|
2540
|
+
logger8 = createLogger("Notion");
|
|
2430
2541
|
NOTION_TOOLS = [
|
|
2431
2542
|
"notion_search",
|
|
2432
2543
|
"notion_get_page"
|
|
@@ -2450,15 +2561,17 @@ function slackIntegration(config = {}) {
|
|
|
2450
2561
|
tools: [...SLACK_TOOLS],
|
|
2451
2562
|
oauth,
|
|
2452
2563
|
async onInit(_client) {
|
|
2453
|
-
|
|
2564
|
+
logger9.debug("Slack integration initialized");
|
|
2454
2565
|
},
|
|
2455
2566
|
async onAfterConnect(_client) {
|
|
2456
|
-
|
|
2567
|
+
logger9.debug("Slack integration connected");
|
|
2457
2568
|
}
|
|
2458
2569
|
};
|
|
2459
2570
|
}
|
|
2460
|
-
var SLACK_TOOLS;
|
|
2571
|
+
var logger9, SLACK_TOOLS;
|
|
2461
2572
|
var init_slack = __esm(() => {
|
|
2573
|
+
init_logger();
|
|
2574
|
+
logger9 = createLogger("Slack");
|
|
2462
2575
|
SLACK_TOOLS = [
|
|
2463
2576
|
"slack_send_message",
|
|
2464
2577
|
"slack_list_channels",
|
|
@@ -2489,15 +2602,17 @@ function linearIntegration(config = {}) {
|
|
|
2489
2602
|
tools: [...LINEAR_TOOLS],
|
|
2490
2603
|
oauth,
|
|
2491
2604
|
async onInit(_client) {
|
|
2492
|
-
|
|
2605
|
+
logger10.debug("Linear integration initialized");
|
|
2493
2606
|
},
|
|
2494
2607
|
async onAfterConnect(_client) {
|
|
2495
|
-
|
|
2608
|
+
logger10.debug("Linear integration connected");
|
|
2496
2609
|
}
|
|
2497
2610
|
};
|
|
2498
2611
|
}
|
|
2499
|
-
var LINEAR_TOOLS;
|
|
2612
|
+
var logger10, LINEAR_TOOLS;
|
|
2500
2613
|
var init_linear = __esm(() => {
|
|
2614
|
+
init_logger();
|
|
2615
|
+
logger10 = createLogger("Linear");
|
|
2501
2616
|
LINEAR_TOOLS = [
|
|
2502
2617
|
"linear_create_issue",
|
|
2503
2618
|
"linear_list_issues",
|
|
@@ -2528,15 +2643,17 @@ function vercelIntegration(config = {}) {
|
|
|
2528
2643
|
tools: [...VERCEL_TOOLS],
|
|
2529
2644
|
oauth,
|
|
2530
2645
|
async onInit(_client) {
|
|
2531
|
-
|
|
2646
|
+
logger11.debug("Vercel integration initialized");
|
|
2532
2647
|
},
|
|
2533
2648
|
async onAfterConnect(_client) {
|
|
2534
|
-
|
|
2649
|
+
logger11.debug("Vercel integration connected");
|
|
2535
2650
|
}
|
|
2536
2651
|
};
|
|
2537
2652
|
}
|
|
2538
|
-
var VERCEL_TOOLS;
|
|
2653
|
+
var logger11, VERCEL_TOOLS;
|
|
2539
2654
|
var init_vercel = __esm(() => {
|
|
2655
|
+
init_logger();
|
|
2656
|
+
logger11 = createLogger("Vercel");
|
|
2540
2657
|
VERCEL_TOOLS = [
|
|
2541
2658
|
"vercel_list_projects",
|
|
2542
2659
|
"vercel_get_project",
|
|
@@ -2568,15 +2685,17 @@ function zendeskIntegration(config = {}) {
|
|
|
2568
2685
|
tools: [...ZENDESK_TOOLS],
|
|
2569
2686
|
oauth,
|
|
2570
2687
|
async onInit(_client) {
|
|
2571
|
-
|
|
2688
|
+
logger12.debug("Zendesk integration initialized");
|
|
2572
2689
|
},
|
|
2573
2690
|
async onAfterConnect(_client) {
|
|
2574
|
-
|
|
2691
|
+
logger12.debug("Zendesk integration connected");
|
|
2575
2692
|
}
|
|
2576
2693
|
};
|
|
2577
2694
|
}
|
|
2578
|
-
var ZENDESK_TOOLS;
|
|
2695
|
+
var logger12, ZENDESK_TOOLS;
|
|
2579
2696
|
var init_zendesk = __esm(() => {
|
|
2697
|
+
init_logger();
|
|
2698
|
+
logger12 = createLogger("Zendesk");
|
|
2580
2699
|
ZENDESK_TOOLS = [
|
|
2581
2700
|
"zendesk_list_tickets",
|
|
2582
2701
|
"zendesk_get_ticket",
|
|
@@ -2607,15 +2726,17 @@ function stripeIntegration(config = {}) {
|
|
|
2607
2726
|
tools: [...STRIPE_TOOLS],
|
|
2608
2727
|
oauth,
|
|
2609
2728
|
async onInit(_client) {
|
|
2610
|
-
|
|
2729
|
+
logger13.debug("Stripe integration initialized");
|
|
2611
2730
|
},
|
|
2612
2731
|
async onAfterConnect(_client) {
|
|
2613
|
-
|
|
2732
|
+
logger13.debug("Stripe integration connected");
|
|
2614
2733
|
}
|
|
2615
2734
|
};
|
|
2616
2735
|
}
|
|
2617
|
-
var STRIPE_TOOLS;
|
|
2736
|
+
var logger13, STRIPE_TOOLS;
|
|
2618
2737
|
var init_stripe = __esm(() => {
|
|
2738
|
+
init_logger();
|
|
2739
|
+
logger13 = createLogger("Stripe");
|
|
2619
2740
|
STRIPE_TOOLS = [
|
|
2620
2741
|
"stripe_list_customers",
|
|
2621
2742
|
"stripe_get_customer",
|
|
@@ -2646,15 +2767,17 @@ function gcalIntegration(config = {}) {
|
|
|
2646
2767
|
tools: [...GCAL_TOOLS],
|
|
2647
2768
|
oauth,
|
|
2648
2769
|
async onInit(_client) {
|
|
2649
|
-
|
|
2770
|
+
logger14.debug("Google Calendar integration initialized");
|
|
2650
2771
|
},
|
|
2651
2772
|
async onAfterConnect(_client) {
|
|
2652
|
-
|
|
2773
|
+
logger14.debug("Google Calendar integration connected");
|
|
2653
2774
|
}
|
|
2654
2775
|
};
|
|
2655
2776
|
}
|
|
2656
|
-
var GCAL_TOOLS;
|
|
2777
|
+
var logger14, GCAL_TOOLS;
|
|
2657
2778
|
var init_gcal = __esm(() => {
|
|
2779
|
+
init_logger();
|
|
2780
|
+
logger14 = createLogger("Google Calendar");
|
|
2658
2781
|
GCAL_TOOLS = [
|
|
2659
2782
|
"gcal_list_calendars",
|
|
2660
2783
|
"gcal_get_calendar",
|
|
@@ -2685,15 +2808,17 @@ function outlookIntegration(config = {}) {
|
|
|
2685
2808
|
tools: [...OUTLOOK_TOOLS],
|
|
2686
2809
|
oauth,
|
|
2687
2810
|
async onInit(_client) {
|
|
2688
|
-
|
|
2811
|
+
logger15.debug("Outlook integration initialized");
|
|
2689
2812
|
},
|
|
2690
2813
|
async onAfterConnect(_client) {
|
|
2691
|
-
|
|
2814
|
+
logger15.debug("Outlook integration connected");
|
|
2692
2815
|
}
|
|
2693
2816
|
};
|
|
2694
2817
|
}
|
|
2695
|
-
var OUTLOOK_TOOLS;
|
|
2818
|
+
var logger15, OUTLOOK_TOOLS;
|
|
2696
2819
|
var init_outlook = __esm(() => {
|
|
2820
|
+
init_logger();
|
|
2821
|
+
logger15 = createLogger("Outlook");
|
|
2697
2822
|
OUTLOOK_TOOLS = [
|
|
2698
2823
|
"outlook_list_messages",
|
|
2699
2824
|
"outlook_get_message",
|
|
@@ -2724,15 +2849,17 @@ function airtableIntegration(config = {}) {
|
|
|
2724
2849
|
tools: [...AIRTABLE_TOOLS],
|
|
2725
2850
|
oauth,
|
|
2726
2851
|
async onInit(_client) {
|
|
2727
|
-
|
|
2852
|
+
logger16.debug("Airtable integration initialized");
|
|
2728
2853
|
},
|
|
2729
2854
|
async onAfterConnect(_client) {
|
|
2730
|
-
|
|
2855
|
+
logger16.debug("Airtable integration connected");
|
|
2731
2856
|
}
|
|
2732
2857
|
};
|
|
2733
2858
|
}
|
|
2734
|
-
var AIRTABLE_TOOLS;
|
|
2859
|
+
var logger16, AIRTABLE_TOOLS;
|
|
2735
2860
|
var init_airtable = __esm(() => {
|
|
2861
|
+
init_logger();
|
|
2862
|
+
logger16 = createLogger("Airtable");
|
|
2736
2863
|
AIRTABLE_TOOLS = [
|
|
2737
2864
|
"airtable_list_bases",
|
|
2738
2865
|
"airtable_get_base",
|
|
@@ -2763,15 +2890,17 @@ function todoistIntegration(config = {}) {
|
|
|
2763
2890
|
tools: [...TODOIST_TOOLS],
|
|
2764
2891
|
oauth,
|
|
2765
2892
|
async onInit(_client) {
|
|
2766
|
-
|
|
2893
|
+
logger17.debug("Todoist integration initialized");
|
|
2767
2894
|
},
|
|
2768
2895
|
async onAfterConnect(_client) {
|
|
2769
|
-
|
|
2896
|
+
logger17.debug("Todoist integration connected");
|
|
2770
2897
|
}
|
|
2771
2898
|
};
|
|
2772
2899
|
}
|
|
2773
|
-
var TODOIST_TOOLS;
|
|
2900
|
+
var logger17, TODOIST_TOOLS;
|
|
2774
2901
|
var init_todoist = __esm(() => {
|
|
2902
|
+
init_logger();
|
|
2903
|
+
logger17 = createLogger("Todoist");
|
|
2775
2904
|
TODOIST_TOOLS = [
|
|
2776
2905
|
"todoist_list_projects",
|
|
2777
2906
|
"todoist_get_project",
|
|
@@ -2803,15 +2932,17 @@ function whatsappIntegration(config = {}) {
|
|
|
2803
2932
|
tools: [...WHATSAPP_TOOLS],
|
|
2804
2933
|
oauth,
|
|
2805
2934
|
async onInit(_client) {
|
|
2806
|
-
|
|
2935
|
+
logger18.debug("WhatsApp Business integration initialized");
|
|
2807
2936
|
},
|
|
2808
2937
|
async onAfterConnect(_client) {
|
|
2809
|
-
|
|
2938
|
+
logger18.debug("WhatsApp Business integration connected");
|
|
2810
2939
|
}
|
|
2811
2940
|
};
|
|
2812
2941
|
}
|
|
2813
|
-
var WHATSAPP_TOOLS;
|
|
2942
|
+
var logger18, WHATSAPP_TOOLS;
|
|
2814
2943
|
var init_whatsapp = __esm(() => {
|
|
2944
|
+
init_logger();
|
|
2945
|
+
logger18 = createLogger("WhatsApp");
|
|
2815
2946
|
WHATSAPP_TOOLS = [
|
|
2816
2947
|
"whatsapp_send_message",
|
|
2817
2948
|
"whatsapp_send_template",
|
|
@@ -2842,15 +2973,17 @@ function calcomIntegration(config = {}) {
|
|
|
2842
2973
|
tools: [...CALCOM_TOOLS],
|
|
2843
2974
|
oauth,
|
|
2844
2975
|
async onInit(_client) {
|
|
2845
|
-
|
|
2976
|
+
logger19.debug("Cal.com integration initialized");
|
|
2846
2977
|
},
|
|
2847
2978
|
async onAfterConnect(_client) {
|
|
2848
|
-
|
|
2979
|
+
logger19.debug("Cal.com integration connected");
|
|
2849
2980
|
}
|
|
2850
2981
|
};
|
|
2851
2982
|
}
|
|
2852
|
-
var CALCOM_TOOLS;
|
|
2983
|
+
var logger19, CALCOM_TOOLS;
|
|
2853
2984
|
var init_calcom = __esm(() => {
|
|
2985
|
+
init_logger();
|
|
2986
|
+
logger19 = createLogger("Cal.com");
|
|
2854
2987
|
CALCOM_TOOLS = [
|
|
2855
2988
|
"calcom_list_bookings",
|
|
2856
2989
|
"calcom_get_booking",
|
|
@@ -2882,15 +3015,17 @@ function rampIntegration(config = {}) {
|
|
|
2882
3015
|
tools: [...RAMP_TOOLS],
|
|
2883
3016
|
oauth,
|
|
2884
3017
|
async onInit(_client) {
|
|
2885
|
-
|
|
3018
|
+
logger20.debug("Ramp integration initialized");
|
|
2886
3019
|
},
|
|
2887
3020
|
async onAfterConnect(_client) {
|
|
2888
|
-
|
|
3021
|
+
logger20.debug("Ramp integration connected");
|
|
2889
3022
|
}
|
|
2890
3023
|
};
|
|
2891
3024
|
}
|
|
2892
|
-
var RAMP_TOOLS;
|
|
3025
|
+
var logger20, RAMP_TOOLS;
|
|
2893
3026
|
var init_ramp = __esm(() => {
|
|
3027
|
+
init_logger();
|
|
3028
|
+
logger20 = createLogger("Ramp");
|
|
2894
3029
|
RAMP_TOOLS = [
|
|
2895
3030
|
"ramp_list_transactions",
|
|
2896
3031
|
"ramp_get_transaction",
|
|
@@ -2921,15 +3056,17 @@ function onedriveIntegration(config = {}) {
|
|
|
2921
3056
|
tools: [...ONEDRIVE_TOOLS],
|
|
2922
3057
|
oauth,
|
|
2923
3058
|
async onInit(_client) {
|
|
2924
|
-
|
|
3059
|
+
logger21.debug("OneDrive integration initialized");
|
|
2925
3060
|
},
|
|
2926
3061
|
async onAfterConnect(_client) {
|
|
2927
|
-
|
|
3062
|
+
logger21.debug("OneDrive integration connected");
|
|
2928
3063
|
}
|
|
2929
3064
|
};
|
|
2930
3065
|
}
|
|
2931
|
-
var ONEDRIVE_TOOLS;
|
|
3066
|
+
var logger21, ONEDRIVE_TOOLS;
|
|
2932
3067
|
var init_onedrive = __esm(() => {
|
|
3068
|
+
init_logger();
|
|
3069
|
+
logger21 = createLogger("OneDrive");
|
|
2933
3070
|
ONEDRIVE_TOOLS = [
|
|
2934
3071
|
"onedrive_list_files",
|
|
2935
3072
|
"onedrive_get_file",
|
|
@@ -2968,15 +3105,17 @@ function gworkspaceIntegration(config = {}) {
|
|
|
2968
3105
|
tools: [...GWORKSPACE_TOOLS],
|
|
2969
3106
|
oauth,
|
|
2970
3107
|
async onInit(_client) {
|
|
2971
|
-
|
|
3108
|
+
logger22.debug("Google Workspace integration initialized");
|
|
2972
3109
|
},
|
|
2973
3110
|
async onAfterConnect(_client) {
|
|
2974
|
-
|
|
3111
|
+
logger22.debug("Google Workspace integration connected");
|
|
2975
3112
|
}
|
|
2976
3113
|
};
|
|
2977
3114
|
}
|
|
2978
|
-
var GWORKSPACE_TOOLS;
|
|
3115
|
+
var logger22, GWORKSPACE_TOOLS;
|
|
2979
3116
|
var init_gworkspace = __esm(() => {
|
|
3117
|
+
init_logger();
|
|
3118
|
+
logger22 = createLogger("Google Workspace");
|
|
2980
3119
|
GWORKSPACE_TOOLS = [
|
|
2981
3120
|
"gworkspace_sheets_list",
|
|
2982
3121
|
"gworkspace_sheets_get",
|
|
@@ -3011,15 +3150,17 @@ function polarIntegration(config = {}) {
|
|
|
3011
3150
|
tools: [...POLAR_TOOLS],
|
|
3012
3151
|
oauth,
|
|
3013
3152
|
async onInit(_client) {
|
|
3014
|
-
|
|
3153
|
+
logger23.debug("Polar integration initialized");
|
|
3015
3154
|
},
|
|
3016
3155
|
async onAfterConnect(_client) {
|
|
3017
|
-
|
|
3156
|
+
logger23.debug("Polar integration connected");
|
|
3018
3157
|
}
|
|
3019
3158
|
};
|
|
3020
3159
|
}
|
|
3021
|
-
var POLAR_TOOLS;
|
|
3160
|
+
var logger23, POLAR_TOOLS;
|
|
3022
3161
|
var init_polar = __esm(() => {
|
|
3162
|
+
init_logger();
|
|
3163
|
+
logger23 = createLogger("Polar");
|
|
3023
3164
|
POLAR_TOOLS = [
|
|
3024
3165
|
"polar_list_products",
|
|
3025
3166
|
"polar_get_product",
|
|
@@ -3050,15 +3191,17 @@ function figmaIntegration(config = {}) {
|
|
|
3050
3191
|
tools: [...FIGMA_TOOLS],
|
|
3051
3192
|
oauth,
|
|
3052
3193
|
async onInit(_client) {
|
|
3053
|
-
|
|
3194
|
+
logger24.debug("Figma integration initialized");
|
|
3054
3195
|
},
|
|
3055
3196
|
async onAfterConnect(_client) {
|
|
3056
|
-
|
|
3197
|
+
logger24.debug("Figma integration connected");
|
|
3057
3198
|
}
|
|
3058
3199
|
};
|
|
3059
3200
|
}
|
|
3060
|
-
var FIGMA_TOOLS;
|
|
3201
|
+
var logger24, FIGMA_TOOLS;
|
|
3061
3202
|
var init_figma = __esm(() => {
|
|
3203
|
+
init_logger();
|
|
3204
|
+
logger24 = createLogger("Figma");
|
|
3062
3205
|
FIGMA_TOOLS = [
|
|
3063
3206
|
"figma_get_file",
|
|
3064
3207
|
"figma_get_file_nodes",
|
|
@@ -3089,15 +3232,17 @@ function intercomIntegration(config = {}) {
|
|
|
3089
3232
|
tools: [...INTERCOM_TOOLS],
|
|
3090
3233
|
oauth,
|
|
3091
3234
|
async onInit(_client) {
|
|
3092
|
-
|
|
3235
|
+
logger25.debug("Intercom integration initialized");
|
|
3093
3236
|
},
|
|
3094
3237
|
async onAfterConnect(_client) {
|
|
3095
|
-
|
|
3238
|
+
logger25.debug("Intercom integration connected");
|
|
3096
3239
|
}
|
|
3097
3240
|
};
|
|
3098
3241
|
}
|
|
3099
|
-
var INTERCOM_TOOLS;
|
|
3242
|
+
var logger25, INTERCOM_TOOLS;
|
|
3100
3243
|
var init_intercom = __esm(() => {
|
|
3244
|
+
init_logger();
|
|
3245
|
+
logger25 = createLogger("Intercom");
|
|
3101
3246
|
INTERCOM_TOOLS = [
|
|
3102
3247
|
"intercom_list_contacts",
|
|
3103
3248
|
"intercom_get_contact",
|
|
@@ -3136,15 +3281,17 @@ function hubspotIntegration(config = {}) {
|
|
|
3136
3281
|
tools: [...HUBSPOT_TOOLS],
|
|
3137
3282
|
oauth,
|
|
3138
3283
|
async onInit(_client) {
|
|
3139
|
-
|
|
3284
|
+
logger26.debug("HubSpot integration initialized");
|
|
3140
3285
|
},
|
|
3141
3286
|
async onAfterConnect(_client) {
|
|
3142
|
-
|
|
3287
|
+
logger26.debug("HubSpot integration connected");
|
|
3143
3288
|
}
|
|
3144
3289
|
};
|
|
3145
3290
|
}
|
|
3146
|
-
var HUBSPOT_TOOLS;
|
|
3291
|
+
var logger26, HUBSPOT_TOOLS;
|
|
3147
3292
|
var init_hubspot = __esm(() => {
|
|
3293
|
+
init_logger();
|
|
3294
|
+
logger26 = createLogger("HubSpot");
|
|
3148
3295
|
HUBSPOT_TOOLS = [
|
|
3149
3296
|
"hubspot_list_contacts",
|
|
3150
3297
|
"hubspot_get_contact",
|
|
@@ -3178,15 +3325,17 @@ function youtubeIntegration(config = {}) {
|
|
|
3178
3325
|
tools: [...YOUTUBE_TOOLS],
|
|
3179
3326
|
oauth,
|
|
3180
3327
|
async onInit(_client) {
|
|
3181
|
-
|
|
3328
|
+
logger27.debug("YouTube integration initialized");
|
|
3182
3329
|
},
|
|
3183
3330
|
async onAfterConnect(_client) {
|
|
3184
|
-
|
|
3331
|
+
logger27.debug("YouTube integration connected");
|
|
3185
3332
|
}
|
|
3186
3333
|
};
|
|
3187
3334
|
}
|
|
3188
|
-
var YOUTUBE_TOOLS;
|
|
3335
|
+
var logger27, YOUTUBE_TOOLS;
|
|
3189
3336
|
var init_youtube = __esm(() => {
|
|
3337
|
+
init_logger();
|
|
3338
|
+
logger27 = createLogger("YouTube");
|
|
3190
3339
|
YOUTUBE_TOOLS = [
|
|
3191
3340
|
"youtube_search",
|
|
3192
3341
|
"youtube_get_video",
|
|
@@ -3206,15 +3355,17 @@ function cursorIntegration(_config = {}) {
|
|
|
3206
3355
|
id: "cursor",
|
|
3207
3356
|
tools: [...CURSOR_TOOLS],
|
|
3208
3357
|
async onInit(_client) {
|
|
3209
|
-
|
|
3358
|
+
logger28.debug("Cursor integration initialized");
|
|
3210
3359
|
},
|
|
3211
3360
|
async onAfterConnect(_client) {
|
|
3212
|
-
|
|
3361
|
+
logger28.debug("Cursor integration connected");
|
|
3213
3362
|
}
|
|
3214
3363
|
};
|
|
3215
3364
|
}
|
|
3216
|
-
var CURSOR_TOOLS;
|
|
3365
|
+
var logger28, CURSOR_TOOLS;
|
|
3217
3366
|
var init_cursor = __esm(() => {
|
|
3367
|
+
init_logger();
|
|
3368
|
+
logger28 = createLogger("Cursor");
|
|
3218
3369
|
CURSOR_TOOLS = [
|
|
3219
3370
|
"cursor_list_agents",
|
|
3220
3371
|
"cursor_get_agent",
|
|
@@ -9062,6 +9213,7 @@ var init_zodToJsonSchema = __esm(() => {
|
|
|
9062
9213
|
|
|
9063
9214
|
// ../../node_modules/zod-to-json-schema/dist/esm/index.js
|
|
9064
9215
|
var init_esm = __esm(() => {
|
|
9216
|
+
init_zodToJsonSchema();
|
|
9065
9217
|
init_Options();
|
|
9066
9218
|
init_Refs();
|
|
9067
9219
|
init_parseDef();
|
|
@@ -9093,7 +9245,6 @@ var init_esm = __esm(() => {
|
|
|
9093
9245
|
init_unknown();
|
|
9094
9246
|
init_selectParser();
|
|
9095
9247
|
init_zodToJsonSchema();
|
|
9096
|
-
init_zodToJsonSchema();
|
|
9097
9248
|
});
|
|
9098
9249
|
|
|
9099
9250
|
// ../ai/openai.ts
|
|
@@ -9578,6 +9729,7 @@ function getDefaultRedirectUri() {
|
|
|
9578
9729
|
return "http://localhost:3000/api/integrate/oauth/callback";
|
|
9579
9730
|
}
|
|
9580
9731
|
function createMCPServer(config) {
|
|
9732
|
+
setLogLevel(config.debug ? "debug" : "error");
|
|
9581
9733
|
if (typeof window !== "undefined") {
|
|
9582
9734
|
throw new Error("createMCPServer() should only be called on the server-side. " + "Use createMCPClient() for client-side code.");
|
|
9583
9735
|
}
|
|
@@ -9586,7 +9738,7 @@ function createMCPServer(config) {
|
|
|
9586
9738
|
if (integration.oauth) {
|
|
9587
9739
|
const { clientId, clientSecret, redirectUri: integrationRedirectUri, config: oauthConfig } = integration.oauth;
|
|
9588
9740
|
if (!clientId || !clientSecret) {
|
|
9589
|
-
|
|
9741
|
+
logger29.warn(`Warning: Integration "${integration.id}" is missing OAuth credentials. ` + `Provide clientId and clientSecret in the integration configuration.`);
|
|
9590
9742
|
return integration;
|
|
9591
9743
|
}
|
|
9592
9744
|
const redirectUri = integrationRedirectUri || config.redirectUri || getDefaultRedirectUri();
|
|
@@ -9699,7 +9851,7 @@ function createMCPServer(config) {
|
|
|
9699
9851
|
const body = await webRequest.json();
|
|
9700
9852
|
const authHeader = webRequest.headers.get("authorization");
|
|
9701
9853
|
const integrationsHeader = webRequest.headers.get("x-integrations");
|
|
9702
|
-
const { OAuthHandler } = await Promise.resolve().then(() => exports_base_handler);
|
|
9854
|
+
const { OAuthHandler } = await Promise.resolve().then(() => (init_base_handler(), exports_base_handler));
|
|
9703
9855
|
const oauthHandler = new OAuthHandler({
|
|
9704
9856
|
providers,
|
|
9705
9857
|
serverUrl: config.serverUrl,
|
|
@@ -9715,7 +9867,7 @@ function createMCPServer(config) {
|
|
|
9715
9867
|
}
|
|
9716
9868
|
return response2;
|
|
9717
9869
|
} catch (error) {
|
|
9718
|
-
|
|
9870
|
+
logger29.error("[MCP Tool Call] Error:", error);
|
|
9719
9871
|
return Response.json({ error: error.message || "Failed to execute tool call" }, { status: error.statusCode || 500 });
|
|
9720
9872
|
}
|
|
9721
9873
|
}
|
|
@@ -9779,7 +9931,7 @@ function createMCPServer(config) {
|
|
|
9779
9931
|
})
|
|
9780
9932
|
});
|
|
9781
9933
|
} catch (scheduleError) {
|
|
9782
|
-
|
|
9934
|
+
logger29.error("[Trigger] Failed to register with scheduler:", scheduleError);
|
|
9783
9935
|
}
|
|
9784
9936
|
return Response.json(created, { status: 201 });
|
|
9785
9937
|
}
|
|
@@ -9814,7 +9966,7 @@ function createMCPServer(config) {
|
|
|
9814
9966
|
body: JSON.stringify({ triggerId })
|
|
9815
9967
|
});
|
|
9816
9968
|
} catch (error) {
|
|
9817
|
-
|
|
9969
|
+
logger29.error("[Trigger] Failed to pause in scheduler:", error);
|
|
9818
9970
|
}
|
|
9819
9971
|
return Response.json(updated);
|
|
9820
9972
|
} else if (subAction === "resume" && method === "POST") {
|
|
@@ -9842,7 +9994,7 @@ function createMCPServer(config) {
|
|
|
9842
9994
|
body: JSON.stringify({ triggerId })
|
|
9843
9995
|
});
|
|
9844
9996
|
} catch (error) {
|
|
9845
|
-
|
|
9997
|
+
logger29.error("[Trigger] Failed to resume in scheduler:", error);
|
|
9846
9998
|
}
|
|
9847
9999
|
return Response.json(updated);
|
|
9848
10000
|
} else if (subAction === "run" && method === "POST") {
|
|
@@ -9857,7 +10009,7 @@ function createMCPServer(config) {
|
|
|
9857
10009
|
if (!providerToken) {
|
|
9858
10010
|
return Response.json({ error: "No OAuth token available for this trigger" }, { status: 401 });
|
|
9859
10011
|
}
|
|
9860
|
-
const { OAuthHandler } = await Promise.resolve().then(() => exports_base_handler);
|
|
10012
|
+
const { OAuthHandler } = await Promise.resolve().then(() => (init_base_handler(), exports_base_handler));
|
|
9861
10013
|
const oauthHandler = new OAuthHandler({
|
|
9862
10014
|
providers,
|
|
9863
10015
|
serverUrl: config.serverUrl,
|
|
@@ -9983,7 +10135,7 @@ function createMCPServer(config) {
|
|
|
9983
10135
|
})
|
|
9984
10136
|
});
|
|
9985
10137
|
} catch (error) {
|
|
9986
|
-
|
|
10138
|
+
logger29.error("[Trigger] Failed to update scheduler:", error);
|
|
9987
10139
|
}
|
|
9988
10140
|
}
|
|
9989
10141
|
return Response.json(updated);
|
|
@@ -10000,14 +10152,14 @@ function createMCPServer(config) {
|
|
|
10000
10152
|
body: JSON.stringify({ triggerId })
|
|
10001
10153
|
});
|
|
10002
10154
|
} catch (error) {
|
|
10003
|
-
|
|
10155
|
+
logger29.error("[Trigger] Failed to unregister from scheduler:", error);
|
|
10004
10156
|
}
|
|
10005
10157
|
return new Response(null, { status: 204 });
|
|
10006
10158
|
}
|
|
10007
10159
|
}
|
|
10008
10160
|
return Response.json({ error: "Invalid trigger route or method" }, { status: 404 });
|
|
10009
10161
|
} catch (error) {
|
|
10010
|
-
|
|
10162
|
+
logger29.error("[Trigger] Error:", error);
|
|
10011
10163
|
return Response.json({ error: error.message || "Failed to process trigger request" }, { status: error.statusCode || 500 });
|
|
10012
10164
|
}
|
|
10013
10165
|
}
|
|
@@ -10033,11 +10185,11 @@ function createMCPServer(config) {
|
|
|
10033
10185
|
const errorRedirectUrl = "/auth-error";
|
|
10034
10186
|
if (error) {
|
|
10035
10187
|
const errorMsg = errorDescription || error;
|
|
10036
|
-
|
|
10188
|
+
logger29.error("[OAuth Redirect] Error:", errorMsg);
|
|
10037
10189
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(errorMsg)}`, webRequest.url));
|
|
10038
10190
|
}
|
|
10039
10191
|
if (!code || !state) {
|
|
10040
|
-
|
|
10192
|
+
logger29.error("[OAuth Redirect] Missing code or state parameter");
|
|
10041
10193
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent("Invalid OAuth callback")}`, webRequest.url));
|
|
10042
10194
|
}
|
|
10043
10195
|
let returnUrl = defaultRedirectUrl;
|
|
@@ -10069,7 +10221,7 @@ function createMCPServer(config) {
|
|
|
10069
10221
|
if (codeVerifierEntry) {
|
|
10070
10222
|
try {
|
|
10071
10223
|
const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
|
|
10072
|
-
const { OAuthHandler } = await Promise.resolve().then(() => exports_base_handler);
|
|
10224
|
+
const { OAuthHandler } = await Promise.resolve().then(() => (init_base_handler(), exports_base_handler));
|
|
10073
10225
|
const oauthHandler = new OAuthHandler({
|
|
10074
10226
|
providers,
|
|
10075
10227
|
serverUrl: config.serverUrl,
|
|
@@ -10113,7 +10265,7 @@ function createMCPServer(config) {
|
|
|
10113
10265
|
frontendUrl.hash = `oauth_callback=${encodeURIComponent(JSON.stringify({ code, state, tokenData }))}`;
|
|
10114
10266
|
return Response.redirect(frontendUrl);
|
|
10115
10267
|
} catch (error2) {
|
|
10116
|
-
|
|
10268
|
+
logger29.error("[OAuth Backend Callback] Error:", error2);
|
|
10117
10269
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(error2.message || "Failed to exchange token")}`, webRequest.url));
|
|
10118
10270
|
}
|
|
10119
10271
|
} else {
|
|
@@ -10332,7 +10484,7 @@ function toSvelteKitHandler(clientOrHandlerOrOptions, _redirectOptions) {
|
|
|
10332
10484
|
}
|
|
10333
10485
|
};
|
|
10334
10486
|
}
|
|
10335
|
-
var globalServerConfig = null, codeVerifierStorage, POST = async (req, context) => {
|
|
10487
|
+
var logger29, globalServerConfig = null, codeVerifierStorage, POST = async (req, context) => {
|
|
10336
10488
|
if (!globalServerConfig) {
|
|
10337
10489
|
return Response.json({ error: "OAuth not configured. Call createMCPServer() in your server initialization file first." }, { status: 500 });
|
|
10338
10490
|
}
|
|
@@ -10350,6 +10502,7 @@ var globalServerConfig = null, codeVerifierStorage, POST = async (req, context)
|
|
|
10350
10502
|
var init_server = __esm(() => {
|
|
10351
10503
|
init_client();
|
|
10352
10504
|
init_nextjs();
|
|
10505
|
+
init_logger();
|
|
10353
10506
|
init_github();
|
|
10354
10507
|
init_gmail();
|
|
10355
10508
|
init_notion();
|
|
@@ -10379,6 +10532,7 @@ var init_server = __esm(() => {
|
|
|
10379
10532
|
init_anthropic();
|
|
10380
10533
|
init_google();
|
|
10381
10534
|
init_ai();
|
|
10535
|
+
logger29 = createLogger("MCPServer");
|
|
10382
10536
|
codeVerifierStorage = new Map;
|
|
10383
10537
|
});
|
|
10384
10538
|
|
|
@@ -10877,11 +11031,11 @@ class OAuthHandler {
|
|
|
10877
11031
|
try {
|
|
10878
11032
|
await this.config.removeProviderToken(request.provider, undefined, context);
|
|
10879
11033
|
} catch (error) {
|
|
10880
|
-
|
|
11034
|
+
logger30.error(`Failed to delete token for ${request.provider} from database via removeProviderToken:`, error);
|
|
10881
11035
|
}
|
|
10882
11036
|
}
|
|
10883
11037
|
} catch (error) {
|
|
10884
|
-
|
|
11038
|
+
logger30.error(`Failed to extract context for disconnect:`, error);
|
|
10885
11039
|
}
|
|
10886
11040
|
}
|
|
10887
11041
|
const url = new URL("/oauth/disconnect", this.serverUrl);
|
|
@@ -10941,7 +11095,11 @@ class OAuthHandler {
|
|
|
10941
11095
|
return jsonRpcResponse.result;
|
|
10942
11096
|
}
|
|
10943
11097
|
}
|
|
10944
|
-
var MCP_SERVER_URL2 = "https://mcp.integrate.dev/api/v1/mcp";
|
|
11098
|
+
var logger30, MCP_SERVER_URL2 = "https://mcp.integrate.dev/api/v1/mcp";
|
|
11099
|
+
var init_base_handler = __esm(() => {
|
|
11100
|
+
init_logger();
|
|
11101
|
+
logger30 = createLogger("OAuthHandler");
|
|
11102
|
+
});
|
|
10945
11103
|
|
|
10946
11104
|
// nextjs.ts
|
|
10947
11105
|
function createNextOAuthHandler(config) {
|
|
@@ -10959,7 +11117,7 @@ function createNextOAuthHandler(config) {
|
|
|
10959
11117
|
}
|
|
10960
11118
|
return response;
|
|
10961
11119
|
} catch (error) {
|
|
10962
|
-
|
|
11120
|
+
logger31.error("[OAuth Authorize] Error:", error);
|
|
10963
11121
|
return Response.json({ error: error.message || "Failed to get authorization URL" }, { status: 500 });
|
|
10964
11122
|
}
|
|
10965
11123
|
},
|
|
@@ -10975,7 +11133,7 @@ function createNextOAuthHandler(config) {
|
|
|
10975
11133
|
}
|
|
10976
11134
|
return response;
|
|
10977
11135
|
} catch (error) {
|
|
10978
|
-
|
|
11136
|
+
logger31.error("[OAuth Callback] Error:", error);
|
|
10979
11137
|
return Response.json({ error: error.message || "Failed to exchange authorization code" }, { status: 500 });
|
|
10980
11138
|
}
|
|
10981
11139
|
},
|
|
@@ -10997,7 +11155,7 @@ function createNextOAuthHandler(config) {
|
|
|
10997
11155
|
}
|
|
10998
11156
|
return response;
|
|
10999
11157
|
} catch (error) {
|
|
11000
|
-
|
|
11158
|
+
logger31.error("[OAuth Status] Error:", error);
|
|
11001
11159
|
return Response.json({ error: error.message || "Failed to check authorization status" }, { status: 500 });
|
|
11002
11160
|
}
|
|
11003
11161
|
},
|
|
@@ -11020,7 +11178,7 @@ function createNextOAuthHandler(config) {
|
|
|
11020
11178
|
}
|
|
11021
11179
|
return response;
|
|
11022
11180
|
} catch (error) {
|
|
11023
|
-
|
|
11181
|
+
logger31.error("[OAuth Disconnect] Error:", error);
|
|
11024
11182
|
return Response.json({ error: error.message || "Failed to disconnect provider" }, { status: 500 });
|
|
11025
11183
|
}
|
|
11026
11184
|
},
|
|
@@ -11061,7 +11219,7 @@ function createNextOAuthHandler(config) {
|
|
|
11061
11219
|
const result = await handler.handleToolCall(body, authHeader, integrationsHeader);
|
|
11062
11220
|
return Response.json(result);
|
|
11063
11221
|
} catch (error) {
|
|
11064
|
-
|
|
11222
|
+
logger31.error("[MCP Tool Call] Error:", error);
|
|
11065
11223
|
return Response.json({ error: error.message || "Failed to execute tool call" }, { status: error.statusCode || 500 });
|
|
11066
11224
|
}
|
|
11067
11225
|
},
|
|
@@ -11106,11 +11264,11 @@ function createNextOAuthHandler(config) {
|
|
|
11106
11264
|
const errorDescription = searchParams.get("error_description");
|
|
11107
11265
|
if (error) {
|
|
11108
11266
|
const errorMsg = errorDescription || error;
|
|
11109
|
-
|
|
11267
|
+
logger31.error("[OAuth Redirect] Error:", errorMsg);
|
|
11110
11268
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(errorMsg)}`, req.url));
|
|
11111
11269
|
}
|
|
11112
11270
|
if (!code || !state) {
|
|
11113
|
-
|
|
11271
|
+
logger31.error("[OAuth Redirect] Missing code or state parameter");
|
|
11114
11272
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent("Invalid OAuth callback")}`, req.url));
|
|
11115
11273
|
}
|
|
11116
11274
|
let returnUrl = defaultRedirectUrl;
|
|
@@ -11145,7 +11303,12 @@ function createNextOAuthHandler(config) {
|
|
|
11145
11303
|
};
|
|
11146
11304
|
return handlers;
|
|
11147
11305
|
}
|
|
11148
|
-
var
|
|
11306
|
+
var logger31;
|
|
11307
|
+
var init_nextjs = __esm(() => {
|
|
11308
|
+
init_base_handler();
|
|
11309
|
+
init_logger();
|
|
11310
|
+
logger31 = createLogger("NextJSOAuth");
|
|
11311
|
+
});
|
|
11149
11312
|
|
|
11150
11313
|
// svelte-kit.ts
|
|
11151
11314
|
init_server();
|