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.
Files changed (92) hide show
  1. package/dist/adapters/auto-routes.d.ts.map +1 -1
  2. package/dist/adapters/auto-routes.js +265 -139
  3. package/dist/adapters/base-handler.d.ts.map +1 -1
  4. package/dist/adapters/index.js +261 -137
  5. package/dist/adapters/nextjs-oauth-redirect.d.ts.map +1 -1
  6. package/dist/adapters/nextjs-oauth-redirect.js +47 -2
  7. package/dist/adapters/nextjs.d.ts.map +1 -1
  8. package/dist/adapters/nextjs.js +260 -137
  9. package/dist/adapters/node.js +260 -137
  10. package/dist/adapters/svelte-kit.js +260 -137
  11. package/dist/adapters/tanstack-start.js +260 -137
  12. package/dist/index.js +275 -147
  13. package/dist/oauth.js +265 -139
  14. package/dist/react.js +59 -14
  15. package/dist/server.js +264 -137
  16. package/dist/src/adapters/auto-routes.d.ts.map +1 -1
  17. package/dist/src/adapters/base-handler.d.ts.map +1 -1
  18. package/dist/src/adapters/nextjs-oauth-redirect.d.ts.map +1 -1
  19. package/dist/src/adapters/nextjs.d.ts.map +1 -1
  20. package/dist/src/client.d.ts.map +1 -1
  21. package/dist/src/config/types.d.ts +15 -0
  22. package/dist/src/config/types.d.ts.map +1 -1
  23. package/dist/src/integrations/airtable.d.ts.map +1 -1
  24. package/dist/src/integrations/calcom.d.ts.map +1 -1
  25. package/dist/src/integrations/cursor.d.ts.map +1 -1
  26. package/dist/src/integrations/figma.d.ts.map +1 -1
  27. package/dist/src/integrations/gcal.d.ts.map +1 -1
  28. package/dist/src/integrations/github.d.ts.map +1 -1
  29. package/dist/src/integrations/gmail.d.ts.map +1 -1
  30. package/dist/src/integrations/gworkspace.d.ts.map +1 -1
  31. package/dist/src/integrations/hubspot.d.ts.map +1 -1
  32. package/dist/src/integrations/intercom.d.ts.map +1 -1
  33. package/dist/src/integrations/linear.d.ts.map +1 -1
  34. package/dist/src/integrations/notion.d.ts.map +1 -1
  35. package/dist/src/integrations/onedrive.d.ts.map +1 -1
  36. package/dist/src/integrations/outlook.d.ts.map +1 -1
  37. package/dist/src/integrations/polar.d.ts.map +1 -1
  38. package/dist/src/integrations/ramp.d.ts.map +1 -1
  39. package/dist/src/integrations/slack.d.ts.map +1 -1
  40. package/dist/src/integrations/stripe.d.ts.map +1 -1
  41. package/dist/src/integrations/todoist.d.ts.map +1 -1
  42. package/dist/src/integrations/vercel.d.ts.map +1 -1
  43. package/dist/src/integrations/whatsapp.d.ts.map +1 -1
  44. package/dist/src/integrations/youtube.d.ts.map +1 -1
  45. package/dist/src/integrations/zendesk.d.ts.map +1 -1
  46. package/dist/src/oauth/email-fetcher.d.ts.map +1 -1
  47. package/dist/src/oauth/manager.d.ts.map +1 -1
  48. package/dist/src/oauth/window-manager.d.ts.map +1 -1
  49. package/dist/src/react/hooks.d.ts.map +1 -1
  50. package/dist/src/server.d.ts.map +1 -1
  51. package/dist/src/transport/http-session.d.ts.map +1 -1
  52. package/dist/src/transport/http-stream.d.ts.map +1 -1
  53. package/dist/src/utils/logger.d.ts +37 -0
  54. package/dist/src/utils/logger.d.ts.map +1 -0
  55. package/package.json +2 -2
  56. package/dist/adapters/base-handler.js +0 -561
  57. package/dist/ai/cloudflare.d.ts +0 -158
  58. package/dist/ai/cloudflare.d.ts.map +0 -1
  59. package/dist/ai/cloudflare.js +0 -4249
  60. package/dist/ai/langchain.d.ts +0 -139
  61. package/dist/ai/langchain.d.ts.map +0 -1
  62. package/dist/ai/langchain.js +0 -4237
  63. package/dist/ai/llamaindex.d.ts +0 -125
  64. package/dist/ai/llamaindex.d.ts.map +0 -1
  65. package/dist/ai/llamaindex.js +0 -4236
  66. package/dist/ai/mastra.d.ts +0 -138
  67. package/dist/ai/mastra.d.ts.map +0 -1
  68. package/dist/ai/mastra.js +0 -4240
  69. package/dist/src/ai/cloudflare.d.ts +0 -158
  70. package/dist/src/ai/cloudflare.d.ts.map +0 -1
  71. package/dist/src/ai/langchain.d.ts +0 -139
  72. package/dist/src/ai/langchain.d.ts.map +0 -1
  73. package/dist/src/ai/llamaindex.d.ts +0 -125
  74. package/dist/src/ai/llamaindex.d.ts.map +0 -1
  75. package/dist/src/ai/mastra.d.ts +0 -138
  76. package/dist/src/ai/mastra.d.ts.map +0 -1
  77. package/dist/src/integrations/vercel-ai.d.ts +0 -127
  78. package/dist/src/integrations/vercel-ai.d.ts.map +0 -1
  79. package/dist/src/plugins/generic.d.ts +0 -99
  80. package/dist/src/plugins/generic.d.ts.map +0 -1
  81. package/dist/src/plugins/github-client.d.ts +0 -320
  82. package/dist/src/plugins/github-client.d.ts.map +0 -1
  83. package/dist/src/plugins/github.d.ts +0 -89
  84. package/dist/src/plugins/github.d.ts.map +0 -1
  85. package/dist/src/plugins/gmail-client.d.ts +0 -106
  86. package/dist/src/plugins/gmail-client.d.ts.map +0 -1
  87. package/dist/src/plugins/gmail.d.ts +0 -87
  88. package/dist/src/plugins/gmail.d.ts.map +0 -1
  89. package/dist/src/plugins/server-client.d.ts +0 -18
  90. package/dist/src/plugins/server-client.d.ts.map +0 -1
  91. package/dist/src/plugins/types.d.ts +0 -70
  92. 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
- console.log("Session established:", sid);
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
- console.error("SSE connection error:", error);
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
- console.error("SSE stream error:", error);
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
- console.error("Error in message handler:", error);
212
+ logger.error("Error in message handler:", error);
170
213
  }
171
214
  });
172
215
  } catch (error) {
173
- console.error("Failed to parse notification:", error);
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 init_http_session = () => {};
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
- console.warn("Popup was blocked by the browser. Please allow popups for this site.");
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
- console.log("[OAuthWindowManager] Redirecting to:", url.substring(0, 100) + (url.length > 100 ? "..." : ""));
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
- console.error("Failed to parse OAuth callback params from hash:", e);
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
- console.error("Failed to parse OAuth callback params from sessionStorage:", e);
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
- console.error("sendCallbackToOpener() can only be used in browser environments");
764
+ logger2.error("sendCallbackToOpener() can only be used in browser environments");
718
765
  return;
719
766
  }
720
767
  if (!window.opener) {
721
- console.error("No opener window found. This function should only be called from a popup window.");
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
- console.error(`Failed to fetch email for ${provider}:`, error);
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
- console.error("Failed to fetch GitHub email:", error);
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
- console.error("Failed to fetch Google email:", error);
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
- console.error("Failed to fetch Notion email:", error);
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
- console.error("Custom OAuth callback handler failed:", error);
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
- console.error(`Failed to delete token for ${provider} (${email}) from database:`, error);
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
- console.error(`Failed to delete token for ${provider} (${email}) from database:`, error);
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
- console.error(`Failed to delete token from IndexedDB for ${provider} (${email}):`, error);
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
- console.error(`Failed to delete tokens for ${provider} from database:`, error);
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
- console.error(`Failed to delete tokens for ${provider} from database:`, error);
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
- console.error(`Failed to list accounts for ${provider}:`, error);
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
- console.error(`Failed to get token for ${provider} via callback:`, error);
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
- console.error(`Failed to get token from IndexedDB for ${provider}:`, error);
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
- console.error(`Failed to clear tokens for ${provider} from IndexedDB:`, error);
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
- console.error("Failed to clear all tokens from IndexedDB:", error);
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
- console.error("Failed to clear pending auths from localStorage:", error);
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
- console.error(`Failed to ${tokenData === null ? "delete" : "save"} token for ${provider} via callback:`, error);
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
- console.error(`Failed to save token for ${provider} to localStorage:`, localStorageError);
1425
+ logger4.error(`Failed to save token for ${provider} to localStorage:`, localStorageError);
1369
1426
  }
1370
1427
  } else {
1371
- console.error(`Failed to save token for ${provider} to IndexedDB:`, error);
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
- console.error(`Failed to save token for ${provider} to localStorage:`, localStorageError);
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
- console.error(`Failed to load token for ${provider} via callback:`, error);
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
- console.error("Failed to save pending auth to localStorage:", error);
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
- console.error("Failed to load pending auth from localStorage:", error);
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
- console.error("Failed to remove pending auth from localStorage:", error);
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
- console.error("Failed to cleanup expired pending auths:", error);
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 init_manager = () => {};
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
- console.error(`Error in event handler for ${event}:`, error);
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
- console.error(`Failed to check token for ${provider}:`, error);
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
- console.error("Failed to load provider tokens:", error);
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
- console.log(`Discovered ${response.tools.length} tools, ${enabledTools.length} enabled by integrations`);
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
- console.error("Error disconnecting client:", error);
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
- console.error("Failed to connect client:", error);
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
- console.error("Failed to connect client:", error);
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
- console.error("Failed to process OAuth callback:", error);
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
- console.error("Failed to process OAuth callback from hash:", error);
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
- console.error("Error disconnecting client during cache clear:", error);
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
- console.error("[OAuth Authorize] Error:", error);
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
- console.error("[OAuth Callback] Error:", error);
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
- console.error("[OAuth Status] Error:", error);
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
- console.error("[OAuth Disconnect] Error:", error);
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
- console.error("[MCP Tool Call] Error:", error);
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
- console.error("[OAuth Redirect] Error:", errorMsg);
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
- console.error("[OAuth Redirect] Missing code or state parameter");
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 init_nextjs = () => {};
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
- console.log("GitHub integration initialized");
2785
+ logger7.debug("GitHub integration initialized");
2715
2786
  },
2716
2787
  async onAfterConnect(_client) {
2717
- console.log("GitHub integration connected");
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
- console.log("Gmail integration initialized");
2838
+ logger8.debug("Gmail integration initialized");
2766
2839
  },
2767
2840
  async onAfterConnect(_client) {
2768
- console.log("Gmail integration connected");
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
- console.log("Notion integration initialized");
2877
+ logger9.debug("Notion integration initialized");
2803
2878
  },
2804
2879
  async onAfterConnect(_client) {
2805
- console.log("Notion integration connected");
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
- console.log("Slack integration initialized");
2911
+ logger10.debug("Slack integration initialized");
2835
2912
  },
2836
2913
  async onAfterConnect(_client) {
2837
- console.log("Slack integration connected");
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
- console.log("Linear integration initialized");
2952
+ logger11.debug("Linear integration initialized");
2874
2953
  },
2875
2954
  async onAfterConnect(_client) {
2876
- console.log("Linear integration connected");
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
- console.log("Vercel integration initialized");
2993
+ logger12.debug("Vercel integration initialized");
2913
2994
  },
2914
2995
  async onAfterConnect(_client) {
2915
- console.log("Vercel integration connected");
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
- console.log("Zendesk integration initialized");
3035
+ logger13.debug("Zendesk integration initialized");
2953
3036
  },
2954
3037
  async onAfterConnect(_client) {
2955
- console.log("Zendesk integration connected");
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
- console.log("Stripe integration initialized");
3076
+ logger14.debug("Stripe integration initialized");
2992
3077
  },
2993
3078
  async onAfterConnect(_client) {
2994
- console.log("Stripe integration connected");
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
- console.log("Google Calendar integration initialized");
3117
+ logger15.debug("Google Calendar integration initialized");
3031
3118
  },
3032
3119
  async onAfterConnect(_client) {
3033
- console.log("Google Calendar integration connected");
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
- console.log("Outlook integration initialized");
3158
+ logger16.debug("Outlook integration initialized");
3070
3159
  },
3071
3160
  async onAfterConnect(_client) {
3072
- console.log("Outlook integration connected");
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
- console.log("Airtable integration initialized");
3199
+ logger17.debug("Airtable integration initialized");
3109
3200
  },
3110
3201
  async onAfterConnect(_client) {
3111
- console.log("Airtable integration connected");
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
- console.log("Todoist integration initialized");
3240
+ logger18.debug("Todoist integration initialized");
3148
3241
  },
3149
3242
  async onAfterConnect(_client) {
3150
- console.log("Todoist integration connected");
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
- console.log("WhatsApp Business integration initialized");
3282
+ logger19.debug("WhatsApp Business integration initialized");
3188
3283
  },
3189
3284
  async onAfterConnect(_client) {
3190
- console.log("WhatsApp Business integration connected");
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
- console.log("Cal.com integration initialized");
3323
+ logger20.debug("Cal.com integration initialized");
3227
3324
  },
3228
3325
  async onAfterConnect(_client) {
3229
- console.log("Cal.com integration connected");
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
- console.log("Ramp integration initialized");
3365
+ logger21.debug("Ramp integration initialized");
3267
3366
  },
3268
3367
  async onAfterConnect(_client) {
3269
- console.log("Ramp integration connected");
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
- console.log("OneDrive integration initialized");
3406
+ logger22.debug("OneDrive integration initialized");
3306
3407
  },
3307
3408
  async onAfterConnect(_client) {
3308
- console.log("OneDrive integration connected");
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
- console.log("Google Workspace integration initialized");
3455
+ logger23.debug("Google Workspace integration initialized");
3353
3456
  },
3354
3457
  async onAfterConnect(_client) {
3355
- console.log("Google Workspace integration connected");
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
- console.log("Polar integration initialized");
3500
+ logger24.debug("Polar integration initialized");
3396
3501
  },
3397
3502
  async onAfterConnect(_client) {
3398
- console.log("Polar integration connected");
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
- console.log("Figma integration initialized");
3541
+ logger25.debug("Figma integration initialized");
3435
3542
  },
3436
3543
  async onAfterConnect(_client) {
3437
- console.log("Figma integration connected");
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
- console.log("Intercom integration initialized");
3582
+ logger26.debug("Intercom integration initialized");
3474
3583
  },
3475
3584
  async onAfterConnect(_client) {
3476
- console.log("Intercom integration connected");
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
- console.log("HubSpot integration initialized");
3631
+ logger27.debug("HubSpot integration initialized");
3521
3632
  },
3522
3633
  async onAfterConnect(_client) {
3523
- console.log("HubSpot integration connected");
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
- console.log("YouTube integration initialized");
3675
+ logger28.debug("YouTube integration initialized");
3563
3676
  },
3564
3677
  async onAfterConnect(_client) {
3565
- console.log("YouTube integration connected");
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
- console.log("Cursor integration initialized");
3705
+ logger29.debug("Cursor integration initialized");
3591
3706
  },
3592
3707
  async onAfterConnect(_client) {
3593
- console.log("Cursor integration connected");
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
- console.warn(`Warning: Integration "${integration.id}" is missing OAuth credentials. ` + `Provide clientId and clientSecret in the integration configuration.`);
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
- console.error("[MCP Tool Call] Error:", error);
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
- console.error("[Trigger] Failed to register with scheduler:", scheduleError);
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
- console.error("[Trigger] Failed to pause in scheduler:", error);
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
- console.error("[Trigger] Failed to resume in scheduler:", error);
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
- console.error("[Trigger] Failed to update scheduler:", error);
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
- console.error("[Trigger] Failed to unregister from scheduler:", error);
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
- console.error("[Trigger] Error:", error);
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
- console.error("[OAuth Redirect] Error:", errorMsg);
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
- console.error("[OAuth Redirect] Missing code or state parameter");
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
- console.error("[OAuth Backend Callback] Error:", error2);
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
- console.error(`Failed to delete token for ${request.provider} from database via removeProviderToken:`, error);
11369
+ logger31.error(`Failed to delete token for ${request.provider} from database via removeProviderToken:`, error);
11250
11370
  }
11251
11371
  }
11252
11372
  } catch (error) {
11253
- console.error(`Failed to extract context for disconnect:`, error);
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
- console.error("[OAuth Redirect] Error:", errorMsg);
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
- console.error("[OAuth Redirect] Missing code or state parameter");
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;