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
package/dist/server.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 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
|
// src/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
|
// src/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
|
// src/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
|
});
|
|
@@ -2743,11 +2848,11 @@ class OAuthHandler {
|
|
|
2743
2848
|
try {
|
|
2744
2849
|
await this.config.removeProviderToken(request.provider, undefined, context);
|
|
2745
2850
|
} catch (error) {
|
|
2746
|
-
|
|
2851
|
+
logger6.error(`Failed to delete token for ${request.provider} from database via removeProviderToken:`, error);
|
|
2747
2852
|
}
|
|
2748
2853
|
}
|
|
2749
2854
|
} catch (error) {
|
|
2750
|
-
|
|
2855
|
+
logger6.error(`Failed to extract context for disconnect:`, error);
|
|
2751
2856
|
}
|
|
2752
2857
|
}
|
|
2753
2858
|
const url = new URL("/oauth/disconnect", this.serverUrl);
|
|
@@ -2807,7 +2912,11 @@ class OAuthHandler {
|
|
|
2807
2912
|
return jsonRpcResponse.result;
|
|
2808
2913
|
}
|
|
2809
2914
|
}
|
|
2810
|
-
var MCP_SERVER_URL2 = "https://mcp.integrate.dev/api/v1/mcp";
|
|
2915
|
+
var logger6, MCP_SERVER_URL2 = "https://mcp.integrate.dev/api/v1/mcp";
|
|
2916
|
+
var init_base_handler = __esm(() => {
|
|
2917
|
+
init_logger();
|
|
2918
|
+
logger6 = createLogger("OAuthHandler");
|
|
2919
|
+
});
|
|
2811
2920
|
|
|
2812
2921
|
// src/adapters/nextjs.ts
|
|
2813
2922
|
function createNextOAuthHandler(config) {
|
|
@@ -2825,7 +2934,7 @@ function createNextOAuthHandler(config) {
|
|
|
2825
2934
|
}
|
|
2826
2935
|
return response;
|
|
2827
2936
|
} catch (error) {
|
|
2828
|
-
|
|
2937
|
+
logger7.error("[OAuth Authorize] Error:", error);
|
|
2829
2938
|
return Response.json({ error: error.message || "Failed to get authorization URL" }, { status: 500 });
|
|
2830
2939
|
}
|
|
2831
2940
|
},
|
|
@@ -2841,7 +2950,7 @@ function createNextOAuthHandler(config) {
|
|
|
2841
2950
|
}
|
|
2842
2951
|
return response;
|
|
2843
2952
|
} catch (error) {
|
|
2844
|
-
|
|
2953
|
+
logger7.error("[OAuth Callback] Error:", error);
|
|
2845
2954
|
return Response.json({ error: error.message || "Failed to exchange authorization code" }, { status: 500 });
|
|
2846
2955
|
}
|
|
2847
2956
|
},
|
|
@@ -2863,7 +2972,7 @@ function createNextOAuthHandler(config) {
|
|
|
2863
2972
|
}
|
|
2864
2973
|
return response;
|
|
2865
2974
|
} catch (error) {
|
|
2866
|
-
|
|
2975
|
+
logger7.error("[OAuth Status] Error:", error);
|
|
2867
2976
|
return Response.json({ error: error.message || "Failed to check authorization status" }, { status: 500 });
|
|
2868
2977
|
}
|
|
2869
2978
|
},
|
|
@@ -2886,7 +2995,7 @@ function createNextOAuthHandler(config) {
|
|
|
2886
2995
|
}
|
|
2887
2996
|
return response;
|
|
2888
2997
|
} catch (error) {
|
|
2889
|
-
|
|
2998
|
+
logger7.error("[OAuth Disconnect] Error:", error);
|
|
2890
2999
|
return Response.json({ error: error.message || "Failed to disconnect provider" }, { status: 500 });
|
|
2891
3000
|
}
|
|
2892
3001
|
},
|
|
@@ -2927,7 +3036,7 @@ function createNextOAuthHandler(config) {
|
|
|
2927
3036
|
const result = await handler.handleToolCall(body, authHeader, integrationsHeader);
|
|
2928
3037
|
return Response.json(result);
|
|
2929
3038
|
} catch (error) {
|
|
2930
|
-
|
|
3039
|
+
logger7.error("[MCP Tool Call] Error:", error);
|
|
2931
3040
|
return Response.json({ error: error.message || "Failed to execute tool call" }, { status: error.statusCode || 500 });
|
|
2932
3041
|
}
|
|
2933
3042
|
},
|
|
@@ -2972,11 +3081,11 @@ function createNextOAuthHandler(config) {
|
|
|
2972
3081
|
const errorDescription = searchParams.get("error_description");
|
|
2973
3082
|
if (error) {
|
|
2974
3083
|
const errorMsg = errorDescription || error;
|
|
2975
|
-
|
|
3084
|
+
logger7.error("[OAuth Redirect] Error:", errorMsg);
|
|
2976
3085
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(errorMsg)}`, req.url));
|
|
2977
3086
|
}
|
|
2978
3087
|
if (!code || !state) {
|
|
2979
|
-
|
|
3088
|
+
logger7.error("[OAuth Redirect] Missing code or state parameter");
|
|
2980
3089
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent("Invalid OAuth callback")}`, req.url));
|
|
2981
3090
|
}
|
|
2982
3091
|
let returnUrl = defaultRedirectUrl;
|
|
@@ -3011,7 +3120,12 @@ function createNextOAuthHandler(config) {
|
|
|
3011
3120
|
};
|
|
3012
3121
|
return handlers;
|
|
3013
3122
|
}
|
|
3014
|
-
var
|
|
3123
|
+
var logger7;
|
|
3124
|
+
var init_nextjs = __esm(() => {
|
|
3125
|
+
init_base_handler();
|
|
3126
|
+
init_logger();
|
|
3127
|
+
logger7 = createLogger("NextJSOAuth");
|
|
3128
|
+
});
|
|
3015
3129
|
|
|
3016
3130
|
// src/utils/env.ts
|
|
3017
3131
|
function getEnv(key) {
|
|
@@ -3095,15 +3209,17 @@ function githubIntegration(config = {}) {
|
|
|
3095
3209
|
tools: [...GITHUB_TOOLS],
|
|
3096
3210
|
oauth,
|
|
3097
3211
|
async onInit(_client) {
|
|
3098
|
-
|
|
3212
|
+
logger8.debug("GitHub integration initialized");
|
|
3099
3213
|
},
|
|
3100
3214
|
async onAfterConnect(_client) {
|
|
3101
|
-
|
|
3215
|
+
logger8.debug("GitHub integration connected");
|
|
3102
3216
|
}
|
|
3103
3217
|
};
|
|
3104
3218
|
}
|
|
3105
|
-
var GITHUB_TOOLS;
|
|
3219
|
+
var logger8, GITHUB_TOOLS;
|
|
3106
3220
|
var init_github = __esm(() => {
|
|
3221
|
+
init_logger();
|
|
3222
|
+
logger8 = createLogger("GitHub");
|
|
3107
3223
|
GITHUB_TOOLS = [
|
|
3108
3224
|
"github_create_issue",
|
|
3109
3225
|
"github_list_issues",
|
|
@@ -3146,15 +3262,17 @@ function gmailIntegration(config = {}) {
|
|
|
3146
3262
|
tools: [...GMAIL_TOOLS],
|
|
3147
3263
|
oauth,
|
|
3148
3264
|
async onInit(_client) {
|
|
3149
|
-
|
|
3265
|
+
logger9.debug("Gmail integration initialized");
|
|
3150
3266
|
},
|
|
3151
3267
|
async onAfterConnect(_client) {
|
|
3152
|
-
|
|
3268
|
+
logger9.debug("Gmail integration connected");
|
|
3153
3269
|
}
|
|
3154
3270
|
};
|
|
3155
3271
|
}
|
|
3156
|
-
var GMAIL_TOOLS;
|
|
3272
|
+
var logger9, GMAIL_TOOLS;
|
|
3157
3273
|
var init_gmail = __esm(() => {
|
|
3274
|
+
init_logger();
|
|
3275
|
+
logger9 = createLogger("Gmail");
|
|
3158
3276
|
GMAIL_TOOLS = [
|
|
3159
3277
|
"gmail_send_message",
|
|
3160
3278
|
"gmail_list_messages",
|
|
@@ -3183,15 +3301,17 @@ function notionIntegration(config = {}) {
|
|
|
3183
3301
|
tools: [...NOTION_TOOLS],
|
|
3184
3302
|
oauth,
|
|
3185
3303
|
async onInit(_client) {
|
|
3186
|
-
|
|
3304
|
+
logger10.debug("Notion integration initialized");
|
|
3187
3305
|
},
|
|
3188
3306
|
async onAfterConnect(_client) {
|
|
3189
|
-
|
|
3307
|
+
logger10.debug("Notion integration connected");
|
|
3190
3308
|
}
|
|
3191
3309
|
};
|
|
3192
3310
|
}
|
|
3193
|
-
var NOTION_TOOLS;
|
|
3311
|
+
var logger10, NOTION_TOOLS;
|
|
3194
3312
|
var init_notion = __esm(() => {
|
|
3313
|
+
init_logger();
|
|
3314
|
+
logger10 = createLogger("Notion");
|
|
3195
3315
|
NOTION_TOOLS = [
|
|
3196
3316
|
"notion_search",
|
|
3197
3317
|
"notion_get_page"
|
|
@@ -3215,15 +3335,17 @@ function slackIntegration(config = {}) {
|
|
|
3215
3335
|
tools: [...SLACK_TOOLS],
|
|
3216
3336
|
oauth,
|
|
3217
3337
|
async onInit(_client) {
|
|
3218
|
-
|
|
3338
|
+
logger11.debug("Slack integration initialized");
|
|
3219
3339
|
},
|
|
3220
3340
|
async onAfterConnect(_client) {
|
|
3221
|
-
|
|
3341
|
+
logger11.debug("Slack integration connected");
|
|
3222
3342
|
}
|
|
3223
3343
|
};
|
|
3224
3344
|
}
|
|
3225
|
-
var SLACK_TOOLS;
|
|
3345
|
+
var logger11, SLACK_TOOLS;
|
|
3226
3346
|
var init_slack = __esm(() => {
|
|
3347
|
+
init_logger();
|
|
3348
|
+
logger11 = createLogger("Slack");
|
|
3227
3349
|
SLACK_TOOLS = [
|
|
3228
3350
|
"slack_send_message",
|
|
3229
3351
|
"slack_list_channels",
|
|
@@ -3254,15 +3376,17 @@ function linearIntegration(config = {}) {
|
|
|
3254
3376
|
tools: [...LINEAR_TOOLS],
|
|
3255
3377
|
oauth,
|
|
3256
3378
|
async onInit(_client) {
|
|
3257
|
-
|
|
3379
|
+
logger12.debug("Linear integration initialized");
|
|
3258
3380
|
},
|
|
3259
3381
|
async onAfterConnect(_client) {
|
|
3260
|
-
|
|
3382
|
+
logger12.debug("Linear integration connected");
|
|
3261
3383
|
}
|
|
3262
3384
|
};
|
|
3263
3385
|
}
|
|
3264
|
-
var LINEAR_TOOLS;
|
|
3386
|
+
var logger12, LINEAR_TOOLS;
|
|
3265
3387
|
var init_linear = __esm(() => {
|
|
3388
|
+
init_logger();
|
|
3389
|
+
logger12 = createLogger("Linear");
|
|
3266
3390
|
LINEAR_TOOLS = [
|
|
3267
3391
|
"linear_create_issue",
|
|
3268
3392
|
"linear_list_issues",
|
|
@@ -3293,15 +3417,17 @@ function vercelIntegration(config = {}) {
|
|
|
3293
3417
|
tools: [...VERCEL_TOOLS],
|
|
3294
3418
|
oauth,
|
|
3295
3419
|
async onInit(_client) {
|
|
3296
|
-
|
|
3420
|
+
logger13.debug("Vercel integration initialized");
|
|
3297
3421
|
},
|
|
3298
3422
|
async onAfterConnect(_client) {
|
|
3299
|
-
|
|
3423
|
+
logger13.debug("Vercel integration connected");
|
|
3300
3424
|
}
|
|
3301
3425
|
};
|
|
3302
3426
|
}
|
|
3303
|
-
var VERCEL_TOOLS;
|
|
3427
|
+
var logger13, VERCEL_TOOLS;
|
|
3304
3428
|
var init_vercel = __esm(() => {
|
|
3429
|
+
init_logger();
|
|
3430
|
+
logger13 = createLogger("Vercel");
|
|
3305
3431
|
VERCEL_TOOLS = [
|
|
3306
3432
|
"vercel_list_projects",
|
|
3307
3433
|
"vercel_get_project",
|
|
@@ -3333,15 +3459,17 @@ function zendeskIntegration(config = {}) {
|
|
|
3333
3459
|
tools: [...ZENDESK_TOOLS],
|
|
3334
3460
|
oauth,
|
|
3335
3461
|
async onInit(_client) {
|
|
3336
|
-
|
|
3462
|
+
logger14.debug("Zendesk integration initialized");
|
|
3337
3463
|
},
|
|
3338
3464
|
async onAfterConnect(_client) {
|
|
3339
|
-
|
|
3465
|
+
logger14.debug("Zendesk integration connected");
|
|
3340
3466
|
}
|
|
3341
3467
|
};
|
|
3342
3468
|
}
|
|
3343
|
-
var ZENDESK_TOOLS;
|
|
3469
|
+
var logger14, ZENDESK_TOOLS;
|
|
3344
3470
|
var init_zendesk = __esm(() => {
|
|
3471
|
+
init_logger();
|
|
3472
|
+
logger14 = createLogger("Zendesk");
|
|
3345
3473
|
ZENDESK_TOOLS = [
|
|
3346
3474
|
"zendesk_list_tickets",
|
|
3347
3475
|
"zendesk_get_ticket",
|
|
@@ -3372,15 +3500,17 @@ function stripeIntegration(config = {}) {
|
|
|
3372
3500
|
tools: [...STRIPE_TOOLS],
|
|
3373
3501
|
oauth,
|
|
3374
3502
|
async onInit(_client) {
|
|
3375
|
-
|
|
3503
|
+
logger15.debug("Stripe integration initialized");
|
|
3376
3504
|
},
|
|
3377
3505
|
async onAfterConnect(_client) {
|
|
3378
|
-
|
|
3506
|
+
logger15.debug("Stripe integration connected");
|
|
3379
3507
|
}
|
|
3380
3508
|
};
|
|
3381
3509
|
}
|
|
3382
|
-
var STRIPE_TOOLS;
|
|
3510
|
+
var logger15, STRIPE_TOOLS;
|
|
3383
3511
|
var init_stripe = __esm(() => {
|
|
3512
|
+
init_logger();
|
|
3513
|
+
logger15 = createLogger("Stripe");
|
|
3384
3514
|
STRIPE_TOOLS = [
|
|
3385
3515
|
"stripe_list_customers",
|
|
3386
3516
|
"stripe_get_customer",
|
|
@@ -3411,15 +3541,17 @@ function gcalIntegration(config = {}) {
|
|
|
3411
3541
|
tools: [...GCAL_TOOLS],
|
|
3412
3542
|
oauth,
|
|
3413
3543
|
async onInit(_client) {
|
|
3414
|
-
|
|
3544
|
+
logger16.debug("Google Calendar integration initialized");
|
|
3415
3545
|
},
|
|
3416
3546
|
async onAfterConnect(_client) {
|
|
3417
|
-
|
|
3547
|
+
logger16.debug("Google Calendar integration connected");
|
|
3418
3548
|
}
|
|
3419
3549
|
};
|
|
3420
3550
|
}
|
|
3421
|
-
var GCAL_TOOLS;
|
|
3551
|
+
var logger16, GCAL_TOOLS;
|
|
3422
3552
|
var init_gcal = __esm(() => {
|
|
3553
|
+
init_logger();
|
|
3554
|
+
logger16 = createLogger("Google Calendar");
|
|
3423
3555
|
GCAL_TOOLS = [
|
|
3424
3556
|
"gcal_list_calendars",
|
|
3425
3557
|
"gcal_get_calendar",
|
|
@@ -3450,15 +3582,17 @@ function outlookIntegration(config = {}) {
|
|
|
3450
3582
|
tools: [...OUTLOOK_TOOLS],
|
|
3451
3583
|
oauth,
|
|
3452
3584
|
async onInit(_client) {
|
|
3453
|
-
|
|
3585
|
+
logger17.debug("Outlook integration initialized");
|
|
3454
3586
|
},
|
|
3455
3587
|
async onAfterConnect(_client) {
|
|
3456
|
-
|
|
3588
|
+
logger17.debug("Outlook integration connected");
|
|
3457
3589
|
}
|
|
3458
3590
|
};
|
|
3459
3591
|
}
|
|
3460
|
-
var OUTLOOK_TOOLS;
|
|
3592
|
+
var logger17, OUTLOOK_TOOLS;
|
|
3461
3593
|
var init_outlook = __esm(() => {
|
|
3594
|
+
init_logger();
|
|
3595
|
+
logger17 = createLogger("Outlook");
|
|
3462
3596
|
OUTLOOK_TOOLS = [
|
|
3463
3597
|
"outlook_list_messages",
|
|
3464
3598
|
"outlook_get_message",
|
|
@@ -3489,15 +3623,17 @@ function airtableIntegration(config = {}) {
|
|
|
3489
3623
|
tools: [...AIRTABLE_TOOLS],
|
|
3490
3624
|
oauth,
|
|
3491
3625
|
async onInit(_client) {
|
|
3492
|
-
|
|
3626
|
+
logger18.debug("Airtable integration initialized");
|
|
3493
3627
|
},
|
|
3494
3628
|
async onAfterConnect(_client) {
|
|
3495
|
-
|
|
3629
|
+
logger18.debug("Airtable integration connected");
|
|
3496
3630
|
}
|
|
3497
3631
|
};
|
|
3498
3632
|
}
|
|
3499
|
-
var AIRTABLE_TOOLS;
|
|
3633
|
+
var logger18, AIRTABLE_TOOLS;
|
|
3500
3634
|
var init_airtable = __esm(() => {
|
|
3635
|
+
init_logger();
|
|
3636
|
+
logger18 = createLogger("Airtable");
|
|
3501
3637
|
AIRTABLE_TOOLS = [
|
|
3502
3638
|
"airtable_list_bases",
|
|
3503
3639
|
"airtable_get_base",
|
|
@@ -3528,15 +3664,17 @@ function todoistIntegration(config = {}) {
|
|
|
3528
3664
|
tools: [...TODOIST_TOOLS],
|
|
3529
3665
|
oauth,
|
|
3530
3666
|
async onInit(_client) {
|
|
3531
|
-
|
|
3667
|
+
logger19.debug("Todoist integration initialized");
|
|
3532
3668
|
},
|
|
3533
3669
|
async onAfterConnect(_client) {
|
|
3534
|
-
|
|
3670
|
+
logger19.debug("Todoist integration connected");
|
|
3535
3671
|
}
|
|
3536
3672
|
};
|
|
3537
3673
|
}
|
|
3538
|
-
var TODOIST_TOOLS;
|
|
3674
|
+
var logger19, TODOIST_TOOLS;
|
|
3539
3675
|
var init_todoist = __esm(() => {
|
|
3676
|
+
init_logger();
|
|
3677
|
+
logger19 = createLogger("Todoist");
|
|
3540
3678
|
TODOIST_TOOLS = [
|
|
3541
3679
|
"todoist_list_projects",
|
|
3542
3680
|
"todoist_get_project",
|
|
@@ -3568,15 +3706,17 @@ function whatsappIntegration(config = {}) {
|
|
|
3568
3706
|
tools: [...WHATSAPP_TOOLS],
|
|
3569
3707
|
oauth,
|
|
3570
3708
|
async onInit(_client) {
|
|
3571
|
-
|
|
3709
|
+
logger20.debug("WhatsApp Business integration initialized");
|
|
3572
3710
|
},
|
|
3573
3711
|
async onAfterConnect(_client) {
|
|
3574
|
-
|
|
3712
|
+
logger20.debug("WhatsApp Business integration connected");
|
|
3575
3713
|
}
|
|
3576
3714
|
};
|
|
3577
3715
|
}
|
|
3578
|
-
var WHATSAPP_TOOLS;
|
|
3716
|
+
var logger20, WHATSAPP_TOOLS;
|
|
3579
3717
|
var init_whatsapp = __esm(() => {
|
|
3718
|
+
init_logger();
|
|
3719
|
+
logger20 = createLogger("WhatsApp");
|
|
3580
3720
|
WHATSAPP_TOOLS = [
|
|
3581
3721
|
"whatsapp_send_message",
|
|
3582
3722
|
"whatsapp_send_template",
|
|
@@ -3607,15 +3747,17 @@ function calcomIntegration(config = {}) {
|
|
|
3607
3747
|
tools: [...CALCOM_TOOLS],
|
|
3608
3748
|
oauth,
|
|
3609
3749
|
async onInit(_client) {
|
|
3610
|
-
|
|
3750
|
+
logger21.debug("Cal.com integration initialized");
|
|
3611
3751
|
},
|
|
3612
3752
|
async onAfterConnect(_client) {
|
|
3613
|
-
|
|
3753
|
+
logger21.debug("Cal.com integration connected");
|
|
3614
3754
|
}
|
|
3615
3755
|
};
|
|
3616
3756
|
}
|
|
3617
|
-
var CALCOM_TOOLS;
|
|
3757
|
+
var logger21, CALCOM_TOOLS;
|
|
3618
3758
|
var init_calcom = __esm(() => {
|
|
3759
|
+
init_logger();
|
|
3760
|
+
logger21 = createLogger("Cal.com");
|
|
3619
3761
|
CALCOM_TOOLS = [
|
|
3620
3762
|
"calcom_list_bookings",
|
|
3621
3763
|
"calcom_get_booking",
|
|
@@ -3647,15 +3789,17 @@ function rampIntegration(config = {}) {
|
|
|
3647
3789
|
tools: [...RAMP_TOOLS],
|
|
3648
3790
|
oauth,
|
|
3649
3791
|
async onInit(_client) {
|
|
3650
|
-
|
|
3792
|
+
logger22.debug("Ramp integration initialized");
|
|
3651
3793
|
},
|
|
3652
3794
|
async onAfterConnect(_client) {
|
|
3653
|
-
|
|
3795
|
+
logger22.debug("Ramp integration connected");
|
|
3654
3796
|
}
|
|
3655
3797
|
};
|
|
3656
3798
|
}
|
|
3657
|
-
var RAMP_TOOLS;
|
|
3799
|
+
var logger22, RAMP_TOOLS;
|
|
3658
3800
|
var init_ramp = __esm(() => {
|
|
3801
|
+
init_logger();
|
|
3802
|
+
logger22 = createLogger("Ramp");
|
|
3659
3803
|
RAMP_TOOLS = [
|
|
3660
3804
|
"ramp_list_transactions",
|
|
3661
3805
|
"ramp_get_transaction",
|
|
@@ -3686,15 +3830,17 @@ function onedriveIntegration(config = {}) {
|
|
|
3686
3830
|
tools: [...ONEDRIVE_TOOLS],
|
|
3687
3831
|
oauth,
|
|
3688
3832
|
async onInit(_client) {
|
|
3689
|
-
|
|
3833
|
+
logger23.debug("OneDrive integration initialized");
|
|
3690
3834
|
},
|
|
3691
3835
|
async onAfterConnect(_client) {
|
|
3692
|
-
|
|
3836
|
+
logger23.debug("OneDrive integration connected");
|
|
3693
3837
|
}
|
|
3694
3838
|
};
|
|
3695
3839
|
}
|
|
3696
|
-
var ONEDRIVE_TOOLS;
|
|
3840
|
+
var logger23, ONEDRIVE_TOOLS;
|
|
3697
3841
|
var init_onedrive = __esm(() => {
|
|
3842
|
+
init_logger();
|
|
3843
|
+
logger23 = createLogger("OneDrive");
|
|
3698
3844
|
ONEDRIVE_TOOLS = [
|
|
3699
3845
|
"onedrive_list_files",
|
|
3700
3846
|
"onedrive_get_file",
|
|
@@ -3733,15 +3879,17 @@ function gworkspaceIntegration(config = {}) {
|
|
|
3733
3879
|
tools: [...GWORKSPACE_TOOLS],
|
|
3734
3880
|
oauth,
|
|
3735
3881
|
async onInit(_client) {
|
|
3736
|
-
|
|
3882
|
+
logger24.debug("Google Workspace integration initialized");
|
|
3737
3883
|
},
|
|
3738
3884
|
async onAfterConnect(_client) {
|
|
3739
|
-
|
|
3885
|
+
logger24.debug("Google Workspace integration connected");
|
|
3740
3886
|
}
|
|
3741
3887
|
};
|
|
3742
3888
|
}
|
|
3743
|
-
var GWORKSPACE_TOOLS;
|
|
3889
|
+
var logger24, GWORKSPACE_TOOLS;
|
|
3744
3890
|
var init_gworkspace = __esm(() => {
|
|
3891
|
+
init_logger();
|
|
3892
|
+
logger24 = createLogger("Google Workspace");
|
|
3745
3893
|
GWORKSPACE_TOOLS = [
|
|
3746
3894
|
"gworkspace_sheets_list",
|
|
3747
3895
|
"gworkspace_sheets_get",
|
|
@@ -3776,15 +3924,17 @@ function polarIntegration(config = {}) {
|
|
|
3776
3924
|
tools: [...POLAR_TOOLS],
|
|
3777
3925
|
oauth,
|
|
3778
3926
|
async onInit(_client) {
|
|
3779
|
-
|
|
3927
|
+
logger25.debug("Polar integration initialized");
|
|
3780
3928
|
},
|
|
3781
3929
|
async onAfterConnect(_client) {
|
|
3782
|
-
|
|
3930
|
+
logger25.debug("Polar integration connected");
|
|
3783
3931
|
}
|
|
3784
3932
|
};
|
|
3785
3933
|
}
|
|
3786
|
-
var POLAR_TOOLS;
|
|
3934
|
+
var logger25, POLAR_TOOLS;
|
|
3787
3935
|
var init_polar = __esm(() => {
|
|
3936
|
+
init_logger();
|
|
3937
|
+
logger25 = createLogger("Polar");
|
|
3788
3938
|
POLAR_TOOLS = [
|
|
3789
3939
|
"polar_list_products",
|
|
3790
3940
|
"polar_get_product",
|
|
@@ -3815,15 +3965,17 @@ function figmaIntegration(config = {}) {
|
|
|
3815
3965
|
tools: [...FIGMA_TOOLS],
|
|
3816
3966
|
oauth,
|
|
3817
3967
|
async onInit(_client) {
|
|
3818
|
-
|
|
3968
|
+
logger26.debug("Figma integration initialized");
|
|
3819
3969
|
},
|
|
3820
3970
|
async onAfterConnect(_client) {
|
|
3821
|
-
|
|
3971
|
+
logger26.debug("Figma integration connected");
|
|
3822
3972
|
}
|
|
3823
3973
|
};
|
|
3824
3974
|
}
|
|
3825
|
-
var FIGMA_TOOLS;
|
|
3975
|
+
var logger26, FIGMA_TOOLS;
|
|
3826
3976
|
var init_figma = __esm(() => {
|
|
3977
|
+
init_logger();
|
|
3978
|
+
logger26 = createLogger("Figma");
|
|
3827
3979
|
FIGMA_TOOLS = [
|
|
3828
3980
|
"figma_get_file",
|
|
3829
3981
|
"figma_get_file_nodes",
|
|
@@ -3854,15 +4006,17 @@ function intercomIntegration(config = {}) {
|
|
|
3854
4006
|
tools: [...INTERCOM_TOOLS],
|
|
3855
4007
|
oauth,
|
|
3856
4008
|
async onInit(_client) {
|
|
3857
|
-
|
|
4009
|
+
logger27.debug("Intercom integration initialized");
|
|
3858
4010
|
},
|
|
3859
4011
|
async onAfterConnect(_client) {
|
|
3860
|
-
|
|
4012
|
+
logger27.debug("Intercom integration connected");
|
|
3861
4013
|
}
|
|
3862
4014
|
};
|
|
3863
4015
|
}
|
|
3864
|
-
var INTERCOM_TOOLS;
|
|
4016
|
+
var logger27, INTERCOM_TOOLS;
|
|
3865
4017
|
var init_intercom = __esm(() => {
|
|
4018
|
+
init_logger();
|
|
4019
|
+
logger27 = createLogger("Intercom");
|
|
3866
4020
|
INTERCOM_TOOLS = [
|
|
3867
4021
|
"intercom_list_contacts",
|
|
3868
4022
|
"intercom_get_contact",
|
|
@@ -3901,15 +4055,17 @@ function hubspotIntegration(config = {}) {
|
|
|
3901
4055
|
tools: [...HUBSPOT_TOOLS],
|
|
3902
4056
|
oauth,
|
|
3903
4057
|
async onInit(_client) {
|
|
3904
|
-
|
|
4058
|
+
logger28.debug("HubSpot integration initialized");
|
|
3905
4059
|
},
|
|
3906
4060
|
async onAfterConnect(_client) {
|
|
3907
|
-
|
|
4061
|
+
logger28.debug("HubSpot integration connected");
|
|
3908
4062
|
}
|
|
3909
4063
|
};
|
|
3910
4064
|
}
|
|
3911
|
-
var HUBSPOT_TOOLS;
|
|
4065
|
+
var logger28, HUBSPOT_TOOLS;
|
|
3912
4066
|
var init_hubspot = __esm(() => {
|
|
4067
|
+
init_logger();
|
|
4068
|
+
logger28 = createLogger("HubSpot");
|
|
3913
4069
|
HUBSPOT_TOOLS = [
|
|
3914
4070
|
"hubspot_list_contacts",
|
|
3915
4071
|
"hubspot_get_contact",
|
|
@@ -3943,15 +4099,17 @@ function youtubeIntegration(config = {}) {
|
|
|
3943
4099
|
tools: [...YOUTUBE_TOOLS],
|
|
3944
4100
|
oauth,
|
|
3945
4101
|
async onInit(_client) {
|
|
3946
|
-
|
|
4102
|
+
logger29.debug("YouTube integration initialized");
|
|
3947
4103
|
},
|
|
3948
4104
|
async onAfterConnect(_client) {
|
|
3949
|
-
|
|
4105
|
+
logger29.debug("YouTube integration connected");
|
|
3950
4106
|
}
|
|
3951
4107
|
};
|
|
3952
4108
|
}
|
|
3953
|
-
var YOUTUBE_TOOLS;
|
|
4109
|
+
var logger29, YOUTUBE_TOOLS;
|
|
3954
4110
|
var init_youtube = __esm(() => {
|
|
4111
|
+
init_logger();
|
|
4112
|
+
logger29 = createLogger("YouTube");
|
|
3955
4113
|
YOUTUBE_TOOLS = [
|
|
3956
4114
|
"youtube_search",
|
|
3957
4115
|
"youtube_get_video",
|
|
@@ -3971,15 +4129,17 @@ function cursorIntegration(_config = {}) {
|
|
|
3971
4129
|
id: "cursor",
|
|
3972
4130
|
tools: [...CURSOR_TOOLS],
|
|
3973
4131
|
async onInit(_client) {
|
|
3974
|
-
|
|
4132
|
+
logger30.debug("Cursor integration initialized");
|
|
3975
4133
|
},
|
|
3976
4134
|
async onAfterConnect(_client) {
|
|
3977
|
-
|
|
4135
|
+
logger30.debug("Cursor integration connected");
|
|
3978
4136
|
}
|
|
3979
4137
|
};
|
|
3980
4138
|
}
|
|
3981
|
-
var CURSOR_TOOLS;
|
|
4139
|
+
var logger30, CURSOR_TOOLS;
|
|
3982
4140
|
var init_cursor = __esm(() => {
|
|
4141
|
+
init_logger();
|
|
4142
|
+
logger30 = createLogger("Cursor");
|
|
3983
4143
|
CURSOR_TOOLS = [
|
|
3984
4144
|
"cursor_list_agents",
|
|
3985
4145
|
"cursor_get_agent",
|
|
@@ -9827,6 +9987,7 @@ var init_zodToJsonSchema = __esm(() => {
|
|
|
9827
9987
|
|
|
9828
9988
|
// node_modules/zod-to-json-schema/dist/esm/index.js
|
|
9829
9989
|
var init_esm = __esm(() => {
|
|
9990
|
+
init_zodToJsonSchema();
|
|
9830
9991
|
init_Options();
|
|
9831
9992
|
init_Refs();
|
|
9832
9993
|
init_parseDef();
|
|
@@ -9858,7 +10019,6 @@ var init_esm = __esm(() => {
|
|
|
9858
10019
|
init_unknown();
|
|
9859
10020
|
init_selectParser();
|
|
9860
10021
|
init_zodToJsonSchema();
|
|
9861
|
-
init_zodToJsonSchema();
|
|
9862
10022
|
});
|
|
9863
10023
|
|
|
9864
10024
|
// src/ai/openai.ts
|
|
@@ -10343,6 +10503,7 @@ function getDefaultRedirectUri() {
|
|
|
10343
10503
|
return "http://localhost:3000/api/integrate/oauth/callback";
|
|
10344
10504
|
}
|
|
10345
10505
|
function createMCPServer(config) {
|
|
10506
|
+
setLogLevel(config.debug ? "debug" : "error");
|
|
10346
10507
|
if (typeof window !== "undefined") {
|
|
10347
10508
|
throw new Error("createMCPServer() should only be called on the server-side. " + "Use createMCPClient() for client-side code.");
|
|
10348
10509
|
}
|
|
@@ -10351,7 +10512,7 @@ function createMCPServer(config) {
|
|
|
10351
10512
|
if (integration.oauth) {
|
|
10352
10513
|
const { clientId, clientSecret, redirectUri: integrationRedirectUri, config: oauthConfig } = integration.oauth;
|
|
10353
10514
|
if (!clientId || !clientSecret) {
|
|
10354
|
-
|
|
10515
|
+
logger31.warn(`Warning: Integration "${integration.id}" is missing OAuth credentials. ` + `Provide clientId and clientSecret in the integration configuration.`);
|
|
10355
10516
|
return integration;
|
|
10356
10517
|
}
|
|
10357
10518
|
const redirectUri = integrationRedirectUri || config.redirectUri || getDefaultRedirectUri();
|
|
@@ -10464,7 +10625,7 @@ function createMCPServer(config) {
|
|
|
10464
10625
|
const body = await webRequest.json();
|
|
10465
10626
|
const authHeader = webRequest.headers.get("authorization");
|
|
10466
10627
|
const integrationsHeader = webRequest.headers.get("x-integrations");
|
|
10467
|
-
const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => exports_base_handler);
|
|
10628
|
+
const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => (init_base_handler(), exports_base_handler));
|
|
10468
10629
|
const oauthHandler = new OAuthHandler2({
|
|
10469
10630
|
providers,
|
|
10470
10631
|
serverUrl: config.serverUrl,
|
|
@@ -10480,7 +10641,7 @@ function createMCPServer(config) {
|
|
|
10480
10641
|
}
|
|
10481
10642
|
return response2;
|
|
10482
10643
|
} catch (error) {
|
|
10483
|
-
|
|
10644
|
+
logger31.error("[MCP Tool Call] Error:", error);
|
|
10484
10645
|
return Response.json({ error: error.message || "Failed to execute tool call" }, { status: error.statusCode || 500 });
|
|
10485
10646
|
}
|
|
10486
10647
|
}
|
|
@@ -10544,7 +10705,7 @@ function createMCPServer(config) {
|
|
|
10544
10705
|
})
|
|
10545
10706
|
});
|
|
10546
10707
|
} catch (scheduleError) {
|
|
10547
|
-
|
|
10708
|
+
logger31.error("[Trigger] Failed to register with scheduler:", scheduleError);
|
|
10548
10709
|
}
|
|
10549
10710
|
return Response.json(created, { status: 201 });
|
|
10550
10711
|
}
|
|
@@ -10579,7 +10740,7 @@ function createMCPServer(config) {
|
|
|
10579
10740
|
body: JSON.stringify({ triggerId })
|
|
10580
10741
|
});
|
|
10581
10742
|
} catch (error) {
|
|
10582
|
-
|
|
10743
|
+
logger31.error("[Trigger] Failed to pause in scheduler:", error);
|
|
10583
10744
|
}
|
|
10584
10745
|
return Response.json(updated);
|
|
10585
10746
|
} else if (subAction === "resume" && method === "POST") {
|
|
@@ -10607,7 +10768,7 @@ function createMCPServer(config) {
|
|
|
10607
10768
|
body: JSON.stringify({ triggerId })
|
|
10608
10769
|
});
|
|
10609
10770
|
} catch (error) {
|
|
10610
|
-
|
|
10771
|
+
logger31.error("[Trigger] Failed to resume in scheduler:", error);
|
|
10611
10772
|
}
|
|
10612
10773
|
return Response.json(updated);
|
|
10613
10774
|
} else if (subAction === "run" && method === "POST") {
|
|
@@ -10622,7 +10783,7 @@ function createMCPServer(config) {
|
|
|
10622
10783
|
if (!providerToken) {
|
|
10623
10784
|
return Response.json({ error: "No OAuth token available for this trigger" }, { status: 401 });
|
|
10624
10785
|
}
|
|
10625
|
-
const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => exports_base_handler);
|
|
10786
|
+
const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => (init_base_handler(), exports_base_handler));
|
|
10626
10787
|
const oauthHandler = new OAuthHandler2({
|
|
10627
10788
|
providers,
|
|
10628
10789
|
serverUrl: config.serverUrl,
|
|
@@ -10748,7 +10909,7 @@ function createMCPServer(config) {
|
|
|
10748
10909
|
})
|
|
10749
10910
|
});
|
|
10750
10911
|
} catch (error) {
|
|
10751
|
-
|
|
10912
|
+
logger31.error("[Trigger] Failed to update scheduler:", error);
|
|
10752
10913
|
}
|
|
10753
10914
|
}
|
|
10754
10915
|
return Response.json(updated);
|
|
@@ -10765,14 +10926,14 @@ function createMCPServer(config) {
|
|
|
10765
10926
|
body: JSON.stringify({ triggerId })
|
|
10766
10927
|
});
|
|
10767
10928
|
} catch (error) {
|
|
10768
|
-
|
|
10929
|
+
logger31.error("[Trigger] Failed to unregister from scheduler:", error);
|
|
10769
10930
|
}
|
|
10770
10931
|
return new Response(null, { status: 204 });
|
|
10771
10932
|
}
|
|
10772
10933
|
}
|
|
10773
10934
|
return Response.json({ error: "Invalid trigger route or method" }, { status: 404 });
|
|
10774
10935
|
} catch (error) {
|
|
10775
|
-
|
|
10936
|
+
logger31.error("[Trigger] Error:", error);
|
|
10776
10937
|
return Response.json({ error: error.message || "Failed to process trigger request" }, { status: error.statusCode || 500 });
|
|
10777
10938
|
}
|
|
10778
10939
|
}
|
|
@@ -10798,11 +10959,11 @@ function createMCPServer(config) {
|
|
|
10798
10959
|
const errorRedirectUrl = "/auth-error";
|
|
10799
10960
|
if (error) {
|
|
10800
10961
|
const errorMsg = errorDescription || error;
|
|
10801
|
-
|
|
10962
|
+
logger31.error("[OAuth Redirect] Error:", errorMsg);
|
|
10802
10963
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(errorMsg)}`, webRequest.url));
|
|
10803
10964
|
}
|
|
10804
10965
|
if (!code || !state) {
|
|
10805
|
-
|
|
10966
|
+
logger31.error("[OAuth Redirect] Missing code or state parameter");
|
|
10806
10967
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent("Invalid OAuth callback")}`, webRequest.url));
|
|
10807
10968
|
}
|
|
10808
10969
|
let returnUrl = defaultRedirectUrl;
|
|
@@ -10834,7 +10995,7 @@ function createMCPServer(config) {
|
|
|
10834
10995
|
if (codeVerifierEntry) {
|
|
10835
10996
|
try {
|
|
10836
10997
|
const { codeVerifier, provider, frontendOrigin: storedFrontendOrigin } = codeVerifierEntry;
|
|
10837
|
-
const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => exports_base_handler);
|
|
10998
|
+
const { OAuthHandler: OAuthHandler2 } = await Promise.resolve().then(() => (init_base_handler(), exports_base_handler));
|
|
10838
10999
|
const oauthHandler = new OAuthHandler2({
|
|
10839
11000
|
providers,
|
|
10840
11001
|
serverUrl: config.serverUrl,
|
|
@@ -10878,7 +11039,7 @@ function createMCPServer(config) {
|
|
|
10878
11039
|
frontendUrl.hash = `oauth_callback=${encodeURIComponent(JSON.stringify({ code, state, tokenData }))}`;
|
|
10879
11040
|
return Response.redirect(frontendUrl);
|
|
10880
11041
|
} catch (error2) {
|
|
10881
|
-
|
|
11042
|
+
logger31.error("[OAuth Backend Callback] Error:", error2);
|
|
10882
11043
|
return Response.redirect(new URL(`${errorRedirectUrl}?error=${encodeURIComponent(error2.message || "Failed to exchange token")}`, webRequest.url));
|
|
10883
11044
|
}
|
|
10884
11045
|
} else {
|
|
@@ -11097,7 +11258,7 @@ function toSvelteKitHandler(clientOrHandlerOrOptions, _redirectOptions) {
|
|
|
11097
11258
|
}
|
|
11098
11259
|
};
|
|
11099
11260
|
}
|
|
11100
|
-
var globalServerConfig = null, codeVerifierStorage, POST = async (req, context) => {
|
|
11261
|
+
var logger31, globalServerConfig = null, codeVerifierStorage, POST = async (req, context) => {
|
|
11101
11262
|
if (!globalServerConfig) {
|
|
11102
11263
|
return Response.json({ error: "OAuth not configured. Call createMCPServer() in your server initialization file first." }, { status: 500 });
|
|
11103
11264
|
}
|
|
@@ -11115,6 +11276,7 @@ var globalServerConfig = null, codeVerifierStorage, POST = async (req, context)
|
|
|
11115
11276
|
var init_server = __esm(() => {
|
|
11116
11277
|
init_client();
|
|
11117
11278
|
init_nextjs();
|
|
11279
|
+
init_logger();
|
|
11118
11280
|
init_github();
|
|
11119
11281
|
init_gmail();
|
|
11120
11282
|
init_notion();
|
|
@@ -11144,6 +11306,7 @@ var init_server = __esm(() => {
|
|
|
11144
11306
|
init_anthropic();
|
|
11145
11307
|
init_google();
|
|
11146
11308
|
init_ai();
|
|
11309
|
+
logger31 = createLogger("MCPServer");
|
|
11147
11310
|
codeVerifierStorage = new Map;
|
|
11148
11311
|
});
|
|
11149
11312
|
|
|
@@ -11181,6 +11344,10 @@ function toTanStackStartHandler(handler) {
|
|
|
11181
11344
|
};
|
|
11182
11345
|
}
|
|
11183
11346
|
var createTanStackOAuthHandler = toTanStackStartHandler;
|
|
11347
|
+
|
|
11348
|
+
// src/adapters/index.ts
|
|
11349
|
+
init_base_handler();
|
|
11350
|
+
|
|
11184
11351
|
// server.ts
|
|
11185
11352
|
init_ai();
|
|
11186
11353
|
export {
|