integrate-sdk 0.8.47-dev.0 → 0.8.50-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 (43) hide show
  1. package/dist/adapters/auto-routes.js +130 -3
  2. package/dist/adapters/index.js +130 -3
  3. package/dist/adapters/nextjs.js +130 -3
  4. package/dist/adapters/node.js +130 -3
  5. package/dist/adapters/svelte-kit.js +130 -3
  6. package/dist/adapters/tanstack-start.js +130 -3
  7. package/dist/index.js +130 -3
  8. package/dist/oauth.js +130 -3
  9. package/dist/server.js +130 -3
  10. package/dist/src/client.d.ts +6 -0
  11. package/dist/src/client.d.ts.map +1 -1
  12. package/dist/src/integrations/airtable.d.ts.map +1 -1
  13. package/dist/src/integrations/calcom.d.ts.map +1 -1
  14. package/dist/src/integrations/cursor.d.ts.map +1 -1
  15. package/dist/src/integrations/figma.d.ts.map +1 -1
  16. package/dist/src/integrations/gcal.d.ts.map +1 -1
  17. package/dist/src/integrations/generic.d.ts +4 -0
  18. package/dist/src/integrations/generic.d.ts.map +1 -1
  19. package/dist/src/integrations/github.d.ts.map +1 -1
  20. package/dist/src/integrations/gmail.d.ts.map +1 -1
  21. package/dist/src/integrations/gworkspace.d.ts.map +1 -1
  22. package/dist/src/integrations/hubspot.d.ts.map +1 -1
  23. package/dist/src/integrations/intercom.d.ts.map +1 -1
  24. package/dist/src/integrations/linear.d.ts.map +1 -1
  25. package/dist/src/integrations/notion.d.ts.map +1 -1
  26. package/dist/src/integrations/onedrive.d.ts.map +1 -1
  27. package/dist/src/integrations/outlook.d.ts.map +1 -1
  28. package/dist/src/integrations/polar.d.ts.map +1 -1
  29. package/dist/src/integrations/ramp.d.ts.map +1 -1
  30. package/dist/src/integrations/server-client.d.ts +22 -2
  31. package/dist/src/integrations/server-client.d.ts.map +1 -1
  32. package/dist/src/integrations/slack.d.ts.map +1 -1
  33. package/dist/src/integrations/stripe.d.ts.map +1 -1
  34. package/dist/src/integrations/todoist.d.ts.map +1 -1
  35. package/dist/src/integrations/types.d.ts +4 -0
  36. package/dist/src/integrations/types.d.ts.map +1 -1
  37. package/dist/src/integrations/vercel.d.ts.map +1 -1
  38. package/dist/src/integrations/whatsapp.d.ts.map +1 -1
  39. package/dist/src/integrations/youtube.d.ts.map +1 -1
  40. package/dist/src/integrations/zendesk.d.ts.map +1 -1
  41. package/dist/src/utils/concurrency.d.ts +24 -0
  42. package/dist/src/utils/concurrency.d.ts.map +1 -0
  43. package/package.json +1 -1
@@ -1622,6 +1622,32 @@ var init_manager = __esm(() => {
1622
1622
  logger4 = createLogger("OAuth");
1623
1623
  });
1624
1624
 
1625
+ // ../utils/concurrency.ts
1626
+ var exports_concurrency = {};
1627
+ __export(exports_concurrency, {
1628
+ parallelWithLimit: () => parallelWithLimit
1629
+ });
1630
+ async function parallelWithLimit(items, fn, limit = 3) {
1631
+ const results = [];
1632
+ const executing = [];
1633
+ for (let i = 0;i < items.length; i++) {
1634
+ const item = items[i];
1635
+ const index = i;
1636
+ const promise = fn(item).then((result) => {
1637
+ results[index] = result;
1638
+ }).catch(() => {
1639
+ results[index] = undefined;
1640
+ });
1641
+ executing.push(promise);
1642
+ if (executing.length >= limit) {
1643
+ const completedIndex = await Promise.race(executing.map((p, idx) => p.then(() => idx).catch(() => idx)));
1644
+ executing.splice(completedIndex, 1);
1645
+ }
1646
+ }
1647
+ await Promise.all(executing);
1648
+ return results;
1649
+ }
1650
+
1625
1651
  // ../client.ts
1626
1652
  class SimpleEventEmitter {
1627
1653
  handlers = new Map;
@@ -1673,6 +1699,7 @@ class MCPClientBase {
1673
1699
  apiRouteBase;
1674
1700
  apiBaseUrl;
1675
1701
  databaseDetected = false;
1702
+ __configuredIntegrations;
1676
1703
  oauthCallbackPromise;
1677
1704
  server;
1678
1705
  trigger;
@@ -1698,6 +1725,7 @@ class MCPClientBase {
1698
1725
  }
1699
1726
  return integration;
1700
1727
  });
1728
+ this.__configuredIntegrations = this.integrations;
1701
1729
  this.clientInfo = config.clientInfo || {
1702
1730
  name: "integrate-sdk",
1703
1731
  version: "0.1.0"
@@ -1840,13 +1868,64 @@ class MCPClientBase {
1840
1868
  return new Proxy({}, {
1841
1869
  get: (_target, methodName) => {
1842
1870
  if (methodName === "listConfiguredIntegrations") {
1843
- return async () => {
1871
+ return async (options) => {
1844
1872
  const serverConfig = this.__oauthConfig;
1845
- const configuredIntegrations = serverConfig?.integrations || this.integrations;
1873
+ const configuredIntegrations = serverConfig?.integrations || this.__configuredIntegrations;
1874
+ if (options?.includeToolMetadata) {
1875
+ const { parallelWithLimit: parallelWithLimit2 } = await Promise.resolve().then(() => exports_concurrency);
1876
+ const integrationsWithMetadata = await parallelWithLimit2(configuredIntegrations, async (integration) => {
1877
+ try {
1878
+ const response = await this.callServerToolInternal("list_tools_by_integration", {
1879
+ integration: integration.id
1880
+ });
1881
+ let toolMetadata = [];
1882
+ if (response.content && Array.isArray(response.content)) {
1883
+ for (const item of response.content) {
1884
+ if (item.type === "text" && item.text) {
1885
+ try {
1886
+ const parsed = JSON.parse(item.text);
1887
+ if (Array.isArray(parsed)) {
1888
+ toolMetadata = parsed;
1889
+ } else if (parsed.tools && Array.isArray(parsed.tools)) {
1890
+ toolMetadata = parsed.tools;
1891
+ }
1892
+ } catch {}
1893
+ }
1894
+ }
1895
+ }
1896
+ return {
1897
+ id: integration.id,
1898
+ name: integration.name || integration.id,
1899
+ logoUrl: integration.logoUrl,
1900
+ tools: integration.tools,
1901
+ hasOAuth: !!integration.oauth,
1902
+ scopes: integration.oauth?.scopes,
1903
+ provider: integration.oauth?.provider,
1904
+ toolMetadata
1905
+ };
1906
+ } catch (error) {
1907
+ logger5.error(`Failed to fetch tool metadata for ${integration.id}:`, error);
1908
+ return {
1909
+ id: integration.id,
1910
+ name: integration.name || integration.id,
1911
+ logoUrl: integration.logoUrl,
1912
+ tools: integration.tools,
1913
+ hasOAuth: !!integration.oauth,
1914
+ scopes: integration.oauth?.scopes,
1915
+ provider: integration.oauth?.provider,
1916
+ toolMetadata: []
1917
+ };
1918
+ }
1919
+ }, 3);
1920
+ return {
1921
+ integrations: integrationsWithMetadata
1922
+ };
1923
+ }
1846
1924
  return {
1847
1925
  integrations: configuredIntegrations.map((integration) => ({
1848
1926
  id: integration.id,
1849
1927
  name: integration.name || integration.id,
1928
+ logoUrl: integration.logoUrl,
1850
1929
  tools: integration.tools,
1851
1930
  hasOAuth: !!integration.oauth,
1852
1931
  scopes: integration.oauth?.scopes,
@@ -2396,6 +2475,8 @@ function githubIntegration(config = {}) {
2396
2475
  };
2397
2476
  return {
2398
2477
  id: "github",
2478
+ name: "GitHub",
2479
+ logoUrl: "https://cdn.simpleicons.org/github",
2399
2480
  tools: [...GITHUB_TOOLS],
2400
2481
  oauth,
2401
2482
  async onInit(_client) {
@@ -2449,6 +2530,8 @@ function gmailIntegration(config = {}) {
2449
2530
  };
2450
2531
  return {
2451
2532
  id: "gmail",
2533
+ name: "Gmail",
2534
+ logoUrl: "https://cdn.simpleicons.org/gmail",
2452
2535
  tools: [...GMAIL_TOOLS],
2453
2536
  oauth,
2454
2537
  async onInit(_client) {
@@ -2488,6 +2571,8 @@ function notionIntegration(config = {}) {
2488
2571
  };
2489
2572
  return {
2490
2573
  id: "notion",
2574
+ name: "Notion",
2575
+ logoUrl: "https://cdn.simpleicons.org/notion",
2491
2576
  tools: [...NOTION_TOOLS],
2492
2577
  oauth,
2493
2578
  async onInit(_client) {
@@ -2522,6 +2607,8 @@ function slackIntegration(config = {}) {
2522
2607
  };
2523
2608
  return {
2524
2609
  id: "slack",
2610
+ name: "Slack",
2611
+ logoUrl: "https://cdn.simpleicons.org/slack",
2525
2612
  tools: [...SLACK_TOOLS],
2526
2613
  oauth,
2527
2614
  async onInit(_client) {
@@ -2563,6 +2650,8 @@ function linearIntegration(config = {}) {
2563
2650
  };
2564
2651
  return {
2565
2652
  id: "linear",
2653
+ name: "Linear",
2654
+ logoUrl: "https://cdn.simpleicons.org/linear",
2566
2655
  tools: [...LINEAR_TOOLS],
2567
2656
  oauth,
2568
2657
  async onInit(_client) {
@@ -2604,6 +2693,8 @@ function vercelIntegration(config = {}) {
2604
2693
  };
2605
2694
  return {
2606
2695
  id: "vercel",
2696
+ name: "Vercel",
2697
+ logoUrl: "https://cdn.simpleicons.org/vercel",
2607
2698
  tools: [...VERCEL_TOOLS],
2608
2699
  oauth,
2609
2700
  async onInit(_client) {
@@ -2646,6 +2737,8 @@ function zendeskIntegration(config = {}) {
2646
2737
  };
2647
2738
  return {
2648
2739
  id: "zendesk",
2740
+ name: "Zendesk",
2741
+ logoUrl: "https://cdn.simpleicons.org/zendesk",
2649
2742
  tools: [...ZENDESK_TOOLS],
2650
2743
  oauth,
2651
2744
  async onInit(_client) {
@@ -2687,6 +2780,8 @@ function stripeIntegration(config = {}) {
2687
2780
  };
2688
2781
  return {
2689
2782
  id: "stripe",
2783
+ name: "Stripe",
2784
+ logoUrl: "https://cdn.simpleicons.org/stripe",
2690
2785
  tools: [...STRIPE_TOOLS],
2691
2786
  oauth,
2692
2787
  async onInit(_client) {
@@ -2728,6 +2823,8 @@ function gcalIntegration(config = {}) {
2728
2823
  };
2729
2824
  return {
2730
2825
  id: "gcal",
2826
+ name: "Google Calendar",
2827
+ logoUrl: "https://cdn.simpleicons.org/googlecalendar",
2731
2828
  tools: [...GCAL_TOOLS],
2732
2829
  oauth,
2733
2830
  async onInit(_client) {
@@ -2769,6 +2866,8 @@ function outlookIntegration(config = {}) {
2769
2866
  };
2770
2867
  return {
2771
2868
  id: "outlook",
2869
+ name: "Outlook",
2870
+ logoUrl: "https://cdn.simpleicons.org/microsoftoutlook",
2772
2871
  tools: [...OUTLOOK_TOOLS],
2773
2872
  oauth,
2774
2873
  async onInit(_client) {
@@ -2810,6 +2909,8 @@ function airtableIntegration(config = {}) {
2810
2909
  };
2811
2910
  return {
2812
2911
  id: "airtable",
2912
+ name: "Airtable",
2913
+ logoUrl: "https://cdn.simpleicons.org/airtable",
2813
2914
  tools: [...AIRTABLE_TOOLS],
2814
2915
  oauth,
2815
2916
  async onInit(_client) {
@@ -2851,6 +2952,8 @@ function todoistIntegration(config = {}) {
2851
2952
  };
2852
2953
  return {
2853
2954
  id: "todoist",
2955
+ name: "Todoist",
2956
+ logoUrl: "https://cdn.simpleicons.org/todoist",
2854
2957
  tools: [...TODOIST_TOOLS],
2855
2958
  oauth,
2856
2959
  async onInit(_client) {
@@ -2893,6 +2996,8 @@ function whatsappIntegration(config = {}) {
2893
2996
  };
2894
2997
  return {
2895
2998
  id: "whatsapp",
2999
+ name: "WhatsApp Business",
3000
+ logoUrl: "https://cdn.simpleicons.org/whatsapp",
2896
3001
  tools: [...WHATSAPP_TOOLS],
2897
3002
  oauth,
2898
3003
  async onInit(_client) {
@@ -2934,6 +3039,8 @@ function calcomIntegration(config = {}) {
2934
3039
  };
2935
3040
  return {
2936
3041
  id: "calcom",
3042
+ name: "Cal.com",
3043
+ logoUrl: "https://cdn.simpleicons.org/calendly",
2937
3044
  tools: [...CALCOM_TOOLS],
2938
3045
  oauth,
2939
3046
  async onInit(_client) {
@@ -2976,6 +3083,8 @@ function rampIntegration(config = {}) {
2976
3083
  };
2977
3084
  return {
2978
3085
  id: "ramp",
3086
+ name: "Ramp",
3087
+ logoUrl: "https://cdn.simpleicons.org/ramp",
2979
3088
  tools: [...RAMP_TOOLS],
2980
3089
  oauth,
2981
3090
  async onInit(_client) {
@@ -3017,6 +3126,8 @@ function onedriveIntegration(config = {}) {
3017
3126
  };
3018
3127
  return {
3019
3128
  id: "onedrive",
3129
+ name: "OneDrive",
3130
+ logoUrl: "https://cdn.simpleicons.org/onedrive",
3020
3131
  tools: [...ONEDRIVE_TOOLS],
3021
3132
  oauth,
3022
3133
  async onInit(_client) {
@@ -3066,6 +3177,8 @@ function gworkspaceIntegration(config = {}) {
3066
3177
  };
3067
3178
  return {
3068
3179
  id: "gworkspace",
3180
+ name: "Google Workspace",
3181
+ logoUrl: "https://cdn.simpleicons.org/google",
3069
3182
  tools: [...GWORKSPACE_TOOLS],
3070
3183
  oauth,
3071
3184
  async onInit(_client) {
@@ -3111,6 +3224,8 @@ function polarIntegration(config = {}) {
3111
3224
  };
3112
3225
  return {
3113
3226
  id: "polar",
3227
+ name: "Polar",
3228
+ logoUrl: "https://cdn.simpleicons.org/polar",
3114
3229
  tools: [...POLAR_TOOLS],
3115
3230
  oauth,
3116
3231
  async onInit(_client) {
@@ -3152,6 +3267,8 @@ function figmaIntegration(config = {}) {
3152
3267
  };
3153
3268
  return {
3154
3269
  id: "figma",
3270
+ name: "Figma",
3271
+ logoUrl: "https://cdn.simpleicons.org/figma",
3155
3272
  tools: [...FIGMA_TOOLS],
3156
3273
  oauth,
3157
3274
  async onInit(_client) {
@@ -3193,6 +3310,8 @@ function intercomIntegration(config = {}) {
3193
3310
  };
3194
3311
  return {
3195
3312
  id: "intercom",
3313
+ name: "Intercom",
3314
+ logoUrl: "https://cdn.simpleicons.org/intercom",
3196
3315
  tools: [...INTERCOM_TOOLS],
3197
3316
  oauth,
3198
3317
  async onInit(_client) {
@@ -3242,6 +3361,8 @@ function hubspotIntegration(config = {}) {
3242
3361
  };
3243
3362
  return {
3244
3363
  id: "hubspot",
3364
+ name: "HubSpot",
3365
+ logoUrl: "https://cdn.simpleicons.org/hubspot",
3245
3366
  tools: [...HUBSPOT_TOOLS],
3246
3367
  oauth,
3247
3368
  async onInit(_client) {
@@ -3286,6 +3407,8 @@ function youtubeIntegration(config = {}) {
3286
3407
  };
3287
3408
  return {
3288
3409
  id: "youtube",
3410
+ name: "YouTube",
3411
+ logoUrl: "https://cdn.simpleicons.org/youtube",
3289
3412
  tools: [...YOUTUBE_TOOLS],
3290
3413
  oauth,
3291
3414
  async onInit(_client) {
@@ -3317,6 +3440,8 @@ var init_youtube = __esm(() => {
3317
3440
  function cursorIntegration(_config = {}) {
3318
3441
  return {
3319
3442
  id: "cursor",
3443
+ name: "Cursor",
3444
+ logoUrl: "https://cdn.simpleicons.org/cursor",
3320
3445
  tools: [...CURSOR_TOOLS],
3321
3446
  async onInit(_client) {
3322
3447
  logger28.debug("Cursor integration initialized");
@@ -3357,6 +3482,8 @@ function genericOAuthIntegration(config) {
3357
3482
  };
3358
3483
  return {
3359
3484
  id: config.id,
3485
+ name: config.name,
3486
+ logoUrl: config.logoUrl,
3360
3487
  tools: config.tools,
3361
3488
  oauth,
3362
3489
  onInit: config.onInit,
@@ -9177,7 +9304,6 @@ var init_zodToJsonSchema = __esm(() => {
9177
9304
 
9178
9305
  // ../../node_modules/zod-to-json-schema/dist/esm/index.js
9179
9306
  var init_esm = __esm(() => {
9180
- init_zodToJsonSchema();
9181
9307
  init_Options();
9182
9308
  init_Refs();
9183
9309
  init_parseDef();
@@ -9209,6 +9335,7 @@ var init_esm = __esm(() => {
9209
9335
  init_unknown();
9210
9336
  init_selectParser();
9211
9337
  init_zodToJsonSchema();
9338
+ init_zodToJsonSchema();
9212
9339
  });
9213
9340
 
9214
9341
  // ../ai/openai.ts
@@ -1622,6 +1622,32 @@ var init_manager = __esm(() => {
1622
1622
  logger4 = createLogger("OAuth");
1623
1623
  });
1624
1624
 
1625
+ // ../utils/concurrency.ts
1626
+ var exports_concurrency = {};
1627
+ __export(exports_concurrency, {
1628
+ parallelWithLimit: () => parallelWithLimit
1629
+ });
1630
+ async function parallelWithLimit(items, fn, limit = 3) {
1631
+ const results = [];
1632
+ const executing = [];
1633
+ for (let i = 0;i < items.length; i++) {
1634
+ const item = items[i];
1635
+ const index = i;
1636
+ const promise = fn(item).then((result) => {
1637
+ results[index] = result;
1638
+ }).catch(() => {
1639
+ results[index] = undefined;
1640
+ });
1641
+ executing.push(promise);
1642
+ if (executing.length >= limit) {
1643
+ const completedIndex = await Promise.race(executing.map((p, idx) => p.then(() => idx).catch(() => idx)));
1644
+ executing.splice(completedIndex, 1);
1645
+ }
1646
+ }
1647
+ await Promise.all(executing);
1648
+ return results;
1649
+ }
1650
+
1625
1651
  // ../client.ts
1626
1652
  class SimpleEventEmitter {
1627
1653
  handlers = new Map;
@@ -1673,6 +1699,7 @@ class MCPClientBase {
1673
1699
  apiRouteBase;
1674
1700
  apiBaseUrl;
1675
1701
  databaseDetected = false;
1702
+ __configuredIntegrations;
1676
1703
  oauthCallbackPromise;
1677
1704
  server;
1678
1705
  trigger;
@@ -1698,6 +1725,7 @@ class MCPClientBase {
1698
1725
  }
1699
1726
  return integration;
1700
1727
  });
1728
+ this.__configuredIntegrations = this.integrations;
1701
1729
  this.clientInfo = config.clientInfo || {
1702
1730
  name: "integrate-sdk",
1703
1731
  version: "0.1.0"
@@ -1840,13 +1868,64 @@ class MCPClientBase {
1840
1868
  return new Proxy({}, {
1841
1869
  get: (_target, methodName) => {
1842
1870
  if (methodName === "listConfiguredIntegrations") {
1843
- return async () => {
1871
+ return async (options) => {
1844
1872
  const serverConfig = this.__oauthConfig;
1845
- const configuredIntegrations = serverConfig?.integrations || this.integrations;
1873
+ const configuredIntegrations = serverConfig?.integrations || this.__configuredIntegrations;
1874
+ if (options?.includeToolMetadata) {
1875
+ const { parallelWithLimit: parallelWithLimit2 } = await Promise.resolve().then(() => exports_concurrency);
1876
+ const integrationsWithMetadata = await parallelWithLimit2(configuredIntegrations, async (integration) => {
1877
+ try {
1878
+ const response = await this.callServerToolInternal("list_tools_by_integration", {
1879
+ integration: integration.id
1880
+ });
1881
+ let toolMetadata = [];
1882
+ if (response.content && Array.isArray(response.content)) {
1883
+ for (const item of response.content) {
1884
+ if (item.type === "text" && item.text) {
1885
+ try {
1886
+ const parsed = JSON.parse(item.text);
1887
+ if (Array.isArray(parsed)) {
1888
+ toolMetadata = parsed;
1889
+ } else if (parsed.tools && Array.isArray(parsed.tools)) {
1890
+ toolMetadata = parsed.tools;
1891
+ }
1892
+ } catch {}
1893
+ }
1894
+ }
1895
+ }
1896
+ return {
1897
+ id: integration.id,
1898
+ name: integration.name || integration.id,
1899
+ logoUrl: integration.logoUrl,
1900
+ tools: integration.tools,
1901
+ hasOAuth: !!integration.oauth,
1902
+ scopes: integration.oauth?.scopes,
1903
+ provider: integration.oauth?.provider,
1904
+ toolMetadata
1905
+ };
1906
+ } catch (error) {
1907
+ logger5.error(`Failed to fetch tool metadata for ${integration.id}:`, error);
1908
+ return {
1909
+ id: integration.id,
1910
+ name: integration.name || integration.id,
1911
+ logoUrl: integration.logoUrl,
1912
+ tools: integration.tools,
1913
+ hasOAuth: !!integration.oauth,
1914
+ scopes: integration.oauth?.scopes,
1915
+ provider: integration.oauth?.provider,
1916
+ toolMetadata: []
1917
+ };
1918
+ }
1919
+ }, 3);
1920
+ return {
1921
+ integrations: integrationsWithMetadata
1922
+ };
1923
+ }
1846
1924
  return {
1847
1925
  integrations: configuredIntegrations.map((integration) => ({
1848
1926
  id: integration.id,
1849
1927
  name: integration.name || integration.id,
1928
+ logoUrl: integration.logoUrl,
1850
1929
  tools: integration.tools,
1851
1930
  hasOAuth: !!integration.oauth,
1852
1931
  scopes: integration.oauth?.scopes,
@@ -2396,6 +2475,8 @@ function githubIntegration(config = {}) {
2396
2475
  };
2397
2476
  return {
2398
2477
  id: "github",
2478
+ name: "GitHub",
2479
+ logoUrl: "https://cdn.simpleicons.org/github",
2399
2480
  tools: [...GITHUB_TOOLS],
2400
2481
  oauth,
2401
2482
  async onInit(_client) {
@@ -2449,6 +2530,8 @@ function gmailIntegration(config = {}) {
2449
2530
  };
2450
2531
  return {
2451
2532
  id: "gmail",
2533
+ name: "Gmail",
2534
+ logoUrl: "https://cdn.simpleicons.org/gmail",
2452
2535
  tools: [...GMAIL_TOOLS],
2453
2536
  oauth,
2454
2537
  async onInit(_client) {
@@ -2488,6 +2571,8 @@ function notionIntegration(config = {}) {
2488
2571
  };
2489
2572
  return {
2490
2573
  id: "notion",
2574
+ name: "Notion",
2575
+ logoUrl: "https://cdn.simpleicons.org/notion",
2491
2576
  tools: [...NOTION_TOOLS],
2492
2577
  oauth,
2493
2578
  async onInit(_client) {
@@ -2522,6 +2607,8 @@ function slackIntegration(config = {}) {
2522
2607
  };
2523
2608
  return {
2524
2609
  id: "slack",
2610
+ name: "Slack",
2611
+ logoUrl: "https://cdn.simpleicons.org/slack",
2525
2612
  tools: [...SLACK_TOOLS],
2526
2613
  oauth,
2527
2614
  async onInit(_client) {
@@ -2563,6 +2650,8 @@ function linearIntegration(config = {}) {
2563
2650
  };
2564
2651
  return {
2565
2652
  id: "linear",
2653
+ name: "Linear",
2654
+ logoUrl: "https://cdn.simpleicons.org/linear",
2566
2655
  tools: [...LINEAR_TOOLS],
2567
2656
  oauth,
2568
2657
  async onInit(_client) {
@@ -2604,6 +2693,8 @@ function vercelIntegration(config = {}) {
2604
2693
  };
2605
2694
  return {
2606
2695
  id: "vercel",
2696
+ name: "Vercel",
2697
+ logoUrl: "https://cdn.simpleicons.org/vercel",
2607
2698
  tools: [...VERCEL_TOOLS],
2608
2699
  oauth,
2609
2700
  async onInit(_client) {
@@ -2646,6 +2737,8 @@ function zendeskIntegration(config = {}) {
2646
2737
  };
2647
2738
  return {
2648
2739
  id: "zendesk",
2740
+ name: "Zendesk",
2741
+ logoUrl: "https://cdn.simpleicons.org/zendesk",
2649
2742
  tools: [...ZENDESK_TOOLS],
2650
2743
  oauth,
2651
2744
  async onInit(_client) {
@@ -2687,6 +2780,8 @@ function stripeIntegration(config = {}) {
2687
2780
  };
2688
2781
  return {
2689
2782
  id: "stripe",
2783
+ name: "Stripe",
2784
+ logoUrl: "https://cdn.simpleicons.org/stripe",
2690
2785
  tools: [...STRIPE_TOOLS],
2691
2786
  oauth,
2692
2787
  async onInit(_client) {
@@ -2728,6 +2823,8 @@ function gcalIntegration(config = {}) {
2728
2823
  };
2729
2824
  return {
2730
2825
  id: "gcal",
2826
+ name: "Google Calendar",
2827
+ logoUrl: "https://cdn.simpleicons.org/googlecalendar",
2731
2828
  tools: [...GCAL_TOOLS],
2732
2829
  oauth,
2733
2830
  async onInit(_client) {
@@ -2769,6 +2866,8 @@ function outlookIntegration(config = {}) {
2769
2866
  };
2770
2867
  return {
2771
2868
  id: "outlook",
2869
+ name: "Outlook",
2870
+ logoUrl: "https://cdn.simpleicons.org/microsoftoutlook",
2772
2871
  tools: [...OUTLOOK_TOOLS],
2773
2872
  oauth,
2774
2873
  async onInit(_client) {
@@ -2810,6 +2909,8 @@ function airtableIntegration(config = {}) {
2810
2909
  };
2811
2910
  return {
2812
2911
  id: "airtable",
2912
+ name: "Airtable",
2913
+ logoUrl: "https://cdn.simpleicons.org/airtable",
2813
2914
  tools: [...AIRTABLE_TOOLS],
2814
2915
  oauth,
2815
2916
  async onInit(_client) {
@@ -2851,6 +2952,8 @@ function todoistIntegration(config = {}) {
2851
2952
  };
2852
2953
  return {
2853
2954
  id: "todoist",
2955
+ name: "Todoist",
2956
+ logoUrl: "https://cdn.simpleicons.org/todoist",
2854
2957
  tools: [...TODOIST_TOOLS],
2855
2958
  oauth,
2856
2959
  async onInit(_client) {
@@ -2893,6 +2996,8 @@ function whatsappIntegration(config = {}) {
2893
2996
  };
2894
2997
  return {
2895
2998
  id: "whatsapp",
2999
+ name: "WhatsApp Business",
3000
+ logoUrl: "https://cdn.simpleicons.org/whatsapp",
2896
3001
  tools: [...WHATSAPP_TOOLS],
2897
3002
  oauth,
2898
3003
  async onInit(_client) {
@@ -2934,6 +3039,8 @@ function calcomIntegration(config = {}) {
2934
3039
  };
2935
3040
  return {
2936
3041
  id: "calcom",
3042
+ name: "Cal.com",
3043
+ logoUrl: "https://cdn.simpleicons.org/calendly",
2937
3044
  tools: [...CALCOM_TOOLS],
2938
3045
  oauth,
2939
3046
  async onInit(_client) {
@@ -2976,6 +3083,8 @@ function rampIntegration(config = {}) {
2976
3083
  };
2977
3084
  return {
2978
3085
  id: "ramp",
3086
+ name: "Ramp",
3087
+ logoUrl: "https://cdn.simpleicons.org/ramp",
2979
3088
  tools: [...RAMP_TOOLS],
2980
3089
  oauth,
2981
3090
  async onInit(_client) {
@@ -3017,6 +3126,8 @@ function onedriveIntegration(config = {}) {
3017
3126
  };
3018
3127
  return {
3019
3128
  id: "onedrive",
3129
+ name: "OneDrive",
3130
+ logoUrl: "https://cdn.simpleicons.org/onedrive",
3020
3131
  tools: [...ONEDRIVE_TOOLS],
3021
3132
  oauth,
3022
3133
  async onInit(_client) {
@@ -3066,6 +3177,8 @@ function gworkspaceIntegration(config = {}) {
3066
3177
  };
3067
3178
  return {
3068
3179
  id: "gworkspace",
3180
+ name: "Google Workspace",
3181
+ logoUrl: "https://cdn.simpleicons.org/google",
3069
3182
  tools: [...GWORKSPACE_TOOLS],
3070
3183
  oauth,
3071
3184
  async onInit(_client) {
@@ -3111,6 +3224,8 @@ function polarIntegration(config = {}) {
3111
3224
  };
3112
3225
  return {
3113
3226
  id: "polar",
3227
+ name: "Polar",
3228
+ logoUrl: "https://cdn.simpleicons.org/polar",
3114
3229
  tools: [...POLAR_TOOLS],
3115
3230
  oauth,
3116
3231
  async onInit(_client) {
@@ -3152,6 +3267,8 @@ function figmaIntegration(config = {}) {
3152
3267
  };
3153
3268
  return {
3154
3269
  id: "figma",
3270
+ name: "Figma",
3271
+ logoUrl: "https://cdn.simpleicons.org/figma",
3155
3272
  tools: [...FIGMA_TOOLS],
3156
3273
  oauth,
3157
3274
  async onInit(_client) {
@@ -3193,6 +3310,8 @@ function intercomIntegration(config = {}) {
3193
3310
  };
3194
3311
  return {
3195
3312
  id: "intercom",
3313
+ name: "Intercom",
3314
+ logoUrl: "https://cdn.simpleicons.org/intercom",
3196
3315
  tools: [...INTERCOM_TOOLS],
3197
3316
  oauth,
3198
3317
  async onInit(_client) {
@@ -3242,6 +3361,8 @@ function hubspotIntegration(config = {}) {
3242
3361
  };
3243
3362
  return {
3244
3363
  id: "hubspot",
3364
+ name: "HubSpot",
3365
+ logoUrl: "https://cdn.simpleicons.org/hubspot",
3245
3366
  tools: [...HUBSPOT_TOOLS],
3246
3367
  oauth,
3247
3368
  async onInit(_client) {
@@ -3286,6 +3407,8 @@ function youtubeIntegration(config = {}) {
3286
3407
  };
3287
3408
  return {
3288
3409
  id: "youtube",
3410
+ name: "YouTube",
3411
+ logoUrl: "https://cdn.simpleicons.org/youtube",
3289
3412
  tools: [...YOUTUBE_TOOLS],
3290
3413
  oauth,
3291
3414
  async onInit(_client) {
@@ -3317,6 +3440,8 @@ var init_youtube = __esm(() => {
3317
3440
  function cursorIntegration(_config = {}) {
3318
3441
  return {
3319
3442
  id: "cursor",
3443
+ name: "Cursor",
3444
+ logoUrl: "https://cdn.simpleicons.org/cursor",
3320
3445
  tools: [...CURSOR_TOOLS],
3321
3446
  async onInit(_client) {
3322
3447
  logger28.debug("Cursor integration initialized");
@@ -3357,6 +3482,8 @@ function genericOAuthIntegration(config) {
3357
3482
  };
3358
3483
  return {
3359
3484
  id: config.id,
3485
+ name: config.name,
3486
+ logoUrl: config.logoUrl,
3360
3487
  tools: config.tools,
3361
3488
  oauth,
3362
3489
  onInit: config.onInit,
@@ -9177,7 +9304,6 @@ var init_zodToJsonSchema = __esm(() => {
9177
9304
 
9178
9305
  // ../../node_modules/zod-to-json-schema/dist/esm/index.js
9179
9306
  var init_esm = __esm(() => {
9180
- init_zodToJsonSchema();
9181
9307
  init_Options();
9182
9308
  init_Refs();
9183
9309
  init_parseDef();
@@ -9209,6 +9335,7 @@ var init_esm = __esm(() => {
9209
9335
  init_unknown();
9210
9336
  init_selectParser();
9211
9337
  init_zodToJsonSchema();
9338
+ init_zodToJsonSchema();
9212
9339
  });
9213
9340
 
9214
9341
  // ../ai/openai.ts