integrate-sdk 0.8.47-dev.0 → 0.8.48-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/auto-routes.js +78 -2
- package/dist/adapters/index.js +78 -2
- package/dist/adapters/nextjs.js +78 -2
- package/dist/adapters/node.js +78 -2
- package/dist/adapters/svelte-kit.js +78 -2
- package/dist/adapters/tanstack-start.js +78 -2
- package/dist/index.js +78 -2
- package/dist/oauth.js +78 -2
- package/dist/server.js +78 -2
- package/dist/src/client.d.ts +6 -0
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/integrations/server-client.d.ts +20 -2
- package/dist/src/integrations/server-client.d.ts.map +1 -1
- package/dist/src/utils/concurrency.d.ts +24 -0
- package/dist/src/utils/concurrency.d.ts.map +1 -0
- 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,9 +1868,57 @@ 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.
|
|
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
|
+
tools: integration.tools,
|
|
1900
|
+
hasOAuth: !!integration.oauth,
|
|
1901
|
+
scopes: integration.oauth?.scopes,
|
|
1902
|
+
provider: integration.oauth?.provider,
|
|
1903
|
+
toolMetadata
|
|
1904
|
+
};
|
|
1905
|
+
} catch (error) {
|
|
1906
|
+
logger5.error(`Failed to fetch tool metadata for ${integration.id}:`, error);
|
|
1907
|
+
return {
|
|
1908
|
+
id: integration.id,
|
|
1909
|
+
name: integration.name || integration.id,
|
|
1910
|
+
tools: integration.tools,
|
|
1911
|
+
hasOAuth: !!integration.oauth,
|
|
1912
|
+
scopes: integration.oauth?.scopes,
|
|
1913
|
+
provider: integration.oauth?.provider,
|
|
1914
|
+
toolMetadata: []
|
|
1915
|
+
};
|
|
1916
|
+
}
|
|
1917
|
+
}, 3);
|
|
1918
|
+
return {
|
|
1919
|
+
integrations: integrationsWithMetadata
|
|
1920
|
+
};
|
|
1921
|
+
}
|
|
1846
1922
|
return {
|
|
1847
1923
|
integrations: configuredIntegrations.map((integration) => ({
|
|
1848
1924
|
id: integration.id,
|
package/dist/adapters/index.js
CHANGED
|
@@ -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,9 +1868,57 @@ 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.
|
|
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
|
+
tools: integration.tools,
|
|
1900
|
+
hasOAuth: !!integration.oauth,
|
|
1901
|
+
scopes: integration.oauth?.scopes,
|
|
1902
|
+
provider: integration.oauth?.provider,
|
|
1903
|
+
toolMetadata
|
|
1904
|
+
};
|
|
1905
|
+
} catch (error) {
|
|
1906
|
+
logger5.error(`Failed to fetch tool metadata for ${integration.id}:`, error);
|
|
1907
|
+
return {
|
|
1908
|
+
id: integration.id,
|
|
1909
|
+
name: integration.name || integration.id,
|
|
1910
|
+
tools: integration.tools,
|
|
1911
|
+
hasOAuth: !!integration.oauth,
|
|
1912
|
+
scopes: integration.oauth?.scopes,
|
|
1913
|
+
provider: integration.oauth?.provider,
|
|
1914
|
+
toolMetadata: []
|
|
1915
|
+
};
|
|
1916
|
+
}
|
|
1917
|
+
}, 3);
|
|
1918
|
+
return {
|
|
1919
|
+
integrations: integrationsWithMetadata
|
|
1920
|
+
};
|
|
1921
|
+
}
|
|
1846
1922
|
return {
|
|
1847
1923
|
integrations: configuredIntegrations.map((integration) => ({
|
|
1848
1924
|
id: integration.id,
|
package/dist/adapters/nextjs.js
CHANGED
|
@@ -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,9 +1868,57 @@ 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.
|
|
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
|
+
tools: integration.tools,
|
|
1900
|
+
hasOAuth: !!integration.oauth,
|
|
1901
|
+
scopes: integration.oauth?.scopes,
|
|
1902
|
+
provider: integration.oauth?.provider,
|
|
1903
|
+
toolMetadata
|
|
1904
|
+
};
|
|
1905
|
+
} catch (error) {
|
|
1906
|
+
logger5.error(`Failed to fetch tool metadata for ${integration.id}:`, error);
|
|
1907
|
+
return {
|
|
1908
|
+
id: integration.id,
|
|
1909
|
+
name: integration.name || integration.id,
|
|
1910
|
+
tools: integration.tools,
|
|
1911
|
+
hasOAuth: !!integration.oauth,
|
|
1912
|
+
scopes: integration.oauth?.scopes,
|
|
1913
|
+
provider: integration.oauth?.provider,
|
|
1914
|
+
toolMetadata: []
|
|
1915
|
+
};
|
|
1916
|
+
}
|
|
1917
|
+
}, 3);
|
|
1918
|
+
return {
|
|
1919
|
+
integrations: integrationsWithMetadata
|
|
1920
|
+
};
|
|
1921
|
+
}
|
|
1846
1922
|
return {
|
|
1847
1923
|
integrations: configuredIntegrations.map((integration) => ({
|
|
1848
1924
|
id: integration.id,
|
package/dist/adapters/node.js
CHANGED
|
@@ -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,9 +1868,57 @@ 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.
|
|
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
|
+
tools: integration.tools,
|
|
1900
|
+
hasOAuth: !!integration.oauth,
|
|
1901
|
+
scopes: integration.oauth?.scopes,
|
|
1902
|
+
provider: integration.oauth?.provider,
|
|
1903
|
+
toolMetadata
|
|
1904
|
+
};
|
|
1905
|
+
} catch (error) {
|
|
1906
|
+
logger5.error(`Failed to fetch tool metadata for ${integration.id}:`, error);
|
|
1907
|
+
return {
|
|
1908
|
+
id: integration.id,
|
|
1909
|
+
name: integration.name || integration.id,
|
|
1910
|
+
tools: integration.tools,
|
|
1911
|
+
hasOAuth: !!integration.oauth,
|
|
1912
|
+
scopes: integration.oauth?.scopes,
|
|
1913
|
+
provider: integration.oauth?.provider,
|
|
1914
|
+
toolMetadata: []
|
|
1915
|
+
};
|
|
1916
|
+
}
|
|
1917
|
+
}, 3);
|
|
1918
|
+
return {
|
|
1919
|
+
integrations: integrationsWithMetadata
|
|
1920
|
+
};
|
|
1921
|
+
}
|
|
1846
1922
|
return {
|
|
1847
1923
|
integrations: configuredIntegrations.map((integration) => ({
|
|
1848
1924
|
id: integration.id,
|
|
@@ -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,9 +1868,57 @@ 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.
|
|
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
|
+
tools: integration.tools,
|
|
1900
|
+
hasOAuth: !!integration.oauth,
|
|
1901
|
+
scopes: integration.oauth?.scopes,
|
|
1902
|
+
provider: integration.oauth?.provider,
|
|
1903
|
+
toolMetadata
|
|
1904
|
+
};
|
|
1905
|
+
} catch (error) {
|
|
1906
|
+
logger5.error(`Failed to fetch tool metadata for ${integration.id}:`, error);
|
|
1907
|
+
return {
|
|
1908
|
+
id: integration.id,
|
|
1909
|
+
name: integration.name || integration.id,
|
|
1910
|
+
tools: integration.tools,
|
|
1911
|
+
hasOAuth: !!integration.oauth,
|
|
1912
|
+
scopes: integration.oauth?.scopes,
|
|
1913
|
+
provider: integration.oauth?.provider,
|
|
1914
|
+
toolMetadata: []
|
|
1915
|
+
};
|
|
1916
|
+
}
|
|
1917
|
+
}, 3);
|
|
1918
|
+
return {
|
|
1919
|
+
integrations: integrationsWithMetadata
|
|
1920
|
+
};
|
|
1921
|
+
}
|
|
1846
1922
|
return {
|
|
1847
1923
|
integrations: configuredIntegrations.map((integration) => ({
|
|
1848
1924
|
id: integration.id,
|
|
@@ -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,9 +1868,57 @@ 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.
|
|
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
|
+
tools: integration.tools,
|
|
1900
|
+
hasOAuth: !!integration.oauth,
|
|
1901
|
+
scopes: integration.oauth?.scopes,
|
|
1902
|
+
provider: integration.oauth?.provider,
|
|
1903
|
+
toolMetadata
|
|
1904
|
+
};
|
|
1905
|
+
} catch (error) {
|
|
1906
|
+
logger5.error(`Failed to fetch tool metadata for ${integration.id}:`, error);
|
|
1907
|
+
return {
|
|
1908
|
+
id: integration.id,
|
|
1909
|
+
name: integration.name || integration.id,
|
|
1910
|
+
tools: integration.tools,
|
|
1911
|
+
hasOAuth: !!integration.oauth,
|
|
1912
|
+
scopes: integration.oauth?.scopes,
|
|
1913
|
+
provider: integration.oauth?.provider,
|
|
1914
|
+
toolMetadata: []
|
|
1915
|
+
};
|
|
1916
|
+
}
|
|
1917
|
+
}, 3);
|
|
1918
|
+
return {
|
|
1919
|
+
integrations: integrationsWithMetadata
|
|
1920
|
+
};
|
|
1921
|
+
}
|
|
1846
1922
|
return {
|
|
1847
1923
|
integrations: configuredIntegrations.map((integration) => ({
|
|
1848
1924
|
id: integration.id,
|
package/dist/index.js
CHANGED
|
@@ -1650,6 +1650,32 @@ var init_manager = __esm(() => {
|
|
|
1650
1650
|
logger4 = createLogger("OAuth");
|
|
1651
1651
|
});
|
|
1652
1652
|
|
|
1653
|
+
// src/utils/concurrency.ts
|
|
1654
|
+
var exports_concurrency = {};
|
|
1655
|
+
__export(exports_concurrency, {
|
|
1656
|
+
parallelWithLimit: () => parallelWithLimit
|
|
1657
|
+
});
|
|
1658
|
+
async function parallelWithLimit(items, fn, limit = 3) {
|
|
1659
|
+
const results = [];
|
|
1660
|
+
const executing = [];
|
|
1661
|
+
for (let i = 0;i < items.length; i++) {
|
|
1662
|
+
const item = items[i];
|
|
1663
|
+
const index = i;
|
|
1664
|
+
const promise = fn(item).then((result) => {
|
|
1665
|
+
results[index] = result;
|
|
1666
|
+
}).catch(() => {
|
|
1667
|
+
results[index] = undefined;
|
|
1668
|
+
});
|
|
1669
|
+
executing.push(promise);
|
|
1670
|
+
if (executing.length >= limit) {
|
|
1671
|
+
const completedIndex = await Promise.race(executing.map((p, idx) => p.then(() => idx).catch(() => idx)));
|
|
1672
|
+
executing.splice(completedIndex, 1);
|
|
1673
|
+
}
|
|
1674
|
+
}
|
|
1675
|
+
await Promise.all(executing);
|
|
1676
|
+
return results;
|
|
1677
|
+
}
|
|
1678
|
+
|
|
1653
1679
|
// src/client.ts
|
|
1654
1680
|
class SimpleEventEmitter {
|
|
1655
1681
|
handlers = new Map;
|
|
@@ -1701,6 +1727,7 @@ class MCPClientBase {
|
|
|
1701
1727
|
apiRouteBase;
|
|
1702
1728
|
apiBaseUrl;
|
|
1703
1729
|
databaseDetected = false;
|
|
1730
|
+
__configuredIntegrations;
|
|
1704
1731
|
oauthCallbackPromise;
|
|
1705
1732
|
server;
|
|
1706
1733
|
trigger;
|
|
@@ -1726,6 +1753,7 @@ class MCPClientBase {
|
|
|
1726
1753
|
}
|
|
1727
1754
|
return integration;
|
|
1728
1755
|
});
|
|
1756
|
+
this.__configuredIntegrations = this.integrations;
|
|
1729
1757
|
this.clientInfo = config.clientInfo || {
|
|
1730
1758
|
name: "integrate-sdk",
|
|
1731
1759
|
version: "0.1.0"
|
|
@@ -1868,9 +1896,57 @@ class MCPClientBase {
|
|
|
1868
1896
|
return new Proxy({}, {
|
|
1869
1897
|
get: (_target, methodName) => {
|
|
1870
1898
|
if (methodName === "listConfiguredIntegrations") {
|
|
1871
|
-
return async () => {
|
|
1899
|
+
return async (options) => {
|
|
1872
1900
|
const serverConfig = this.__oauthConfig;
|
|
1873
|
-
const configuredIntegrations = serverConfig?.integrations || this.
|
|
1901
|
+
const configuredIntegrations = serverConfig?.integrations || this.__configuredIntegrations;
|
|
1902
|
+
if (options?.includeToolMetadata) {
|
|
1903
|
+
const { parallelWithLimit: parallelWithLimit2 } = await Promise.resolve().then(() => exports_concurrency);
|
|
1904
|
+
const integrationsWithMetadata = await parallelWithLimit2(configuredIntegrations, async (integration) => {
|
|
1905
|
+
try {
|
|
1906
|
+
const response = await this.callServerToolInternal("list_tools_by_integration", {
|
|
1907
|
+
integration: integration.id
|
|
1908
|
+
});
|
|
1909
|
+
let toolMetadata = [];
|
|
1910
|
+
if (response.content && Array.isArray(response.content)) {
|
|
1911
|
+
for (const item of response.content) {
|
|
1912
|
+
if (item.type === "text" && item.text) {
|
|
1913
|
+
try {
|
|
1914
|
+
const parsed = JSON.parse(item.text);
|
|
1915
|
+
if (Array.isArray(parsed)) {
|
|
1916
|
+
toolMetadata = parsed;
|
|
1917
|
+
} else if (parsed.tools && Array.isArray(parsed.tools)) {
|
|
1918
|
+
toolMetadata = parsed.tools;
|
|
1919
|
+
}
|
|
1920
|
+
} catch {}
|
|
1921
|
+
}
|
|
1922
|
+
}
|
|
1923
|
+
}
|
|
1924
|
+
return {
|
|
1925
|
+
id: integration.id,
|
|
1926
|
+
name: integration.name || integration.id,
|
|
1927
|
+
tools: integration.tools,
|
|
1928
|
+
hasOAuth: !!integration.oauth,
|
|
1929
|
+
scopes: integration.oauth?.scopes,
|
|
1930
|
+
provider: integration.oauth?.provider,
|
|
1931
|
+
toolMetadata
|
|
1932
|
+
};
|
|
1933
|
+
} catch (error) {
|
|
1934
|
+
logger5.error(`Failed to fetch tool metadata for ${integration.id}:`, error);
|
|
1935
|
+
return {
|
|
1936
|
+
id: integration.id,
|
|
1937
|
+
name: integration.name || integration.id,
|
|
1938
|
+
tools: integration.tools,
|
|
1939
|
+
hasOAuth: !!integration.oauth,
|
|
1940
|
+
scopes: integration.oauth?.scopes,
|
|
1941
|
+
provider: integration.oauth?.provider,
|
|
1942
|
+
toolMetadata: []
|
|
1943
|
+
};
|
|
1944
|
+
}
|
|
1945
|
+
}, 3);
|
|
1946
|
+
return {
|
|
1947
|
+
integrations: integrationsWithMetadata
|
|
1948
|
+
};
|
|
1949
|
+
}
|
|
1874
1950
|
return {
|
|
1875
1951
|
integrations: configuredIntegrations.map((integration) => ({
|
|
1876
1952
|
id: integration.id,
|
package/dist/oauth.js
CHANGED
|
@@ -1622,6 +1622,32 @@ var init_manager = __esm(() => {
|
|
|
1622
1622
|
logger4 = createLogger("OAuth");
|
|
1623
1623
|
});
|
|
1624
1624
|
|
|
1625
|
+
// src/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
|
// src/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,9 +1868,57 @@ 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.
|
|
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
|
+
tools: integration.tools,
|
|
1900
|
+
hasOAuth: !!integration.oauth,
|
|
1901
|
+
scopes: integration.oauth?.scopes,
|
|
1902
|
+
provider: integration.oauth?.provider,
|
|
1903
|
+
toolMetadata
|
|
1904
|
+
};
|
|
1905
|
+
} catch (error) {
|
|
1906
|
+
logger5.error(`Failed to fetch tool metadata for ${integration.id}:`, error);
|
|
1907
|
+
return {
|
|
1908
|
+
id: integration.id,
|
|
1909
|
+
name: integration.name || integration.id,
|
|
1910
|
+
tools: integration.tools,
|
|
1911
|
+
hasOAuth: !!integration.oauth,
|
|
1912
|
+
scopes: integration.oauth?.scopes,
|
|
1913
|
+
provider: integration.oauth?.provider,
|
|
1914
|
+
toolMetadata: []
|
|
1915
|
+
};
|
|
1916
|
+
}
|
|
1917
|
+
}, 3);
|
|
1918
|
+
return {
|
|
1919
|
+
integrations: integrationsWithMetadata
|
|
1920
|
+
};
|
|
1921
|
+
}
|
|
1846
1922
|
return {
|
|
1847
1923
|
integrations: configuredIntegrations.map((integration) => ({
|
|
1848
1924
|
id: integration.id,
|
package/dist/server.js
CHANGED
|
@@ -1622,6 +1622,32 @@ var init_manager = __esm(() => {
|
|
|
1622
1622
|
logger4 = createLogger("OAuth");
|
|
1623
1623
|
});
|
|
1624
1624
|
|
|
1625
|
+
// src/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
|
// src/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,9 +1868,57 @@ 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.
|
|
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
|
+
tools: integration.tools,
|
|
1900
|
+
hasOAuth: !!integration.oauth,
|
|
1901
|
+
scopes: integration.oauth?.scopes,
|
|
1902
|
+
provider: integration.oauth?.provider,
|
|
1903
|
+
toolMetadata
|
|
1904
|
+
};
|
|
1905
|
+
} catch (error) {
|
|
1906
|
+
logger5.error(`Failed to fetch tool metadata for ${integration.id}:`, error);
|
|
1907
|
+
return {
|
|
1908
|
+
id: integration.id,
|
|
1909
|
+
name: integration.name || integration.id,
|
|
1910
|
+
tools: integration.tools,
|
|
1911
|
+
hasOAuth: !!integration.oauth,
|
|
1912
|
+
scopes: integration.oauth?.scopes,
|
|
1913
|
+
provider: integration.oauth?.provider,
|
|
1914
|
+
toolMetadata: []
|
|
1915
|
+
};
|
|
1916
|
+
}
|
|
1917
|
+
}, 3);
|
|
1918
|
+
return {
|
|
1919
|
+
integrations: integrationsWithMetadata
|
|
1920
|
+
};
|
|
1921
|
+
}
|
|
1846
1922
|
return {
|
|
1847
1923
|
integrations: configuredIntegrations.map((integration) => ({
|
|
1848
1924
|
id: integration.id,
|
package/dist/src/client.d.ts
CHANGED
|
@@ -82,6 +82,12 @@ export declare class MCPClientBase<TIntegrations extends readonly MCPIntegration
|
|
|
82
82
|
private apiRouteBase;
|
|
83
83
|
private apiBaseUrl?;
|
|
84
84
|
private databaseDetected;
|
|
85
|
+
/**
|
|
86
|
+
* Explicitly configured integrations passed to createMCPClient
|
|
87
|
+
* Used by listConfiguredIntegrations to return only configured integrations
|
|
88
|
+
* @internal
|
|
89
|
+
*/
|
|
90
|
+
private __configuredIntegrations;
|
|
85
91
|
/**
|
|
86
92
|
* Promise that resolves when OAuth callback processing is complete
|
|
87
93
|
* @internal Used by createMCPClient to store callback promise
|
package/dist/src/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,12 +20,25 @@ export interface ServerIntegrationClient {
|
|
|
20
20
|
listAllProviders(): Promise<MCPToolCallResponse>;
|
|
21
21
|
/**
|
|
22
22
|
* List integrations configured on this SDK client
|
|
23
|
-
* Returns local configuration only (no server call)
|
|
23
|
+
* Returns local configuration only by default (no server call)
|
|
24
|
+
*
|
|
25
|
+
* @param options - Optional configuration
|
|
26
|
+
* @param options.includeToolMetadata - If true, fetches full tool metadata from server for all configured integrations
|
|
24
27
|
*/
|
|
25
|
-
listConfiguredIntegrations(
|
|
28
|
+
listConfiguredIntegrations(options?: {
|
|
29
|
+
includeToolMetadata?: boolean;
|
|
30
|
+
}): Promise<{
|
|
26
31
|
integrations: ConfiguredIntegration[];
|
|
27
32
|
}>;
|
|
28
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Tool metadata with description and input schema
|
|
36
|
+
*/
|
|
37
|
+
export interface ToolMetadata {
|
|
38
|
+
name: string;
|
|
39
|
+
description?: string;
|
|
40
|
+
inputSchema?: Record<string, unknown>;
|
|
41
|
+
}
|
|
29
42
|
/**
|
|
30
43
|
* Local integration metadata returned by listConfiguredIntegrations
|
|
31
44
|
*/
|
|
@@ -36,5 +49,10 @@ export interface ConfiguredIntegration {
|
|
|
36
49
|
hasOAuth: boolean;
|
|
37
50
|
scopes?: readonly string[];
|
|
38
51
|
provider?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Full tool metadata (descriptions, schemas) when includeToolMetadata option is true
|
|
54
|
+
* Only populated if includeToolMetadata: true is passed to listConfiguredIntegrations()
|
|
55
|
+
*/
|
|
56
|
+
toolMetadata?: ToolMetadata[];
|
|
39
57
|
}
|
|
40
58
|
//# sourceMappingURL=server-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-client.d.ts","sourceRoot":"","sources":["../../../src/integrations/server-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE;QAC7B,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjD
|
|
1
|
+
{"version":3,"file":"server-client.d.ts","sourceRoot":"","sources":["../../../src/integrations/server-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE;QAC7B,WAAW,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjC;;OAEG;IACH,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEjD;;;;;;OAMG;IACH,0BAA0B,CAAC,OAAO,CAAC,EAAE;QACnC,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B,GAAG,OAAO,CAAC;QACV,YAAY,EAAE,qBAAqB,EAAE,CAAC;KACvC,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;CAC/B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Concurrency Control Utilities
|
|
3
|
+
* Utilities for controlling parallel execution with limits
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Execute an array of async functions with a concurrency limit
|
|
7
|
+
* Similar to p-map but simplified for our use case
|
|
8
|
+
*
|
|
9
|
+
* @param items - Array of items to process
|
|
10
|
+
* @param fn - Async function to execute for each item
|
|
11
|
+
* @param limit - Maximum number of concurrent executions (default: 3)
|
|
12
|
+
* @returns Promise that resolves to array of results
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const results = await parallelWithLimit(
|
|
17
|
+
* ['a', 'b', 'c', 'd', 'e'],
|
|
18
|
+
* async (item) => fetchData(item),
|
|
19
|
+
* 2 // Only 2 concurrent requests at a time
|
|
20
|
+
* );
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare function parallelWithLimit<T, R>(items: T[], fn: (item: T) => Promise<R>, limit?: number): Promise<R[]>;
|
|
24
|
+
//# sourceMappingURL=concurrency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concurrency.d.ts","sourceRoot":"","sources":["../../../src/utils/concurrency.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAC1C,KAAK,EAAE,CAAC,EAAE,EACV,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,EAC3B,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,CAAC,EAAE,CAAC,CAkCd"}
|