integrate-sdk 0.8.42 → 0.8.43-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 +265 -139
- package/dist/adapters/base-handler.d.ts.map +1 -1
- package/dist/adapters/index.js +261 -137
- 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 +260 -137
- package/dist/adapters/node.js +260 -137
- package/dist/adapters/svelte-kit.js +260 -137
- package/dist/adapters/tanstack-start.js +260 -137
- package/dist/index.js +275 -147
- package/dist/oauth.js +265 -139
- package/dist/react.js +59 -14
- package/dist/server.js +264 -137
- 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/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/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
package/dist/index.js
CHANGED
|
@@ -19,6 +19,49 @@ function parseMessage(message) {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
+
// src/utils/logger.ts
|
|
23
|
+
function shouldLog(level) {
|
|
24
|
+
return logLevelHierarchy[level] <= logLevelHierarchy[globalLogLevel];
|
|
25
|
+
}
|
|
26
|
+
function setLogLevel(level) {
|
|
27
|
+
globalLogLevel = level;
|
|
28
|
+
}
|
|
29
|
+
function createLogger(namespace) {
|
|
30
|
+
const prefix = `[${namespace}]`;
|
|
31
|
+
return {
|
|
32
|
+
debug: (...args) => {
|
|
33
|
+
if (shouldLog("debug")) {
|
|
34
|
+
console.log(prefix, ...args);
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
info: (...args) => {
|
|
38
|
+
if (shouldLog("info")) {
|
|
39
|
+
console.log(prefix, ...args);
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
warn: (...args) => {
|
|
43
|
+
if (shouldLog("warn")) {
|
|
44
|
+
console.warn(prefix, ...args);
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
error: (...args) => {
|
|
48
|
+
if (shouldLog("error")) {
|
|
49
|
+
console.error(prefix, ...args);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
var globalLogLevel = "error", logLevelHierarchy;
|
|
55
|
+
var init_logger = __esm(() => {
|
|
56
|
+
logLevelHierarchy = {
|
|
57
|
+
none: 0,
|
|
58
|
+
error: 1,
|
|
59
|
+
warn: 2,
|
|
60
|
+
info: 3,
|
|
61
|
+
debug: 4
|
|
62
|
+
};
|
|
63
|
+
});
|
|
64
|
+
|
|
22
65
|
// src/transport/http-session.ts
|
|
23
66
|
class HttpSessionTransport {
|
|
24
67
|
url;
|
|
@@ -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
|
// src/protocol/messages.ts
|
|
213
260
|
var MCPMethod;
|
|
@@ -577,7 +624,7 @@ class OAuthWindowManager {
|
|
|
577
624
|
const windowName = `oauth_popup_${Date.now()}`;
|
|
578
625
|
this.popupWindow = window.open(url, windowName, features);
|
|
579
626
|
if (!this.popupWindow) {
|
|
580
|
-
|
|
627
|
+
logger2.warn("Popup was blocked by the browser. Please allow popups for this site.");
|
|
581
628
|
return null;
|
|
582
629
|
}
|
|
583
630
|
this.popupWindow.focus();
|
|
@@ -587,7 +634,7 @@ class OAuthWindowManager {
|
|
|
587
634
|
if (!isBrowser()) {
|
|
588
635
|
throw new Error("OAuthWindowManager.openRedirect() can only be used in browser environments");
|
|
589
636
|
}
|
|
590
|
-
|
|
637
|
+
logger2.debug("[OAuthWindowManager] Redirecting to:", url.substring(0, 100) + (url.length > 100 ? "..." : ""));
|
|
591
638
|
window.location.href = url;
|
|
592
639
|
}
|
|
593
640
|
listenForCallback(mode, timeoutMs = 5 * 60 * 1000) {
|
|
@@ -666,7 +713,7 @@ class OAuthWindowManager {
|
|
|
666
713
|
window.history.replaceState(null, "", window.location.pathname + window.location.search);
|
|
667
714
|
}
|
|
668
715
|
} catch (e) {
|
|
669
|
-
|
|
716
|
+
logger2.error("Failed to parse OAuth callback params from hash:", e);
|
|
670
717
|
}
|
|
671
718
|
}
|
|
672
719
|
if (!code && !error) {
|
|
@@ -679,7 +726,7 @@ class OAuthWindowManager {
|
|
|
679
726
|
sessionStorage.removeItem("oauth_callback_params");
|
|
680
727
|
}
|
|
681
728
|
} catch (e) {
|
|
682
|
-
|
|
729
|
+
logger2.error("Failed to parse OAuth callback params from sessionStorage:", e);
|
|
683
730
|
}
|
|
684
731
|
}
|
|
685
732
|
if (error) {
|
|
@@ -714,11 +761,11 @@ class OAuthWindowManager {
|
|
|
714
761
|
}
|
|
715
762
|
function sendCallbackToOpener(params) {
|
|
716
763
|
if (!isBrowser()) {
|
|
717
|
-
|
|
764
|
+
logger2.error("sendCallbackToOpener() can only be used in browser environments");
|
|
718
765
|
return;
|
|
719
766
|
}
|
|
720
767
|
if (!window.opener) {
|
|
721
|
-
|
|
768
|
+
logger2.error("No opener window found. This function should only be called from a popup window.");
|
|
722
769
|
return;
|
|
723
770
|
}
|
|
724
771
|
window.opener.postMessage({
|
|
@@ -729,6 +776,11 @@ function sendCallbackToOpener(params) {
|
|
|
729
776
|
}, "*");
|
|
730
777
|
window.close();
|
|
731
778
|
}
|
|
779
|
+
var logger2;
|
|
780
|
+
var init_window_manager = __esm(() => {
|
|
781
|
+
init_logger();
|
|
782
|
+
logger2 = createLogger("OAuthWindowManager");
|
|
783
|
+
});
|
|
732
784
|
|
|
733
785
|
// src/oauth/indexeddb-storage.ts
|
|
734
786
|
class IndexedDBStorage {
|
|
@@ -919,7 +971,7 @@ async function fetchUserEmail(provider, tokenData) {
|
|
|
919
971
|
return tokenData.email;
|
|
920
972
|
}
|
|
921
973
|
} catch (error) {
|
|
922
|
-
|
|
974
|
+
logger3.error(`Failed to fetch email for ${provider}:`, error);
|
|
923
975
|
return;
|
|
924
976
|
}
|
|
925
977
|
}
|
|
@@ -961,7 +1013,7 @@ async function fetchGitHubEmail(accessToken) {
|
|
|
961
1013
|
}
|
|
962
1014
|
return;
|
|
963
1015
|
} catch (error) {
|
|
964
|
-
|
|
1016
|
+
logger3.error("Failed to fetch GitHub email:", error);
|
|
965
1017
|
return;
|
|
966
1018
|
}
|
|
967
1019
|
}
|
|
@@ -978,7 +1030,7 @@ async function fetchGoogleEmail(accessToken) {
|
|
|
978
1030
|
const user = await response.json();
|
|
979
1031
|
return user.email;
|
|
980
1032
|
} catch (error) {
|
|
981
|
-
|
|
1033
|
+
logger3.error("Failed to fetch Google email:", error);
|
|
982
1034
|
return;
|
|
983
1035
|
}
|
|
984
1036
|
}
|
|
@@ -996,10 +1048,15 @@ async function fetchNotionEmail(accessToken) {
|
|
|
996
1048
|
const user = await response.json();
|
|
997
1049
|
return user.person?.email;
|
|
998
1050
|
} catch (error) {
|
|
999
|
-
|
|
1051
|
+
logger3.error("Failed to fetch Notion email:", error);
|
|
1000
1052
|
return;
|
|
1001
1053
|
}
|
|
1002
1054
|
}
|
|
1055
|
+
var logger3;
|
|
1056
|
+
var init_email_fetcher = __esm(() => {
|
|
1057
|
+
init_logger();
|
|
1058
|
+
logger3 = createLogger("EmailFetcher");
|
|
1059
|
+
});
|
|
1003
1060
|
|
|
1004
1061
|
// src/oauth/manager.ts
|
|
1005
1062
|
class OAuthManager {
|
|
@@ -1112,7 +1169,7 @@ class OAuthManager {
|
|
|
1112
1169
|
try {
|
|
1113
1170
|
await this.flowConfig.onAuthCallback(pendingAuth.provider, code, state);
|
|
1114
1171
|
} catch (error) {
|
|
1115
|
-
|
|
1172
|
+
logger4.error("Custom OAuth callback handler failed:", error);
|
|
1116
1173
|
}
|
|
1117
1174
|
}
|
|
1118
1175
|
try {
|
|
@@ -1160,20 +1217,20 @@ class OAuthManager {
|
|
|
1160
1217
|
try {
|
|
1161
1218
|
await this.removeTokenCallback(provider, email, context);
|
|
1162
1219
|
} catch (error) {
|
|
1163
|
-
|
|
1220
|
+
logger4.error(`Failed to delete token for ${provider} (${email}) from database:`, error);
|
|
1164
1221
|
}
|
|
1165
1222
|
} else if (this.setTokenCallback) {
|
|
1166
1223
|
try {
|
|
1167
1224
|
await this.setTokenCallback(provider, null, email, context);
|
|
1168
1225
|
} catch (error) {
|
|
1169
|
-
|
|
1226
|
+
logger4.error(`Failed to delete token for ${provider} (${email}) from database:`, error);
|
|
1170
1227
|
}
|
|
1171
1228
|
}
|
|
1172
1229
|
if (!this.setTokenCallback && !this.removeTokenCallback) {
|
|
1173
1230
|
try {
|
|
1174
1231
|
await this.indexedDBStorage.deleteToken(provider, email);
|
|
1175
1232
|
} catch (error) {
|
|
1176
|
-
|
|
1233
|
+
logger4.error(`Failed to delete token from IndexedDB for ${provider} (${email}):`, error);
|
|
1177
1234
|
}
|
|
1178
1235
|
}
|
|
1179
1236
|
this.providerTokens.delete(provider);
|
|
@@ -1183,13 +1240,13 @@ class OAuthManager {
|
|
|
1183
1240
|
try {
|
|
1184
1241
|
await this.removeTokenCallback(provider, undefined, context);
|
|
1185
1242
|
} catch (error) {
|
|
1186
|
-
|
|
1243
|
+
logger4.error(`Failed to delete tokens for ${provider} from database:`, error);
|
|
1187
1244
|
}
|
|
1188
1245
|
} else if (this.setTokenCallback) {
|
|
1189
1246
|
try {
|
|
1190
1247
|
await this.setTokenCallback(provider, null, undefined, context);
|
|
1191
1248
|
} catch (error) {
|
|
1192
|
-
|
|
1249
|
+
logger4.error(`Failed to delete tokens for ${provider} from database:`, error);
|
|
1193
1250
|
}
|
|
1194
1251
|
}
|
|
1195
1252
|
if (!this.setTokenCallback && !this.removeTokenCallback) {
|
|
@@ -1222,7 +1279,7 @@ class OAuthManager {
|
|
|
1222
1279
|
try {
|
|
1223
1280
|
return await this.indexedDBStorage.listAccounts(provider);
|
|
1224
1281
|
} catch (error) {
|
|
1225
|
-
|
|
1282
|
+
logger4.error(`Failed to list accounts for ${provider}:`, error);
|
|
1226
1283
|
return [];
|
|
1227
1284
|
}
|
|
1228
1285
|
}
|
|
@@ -1237,7 +1294,7 @@ class OAuthManager {
|
|
|
1237
1294
|
}
|
|
1238
1295
|
return tokenData;
|
|
1239
1296
|
} catch (error) {
|
|
1240
|
-
|
|
1297
|
+
logger4.error(`Failed to get token for ${provider} via callback:`, error);
|
|
1241
1298
|
return;
|
|
1242
1299
|
}
|
|
1243
1300
|
}
|
|
@@ -1249,7 +1306,7 @@ class OAuthManager {
|
|
|
1249
1306
|
}
|
|
1250
1307
|
return tokenData;
|
|
1251
1308
|
} catch (error) {
|
|
1252
|
-
|
|
1309
|
+
logger4.error(`Failed to get token from IndexedDB for ${provider}:`, error);
|
|
1253
1310
|
}
|
|
1254
1311
|
}
|
|
1255
1312
|
return this.providerTokens.get(provider);
|
|
@@ -1277,7 +1334,7 @@ class OAuthManager {
|
|
|
1277
1334
|
this.providerTokens.delete(provider);
|
|
1278
1335
|
if (!this.setTokenCallback && !this.removeTokenCallback && !this.skipLocalStorage) {
|
|
1279
1336
|
this.indexedDBStorage.deleteTokensByProvider(provider).catch((error) => {
|
|
1280
|
-
|
|
1337
|
+
logger4.error(`Failed to clear tokens for ${provider} from IndexedDB:`, error);
|
|
1281
1338
|
});
|
|
1282
1339
|
}
|
|
1283
1340
|
}
|
|
@@ -1297,7 +1354,7 @@ class OAuthManager {
|
|
|
1297
1354
|
} catch (localStorageError) {}
|
|
1298
1355
|
}
|
|
1299
1356
|
this.indexedDBStorage.clearAll().catch((error) => {
|
|
1300
|
-
|
|
1357
|
+
logger4.error("Failed to clear all tokens from IndexedDB:", error);
|
|
1301
1358
|
});
|
|
1302
1359
|
}
|
|
1303
1360
|
}
|
|
@@ -1315,7 +1372,7 @@ class OAuthManager {
|
|
|
1315
1372
|
}
|
|
1316
1373
|
keysToRemove.forEach((key) => window.localStorage.removeItem(key));
|
|
1317
1374
|
} catch (error) {
|
|
1318
|
-
|
|
1375
|
+
logger4.error("Failed to clear pending auths from localStorage:", error);
|
|
1319
1376
|
}
|
|
1320
1377
|
}
|
|
1321
1378
|
}
|
|
@@ -1324,7 +1381,7 @@ class OAuthManager {
|
|
|
1324
1381
|
try {
|
|
1325
1382
|
await this.setTokenCallback(provider, tokenData, email, context);
|
|
1326
1383
|
} catch (error) {
|
|
1327
|
-
|
|
1384
|
+
logger4.error(`Failed to ${tokenData === null ? "delete" : "save"} token for ${provider} via callback:`, error);
|
|
1328
1385
|
throw error;
|
|
1329
1386
|
}
|
|
1330
1387
|
return;
|
|
@@ -1365,10 +1422,10 @@ class OAuthManager {
|
|
|
1365
1422
|
const key = `integrate_token_${provider}`;
|
|
1366
1423
|
window.localStorage.setItem(key, JSON.stringify(tokenData));
|
|
1367
1424
|
} catch (localStorageError) {
|
|
1368
|
-
|
|
1425
|
+
logger4.error(`Failed to save token for ${provider} to localStorage:`, localStorageError);
|
|
1369
1426
|
}
|
|
1370
1427
|
} else {
|
|
1371
|
-
|
|
1428
|
+
logger4.error(`Failed to save token for ${provider} to IndexedDB:`, error);
|
|
1372
1429
|
}
|
|
1373
1430
|
}
|
|
1374
1431
|
} else {
|
|
@@ -1377,7 +1434,7 @@ class OAuthManager {
|
|
|
1377
1434
|
const key = `integrate_token_${provider}`;
|
|
1378
1435
|
window.localStorage.setItem(key, JSON.stringify(tokenData));
|
|
1379
1436
|
} catch (localStorageError) {
|
|
1380
|
-
|
|
1437
|
+
logger4.error(`Failed to save token for ${provider} to localStorage:`, localStorageError);
|
|
1381
1438
|
}
|
|
1382
1439
|
}
|
|
1383
1440
|
}
|
|
@@ -1387,7 +1444,7 @@ class OAuthManager {
|
|
|
1387
1444
|
try {
|
|
1388
1445
|
return await this.getTokenCallback(provider, email, context);
|
|
1389
1446
|
} catch (error) {
|
|
1390
|
-
|
|
1447
|
+
logger4.error(`Failed to load token for ${provider} via callback:`, error);
|
|
1391
1448
|
return;
|
|
1392
1449
|
}
|
|
1393
1450
|
}
|
|
@@ -1464,7 +1521,7 @@ class OAuthManager {
|
|
|
1464
1521
|
const key = `integrate_oauth_pending_${state}`;
|
|
1465
1522
|
window.localStorage.setItem(key, JSON.stringify(pendingAuth));
|
|
1466
1523
|
} catch (error) {
|
|
1467
|
-
|
|
1524
|
+
logger4.error("Failed to save pending auth to localStorage:", error);
|
|
1468
1525
|
}
|
|
1469
1526
|
}
|
|
1470
1527
|
}
|
|
@@ -1477,7 +1534,7 @@ class OAuthManager {
|
|
|
1477
1534
|
return JSON.parse(stored);
|
|
1478
1535
|
}
|
|
1479
1536
|
} catch (error) {
|
|
1480
|
-
|
|
1537
|
+
logger4.error("Failed to load pending auth from localStorage:", error);
|
|
1481
1538
|
}
|
|
1482
1539
|
}
|
|
1483
1540
|
return;
|
|
@@ -1488,7 +1545,7 @@ class OAuthManager {
|
|
|
1488
1545
|
const key = `integrate_oauth_pending_${state}`;
|
|
1489
1546
|
window.localStorage.removeItem(key);
|
|
1490
1547
|
} catch (error) {
|
|
1491
|
-
|
|
1548
|
+
logger4.error("Failed to remove pending auth from localStorage:", error);
|
|
1492
1549
|
}
|
|
1493
1550
|
}
|
|
1494
1551
|
}
|
|
@@ -1517,7 +1574,7 @@ class OAuthManager {
|
|
|
1517
1574
|
}
|
|
1518
1575
|
keysToRemove.forEach((key) => window.localStorage.removeItem(key));
|
|
1519
1576
|
} catch (error) {
|
|
1520
|
-
|
|
1577
|
+
logger4.error("Failed to cleanup expired pending auths:", error);
|
|
1521
1578
|
}
|
|
1522
1579
|
}
|
|
1523
1580
|
}
|
|
@@ -1585,7 +1642,13 @@ class OAuthManager {
|
|
|
1585
1642
|
this.windowManager.close();
|
|
1586
1643
|
}
|
|
1587
1644
|
}
|
|
1588
|
-
var
|
|
1645
|
+
var logger4;
|
|
1646
|
+
var init_manager = __esm(() => {
|
|
1647
|
+
init_window_manager();
|
|
1648
|
+
init_email_fetcher();
|
|
1649
|
+
init_logger();
|
|
1650
|
+
logger4 = createLogger("OAuth");
|
|
1651
|
+
});
|
|
1589
1652
|
|
|
1590
1653
|
// src/client.ts
|
|
1591
1654
|
class SimpleEventEmitter {
|
|
@@ -1609,7 +1672,7 @@ class SimpleEventEmitter {
|
|
|
1609
1672
|
try {
|
|
1610
1673
|
handler(payload);
|
|
1611
1674
|
} catch (error) {
|
|
1612
|
-
|
|
1675
|
+
logger5.error(`Error in event handler for ${event}:`, error);
|
|
1613
1676
|
}
|
|
1614
1677
|
});
|
|
1615
1678
|
}
|
|
@@ -1701,7 +1764,7 @@ class MCPClientBase {
|
|
|
1701
1764
|
this.authState.set(provider, { authenticated: !!tokenData });
|
|
1702
1765
|
}
|
|
1703
1766
|
} catch (error) {
|
|
1704
|
-
|
|
1767
|
+
logger5.error(`Failed to check token for ${provider}:`, error);
|
|
1705
1768
|
const currentState = this.authState.get(provider);
|
|
1706
1769
|
if (currentState && !currentState.authenticated && !currentState.lastError) {
|
|
1707
1770
|
this.authState.set(provider, { authenticated: false });
|
|
@@ -1710,7 +1773,7 @@ class MCPClientBase {
|
|
|
1710
1773
|
}
|
|
1711
1774
|
}
|
|
1712
1775
|
}).catch((error) => {
|
|
1713
|
-
|
|
1776
|
+
logger5.error("Failed to load provider tokens:", error);
|
|
1714
1777
|
});
|
|
1715
1778
|
} else {
|
|
1716
1779
|
this.oauthManager.loadAllProviderTokensSync(providers);
|
|
@@ -1873,7 +1936,7 @@ class MCPClientBase {
|
|
|
1873
1936
|
this.availableTools.set(tool.name, tool);
|
|
1874
1937
|
}
|
|
1875
1938
|
const enabledTools = response.tools.filter((tool) => this.enabledToolNames.has(tool.name));
|
|
1876
|
-
|
|
1939
|
+
logger5.debug(`Discovered ${response.tools.length} tools, ${enabledTools.length} enabled by integrations`);
|
|
1877
1940
|
}
|
|
1878
1941
|
async _callToolByName(name, args, options) {
|
|
1879
1942
|
return await this.callToolWithRetry(name, args, 0, options);
|
|
@@ -2279,7 +2342,7 @@ function registerCleanupHandlers() {
|
|
|
2279
2342
|
await client.disconnect();
|
|
2280
2343
|
}
|
|
2281
2344
|
} catch (error) {
|
|
2282
|
-
|
|
2345
|
+
logger5.error("Error disconnecting client:", error);
|
|
2283
2346
|
}
|
|
2284
2347
|
}));
|
|
2285
2348
|
};
|
|
@@ -2311,6 +2374,7 @@ function generateCacheKey(config) {
|
|
|
2311
2374
|
return parts.join("|");
|
|
2312
2375
|
}
|
|
2313
2376
|
function createMCPClient(config) {
|
|
2377
|
+
setLogLevel(config.debug ? "debug" : "error");
|
|
2314
2378
|
const useSingleton = config.singleton ?? true;
|
|
2315
2379
|
const connectionMode = config.connectionMode ?? "lazy";
|
|
2316
2380
|
const autoCleanup = config.autoCleanup ?? true;
|
|
@@ -2332,7 +2396,7 @@ function createMCPClient(config) {
|
|
|
2332
2396
|
}
|
|
2333
2397
|
if (connectionMode === "eager") {
|
|
2334
2398
|
client.connect().catch((error) => {
|
|
2335
|
-
|
|
2399
|
+
logger5.error("Failed to connect client:", error);
|
|
2336
2400
|
});
|
|
2337
2401
|
}
|
|
2338
2402
|
if (config.autoHandleOAuthCallback !== false) {
|
|
@@ -2347,7 +2411,7 @@ function createMCPClient(config) {
|
|
|
2347
2411
|
}
|
|
2348
2412
|
if (connectionMode === "eager") {
|
|
2349
2413
|
client.connect().catch((error) => {
|
|
2350
|
-
|
|
2414
|
+
logger5.error("Failed to connect client:", error);
|
|
2351
2415
|
});
|
|
2352
2416
|
}
|
|
2353
2417
|
if (config.autoHandleOAuthCallback !== false) {
|
|
@@ -2375,7 +2439,7 @@ function processOAuthCallbackFromHash(client, errorBehavior) {
|
|
|
2375
2439
|
}
|
|
2376
2440
|
}).catch((error) => {
|
|
2377
2441
|
if (mode === "console") {
|
|
2378
|
-
|
|
2442
|
+
logger5.error("Failed to process OAuth callback:", error);
|
|
2379
2443
|
} else if (mode === "redirect" && errorBehavior?.redirectUrl) {
|
|
2380
2444
|
window.location.href = errorBehavior.redirectUrl;
|
|
2381
2445
|
return;
|
|
@@ -2389,7 +2453,7 @@ function processOAuthCallbackFromHash(client, errorBehavior) {
|
|
|
2389
2453
|
}
|
|
2390
2454
|
} catch (error) {
|
|
2391
2455
|
if (mode === "console") {
|
|
2392
|
-
|
|
2456
|
+
logger5.error("Failed to process OAuth callback from hash:", error);
|
|
2393
2457
|
} else if (mode === "redirect" && errorBehavior?.redirectUrl) {
|
|
2394
2458
|
window.location.href = errorBehavior.redirectUrl;
|
|
2395
2459
|
return null;
|
|
@@ -2411,16 +2475,18 @@ async function clearClientCache() {
|
|
|
2411
2475
|
await client.disconnect();
|
|
2412
2476
|
}
|
|
2413
2477
|
} catch (error) {
|
|
2414
|
-
|
|
2478
|
+
logger5.error("Error disconnecting client during cache clear:", error);
|
|
2415
2479
|
}
|
|
2416
2480
|
}));
|
|
2417
2481
|
}
|
|
2418
|
-
var MCP_SERVER_URL = "https://mcp.integrate.dev/api/v1/mcp", clientCache, cleanupClients, cleanupHandlersRegistered = false;
|
|
2482
|
+
var MCP_SERVER_URL = "https://mcp.integrate.dev/api/v1/mcp", logger5, clientCache, cleanupClients, cleanupHandlersRegistered = false;
|
|
2419
2483
|
var init_client = __esm(() => {
|
|
2420
2484
|
init_http_session();
|
|
2421
2485
|
init_messages();
|
|
2422
2486
|
init_errors();
|
|
2487
|
+
init_logger();
|
|
2423
2488
|
init_manager();
|
|
2489
|
+
logger5 = createLogger("MCPClient");
|
|
2424
2490
|
clientCache = new Map;
|
|
2425
2491
|
cleanupClients = new Set;
|
|
2426
2492
|
});
|
|
@@ -2441,7 +2507,7 @@ function createNextOAuthHandler(config) {
|
|
|
2441
2507
|
}
|
|
2442
2508
|
return response;
|
|
2443
2509
|
} catch (error) {
|
|
2444
|
-
|
|
2510
|
+
logger6.error("[OAuth Authorize] Error:", error);
|
|
2445
2511
|
return Response.json({ error: error.message || "Failed to get authorization URL" }, { status: 500 });
|
|
2446
2512
|
}
|
|
2447
2513
|
},
|
|
@@ -2457,7 +2523,7 @@ function createNextOAuthHandler(config) {
|
|
|
2457
2523
|
}
|
|
2458
2524
|
return response;
|
|
2459
2525
|
} catch (error) {
|
|
2460
|
-
|
|
2526
|
+
logger6.error("[OAuth Callback] Error:", error);
|
|
2461
2527
|
return Response.json({ error: error.message || "Failed to exchange authorization code" }, { status: 500 });
|
|
2462
2528
|
}
|
|
2463
2529
|
},
|
|
@@ -2479,7 +2545,7 @@ function createNextOAuthHandler(config) {
|
|
|
2479
2545
|
}
|
|
2480
2546
|
return response;
|
|
2481
2547
|
} catch (error) {
|
|
2482
|
-
|
|
2548
|
+
logger6.error("[OAuth Status] Error:", error);
|
|
2483
2549
|
return Response.json({ error: error.message || "Failed to check authorization status" }, { status: 500 });
|
|
2484
2550
|
}
|
|
2485
2551
|
},
|
|
@@ -2502,7 +2568,7 @@ function createNextOAuthHandler(config) {
|
|
|
2502
2568
|
}
|
|
2503
2569
|
return response;
|
|
2504
2570
|
} catch (error) {
|
|
2505
|
-
|
|
2571
|
+
logger6.error("[OAuth Disconnect] Error:", error);
|
|
2506
2572
|
return Response.json({ error: error.message || "Failed to disconnect provider" }, { status: 500 });
|
|
2507
2573
|
}
|
|
2508
2574
|
},
|
|
@@ -2543,7 +2609,7 @@ function createNextOAuthHandler(config) {
|
|
|
2543
2609
|
const result = await handler.handleToolCall(body, authHeader, integrationsHeader);
|
|
2544
2610
|
return Response.json(result);
|
|
2545
2611
|
} catch (error) {
|
|
2546
|
-
|
|
2612
|
+
logger6.error("[MCP Tool Call] Error:", error);
|
|
2547
2613
|
return Response.json({ error: error.message || "Failed to execute tool call" }, { status: error.statusCode || 500 });
|
|
2548
2614
|
}
|
|
2549
2615
|
},
|
|
@@ -2588,11 +2654,11 @@ function createNextOAuthHandler(config) {
|
|
|
2588
2654
|
const errorDescription = searchParams.get("error_description");
|
|
2589
2655
|
if (error) {
|
|
2590
2656
|
const errorMsg = errorDescription || error;
|
|
2591
|
-
|
|
2657
|
+
logger6.error("[OAuth Redirect] Error:", errorMsg);
|
|
2592
2658
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(errorMsg)}`, req.url));
|
|
2593
2659
|
}
|
|
2594
2660
|
if (!code || !state) {
|
|
2595
|
-
|
|
2661
|
+
logger6.error("[OAuth Redirect] Missing code or state parameter");
|
|
2596
2662
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent("Invalid OAuth callback")}`, req.url));
|
|
2597
2663
|
}
|
|
2598
2664
|
let returnUrl = defaultRedirectUrl;
|
|
@@ -2627,7 +2693,12 @@ function createNextOAuthHandler(config) {
|
|
|
2627
2693
|
};
|
|
2628
2694
|
return handlers;
|
|
2629
2695
|
}
|
|
2630
|
-
var
|
|
2696
|
+
var logger6;
|
|
2697
|
+
var init_nextjs = __esm(() => {
|
|
2698
|
+
init_base_handler();
|
|
2699
|
+
init_logger();
|
|
2700
|
+
logger6 = createLogger("NextJSOAuth");
|
|
2701
|
+
});
|
|
2631
2702
|
|
|
2632
2703
|
// src/utils/env.ts
|
|
2633
2704
|
function getEnv(key) {
|
|
@@ -2711,15 +2782,17 @@ function githubIntegration(config = {}) {
|
|
|
2711
2782
|
tools: [...GITHUB_TOOLS],
|
|
2712
2783
|
oauth,
|
|
2713
2784
|
async onInit(_client) {
|
|
2714
|
-
|
|
2785
|
+
logger7.debug("GitHub integration initialized");
|
|
2715
2786
|
},
|
|
2716
2787
|
async onAfterConnect(_client) {
|
|
2717
|
-
|
|
2788
|
+
logger7.debug("GitHub integration connected");
|
|
2718
2789
|
}
|
|
2719
2790
|
};
|
|
2720
2791
|
}
|
|
2721
|
-
var GITHUB_TOOLS;
|
|
2792
|
+
var logger7, GITHUB_TOOLS;
|
|
2722
2793
|
var init_github = __esm(() => {
|
|
2794
|
+
init_logger();
|
|
2795
|
+
logger7 = createLogger("GitHub");
|
|
2723
2796
|
GITHUB_TOOLS = [
|
|
2724
2797
|
"github_create_issue",
|
|
2725
2798
|
"github_list_issues",
|
|
@@ -2762,15 +2835,17 @@ function gmailIntegration(config = {}) {
|
|
|
2762
2835
|
tools: [...GMAIL_TOOLS],
|
|
2763
2836
|
oauth,
|
|
2764
2837
|
async onInit(_client) {
|
|
2765
|
-
|
|
2838
|
+
logger8.debug("Gmail integration initialized");
|
|
2766
2839
|
},
|
|
2767
2840
|
async onAfterConnect(_client) {
|
|
2768
|
-
|
|
2841
|
+
logger8.debug("Gmail integration connected");
|
|
2769
2842
|
}
|
|
2770
2843
|
};
|
|
2771
2844
|
}
|
|
2772
|
-
var GMAIL_TOOLS;
|
|
2845
|
+
var logger8, GMAIL_TOOLS;
|
|
2773
2846
|
var init_gmail = __esm(() => {
|
|
2847
|
+
init_logger();
|
|
2848
|
+
logger8 = createLogger("Gmail");
|
|
2774
2849
|
GMAIL_TOOLS = [
|
|
2775
2850
|
"gmail_send_message",
|
|
2776
2851
|
"gmail_list_messages",
|
|
@@ -2799,15 +2874,17 @@ function notionIntegration(config = {}) {
|
|
|
2799
2874
|
tools: [...NOTION_TOOLS],
|
|
2800
2875
|
oauth,
|
|
2801
2876
|
async onInit(_client) {
|
|
2802
|
-
|
|
2877
|
+
logger9.debug("Notion integration initialized");
|
|
2803
2878
|
},
|
|
2804
2879
|
async onAfterConnect(_client) {
|
|
2805
|
-
|
|
2880
|
+
logger9.debug("Notion integration connected");
|
|
2806
2881
|
}
|
|
2807
2882
|
};
|
|
2808
2883
|
}
|
|
2809
|
-
var NOTION_TOOLS;
|
|
2884
|
+
var logger9, NOTION_TOOLS;
|
|
2810
2885
|
var init_notion = __esm(() => {
|
|
2886
|
+
init_logger();
|
|
2887
|
+
logger9 = createLogger("Notion");
|
|
2811
2888
|
NOTION_TOOLS = [
|
|
2812
2889
|
"notion_search",
|
|
2813
2890
|
"notion_get_page"
|
|
@@ -2831,15 +2908,17 @@ function slackIntegration(config = {}) {
|
|
|
2831
2908
|
tools: [...SLACK_TOOLS],
|
|
2832
2909
|
oauth,
|
|
2833
2910
|
async onInit(_client) {
|
|
2834
|
-
|
|
2911
|
+
logger10.debug("Slack integration initialized");
|
|
2835
2912
|
},
|
|
2836
2913
|
async onAfterConnect(_client) {
|
|
2837
|
-
|
|
2914
|
+
logger10.debug("Slack integration connected");
|
|
2838
2915
|
}
|
|
2839
2916
|
};
|
|
2840
2917
|
}
|
|
2841
|
-
var SLACK_TOOLS;
|
|
2918
|
+
var logger10, SLACK_TOOLS;
|
|
2842
2919
|
var init_slack = __esm(() => {
|
|
2920
|
+
init_logger();
|
|
2921
|
+
logger10 = createLogger("Slack");
|
|
2843
2922
|
SLACK_TOOLS = [
|
|
2844
2923
|
"slack_send_message",
|
|
2845
2924
|
"slack_list_channels",
|
|
@@ -2870,15 +2949,17 @@ function linearIntegration(config = {}) {
|
|
|
2870
2949
|
tools: [...LINEAR_TOOLS],
|
|
2871
2950
|
oauth,
|
|
2872
2951
|
async onInit(_client) {
|
|
2873
|
-
|
|
2952
|
+
logger11.debug("Linear integration initialized");
|
|
2874
2953
|
},
|
|
2875
2954
|
async onAfterConnect(_client) {
|
|
2876
|
-
|
|
2955
|
+
logger11.debug("Linear integration connected");
|
|
2877
2956
|
}
|
|
2878
2957
|
};
|
|
2879
2958
|
}
|
|
2880
|
-
var LINEAR_TOOLS;
|
|
2959
|
+
var logger11, LINEAR_TOOLS;
|
|
2881
2960
|
var init_linear = __esm(() => {
|
|
2961
|
+
init_logger();
|
|
2962
|
+
logger11 = createLogger("Linear");
|
|
2882
2963
|
LINEAR_TOOLS = [
|
|
2883
2964
|
"linear_create_issue",
|
|
2884
2965
|
"linear_list_issues",
|
|
@@ -2909,15 +2990,17 @@ function vercelIntegration(config = {}) {
|
|
|
2909
2990
|
tools: [...VERCEL_TOOLS],
|
|
2910
2991
|
oauth,
|
|
2911
2992
|
async onInit(_client) {
|
|
2912
|
-
|
|
2993
|
+
logger12.debug("Vercel integration initialized");
|
|
2913
2994
|
},
|
|
2914
2995
|
async onAfterConnect(_client) {
|
|
2915
|
-
|
|
2996
|
+
logger12.debug("Vercel integration connected");
|
|
2916
2997
|
}
|
|
2917
2998
|
};
|
|
2918
2999
|
}
|
|
2919
|
-
var VERCEL_TOOLS;
|
|
3000
|
+
var logger12, VERCEL_TOOLS;
|
|
2920
3001
|
var init_vercel = __esm(() => {
|
|
3002
|
+
init_logger();
|
|
3003
|
+
logger12 = createLogger("Vercel");
|
|
2921
3004
|
VERCEL_TOOLS = [
|
|
2922
3005
|
"vercel_list_projects",
|
|
2923
3006
|
"vercel_get_project",
|
|
@@ -2949,15 +3032,17 @@ function zendeskIntegration(config = {}) {
|
|
|
2949
3032
|
tools: [...ZENDESK_TOOLS],
|
|
2950
3033
|
oauth,
|
|
2951
3034
|
async onInit(_client) {
|
|
2952
|
-
|
|
3035
|
+
logger13.debug("Zendesk integration initialized");
|
|
2953
3036
|
},
|
|
2954
3037
|
async onAfterConnect(_client) {
|
|
2955
|
-
|
|
3038
|
+
logger13.debug("Zendesk integration connected");
|
|
2956
3039
|
}
|
|
2957
3040
|
};
|
|
2958
3041
|
}
|
|
2959
|
-
var ZENDESK_TOOLS;
|
|
3042
|
+
var logger13, ZENDESK_TOOLS;
|
|
2960
3043
|
var init_zendesk = __esm(() => {
|
|
3044
|
+
init_logger();
|
|
3045
|
+
logger13 = createLogger("Zendesk");
|
|
2961
3046
|
ZENDESK_TOOLS = [
|
|
2962
3047
|
"zendesk_list_tickets",
|
|
2963
3048
|
"zendesk_get_ticket",
|
|
@@ -2988,15 +3073,17 @@ function stripeIntegration(config = {}) {
|
|
|
2988
3073
|
tools: [...STRIPE_TOOLS],
|
|
2989
3074
|
oauth,
|
|
2990
3075
|
async onInit(_client) {
|
|
2991
|
-
|
|
3076
|
+
logger14.debug("Stripe integration initialized");
|
|
2992
3077
|
},
|
|
2993
3078
|
async onAfterConnect(_client) {
|
|
2994
|
-
|
|
3079
|
+
logger14.debug("Stripe integration connected");
|
|
2995
3080
|
}
|
|
2996
3081
|
};
|
|
2997
3082
|
}
|
|
2998
|
-
var STRIPE_TOOLS;
|
|
3083
|
+
var logger14, STRIPE_TOOLS;
|
|
2999
3084
|
var init_stripe = __esm(() => {
|
|
3085
|
+
init_logger();
|
|
3086
|
+
logger14 = createLogger("Stripe");
|
|
3000
3087
|
STRIPE_TOOLS = [
|
|
3001
3088
|
"stripe_list_customers",
|
|
3002
3089
|
"stripe_get_customer",
|
|
@@ -3027,15 +3114,17 @@ function gcalIntegration(config = {}) {
|
|
|
3027
3114
|
tools: [...GCAL_TOOLS],
|
|
3028
3115
|
oauth,
|
|
3029
3116
|
async onInit(_client) {
|
|
3030
|
-
|
|
3117
|
+
logger15.debug("Google Calendar integration initialized");
|
|
3031
3118
|
},
|
|
3032
3119
|
async onAfterConnect(_client) {
|
|
3033
|
-
|
|
3120
|
+
logger15.debug("Google Calendar integration connected");
|
|
3034
3121
|
}
|
|
3035
3122
|
};
|
|
3036
3123
|
}
|
|
3037
|
-
var GCAL_TOOLS;
|
|
3124
|
+
var logger15, GCAL_TOOLS;
|
|
3038
3125
|
var init_gcal = __esm(() => {
|
|
3126
|
+
init_logger();
|
|
3127
|
+
logger15 = createLogger("Google Calendar");
|
|
3039
3128
|
GCAL_TOOLS = [
|
|
3040
3129
|
"gcal_list_calendars",
|
|
3041
3130
|
"gcal_get_calendar",
|
|
@@ -3066,15 +3155,17 @@ function outlookIntegration(config = {}) {
|
|
|
3066
3155
|
tools: [...OUTLOOK_TOOLS],
|
|
3067
3156
|
oauth,
|
|
3068
3157
|
async onInit(_client) {
|
|
3069
|
-
|
|
3158
|
+
logger16.debug("Outlook integration initialized");
|
|
3070
3159
|
},
|
|
3071
3160
|
async onAfterConnect(_client) {
|
|
3072
|
-
|
|
3161
|
+
logger16.debug("Outlook integration connected");
|
|
3073
3162
|
}
|
|
3074
3163
|
};
|
|
3075
3164
|
}
|
|
3076
|
-
var OUTLOOK_TOOLS;
|
|
3165
|
+
var logger16, OUTLOOK_TOOLS;
|
|
3077
3166
|
var init_outlook = __esm(() => {
|
|
3167
|
+
init_logger();
|
|
3168
|
+
logger16 = createLogger("Outlook");
|
|
3078
3169
|
OUTLOOK_TOOLS = [
|
|
3079
3170
|
"outlook_list_messages",
|
|
3080
3171
|
"outlook_get_message",
|
|
@@ -3105,15 +3196,17 @@ function airtableIntegration(config = {}) {
|
|
|
3105
3196
|
tools: [...AIRTABLE_TOOLS],
|
|
3106
3197
|
oauth,
|
|
3107
3198
|
async onInit(_client) {
|
|
3108
|
-
|
|
3199
|
+
logger17.debug("Airtable integration initialized");
|
|
3109
3200
|
},
|
|
3110
3201
|
async onAfterConnect(_client) {
|
|
3111
|
-
|
|
3202
|
+
logger17.debug("Airtable integration connected");
|
|
3112
3203
|
}
|
|
3113
3204
|
};
|
|
3114
3205
|
}
|
|
3115
|
-
var AIRTABLE_TOOLS;
|
|
3206
|
+
var logger17, AIRTABLE_TOOLS;
|
|
3116
3207
|
var init_airtable = __esm(() => {
|
|
3208
|
+
init_logger();
|
|
3209
|
+
logger17 = createLogger("Airtable");
|
|
3117
3210
|
AIRTABLE_TOOLS = [
|
|
3118
3211
|
"airtable_list_bases",
|
|
3119
3212
|
"airtable_get_base",
|
|
@@ -3144,15 +3237,17 @@ function todoistIntegration(config = {}) {
|
|
|
3144
3237
|
tools: [...TODOIST_TOOLS],
|
|
3145
3238
|
oauth,
|
|
3146
3239
|
async onInit(_client) {
|
|
3147
|
-
|
|
3240
|
+
logger18.debug("Todoist integration initialized");
|
|
3148
3241
|
},
|
|
3149
3242
|
async onAfterConnect(_client) {
|
|
3150
|
-
|
|
3243
|
+
logger18.debug("Todoist integration connected");
|
|
3151
3244
|
}
|
|
3152
3245
|
};
|
|
3153
3246
|
}
|
|
3154
|
-
var TODOIST_TOOLS;
|
|
3247
|
+
var logger18, TODOIST_TOOLS;
|
|
3155
3248
|
var init_todoist = __esm(() => {
|
|
3249
|
+
init_logger();
|
|
3250
|
+
logger18 = createLogger("Todoist");
|
|
3156
3251
|
TODOIST_TOOLS = [
|
|
3157
3252
|
"todoist_list_projects",
|
|
3158
3253
|
"todoist_get_project",
|
|
@@ -3184,15 +3279,17 @@ function whatsappIntegration(config = {}) {
|
|
|
3184
3279
|
tools: [...WHATSAPP_TOOLS],
|
|
3185
3280
|
oauth,
|
|
3186
3281
|
async onInit(_client) {
|
|
3187
|
-
|
|
3282
|
+
logger19.debug("WhatsApp Business integration initialized");
|
|
3188
3283
|
},
|
|
3189
3284
|
async onAfterConnect(_client) {
|
|
3190
|
-
|
|
3285
|
+
logger19.debug("WhatsApp Business integration connected");
|
|
3191
3286
|
}
|
|
3192
3287
|
};
|
|
3193
3288
|
}
|
|
3194
|
-
var WHATSAPP_TOOLS;
|
|
3289
|
+
var logger19, WHATSAPP_TOOLS;
|
|
3195
3290
|
var init_whatsapp = __esm(() => {
|
|
3291
|
+
init_logger();
|
|
3292
|
+
logger19 = createLogger("WhatsApp");
|
|
3196
3293
|
WHATSAPP_TOOLS = [
|
|
3197
3294
|
"whatsapp_send_message",
|
|
3198
3295
|
"whatsapp_send_template",
|
|
@@ -3223,15 +3320,17 @@ function calcomIntegration(config = {}) {
|
|
|
3223
3320
|
tools: [...CALCOM_TOOLS],
|
|
3224
3321
|
oauth,
|
|
3225
3322
|
async onInit(_client) {
|
|
3226
|
-
|
|
3323
|
+
logger20.debug("Cal.com integration initialized");
|
|
3227
3324
|
},
|
|
3228
3325
|
async onAfterConnect(_client) {
|
|
3229
|
-
|
|
3326
|
+
logger20.debug("Cal.com integration connected");
|
|
3230
3327
|
}
|
|
3231
3328
|
};
|
|
3232
3329
|
}
|
|
3233
|
-
var CALCOM_TOOLS;
|
|
3330
|
+
var logger20, CALCOM_TOOLS;
|
|
3234
3331
|
var init_calcom = __esm(() => {
|
|
3332
|
+
init_logger();
|
|
3333
|
+
logger20 = createLogger("Cal.com");
|
|
3235
3334
|
CALCOM_TOOLS = [
|
|
3236
3335
|
"calcom_list_bookings",
|
|
3237
3336
|
"calcom_get_booking",
|
|
@@ -3263,15 +3362,17 @@ function rampIntegration(config = {}) {
|
|
|
3263
3362
|
tools: [...RAMP_TOOLS],
|
|
3264
3363
|
oauth,
|
|
3265
3364
|
async onInit(_client) {
|
|
3266
|
-
|
|
3365
|
+
logger21.debug("Ramp integration initialized");
|
|
3267
3366
|
},
|
|
3268
3367
|
async onAfterConnect(_client) {
|
|
3269
|
-
|
|
3368
|
+
logger21.debug("Ramp integration connected");
|
|
3270
3369
|
}
|
|
3271
3370
|
};
|
|
3272
3371
|
}
|
|
3273
|
-
var RAMP_TOOLS;
|
|
3372
|
+
var logger21, RAMP_TOOLS;
|
|
3274
3373
|
var init_ramp = __esm(() => {
|
|
3374
|
+
init_logger();
|
|
3375
|
+
logger21 = createLogger("Ramp");
|
|
3275
3376
|
RAMP_TOOLS = [
|
|
3276
3377
|
"ramp_list_transactions",
|
|
3277
3378
|
"ramp_get_transaction",
|
|
@@ -3302,15 +3403,17 @@ function onedriveIntegration(config = {}) {
|
|
|
3302
3403
|
tools: [...ONEDRIVE_TOOLS],
|
|
3303
3404
|
oauth,
|
|
3304
3405
|
async onInit(_client) {
|
|
3305
|
-
|
|
3406
|
+
logger22.debug("OneDrive integration initialized");
|
|
3306
3407
|
},
|
|
3307
3408
|
async onAfterConnect(_client) {
|
|
3308
|
-
|
|
3409
|
+
logger22.debug("OneDrive integration connected");
|
|
3309
3410
|
}
|
|
3310
3411
|
};
|
|
3311
3412
|
}
|
|
3312
|
-
var ONEDRIVE_TOOLS;
|
|
3413
|
+
var logger22, ONEDRIVE_TOOLS;
|
|
3313
3414
|
var init_onedrive = __esm(() => {
|
|
3415
|
+
init_logger();
|
|
3416
|
+
logger22 = createLogger("OneDrive");
|
|
3314
3417
|
ONEDRIVE_TOOLS = [
|
|
3315
3418
|
"onedrive_list_files",
|
|
3316
3419
|
"onedrive_get_file",
|
|
@@ -3349,15 +3452,17 @@ function gworkspaceIntegration(config = {}) {
|
|
|
3349
3452
|
tools: [...GWORKSPACE_TOOLS],
|
|
3350
3453
|
oauth,
|
|
3351
3454
|
async onInit(_client) {
|
|
3352
|
-
|
|
3455
|
+
logger23.debug("Google Workspace integration initialized");
|
|
3353
3456
|
},
|
|
3354
3457
|
async onAfterConnect(_client) {
|
|
3355
|
-
|
|
3458
|
+
logger23.debug("Google Workspace integration connected");
|
|
3356
3459
|
}
|
|
3357
3460
|
};
|
|
3358
3461
|
}
|
|
3359
|
-
var GWORKSPACE_TOOLS;
|
|
3462
|
+
var logger23, GWORKSPACE_TOOLS;
|
|
3360
3463
|
var init_gworkspace = __esm(() => {
|
|
3464
|
+
init_logger();
|
|
3465
|
+
logger23 = createLogger("Google Workspace");
|
|
3361
3466
|
GWORKSPACE_TOOLS = [
|
|
3362
3467
|
"gworkspace_sheets_list",
|
|
3363
3468
|
"gworkspace_sheets_get",
|
|
@@ -3392,15 +3497,17 @@ function polarIntegration(config = {}) {
|
|
|
3392
3497
|
tools: [...POLAR_TOOLS],
|
|
3393
3498
|
oauth,
|
|
3394
3499
|
async onInit(_client) {
|
|
3395
|
-
|
|
3500
|
+
logger24.debug("Polar integration initialized");
|
|
3396
3501
|
},
|
|
3397
3502
|
async onAfterConnect(_client) {
|
|
3398
|
-
|
|
3503
|
+
logger24.debug("Polar integration connected");
|
|
3399
3504
|
}
|
|
3400
3505
|
};
|
|
3401
3506
|
}
|
|
3402
|
-
var POLAR_TOOLS;
|
|
3507
|
+
var logger24, POLAR_TOOLS;
|
|
3403
3508
|
var init_polar = __esm(() => {
|
|
3509
|
+
init_logger();
|
|
3510
|
+
logger24 = createLogger("Polar");
|
|
3404
3511
|
POLAR_TOOLS = [
|
|
3405
3512
|
"polar_list_products",
|
|
3406
3513
|
"polar_get_product",
|
|
@@ -3431,15 +3538,17 @@ function figmaIntegration(config = {}) {
|
|
|
3431
3538
|
tools: [...FIGMA_TOOLS],
|
|
3432
3539
|
oauth,
|
|
3433
3540
|
async onInit(_client) {
|
|
3434
|
-
|
|
3541
|
+
logger25.debug("Figma integration initialized");
|
|
3435
3542
|
},
|
|
3436
3543
|
async onAfterConnect(_client) {
|
|
3437
|
-
|
|
3544
|
+
logger25.debug("Figma integration connected");
|
|
3438
3545
|
}
|
|
3439
3546
|
};
|
|
3440
3547
|
}
|
|
3441
|
-
var FIGMA_TOOLS;
|
|
3548
|
+
var logger25, FIGMA_TOOLS;
|
|
3442
3549
|
var init_figma = __esm(() => {
|
|
3550
|
+
init_logger();
|
|
3551
|
+
logger25 = createLogger("Figma");
|
|
3443
3552
|
FIGMA_TOOLS = [
|
|
3444
3553
|
"figma_get_file",
|
|
3445
3554
|
"figma_get_file_nodes",
|
|
@@ -3470,15 +3579,17 @@ function intercomIntegration(config = {}) {
|
|
|
3470
3579
|
tools: [...INTERCOM_TOOLS],
|
|
3471
3580
|
oauth,
|
|
3472
3581
|
async onInit(_client) {
|
|
3473
|
-
|
|
3582
|
+
logger26.debug("Intercom integration initialized");
|
|
3474
3583
|
},
|
|
3475
3584
|
async onAfterConnect(_client) {
|
|
3476
|
-
|
|
3585
|
+
logger26.debug("Intercom integration connected");
|
|
3477
3586
|
}
|
|
3478
3587
|
};
|
|
3479
3588
|
}
|
|
3480
|
-
var INTERCOM_TOOLS;
|
|
3589
|
+
var logger26, INTERCOM_TOOLS;
|
|
3481
3590
|
var init_intercom = __esm(() => {
|
|
3591
|
+
init_logger();
|
|
3592
|
+
logger26 = createLogger("Intercom");
|
|
3482
3593
|
INTERCOM_TOOLS = [
|
|
3483
3594
|
"intercom_list_contacts",
|
|
3484
3595
|
"intercom_get_contact",
|
|
@@ -3517,15 +3628,17 @@ function hubspotIntegration(config = {}) {
|
|
|
3517
3628
|
tools: [...HUBSPOT_TOOLS],
|
|
3518
3629
|
oauth,
|
|
3519
3630
|
async onInit(_client) {
|
|
3520
|
-
|
|
3631
|
+
logger27.debug("HubSpot integration initialized");
|
|
3521
3632
|
},
|
|
3522
3633
|
async onAfterConnect(_client) {
|
|
3523
|
-
|
|
3634
|
+
logger27.debug("HubSpot integration connected");
|
|
3524
3635
|
}
|
|
3525
3636
|
};
|
|
3526
3637
|
}
|
|
3527
|
-
var HUBSPOT_TOOLS;
|
|
3638
|
+
var logger27, HUBSPOT_TOOLS;
|
|
3528
3639
|
var init_hubspot = __esm(() => {
|
|
3640
|
+
init_logger();
|
|
3641
|
+
logger27 = createLogger("HubSpot");
|
|
3529
3642
|
HUBSPOT_TOOLS = [
|
|
3530
3643
|
"hubspot_list_contacts",
|
|
3531
3644
|
"hubspot_get_contact",
|
|
@@ -3559,15 +3672,17 @@ function youtubeIntegration(config = {}) {
|
|
|
3559
3672
|
tools: [...YOUTUBE_TOOLS],
|
|
3560
3673
|
oauth,
|
|
3561
3674
|
async onInit(_client) {
|
|
3562
|
-
|
|
3675
|
+
logger28.debug("YouTube integration initialized");
|
|
3563
3676
|
},
|
|
3564
3677
|
async onAfterConnect(_client) {
|
|
3565
|
-
|
|
3678
|
+
logger28.debug("YouTube integration connected");
|
|
3566
3679
|
}
|
|
3567
3680
|
};
|
|
3568
3681
|
}
|
|
3569
|
-
var YOUTUBE_TOOLS;
|
|
3682
|
+
var logger28, YOUTUBE_TOOLS;
|
|
3570
3683
|
var init_youtube = __esm(() => {
|
|
3684
|
+
init_logger();
|
|
3685
|
+
logger28 = createLogger("YouTube");
|
|
3571
3686
|
YOUTUBE_TOOLS = [
|
|
3572
3687
|
"youtube_search",
|
|
3573
3688
|
"youtube_get_video",
|
|
@@ -3587,15 +3702,17 @@ function cursorIntegration(_config = {}) {
|
|
|
3587
3702
|
id: "cursor",
|
|
3588
3703
|
tools: [...CURSOR_TOOLS],
|
|
3589
3704
|
async onInit(_client) {
|
|
3590
|
-
|
|
3705
|
+
logger29.debug("Cursor integration initialized");
|
|
3591
3706
|
},
|
|
3592
3707
|
async onAfterConnect(_client) {
|
|
3593
|
-
|
|
3708
|
+
logger29.debug("Cursor integration connected");
|
|
3594
3709
|
}
|
|
3595
3710
|
};
|
|
3596
3711
|
}
|
|
3597
|
-
var CURSOR_TOOLS;
|
|
3712
|
+
var logger29, CURSOR_TOOLS;
|
|
3598
3713
|
var init_cursor = __esm(() => {
|
|
3714
|
+
init_logger();
|
|
3715
|
+
logger29 = createLogger("Cursor");
|
|
3599
3716
|
CURSOR_TOOLS = [
|
|
3600
3717
|
"cursor_list_agents",
|
|
3601
3718
|
"cursor_get_agent",
|
|
@@ -9431,6 +9548,7 @@ var init_zodToJsonSchema = __esm(() => {
|
|
|
9431
9548
|
|
|
9432
9549
|
// node_modules/zod-to-json-schema/dist/esm/index.js
|
|
9433
9550
|
var init_esm = __esm(() => {
|
|
9551
|
+
init_zodToJsonSchema();
|
|
9434
9552
|
init_Options();
|
|
9435
9553
|
init_Refs();
|
|
9436
9554
|
init_parseDef();
|
|
@@ -9462,7 +9580,6 @@ var init_esm = __esm(() => {
|
|
|
9462
9580
|
init_unknown();
|
|
9463
9581
|
init_selectParser();
|
|
9464
9582
|
init_zodToJsonSchema();
|
|
9465
|
-
init_zodToJsonSchema();
|
|
9466
9583
|
});
|
|
9467
9584
|
|
|
9468
9585
|
// src/ai/openai.ts
|
|
@@ -9947,6 +10064,7 @@ function getDefaultRedirectUri() {
|
|
|
9947
10064
|
return "http://localhost:3000/api/integrate/oauth/callback";
|
|
9948
10065
|
}
|
|
9949
10066
|
function createMCPServer(config) {
|
|
10067
|
+
setLogLevel(config.debug ? "debug" : "error");
|
|
9950
10068
|
if (typeof window !== "undefined") {
|
|
9951
10069
|
throw new Error("createMCPServer() should only be called on the server-side. " + "Use createMCPClient() for client-side code.");
|
|
9952
10070
|
}
|
|
@@ -9955,7 +10073,7 @@ function createMCPServer(config) {
|
|
|
9955
10073
|
if (integration.oauth) {
|
|
9956
10074
|
const { clientId, clientSecret, redirectUri: integrationRedirectUri, config: oauthConfig } = integration.oauth;
|
|
9957
10075
|
if (!clientId || !clientSecret) {
|
|
9958
|
-
|
|
10076
|
+
logger30.warn(`Warning: Integration "${integration.id}" is missing OAuth credentials. ` + `Provide clientId and clientSecret in the integration configuration.`);
|
|
9959
10077
|
return integration;
|
|
9960
10078
|
}
|
|
9961
10079
|
const redirectUri = integrationRedirectUri || config.redirectUri || getDefaultRedirectUri();
|
|
@@ -10068,7 +10186,7 @@ function createMCPServer(config) {
|
|
|
10068
10186
|
const body = await webRequest.json();
|
|
10069
10187
|
const authHeader = webRequest.headers.get("authorization");
|
|
10070
10188
|
const integrationsHeader = webRequest.headers.get("x-integrations");
|
|
10071
|
-
const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => exports_base_handler);
|
|
10189
|
+
const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => (init_base_handler(), exports_base_handler));
|
|
10072
10190
|
const oauthHandler = new OAuthHandler2({
|
|
10073
10191
|
providers,
|
|
10074
10192
|
serverUrl: config.serverUrl,
|
|
@@ -10084,7 +10202,7 @@ function createMCPServer(config) {
|
|
|
10084
10202
|
}
|
|
10085
10203
|
return response2;
|
|
10086
10204
|
} catch (error) {
|
|
10087
|
-
|
|
10205
|
+
logger30.error("[MCP Tool Call] Error:", error);
|
|
10088
10206
|
return Response.json({ error: error.message || "Failed to execute tool call" }, { status: error.statusCode || 500 });
|
|
10089
10207
|
}
|
|
10090
10208
|
}
|
|
@@ -10148,7 +10266,7 @@ function createMCPServer(config) {
|
|
|
10148
10266
|
})
|
|
10149
10267
|
});
|
|
10150
10268
|
} catch (scheduleError) {
|
|
10151
|
-
|
|
10269
|
+
logger30.error("[Trigger] Failed to register with scheduler:", scheduleError);
|
|
10152
10270
|
}
|
|
10153
10271
|
return Response.json(created, { status: 201 });
|
|
10154
10272
|
}
|
|
@@ -10183,7 +10301,7 @@ function createMCPServer(config) {
|
|
|
10183
10301
|
body: JSON.stringify({ triggerId })
|
|
10184
10302
|
});
|
|
10185
10303
|
} catch (error) {
|
|
10186
|
-
|
|
10304
|
+
logger30.error("[Trigger] Failed to pause in scheduler:", error);
|
|
10187
10305
|
}
|
|
10188
10306
|
return Response.json(updated);
|
|
10189
10307
|
} else if (subAction === "resume" && method === "POST") {
|
|
@@ -10211,7 +10329,7 @@ function createMCPServer(config) {
|
|
|
10211
10329
|
body: JSON.stringify({ triggerId })
|
|
10212
10330
|
});
|
|
10213
10331
|
} catch (error) {
|
|
10214
|
-
|
|
10332
|
+
logger30.error("[Trigger] Failed to resume in scheduler:", error);
|
|
10215
10333
|
}
|
|
10216
10334
|
return Response.json(updated);
|
|
10217
10335
|
} else if (subAction === "run" && method === "POST") {
|
|
@@ -10226,7 +10344,7 @@ function createMCPServer(config) {
|
|
|
10226
10344
|
if (!providerToken) {
|
|
10227
10345
|
return Response.json({ error: "No OAuth token available for this trigger" }, { status: 401 });
|
|
10228
10346
|
}
|
|
10229
|
-
const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => exports_base_handler);
|
|
10347
|
+
const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => (init_base_handler(), exports_base_handler));
|
|
10230
10348
|
const oauthHandler = new OAuthHandler2({
|
|
10231
10349
|
providers,
|
|
10232
10350
|
serverUrl: config.serverUrl,
|
|
@@ -10352,7 +10470,7 @@ function createMCPServer(config) {
|
|
|
10352
10470
|
})
|
|
10353
10471
|
});
|
|
10354
10472
|
} catch (error) {
|
|
10355
|
-
|
|
10473
|
+
logger30.error("[Trigger] Failed to update scheduler:", error);
|
|
10356
10474
|
}
|
|
10357
10475
|
}
|
|
10358
10476
|
return Response.json(updated);
|
|
@@ -10369,14 +10487,14 @@ function createMCPServer(config) {
|
|
|
10369
10487
|
body: JSON.stringify({ triggerId })
|
|
10370
10488
|
});
|
|
10371
10489
|
} catch (error) {
|
|
10372
|
-
|
|
10490
|
+
logger30.error("[Trigger] Failed to unregister from scheduler:", error);
|
|
10373
10491
|
}
|
|
10374
10492
|
return new Response(null, { status: 204 });
|
|
10375
10493
|
}
|
|
10376
10494
|
}
|
|
10377
10495
|
return Response.json({ error: "Invalid trigger route or method" }, { status: 404 });
|
|
10378
10496
|
} catch (error) {
|
|
10379
|
-
|
|
10497
|
+
logger30.error("[Trigger] Error:", error);
|
|
10380
10498
|
return Response.json({ error: error.message || "Failed to process trigger request" }, { status: error.statusCode || 500 });
|
|
10381
10499
|
}
|
|
10382
10500
|
}
|
|
@@ -10402,11 +10520,11 @@ function createMCPServer(config) {
|
|
|
10402
10520
|
const errorRedirectUrl = "/auth-error";
|
|
10403
10521
|
if (error) {
|
|
10404
10522
|
const errorMsg = errorDescription || error;
|
|
10405
|
-
|
|
10523
|
+
logger30.error("[OAuth Redirect] Error:", errorMsg);
|
|
10406
10524
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(errorMsg)}`, webRequest.url));
|
|
10407
10525
|
}
|
|
10408
10526
|
if (!code || !state) {
|
|
10409
|
-
|
|
10527
|
+
logger30.error("[OAuth Redirect] Missing code or state parameter");
|
|
10410
10528
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent("Invalid OAuth callback")}`, webRequest.url));
|
|
10411
10529
|
}
|
|
10412
10530
|
let returnUrl = defaultRedirectUrl;
|
|
@@ -10438,7 +10556,7 @@ function createMCPServer(config) {
|
|
|
10438
10556
|
if (codeVerifierEntry) {
|
|
10439
10557
|
try {
|
|
10440
10558
|
const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
|
|
10441
|
-
const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => exports_base_handler);
|
|
10559
|
+
const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => (init_base_handler(), exports_base_handler));
|
|
10442
10560
|
const oauthHandler = new OAuthHandler2({
|
|
10443
10561
|
providers,
|
|
10444
10562
|
serverUrl: config.serverUrl,
|
|
@@ -10482,7 +10600,7 @@ function createMCPServer(config) {
|
|
|
10482
10600
|
frontendUrl.hash = `oauth_callback=${encodeURIComponent(JSON.stringify({ code, state, tokenData }))}`;
|
|
10483
10601
|
return Response.redirect(frontendUrl);
|
|
10484
10602
|
} catch (error2) {
|
|
10485
|
-
|
|
10603
|
+
logger30.error("[OAuth Backend Callback] Error:", error2);
|
|
10486
10604
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(error2.message || "Failed to exchange token")}`, webRequest.url));
|
|
10487
10605
|
}
|
|
10488
10606
|
} else {
|
|
@@ -10701,7 +10819,7 @@ function toSvelteKitHandler(clientOrHandlerOrOptions, _redirectOptions) {
|
|
|
10701
10819
|
}
|
|
10702
10820
|
};
|
|
10703
10821
|
}
|
|
10704
|
-
var globalServerConfig = null, codeVerifierStorage, POST = async (req, context) => {
|
|
10822
|
+
var logger30, globalServerConfig = null, codeVerifierStorage, POST = async (req, context) => {
|
|
10705
10823
|
if (!globalServerConfig) {
|
|
10706
10824
|
return Response.json({ error: "OAuth not configured. Call createMCPServer() in your server initialization file first." }, { status: 500 });
|
|
10707
10825
|
}
|
|
@@ -10719,6 +10837,7 @@ var globalServerConfig = null, codeVerifierStorage, POST = async (req, context)
|
|
|
10719
10837
|
var init_server = __esm(() => {
|
|
10720
10838
|
init_client();
|
|
10721
10839
|
init_nextjs();
|
|
10840
|
+
init_logger();
|
|
10722
10841
|
init_github();
|
|
10723
10842
|
init_gmail();
|
|
10724
10843
|
init_notion();
|
|
@@ -10748,6 +10867,7 @@ var init_server = __esm(() => {
|
|
|
10748
10867
|
init_anthropic();
|
|
10749
10868
|
init_google();
|
|
10750
10869
|
init_ai();
|
|
10870
|
+
logger30 = createLogger("MCPServer");
|
|
10751
10871
|
codeVerifierStorage = new Map;
|
|
10752
10872
|
});
|
|
10753
10873
|
|
|
@@ -11246,11 +11366,11 @@ class OAuthHandler {
|
|
|
11246
11366
|
try {
|
|
11247
11367
|
await this.config.removeProviderToken(request.provider, undefined, context);
|
|
11248
11368
|
} catch (error) {
|
|
11249
|
-
|
|
11369
|
+
logger31.error(`Failed to delete token for ${request.provider} from database via removeProviderToken:`, error);
|
|
11250
11370
|
}
|
|
11251
11371
|
}
|
|
11252
11372
|
} catch (error) {
|
|
11253
|
-
|
|
11373
|
+
logger31.error(`Failed to extract context for disconnect:`, error);
|
|
11254
11374
|
}
|
|
11255
11375
|
}
|
|
11256
11376
|
const url = new URL("/oauth/disconnect", this.serverUrl);
|
|
@@ -11310,14 +11430,22 @@ class OAuthHandler {
|
|
|
11310
11430
|
return jsonRpcResponse.result;
|
|
11311
11431
|
}
|
|
11312
11432
|
}
|
|
11313
|
-
var MCP_SERVER_URL2 = "https://mcp.integrate.dev/api/v1/mcp";
|
|
11433
|
+
var logger31, MCP_SERVER_URL2 = "https://mcp.integrate.dev/api/v1/mcp";
|
|
11434
|
+
var init_base_handler = __esm(() => {
|
|
11435
|
+
init_logger();
|
|
11436
|
+
logger31 = createLogger("OAuthHandler");
|
|
11437
|
+
});
|
|
11314
11438
|
|
|
11315
11439
|
// src/index.ts
|
|
11316
11440
|
init_client();
|
|
11317
11441
|
init_manager();
|
|
11442
|
+
init_window_manager();
|
|
11443
|
+
init_base_handler();
|
|
11318
11444
|
init_nextjs();
|
|
11319
11445
|
|
|
11320
11446
|
// src/adapters/nextjs-oauth-redirect.ts
|
|
11447
|
+
init_logger();
|
|
11448
|
+
var logger32 = createLogger("OAuthRedirect");
|
|
11321
11449
|
function createOAuthRedirectHandler(config) {
|
|
11322
11450
|
const defaultRedirectUrl = config?.redirectUrl || "/";
|
|
11323
11451
|
const errorRedirectUrl = config?.errorRedirectUrl || "/auth-error";
|
|
@@ -11329,11 +11457,11 @@ function createOAuthRedirectHandler(config) {
|
|
|
11329
11457
|
const errorDescription = searchParams.get("error_description");
|
|
11330
11458
|
if (error) {
|
|
11331
11459
|
const errorMsg = errorDescription || error;
|
|
11332
|
-
|
|
11460
|
+
logger32.error("[OAuth Redirect] Error:", errorMsg);
|
|
11333
11461
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(errorMsg)}`, req.url));
|
|
11334
11462
|
}
|
|
11335
11463
|
if (!code || !state) {
|
|
11336
|
-
|
|
11464
|
+
logger32.error("[OAuth Redirect] Missing code or state parameter");
|
|
11337
11465
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent("Invalid OAuth callback")}`, req.url));
|
|
11338
11466
|
}
|
|
11339
11467
|
let returnUrl = defaultRedirectUrl;
|