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.
Files changed (97) hide show
  1. package/dist/adapters/auto-routes.d.ts.map +1 -1
  2. package/dist/adapters/auto-routes.js +309 -143
  3. package/dist/adapters/base-handler.d.ts.map +1 -1
  4. package/dist/adapters/index.js +305 -141
  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 +304 -141
  9. package/dist/adapters/node.js +304 -141
  10. package/dist/adapters/svelte-kit.js +304 -141
  11. package/dist/adapters/tanstack-start.js +304 -141
  12. package/dist/index.d.ts +19 -40
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +319 -183
  15. package/dist/oauth.js +309 -143
  16. package/dist/react.js +59 -14
  17. package/dist/server.js +308 -141
  18. package/dist/src/adapters/auto-routes.d.ts.map +1 -1
  19. package/dist/src/adapters/base-handler.d.ts.map +1 -1
  20. package/dist/src/adapters/nextjs-oauth-redirect.d.ts.map +1 -1
  21. package/dist/src/adapters/nextjs.d.ts.map +1 -1
  22. package/dist/src/client.d.ts.map +1 -1
  23. package/dist/src/config/types.d.ts +15 -0
  24. package/dist/src/config/types.d.ts.map +1 -1
  25. package/dist/src/integrations/airtable.d.ts.map +1 -1
  26. package/dist/src/integrations/calcom.d.ts.map +1 -1
  27. package/dist/src/integrations/cursor.d.ts.map +1 -1
  28. package/dist/src/integrations/figma.d.ts.map +1 -1
  29. package/dist/src/integrations/gcal.d.ts.map +1 -1
  30. package/dist/src/integrations/github.d.ts.map +1 -1
  31. package/dist/src/integrations/gmail.d.ts.map +1 -1
  32. package/dist/src/integrations/gworkspace.d.ts.map +1 -1
  33. package/dist/src/integrations/hubspot.d.ts.map +1 -1
  34. package/dist/src/integrations/intercom.d.ts.map +1 -1
  35. package/dist/src/integrations/linear.d.ts.map +1 -1
  36. package/dist/src/integrations/notion.d.ts.map +1 -1
  37. package/dist/src/integrations/onedrive.d.ts.map +1 -1
  38. package/dist/src/integrations/outlook.d.ts.map +1 -1
  39. package/dist/src/integrations/polar.d.ts.map +1 -1
  40. package/dist/src/integrations/ramp.d.ts.map +1 -1
  41. package/dist/src/integrations/server-client.d.ts +15 -1
  42. package/dist/src/integrations/server-client.d.ts.map +1 -1
  43. package/dist/src/integrations/slack.d.ts.map +1 -1
  44. package/dist/src/integrations/stripe.d.ts.map +1 -1
  45. package/dist/src/integrations/todoist.d.ts.map +1 -1
  46. package/dist/src/integrations/vercel.d.ts.map +1 -1
  47. package/dist/src/integrations/whatsapp.d.ts.map +1 -1
  48. package/dist/src/integrations/youtube.d.ts.map +1 -1
  49. package/dist/src/integrations/zendesk.d.ts.map +1 -1
  50. package/dist/src/oauth/email-fetcher.d.ts.map +1 -1
  51. package/dist/src/oauth/manager.d.ts.map +1 -1
  52. package/dist/src/oauth/window-manager.d.ts.map +1 -1
  53. package/dist/src/react/hooks.d.ts.map +1 -1
  54. package/dist/src/server.d.ts.map +1 -1
  55. package/dist/src/transport/http-session.d.ts.map +1 -1
  56. package/dist/src/transport/http-stream.d.ts.map +1 -1
  57. package/dist/src/utils/logger.d.ts +37 -0
  58. package/dist/src/utils/logger.d.ts.map +1 -0
  59. package/index.ts +20 -72
  60. package/package.json +2 -2
  61. package/dist/adapters/base-handler.js +0 -561
  62. package/dist/ai/cloudflare.d.ts +0 -158
  63. package/dist/ai/cloudflare.d.ts.map +0 -1
  64. package/dist/ai/cloudflare.js +0 -4249
  65. package/dist/ai/langchain.d.ts +0 -139
  66. package/dist/ai/langchain.d.ts.map +0 -1
  67. package/dist/ai/langchain.js +0 -4237
  68. package/dist/ai/llamaindex.d.ts +0 -125
  69. package/dist/ai/llamaindex.d.ts.map +0 -1
  70. package/dist/ai/llamaindex.js +0 -4236
  71. package/dist/ai/mastra.d.ts +0 -138
  72. package/dist/ai/mastra.d.ts.map +0 -1
  73. package/dist/ai/mastra.js +0 -4240
  74. package/dist/src/ai/cloudflare.d.ts +0 -158
  75. package/dist/src/ai/cloudflare.d.ts.map +0 -1
  76. package/dist/src/ai/langchain.d.ts +0 -139
  77. package/dist/src/ai/langchain.d.ts.map +0 -1
  78. package/dist/src/ai/llamaindex.d.ts +0 -125
  79. package/dist/src/ai/llamaindex.d.ts.map +0 -1
  80. package/dist/src/ai/mastra.d.ts +0 -138
  81. package/dist/src/ai/mastra.d.ts.map +0 -1
  82. package/dist/src/integrations/vercel-ai.d.ts +0 -127
  83. package/dist/src/integrations/vercel-ai.d.ts.map +0 -1
  84. package/dist/src/plugins/generic.d.ts +0 -99
  85. package/dist/src/plugins/generic.d.ts.map +0 -1
  86. package/dist/src/plugins/github-client.d.ts +0 -320
  87. package/dist/src/plugins/github-client.d.ts.map +0 -1
  88. package/dist/src/plugins/github.d.ts +0 -89
  89. package/dist/src/plugins/github.d.ts.map +0 -1
  90. package/dist/src/plugins/gmail-client.d.ts +0 -106
  91. package/dist/src/plugins/gmail-client.d.ts.map +0 -1
  92. package/dist/src/plugins/gmail.d.ts +0 -87
  93. package/dist/src/plugins/gmail.d.ts.map +0 -1
  94. package/dist/src/plugins/server-client.d.ts +0 -18
  95. package/dist/src/plugins/server-client.d.ts.map +0 -1
  96. package/dist/src/plugins/types.d.ts +0 -70
  97. 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
- 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 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
- console.warn("Popup was blocked by the browser. Please allow popups for this site.");
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
- console.log("[OAuthWindowManager] Redirecting to:", url.substring(0, 100) + (url.length > 100 ? "..." : ""));
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
- console.error("Failed to parse OAuth callback params from hash:", e);
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
- console.error("Failed to parse OAuth callback params from sessionStorage:", e);
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
- console.error(`Failed to fetch email for ${provider}:`, error);
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
- console.error("Failed to fetch GitHub email:", error);
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
- console.error("Failed to fetch Google email:", error);
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
- console.error("Failed to fetch Notion email:", error);
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
- console.error("Custom OAuth callback handler failed:", error);
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
- console.error(`Failed to delete token for ${provider} (${email}) from database:`, error);
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
- console.error(`Failed to delete token for ${provider} (${email}) from database:`, error);
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
- console.error(`Failed to delete token from IndexedDB for ${provider} (${email}):`, error);
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
- console.error(`Failed to delete tokens for ${provider} from database:`, error);
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
- console.error(`Failed to delete tokens for ${provider} from database:`, error);
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
- console.error(`Failed to list accounts for ${provider}:`, error);
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
- console.error(`Failed to get token for ${provider} via callback:`, error);
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
- console.error(`Failed to get token from IndexedDB for ${provider}:`, error);
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
- console.error(`Failed to clear tokens for ${provider} from IndexedDB:`, error);
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
- console.error("Failed to clear all tokens from IndexedDB:", error);
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
- console.error("Failed to clear pending auths from localStorage:", error);
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
- console.error(`Failed to ${tokenData === null ? "delete" : "save"} token for ${provider} via callback:`, error);
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
- console.error(`Failed to save token for ${provider} to localStorage:`, localStorageError);
1397
+ logger4.error(`Failed to save token for ${provider} to localStorage:`, localStorageError);
1341
1398
  }
1342
1399
  } else {
1343
- console.error(`Failed to save token for ${provider} to IndexedDB:`, error);
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
- console.error(`Failed to save token for ${provider} to localStorage:`, localStorageError);
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
- console.error(`Failed to load token for ${provider} via callback:`, error);
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
- console.error("Failed to save pending auth to localStorage:", error);
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
- console.error("Failed to load pending auth from localStorage:", error);
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
- console.error("Failed to remove pending auth from localStorage:", error);
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
- console.error("Failed to cleanup expired pending auths:", error);
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 init_manager = () => {};
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
- console.error(`Error in event handler for ${event}:`, error);
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
- console.error(`Failed to check token for ${provider}:`, error);
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
- console.error("Failed to load provider tokens:", error);
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
- integrations: this.integrations.map((integration) => ({
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
- console.log(`Discovered ${response.tools.length} tools, ${enabledTools.length} enabled by integrations`);
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
- console.error(`Failed to delete token for ${request.provider} from database via removeProviderToken:`, error);
2851
+ logger6.error(`Failed to delete token for ${request.provider} from database via removeProviderToken:`, error);
2747
2852
  }
2748
2853
  }
2749
2854
  } catch (error) {
2750
- console.error(`Failed to extract context for disconnect:`, error);
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
- console.error("[OAuth Authorize] Error:", error);
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
- console.error("[OAuth Callback] Error:", error);
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
- console.error("[OAuth Status] Error:", error);
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
- console.error("[OAuth Disconnect] Error:", error);
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
- console.error("[MCP Tool Call] Error:", error);
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
- console.error("[OAuth Redirect] Error:", errorMsg);
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
- console.error("[OAuth Redirect] Missing code or state parameter");
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 init_nextjs = () => {};
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
- console.log("GitHub integration initialized");
3212
+ logger8.debug("GitHub integration initialized");
3099
3213
  },
3100
3214
  async onAfterConnect(_client) {
3101
- console.log("GitHub integration connected");
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
- console.log("Gmail integration initialized");
3265
+ logger9.debug("Gmail integration initialized");
3150
3266
  },
3151
3267
  async onAfterConnect(_client) {
3152
- console.log("Gmail integration connected");
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
- console.log("Notion integration initialized");
3304
+ logger10.debug("Notion integration initialized");
3187
3305
  },
3188
3306
  async onAfterConnect(_client) {
3189
- console.log("Notion integration connected");
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
- console.log("Slack integration initialized");
3338
+ logger11.debug("Slack integration initialized");
3219
3339
  },
3220
3340
  async onAfterConnect(_client) {
3221
- console.log("Slack integration connected");
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
- console.log("Linear integration initialized");
3379
+ logger12.debug("Linear integration initialized");
3258
3380
  },
3259
3381
  async onAfterConnect(_client) {
3260
- console.log("Linear integration connected");
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
- console.log("Vercel integration initialized");
3420
+ logger13.debug("Vercel integration initialized");
3297
3421
  },
3298
3422
  async onAfterConnect(_client) {
3299
- console.log("Vercel integration connected");
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
- console.log("Zendesk integration initialized");
3462
+ logger14.debug("Zendesk integration initialized");
3337
3463
  },
3338
3464
  async onAfterConnect(_client) {
3339
- console.log("Zendesk integration connected");
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
- console.log("Stripe integration initialized");
3503
+ logger15.debug("Stripe integration initialized");
3376
3504
  },
3377
3505
  async onAfterConnect(_client) {
3378
- console.log("Stripe integration connected");
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
- console.log("Google Calendar integration initialized");
3544
+ logger16.debug("Google Calendar integration initialized");
3415
3545
  },
3416
3546
  async onAfterConnect(_client) {
3417
- console.log("Google Calendar integration connected");
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
- console.log("Outlook integration initialized");
3585
+ logger17.debug("Outlook integration initialized");
3454
3586
  },
3455
3587
  async onAfterConnect(_client) {
3456
- console.log("Outlook integration connected");
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
- console.log("Airtable integration initialized");
3626
+ logger18.debug("Airtable integration initialized");
3493
3627
  },
3494
3628
  async onAfterConnect(_client) {
3495
- console.log("Airtable integration connected");
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
- console.log("Todoist integration initialized");
3667
+ logger19.debug("Todoist integration initialized");
3532
3668
  },
3533
3669
  async onAfterConnect(_client) {
3534
- console.log("Todoist integration connected");
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
- console.log("WhatsApp Business integration initialized");
3709
+ logger20.debug("WhatsApp Business integration initialized");
3572
3710
  },
3573
3711
  async onAfterConnect(_client) {
3574
- console.log("WhatsApp Business integration connected");
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
- console.log("Cal.com integration initialized");
3750
+ logger21.debug("Cal.com integration initialized");
3611
3751
  },
3612
3752
  async onAfterConnect(_client) {
3613
- console.log("Cal.com integration connected");
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
- console.log("Ramp integration initialized");
3792
+ logger22.debug("Ramp integration initialized");
3651
3793
  },
3652
3794
  async onAfterConnect(_client) {
3653
- console.log("Ramp integration connected");
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
- console.log("OneDrive integration initialized");
3833
+ logger23.debug("OneDrive integration initialized");
3690
3834
  },
3691
3835
  async onAfterConnect(_client) {
3692
- console.log("OneDrive integration connected");
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
- console.log("Google Workspace integration initialized");
3882
+ logger24.debug("Google Workspace integration initialized");
3737
3883
  },
3738
3884
  async onAfterConnect(_client) {
3739
- console.log("Google Workspace integration connected");
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
- console.log("Polar integration initialized");
3927
+ logger25.debug("Polar integration initialized");
3780
3928
  },
3781
3929
  async onAfterConnect(_client) {
3782
- console.log("Polar integration connected");
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
- console.log("Figma integration initialized");
3968
+ logger26.debug("Figma integration initialized");
3819
3969
  },
3820
3970
  async onAfterConnect(_client) {
3821
- console.log("Figma integration connected");
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
- console.log("Intercom integration initialized");
4009
+ logger27.debug("Intercom integration initialized");
3858
4010
  },
3859
4011
  async onAfterConnect(_client) {
3860
- console.log("Intercom integration connected");
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
- console.log("HubSpot integration initialized");
4058
+ logger28.debug("HubSpot integration initialized");
3905
4059
  },
3906
4060
  async onAfterConnect(_client) {
3907
- console.log("HubSpot integration connected");
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
- console.log("YouTube integration initialized");
4102
+ logger29.debug("YouTube integration initialized");
3947
4103
  },
3948
4104
  async onAfterConnect(_client) {
3949
- console.log("YouTube integration connected");
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
- console.log("Cursor integration initialized");
4132
+ logger30.debug("Cursor integration initialized");
3975
4133
  },
3976
4134
  async onAfterConnect(_client) {
3977
- console.log("Cursor integration connected");
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
- console.warn(`Warning: Integration "${integration.id}" is missing OAuth credentials. ` + `Provide clientId and clientSecret in the integration configuration.`);
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
- console.error("[MCP Tool Call] Error:", error);
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
- console.error("[Trigger] Failed to register with scheduler:", scheduleError);
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
- console.error("[Trigger] Failed to pause in scheduler:", error);
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
- console.error("[Trigger] Failed to resume in scheduler:", error);
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
- console.error("[Trigger] Failed to update scheduler:", error);
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
- console.error("[Trigger] Failed to unregister from scheduler:", error);
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
- console.error("[Trigger] Error:", error);
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
- console.error("[OAuth Redirect] Error:", errorMsg);
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
- console.error("[OAuth Redirect] Missing code or state parameter");
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
- console.error("[OAuth Backend Callback] Error:", error2);
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 {