integrate-sdk 0.7.66 → 0.8.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 (44) hide show
  1. package/dist/adapters/index.js +39 -3
  2. package/dist/adapters/solid-start.js +39 -3
  3. package/dist/adapters/svelte-kit.js +39 -3
  4. package/dist/ai/cloudflare.d.ts +158 -0
  5. package/dist/ai/cloudflare.d.ts.map +1 -0
  6. package/dist/ai/cloudflare.js +4249 -0
  7. package/dist/ai/langchain.d.ts +139 -0
  8. package/dist/ai/langchain.d.ts.map +1 -0
  9. package/dist/ai/langchain.js +4237 -0
  10. package/dist/ai/llamaindex.d.ts +125 -0
  11. package/dist/ai/llamaindex.d.ts.map +1 -0
  12. package/dist/ai/llamaindex.js +4236 -0
  13. package/dist/ai/mastra.d.ts +138 -0
  14. package/dist/ai/mastra.d.ts.map +1 -0
  15. package/dist/ai/mastra.js +4240 -0
  16. package/dist/index.js +39 -3
  17. package/dist/server.js +39 -3
  18. package/dist/src/ai/cloudflare.d.ts +158 -0
  19. package/dist/src/ai/cloudflare.d.ts.map +1 -0
  20. package/dist/src/ai/langchain.d.ts +139 -0
  21. package/dist/src/ai/langchain.d.ts.map +1 -0
  22. package/dist/src/ai/llamaindex.d.ts +125 -0
  23. package/dist/src/ai/llamaindex.d.ts.map +1 -0
  24. package/dist/src/ai/mastra.d.ts +138 -0
  25. package/dist/src/ai/mastra.d.ts.map +1 -0
  26. package/dist/src/client.d.ts +14 -1
  27. package/dist/src/client.d.ts.map +1 -1
  28. package/dist/src/integrations/vercel-ai.d.ts +127 -0
  29. package/dist/src/integrations/vercel-ai.d.ts.map +1 -0
  30. package/dist/src/plugins/generic.d.ts +99 -0
  31. package/dist/src/plugins/generic.d.ts.map +1 -0
  32. package/dist/src/plugins/github-client.d.ts +320 -0
  33. package/dist/src/plugins/github-client.d.ts.map +1 -0
  34. package/dist/src/plugins/github.d.ts +89 -0
  35. package/dist/src/plugins/github.d.ts.map +1 -0
  36. package/dist/src/plugins/gmail-client.d.ts +106 -0
  37. package/dist/src/plugins/gmail-client.d.ts.map +1 -0
  38. package/dist/src/plugins/gmail.d.ts +87 -0
  39. package/dist/src/plugins/gmail.d.ts.map +1 -0
  40. package/dist/src/plugins/server-client.d.ts +18 -0
  41. package/dist/src/plugins/server-client.d.ts.map +1 -0
  42. package/dist/src/plugins/types.d.ts +70 -0
  43. package/dist/src/plugins/types.d.ts.map +1 -0
  44. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1325,7 +1325,7 @@ class OAuthManager {
1325
1325
  }
1326
1326
  clearProviderToken(provider) {
1327
1327
  this.providerTokens.delete(provider);
1328
- if (!this.getTokenCallback && typeof window !== "undefined" && window.localStorage) {
1328
+ if (!this.skipLocalStorage && typeof window !== "undefined" && window.localStorage) {
1329
1329
  try {
1330
1330
  window.localStorage.removeItem(`integrate_token_${provider}`);
1331
1331
  } catch (error) {
@@ -1336,7 +1336,7 @@ class OAuthManager {
1336
1336
  clearAllProviderTokens() {
1337
1337
  const providers = Array.from(this.providerTokens.keys());
1338
1338
  this.providerTokens.clear();
1339
- if (!this.getTokenCallback && typeof window !== "undefined" && window.localStorage) {
1339
+ if (!this.skipLocalStorage && typeof window !== "undefined" && window.localStorage) {
1340
1340
  for (const provider of providers) {
1341
1341
  try {
1342
1342
  window.localStorage.removeItem(`integrate_token_${provider}`);
@@ -2017,7 +2017,28 @@ class MCPClientBase {
2017
2017
  await this.oauthCallbackPromise;
2018
2018
  this.oauthCallbackPromise = null;
2019
2019
  }
2020
- return this.authState.get(provider)?.authenticated ?? false;
2020
+ try {
2021
+ const tokenData = await this.oauthManager.getProviderToken(provider);
2022
+ const isAuthenticated = !!tokenData;
2023
+ const currentState = this.authState.get(provider);
2024
+ if (currentState) {
2025
+ currentState.authenticated = isAuthenticated;
2026
+ if (isAuthenticated) {
2027
+ currentState.lastError = undefined;
2028
+ }
2029
+ } else {
2030
+ this.authState.set(provider, { authenticated: isAuthenticated });
2031
+ }
2032
+ return isAuthenticated;
2033
+ } catch (error) {
2034
+ const currentState = this.authState.get(provider);
2035
+ if (currentState) {
2036
+ currentState.authenticated = false;
2037
+ } else {
2038
+ this.authState.set(provider, { authenticated: false });
2039
+ }
2040
+ return false;
2041
+ }
2021
2042
  }
2022
2043
  async authorizedProviders() {
2023
2044
  if (this.oauthCallbackPromise) {
@@ -2045,6 +2066,21 @@ class MCPClientBase {
2045
2066
  this.eventEmitter.emit("auth:error", { provider, error });
2046
2067
  throw error;
2047
2068
  }
2069
+ if (options?.useExistingConnection) {
2070
+ const authStatus = await this.oauthManager.checkAuthStatus(provider);
2071
+ if (authStatus.authorized) {
2072
+ const tokenData = await this.oauthManager.getProviderToken(provider);
2073
+ if (tokenData) {
2074
+ this.eventEmitter.emit("auth:complete", {
2075
+ provider,
2076
+ accessToken: tokenData.accessToken,
2077
+ expiresAt: tokenData.expiresAt
2078
+ });
2079
+ this.authState.set(provider, { authenticated: true });
2080
+ }
2081
+ return;
2082
+ }
2083
+ }
2048
2084
  this.eventEmitter.emit("auth:started", { provider });
2049
2085
  try {
2050
2086
  await this.oauthManager.initiateFlow(provider, integration.oauth, options?.returnUrl);
package/dist/server.js CHANGED
@@ -1318,7 +1318,7 @@ class OAuthManager {
1318
1318
  }
1319
1319
  clearProviderToken(provider) {
1320
1320
  this.providerTokens.delete(provider);
1321
- if (!this.getTokenCallback && typeof window !== "undefined" && window.localStorage) {
1321
+ if (!this.skipLocalStorage && typeof window !== "undefined" && window.localStorage) {
1322
1322
  try {
1323
1323
  window.localStorage.removeItem(`integrate_token_${provider}`);
1324
1324
  } catch (error) {
@@ -1329,7 +1329,7 @@ class OAuthManager {
1329
1329
  clearAllProviderTokens() {
1330
1330
  const providers = Array.from(this.providerTokens.keys());
1331
1331
  this.providerTokens.clear();
1332
- if (!this.getTokenCallback && typeof window !== "undefined" && window.localStorage) {
1332
+ if (!this.skipLocalStorage && typeof window !== "undefined" && window.localStorage) {
1333
1333
  for (const provider of providers) {
1334
1334
  try {
1335
1335
  window.localStorage.removeItem(`integrate_token_${provider}`);
@@ -2008,7 +2008,28 @@ class MCPClientBase {
2008
2008
  await this.oauthCallbackPromise;
2009
2009
  this.oauthCallbackPromise = null;
2010
2010
  }
2011
- return this.authState.get(provider)?.authenticated ?? false;
2011
+ try {
2012
+ const tokenData = await this.oauthManager.getProviderToken(provider);
2013
+ const isAuthenticated = !!tokenData;
2014
+ const currentState = this.authState.get(provider);
2015
+ if (currentState) {
2016
+ currentState.authenticated = isAuthenticated;
2017
+ if (isAuthenticated) {
2018
+ currentState.lastError = undefined;
2019
+ }
2020
+ } else {
2021
+ this.authState.set(provider, { authenticated: isAuthenticated });
2022
+ }
2023
+ return isAuthenticated;
2024
+ } catch (error) {
2025
+ const currentState = this.authState.get(provider);
2026
+ if (currentState) {
2027
+ currentState.authenticated = false;
2028
+ } else {
2029
+ this.authState.set(provider, { authenticated: false });
2030
+ }
2031
+ return false;
2032
+ }
2012
2033
  }
2013
2034
  async authorizedProviders() {
2014
2035
  if (this.oauthCallbackPromise) {
@@ -2036,6 +2057,21 @@ class MCPClientBase {
2036
2057
  this.eventEmitter.emit("auth:error", { provider, error });
2037
2058
  throw error;
2038
2059
  }
2060
+ if (options?.useExistingConnection) {
2061
+ const authStatus = await this.oauthManager.checkAuthStatus(provider);
2062
+ if (authStatus.authorized) {
2063
+ const tokenData = await this.oauthManager.getProviderToken(provider);
2064
+ if (tokenData) {
2065
+ this.eventEmitter.emit("auth:complete", {
2066
+ provider,
2067
+ accessToken: tokenData.accessToken,
2068
+ expiresAt: tokenData.expiresAt
2069
+ });
2070
+ this.authState.set(provider, { authenticated: true });
2071
+ }
2072
+ return;
2073
+ }
2074
+ }
2039
2075
  this.eventEmitter.emit("auth:started", { provider });
2040
2076
  try {
2041
2077
  await this.oauthManager.initiateFlow(provider, integration.oauth, options?.returnUrl);
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Cloudflare Workers AI Integration
3
+ *
4
+ * Helper functions to convert MCP tools to Cloudflare Workers AI format
5
+ */
6
+ import type { MCPClient } from "../client.js";
7
+ import type { MCPTool } from "../protocol/messages.js";
8
+ import { type AIToolsOptions } from "./utils.js";
9
+ /**
10
+ * Cloudflare AI tool definition
11
+ * Compatible with Cloudflare Workers AI
12
+ */
13
+ export interface CloudflareTool {
14
+ type: 'function';
15
+ function: {
16
+ name: string;
17
+ description: string;
18
+ parameters: {
19
+ type: 'object';
20
+ properties: Record<string, {
21
+ type: string;
22
+ description?: string;
23
+ }>;
24
+ required: string[];
25
+ };
26
+ };
27
+ }
28
+ /**
29
+ * Options for converting MCP tools to Cloudflare format
30
+ */
31
+ export interface CloudflareToolsOptions extends AIToolsOptions {
32
+ }
33
+ /**
34
+ * Convert a single MCP tool to Cloudflare Workers AI format
35
+ *
36
+ * @param mcpTool - The MCP tool definition
37
+ * @param client - The MCP client instance (used for executing the tool)
38
+ * @param options - Optional configuration including provider tokens
39
+ * @returns Cloudflare compatible tool definition
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * const cloudflareTool = convertMCPToolToCloudflare(mcpTool, client);
44
+ * ```
45
+ */
46
+ export declare function convertMCPToolToCloudflare(mcpTool: MCPTool, _client: MCPClient<any>, _options?: CloudflareToolsOptions): CloudflareTool;
47
+ /**
48
+ * Convert all enabled MCP tools to Cloudflare Workers AI format
49
+ * Returns a dictionary keyed by tool name
50
+ *
51
+ * @param client - The MCP client instance (must be connected)
52
+ * @param options - Optional configuration including provider tokens
53
+ * @returns Dictionary of Cloudflare compatible tool definitions
54
+ *
55
+ * @example
56
+ * ```typescript
57
+ * // Client-side usage
58
+ * const tools = convertMCPToolsToCloudflare(mcpClient);
59
+ *
60
+ * // Server-side with provider tokens
61
+ * const tools = convertMCPToolsToCloudflare(serverClient, {
62
+ * providerTokens: { github: 'ghp_...', gmail: 'ya29...' }
63
+ * });
64
+ * ```
65
+ */
66
+ export declare function convertMCPToolsToCloudflare(client: MCPClient<any>, options?: CloudflareToolsOptions): Record<string, CloudflareTool>;
67
+ /**
68
+ * Execute a tool call from Cloudflare Workers AI
69
+ *
70
+ * @param client - The MCP client instance
71
+ * @param toolCall - The tool call with name and arguments
72
+ * @param options - Optional configuration including provider tokens
73
+ * @returns Tool execution result as JSON string
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * const result = await executeCloudflareToolCall(client, {
78
+ * name: 'github_create_issue',
79
+ * arguments: { owner: 'user', repo: 'repo', title: 'Bug' }
80
+ * }, { providerTokens });
81
+ * ```
82
+ */
83
+ export declare function executeCloudflareToolCall(client: MCPClient<any>, toolCall: {
84
+ name: string;
85
+ arguments: Record<string, unknown> | string;
86
+ }, options?: CloudflareToolsOptions): Promise<string>;
87
+ /**
88
+ * Get tools in a format compatible with Cloudflare Workers AI
89
+ *
90
+ * Automatically connects the client if not already connected.
91
+ *
92
+ * @param client - The MCP client instance
93
+ * @param options - Optional configuration including provider tokens for server-side usage
94
+ * @returns Dictionary of tools ready to use with Cloudflare Workers AI
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * // Cloudflare Worker usage
99
+ * import { createMCPClient, githubIntegration } from 'integrate-sdk';
100
+ * import { getCloudflareTools, executeCloudflareToolCall } from 'integrate-sdk/ai/cloudflare';
101
+ *
102
+ * export default {
103
+ * async fetch(request: Request, env: Env): Promise<Response> {
104
+ * const client = createMCPClient({
105
+ * integrations: [githubIntegration({ clientId: env.GITHUB_CLIENT_ID })],
106
+ * });
107
+ *
108
+ * const tools = await getCloudflareTools(client);
109
+ * const ai = new Ai(env.AI);
110
+ *
111
+ * const response = await ai.run('@cf/meta/llama-3-8b-instruct', {
112
+ * messages: [{ role: 'user', content: 'Create a GitHub issue' }],
113
+ * tools: Object.values(tools)
114
+ * });
115
+ *
116
+ * return Response.json(response);
117
+ * }
118
+ * };
119
+ * ```
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * // Server-side usage with tokens from client
124
+ * import { createMCPServer, githubIntegration } from 'integrate-sdk/server';
125
+ * import { getCloudflareTools, executeCloudflareToolCall } from 'integrate-sdk/ai/cloudflare';
126
+ *
127
+ * const { client: serverClient } = createMCPServer({
128
+ * integrations: [githubIntegration({
129
+ * clientId: '...',
130
+ * clientSecret: '...'
131
+ * })],
132
+ * });
133
+ *
134
+ * // In your API route
135
+ * export async function POST(req: Request) {
136
+ * const providerTokens = JSON.parse(req.headers.get('x-integrate-tokens') || '{}');
137
+ * const tools = await getCloudflareTools(serverClient, { providerTokens });
138
+ *
139
+ * // Use with Cloudflare AI
140
+ * const ai = new Ai(env.AI);
141
+ * const response = await ai.run('@cf/meta/llama-3-8b-instruct', {
142
+ * messages: [{ role: 'user', content: 'Create a GitHub issue' }],
143
+ * tools: Object.values(tools)
144
+ * });
145
+ *
146
+ * // Handle tool calls
147
+ * if (response.tool_calls) {
148
+ * for (const toolCall of response.tool_calls) {
149
+ * await executeCloudflareToolCall(serverClient, toolCall, { providerTokens });
150
+ * }
151
+ * }
152
+ *
153
+ * return Response.json(response);
154
+ * }
155
+ * ```
156
+ */
157
+ export declare function getCloudflareTools(client: MCPClient<any>, options?: CloudflareToolsOptions): Promise<Record<string, CloudflareTool>>;
158
+ //# sourceMappingURL=cloudflare.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/ai/cloudflare.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAkE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjH;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ,CAAC;YACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;gBACzB,IAAI,EAAE,MAAM,CAAC;gBACb,WAAW,CAAC,EAAE,MAAM,CAAC;aACtB,CAAC,CAAC;YACH,QAAQ,EAAE,MAAM,EAAE,CAAC;SACpB,CAAC;KACH,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,cAAc;CAAI;AAElE;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,EACvB,QAAQ,CAAC,EAAE,sBAAsB,GAChC,cAAc,CAahB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAShC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,QAAQ,EAAE;IACR,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC;CAC7C,EACD,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAezC"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * LangChain Integration
3
+ *
4
+ * Helper functions to convert MCP tools to LangChain DynamicStructuredTool format
5
+ */
6
+ import { z } from "zod";
7
+ import type { MCPClient } from "../client.js";
8
+ import type { MCPTool } from "../protocol/messages.js";
9
+ import { type AIToolsOptions } from "./utils.js";
10
+ /**
11
+ * LangChain DynamicStructuredTool definition
12
+ * Compatible with @langchain/core/tools
13
+ */
14
+ export interface LangChainTool {
15
+ name: string;
16
+ description: string;
17
+ schema: z.ZodType<any>;
18
+ func: (...args: any[]) => Promise<string>;
19
+ }
20
+ /**
21
+ * Options for converting MCP tools to LangChain format
22
+ */
23
+ export interface LangChainToolsOptions extends AIToolsOptions {
24
+ }
25
+ /**
26
+ * Convert a single MCP tool to LangChain DynamicStructuredTool format
27
+ *
28
+ * @param mcpTool - The MCP tool definition
29
+ * @param client - The MCP client instance (used for executing the tool)
30
+ * @param options - Optional configuration including provider tokens
31
+ * @returns LangChain compatible tool definition
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const langchainTool = convertMCPToolToLangChain(mcpTool, client);
36
+ * ```
37
+ */
38
+ export declare function convertMCPToolToLangChain(mcpTool: MCPTool, client: MCPClient<any>, options?: LangChainToolsOptions): LangChainTool;
39
+ /**
40
+ * Convert all enabled MCP tools to LangChain DynamicStructuredTool format
41
+ *
42
+ * @param client - The MCP client instance (must be connected)
43
+ * @param options - Optional configuration including provider tokens
44
+ * @returns Array of LangChain compatible tool definitions
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * // Client-side usage
49
+ * const tools = convertMCPToolsToLangChain(mcpClient);
50
+ *
51
+ * // Server-side with provider tokens
52
+ * const tools = convertMCPToolsToLangChain(serverClient, {
53
+ * providerTokens: { github: 'ghp_...', gmail: 'ya29...' }
54
+ * });
55
+ * ```
56
+ */
57
+ export declare function convertMCPToolsToLangChain(client: MCPClient<any>, options?: LangChainToolsOptions): LangChainTool[];
58
+ /**
59
+ * Get tools in a format compatible with LangChain
60
+ *
61
+ * Automatically connects the client if not already connected.
62
+ * Returns tool definitions that can be used with DynamicStructuredTool.
63
+ *
64
+ * @param client - The MCP client instance
65
+ * @param options - Optional configuration including provider tokens for server-side usage
66
+ * @returns Array of tools ready to use with LangChain
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * // Client-side usage
71
+ * import { createMCPClient, githubIntegration } from 'integrate-sdk';
72
+ * import { getLangChainTools } from 'integrate-sdk/ai/langchain';
73
+ * import { DynamicStructuredTool } from '@langchain/core/tools';
74
+ * import { ChatOpenAI } from '@langchain/openai';
75
+ * import { AgentExecutor, createOpenAIFunctionsAgent } from 'langchain/agents';
76
+ *
77
+ * const client = createMCPClient({
78
+ * integrations: [githubIntegration({ clientId: '...' })],
79
+ * });
80
+ *
81
+ * const toolConfigs = await getLangChainTools(client);
82
+ *
83
+ * // Create DynamicStructuredTools from configs
84
+ * const tools = toolConfigs.map(config =>
85
+ * new DynamicStructuredTool(config)
86
+ * );
87
+ *
88
+ * const model = new ChatOpenAI({ temperature: 0 });
89
+ * const agent = await createOpenAIFunctionsAgent({
90
+ * llm: model,
91
+ * tools
92
+ * });
93
+ *
94
+ * const executor = new AgentExecutor({ agent, tools });
95
+ * const result = await executor.invoke({
96
+ * input: "Create a GitHub issue"
97
+ * });
98
+ * ```
99
+ *
100
+ * @example
101
+ * ```typescript
102
+ * // Server-side usage with tokens from client
103
+ * import { createMCPServer, githubIntegration } from 'integrate-sdk/server';
104
+ * import { getLangChainTools } from 'integrate-sdk/ai/langchain';
105
+ *
106
+ * const { client: serverClient } = createMCPServer({
107
+ * integrations: [githubIntegration({
108
+ * clientId: '...',
109
+ * clientSecret: '...'
110
+ * })],
111
+ * });
112
+ *
113
+ * // In your API route
114
+ * export async function POST(req: Request) {
115
+ * const providerTokens = JSON.parse(req.headers.get('x-integrate-tokens') || '{}');
116
+ * const toolConfigs = await getLangChainTools(serverClient, { providerTokens });
117
+ *
118
+ * // Create DynamicStructuredTools
119
+ * const tools = toolConfigs.map(config =>
120
+ * new DynamicStructuredTool(config)
121
+ * );
122
+ *
123
+ * const model = new ChatOpenAI({ temperature: 0 });
124
+ * const agent = await createOpenAIFunctionsAgent({
125
+ * llm: model,
126
+ * tools
127
+ * });
128
+ *
129
+ * const executor = new AgentExecutor({ agent, tools });
130
+ * const result = await executor.invoke({
131
+ * input: "Create a GitHub issue"
132
+ * });
133
+ *
134
+ * return Response.json(result);
135
+ * }
136
+ * ```
137
+ */
138
+ export declare function getLangChainTools(client: MCPClient<any>, options?: LangChainToolsOptions): Promise<LangChainTool[]>;
139
+ //# sourceMappingURL=langchain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"langchain.d.ts","sourceRoot":"","sources":["../../../src/ai/langchain.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,cAAc;CAAI;AAEjE;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAYf;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,EAAE,CAGjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,aAAa,EAAE,CAAC,CAe1B"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * LlamaIndex Integration
3
+ *
4
+ * Helper functions to convert MCP tools to LlamaIndex tool format
5
+ */
6
+ import { z } from "zod";
7
+ import type { MCPClient } from "../client.js";
8
+ import type { MCPTool } from "../protocol/messages.js";
9
+ import { type AIToolsOptions } from "./utils.js";
10
+ /**
11
+ * LlamaIndex tool definition
12
+ * Compatible with llamaindex package
13
+ */
14
+ export interface LlamaIndexTool {
15
+ name: string;
16
+ description: string;
17
+ parameters: z.ZodType<any>;
18
+ execute: (input: Record<string, unknown>) => Promise<string>;
19
+ }
20
+ /**
21
+ * Options for converting MCP tools to LlamaIndex format
22
+ */
23
+ export interface LlamaIndexToolsOptions extends AIToolsOptions {
24
+ }
25
+ /**
26
+ * Convert a single MCP tool to LlamaIndex format
27
+ *
28
+ * @param mcpTool - The MCP tool definition
29
+ * @param client - The MCP client instance (used for executing the tool)
30
+ * @param options - Optional configuration including provider tokens
31
+ * @returns LlamaIndex compatible tool definition
32
+ *
33
+ * @example
34
+ * ```typescript
35
+ * const llamaIndexTool = convertMCPToolToLlamaIndex(mcpTool, client);
36
+ * ```
37
+ */
38
+ export declare function convertMCPToolToLlamaIndex(mcpTool: MCPTool, client: MCPClient<any>, options?: LlamaIndexToolsOptions): LlamaIndexTool;
39
+ /**
40
+ * Convert all enabled MCP tools to LlamaIndex format
41
+ *
42
+ * @param client - The MCP client instance (must be connected)
43
+ * @param options - Optional configuration including provider tokens
44
+ * @returns Array of LlamaIndex compatible tool definitions
45
+ *
46
+ * @example
47
+ * ```typescript
48
+ * // Client-side usage
49
+ * const tools = convertMCPToolsToLlamaIndex(mcpClient);
50
+ *
51
+ * // Server-side with provider tokens
52
+ * const tools = convertMCPToolsToLlamaIndex(serverClient, {
53
+ * providerTokens: { github: 'ghp_...', gmail: 'ya29...' }
54
+ * });
55
+ * ```
56
+ */
57
+ export declare function convertMCPToolsToLlamaIndex(client: MCPClient<any>, options?: LlamaIndexToolsOptions): LlamaIndexTool[];
58
+ /**
59
+ * Get tools in a format compatible with LlamaIndex
60
+ *
61
+ * Automatically connects the client if not already connected.
62
+ * Returns tool configurations that can be used with LlamaIndex's tool system.
63
+ *
64
+ * @param client - The MCP client instance
65
+ * @param options - Optional configuration including provider tokens for server-side usage
66
+ * @returns Array of tools ready to use with LlamaIndex
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * // Client-side usage
71
+ * import { createMCPClient, githubIntegration } from 'integrate-sdk';
72
+ * import { getLlamaIndexTools } from 'integrate-sdk/ai/llamaindex';
73
+ * import { OpenAIAgent, tool } from 'llamaindex';
74
+ *
75
+ * const client = createMCPClient({
76
+ * integrations: [githubIntegration({ clientId: '...' })],
77
+ * });
78
+ *
79
+ * const toolConfigs = await getLlamaIndexTools(client);
80
+ *
81
+ * // Create LlamaIndex tools
82
+ * const tools = toolConfigs.map(config =>
83
+ * tool(config)
84
+ * );
85
+ *
86
+ * const agent = new OpenAIAgent({ tools });
87
+ * const response = await agent.chat({
88
+ * message: "Create a GitHub issue"
89
+ * });
90
+ * ```
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * // Server-side usage with tokens from client
95
+ * import { createMCPServer, githubIntegration } from 'integrate-sdk/server';
96
+ * import { getLlamaIndexTools } from 'integrate-sdk/ai/llamaindex';
97
+ *
98
+ * const { client: serverClient } = createMCPServer({
99
+ * integrations: [githubIntegration({
100
+ * clientId: '...',
101
+ * clientSecret: '...'
102
+ * })],
103
+ * });
104
+ *
105
+ * // In your API route
106
+ * export async function POST(req: Request) {
107
+ * const providerTokens = JSON.parse(req.headers.get('x-integrate-tokens') || '{}');
108
+ * const toolConfigs = await getLlamaIndexTools(serverClient, { providerTokens });
109
+ *
110
+ * // Create LlamaIndex tools
111
+ * const tools = toolConfigs.map(config =>
112
+ * tool(config)
113
+ * );
114
+ *
115
+ * const agent = new OpenAIAgent({ tools });
116
+ * const response = await agent.chat({
117
+ * message: "Create a GitHub issue"
118
+ * });
119
+ *
120
+ * return Response.json(response);
121
+ * }
122
+ * ```
123
+ */
124
+ export declare function getLlamaIndexTools(client: MCPClient<any>, options?: LlamaIndexToolsOptions): Promise<LlamaIndexTool[]>;
125
+ //# sourceMappingURL=llamaindex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llamaindex.d.ts","sourceRoot":"","sources":["../../../src/ai/llamaindex.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,cAAc;CAAI;AAElE;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,cAAc,CAUhB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,cAAc,EAAE,CAGlB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,cAAc,EAAE,CAAC,CAe3B"}