@inkeep/agents-core 0.53.8 → 0.53.10

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 (56) hide show
  1. package/dist/auth/auth-validation-schemas.d.ts +152 -152
  2. package/dist/auth/auth.d.ts +11 -9
  3. package/dist/auth/auth.js +12 -3
  4. package/dist/auth/cleanup.d.ts +12 -0
  5. package/dist/auth/cleanup.js +43 -0
  6. package/dist/auth/init.js +12 -2
  7. package/dist/auth/permissions.d.ts +9 -9
  8. package/dist/client-exports.d.ts +3 -3
  9. package/dist/constants/otel-attributes.d.ts +7 -0
  10. package/dist/constants/otel-attributes.js +10 -3
  11. package/dist/constants/signoz-queries.d.ts +1 -0
  12. package/dist/constants/signoz-queries.js +2 -1
  13. package/dist/data-access/index.d.ts +2 -2
  14. package/dist/data-access/index.js +2 -2
  15. package/dist/data-access/manage/agents.d.ts +26 -26
  16. package/dist/data-access/manage/agents.js +3 -1
  17. package/dist/data-access/manage/artifactComponents.d.ts +10 -10
  18. package/dist/data-access/manage/contextConfigs.d.ts +12 -12
  19. package/dist/data-access/manage/dataComponents.d.ts +4 -4
  20. package/dist/data-access/manage/functionTools.d.ts +14 -14
  21. package/dist/data-access/manage/scheduledTriggers.d.ts +12 -1
  22. package/dist/data-access/manage/scheduledTriggers.js +8 -1
  23. package/dist/data-access/manage/skills.d.ts +13 -13
  24. package/dist/data-access/manage/subAgentExternalAgentRelations.d.ts +24 -24
  25. package/dist/data-access/manage/subAgentRelations.d.ts +28 -28
  26. package/dist/data-access/manage/subAgentTeamAgentRelations.d.ts +18 -18
  27. package/dist/data-access/manage/subAgents.d.ts +18 -18
  28. package/dist/data-access/manage/tools.d.ts +24 -24
  29. package/dist/data-access/manage/tools.js +2 -2
  30. package/dist/data-access/runtime/apiKeys.d.ts +12 -12
  31. package/dist/data-access/runtime/conversations.d.ts +24 -24
  32. package/dist/data-access/runtime/messages.d.ts +9 -9
  33. package/dist/data-access/runtime/tasks.d.ts +6 -6
  34. package/dist/db/manage/manage-schema.d.ts +391 -353
  35. package/dist/db/manage/manage-schema.js +2 -0
  36. package/dist/db/runtime/runtime-schema.d.ts +262 -262
  37. package/dist/dolt/index.d.ts +2 -2
  38. package/dist/dolt/index.js +2 -2
  39. package/dist/dolt/ref-helpers.d.ts +5 -1
  40. package/dist/dolt/ref-helpers.js +20 -1
  41. package/dist/index.d.ts +4 -4
  42. package/dist/index.js +4 -4
  43. package/dist/setup/setup.js +19 -5
  44. package/dist/utils/index.d.ts +2 -2
  45. package/dist/utils/index.js +2 -2
  46. package/dist/utils/third-party-mcp-servers/composio-client.d.ts +8 -10
  47. package/dist/utils/third-party-mcp-servers/composio-client.js +19 -15
  48. package/dist/utils/third-party-mcp-servers/index.d.ts +2 -2
  49. package/dist/utils/third-party-mcp-servers/index.js +2 -2
  50. package/dist/validation/drizzle-schema-helpers.d.ts +3 -3
  51. package/dist/validation/schemas.d.ts +1871 -1753
  52. package/dist/validation/schemas.js +7 -4
  53. package/drizzle/manage/0011_smooth_whizzer.sql +2 -0
  54. package/drizzle/manage/meta/0011_snapshot.json +3685 -0
  55. package/drizzle/manage/meta/_journal.json +7 -0
  56. package/package.json +3 -3
@@ -210,15 +210,23 @@ async function generateSecrets() {
210
210
  for (let i = 0; i < lines.length; i++) {
211
211
  if (lines[i].startsWith("# INKEEP_AGENTS_TEMP_JWT_PRIVATE_KEY=") || lines[i].startsWith("INKEEP_AGENTS_TEMP_JWT_PRIVATE_KEY=")) {
212
212
  lines[i] = `INKEEP_AGENTS_TEMP_JWT_PRIVATE_KEY=${privateKeyBase64}`;
213
+ process.env.INKEEP_AGENTS_TEMP_JWT_PRIVATE_KEY = privateKeyBase64;
213
214
  privateKeyFound = true;
214
215
  }
215
216
  if (lines[i].startsWith("# INKEEP_AGENTS_TEMP_JWT_PUBLIC_KEY=") || lines[i].startsWith("INKEEP_AGENTS_TEMP_JWT_PUBLIC_KEY=")) {
216
217
  lines[i] = `INKEEP_AGENTS_TEMP_JWT_PUBLIC_KEY=${publicKeyBase64}`;
218
+ process.env.INKEEP_AGENTS_TEMP_JWT_PUBLIC_KEY = publicKeyBase64;
217
219
  publicKeyFound = true;
218
220
  }
219
221
  }
220
- if (!privateKeyFound) lines.push(`INKEEP_AGENTS_TEMP_JWT_PRIVATE_KEY=${privateKeyBase64}`);
221
- if (!publicKeyFound) lines.push(`INKEEP_AGENTS_TEMP_JWT_PUBLIC_KEY=${publicKeyBase64}`);
222
+ if (!privateKeyFound) {
223
+ lines.push(`INKEEP_AGENTS_TEMP_JWT_PRIVATE_KEY=${privateKeyBase64}`);
224
+ process.env.INKEEP_AGENTS_TEMP_JWT_PRIVATE_KEY = privateKeyBase64;
225
+ }
226
+ if (!publicKeyFound) {
227
+ lines.push(`INKEEP_AGENTS_TEMP_JWT_PUBLIC_KEY=${publicKeyBase64}`);
228
+ process.env.INKEEP_AGENTS_TEMP_JWT_PUBLIC_KEY = publicKeyBase64;
229
+ }
222
230
  modified = true;
223
231
  logSuccess("JWT keys generated and added to .env");
224
232
  } catch (error) {
@@ -248,20 +256,26 @@ async function generateSecrets() {
248
256
  for (let i = 0; i < lines.length; i++) if (lines[i].startsWith(`# ${varName}=`) || lines[i].startsWith(`${varName}=`)) {
249
257
  found = true;
250
258
  if (lines[i].startsWith(`# ${varName}=`)) {
251
- lines[i] = `${varName}=${generate()}`;
259
+ const value = generate();
260
+ lines[i] = `${varName}=${value}`;
261
+ process.env[varName] = value;
252
262
  modified = true;
253
263
  break;
254
264
  }
255
265
  const eqIdx = lines[i].indexOf("=");
256
266
  const currentValue = lines[i].substring(eqIdx + 1).trim();
257
267
  if (currentValue === "" || placeholders.includes(currentValue)) {
258
- lines[i] = `${varName}=${generate()}`;
268
+ const value = generate();
269
+ lines[i] = `${varName}=${value}`;
270
+ process.env[varName] = value;
259
271
  modified = true;
260
272
  }
261
273
  break;
262
274
  }
263
275
  if (!found) {
264
- lines.push(`${varName}=${generate()}`);
276
+ const value = generate();
277
+ lines.push(`${varName}=${value}`);
278
+ process.env[varName] = value;
265
279
  modified = true;
266
280
  }
267
281
  }
@@ -22,10 +22,10 @@ import { SignSlackUserTokenParams, SlackAccessTokenPayload, SlackAccessTokenPayl
22
22
  import { ParsedSSEResponse, parseSSEResponse } from "./sse-parser.js";
23
23
  import { SignedTempToken, TempTokenPayload, signTempToken, verifyTempToken } from "./temp-jwt.js";
24
24
  import { interpolateTemplate } from "./template-interpolation.js";
25
- import { CredentialScope, buildComposioMCPUrl, extractComposioServerId, fetchComposioServers, fetchSingleComposioServer, getComposioOAuthRedirectUrl, getComposioUserId, isComposioMCPServerAuthenticated } from "./third-party-mcp-servers/composio-client.js";
25
+ import { CredentialScope, configureComposioMCPServer, extractComposioServerId, fetchComposioServers, fetchSingleComposioServer, getComposioOAuthRedirectUrl, getComposioUserId, isComposioMCPServerAuthenticated } from "./third-party-mcp-servers/composio-client.js";
26
26
  import { isThirdPartyMCPServerAuthenticated } from "./third-party-mcp-servers/third-party-check.js";
27
27
  import "./third-party-mcp-servers/index.js";
28
28
  import { flushTraces, getTracer, setSpanWithError, unwrapError } from "./tracer-factory.js";
29
29
  import { HashedHeaderValue, SignatureVerificationErrorCode, SignatureVerificationResult, TriggerAuthResult, hashAuthenticationHeaders, hashTriggerHeaderValue, validateTriggerHeaderValue, verifySignatureWithConfig, verifyTriggerAuth } from "./trigger-auth.js";
30
30
  import { _resetWaitUntilCache, getWaitUntil } from "./wait-until.js";
31
- export { ApiKeyGenerationResult, CommonCreateErrorResponses, CommonDeleteErrorResponses, CommonGetErrorResponses, CommonUpdateErrorResponses, CredentialScope, ERROR_DOCS_BASE_URL, ErrorCode, ErrorCodes, ErrorResponse, GenerateInternalServiceTokenParams, GenerateServiceTokenParams, HashedHeaderValue, InternalServiceId, InternalServiceTokenPayload, InternalServices, JsonTransformer, JwtVerifyResult, LLMMessage, LoggerFactoryConfig, McpClient, McpClientOptions, McpOAuthFlowResult, McpSSEConfig, McpServerConfig, McpStreamableHttpConfig, McpTokenExchangeResult, MockLanguageModel, ModelFactory, OAuthConfig, ParsedSSEResponse, PinoLogger, PinoLoggerConfig, ProblemDetails, ServiceTokenPayload, SignJwtOptions, SignSlackLinkTokenParams, SignSlackUserTokenParams, SignatureVerificationErrorCode, SignatureVerificationResult, SignedTempToken, SlackAccessTokenPayload, SlackAccessTokenPayloadSchema, SlackLinkIntent, SlackLinkIntentSchema, SlackLinkTokenPayload, SlackLinkTokenPayloadSchema, TempTokenPayload, TriggerAuthResult, VerifyInternalServiceTokenResult, VerifyJwtOptions, VerifyServiceTokenResult, VerifySlackLinkTokenResult, VerifySlackUserTokenResult, _resetWaitUntilCache, buildComposioMCPUrl, commonCreateErrorResponses, commonDeleteErrorResponses, commonGetErrorResponses, commonUpdateErrorResponses, convertZodToJsonSchema, convertZodToJsonSchemaWithPreview, createApiError, createMockModel, decodeJwtPayload, detectAuthenticationRequired, errorResponseSchema, errorSchemaFactory, exchangeMcpAuthorizationCode, extractBearerToken, extractComposioServerId, extractPreviewFields, extractPublicId, fetchComposioServers, fetchSingleComposioServer, flushTraces, formatMessagesForLLM, formatMessagesForLLMContext, generateApiKey, generateId, generateInternalServiceToken, generateServiceToken, getComposioOAuthRedirectUrl, getComposioUserId, getConversationId, getCredentialStoreLookupKeyFromRetrievalParams, getInProcessFetch, getJwtSecret, getLogger, getMetadataFromApiKey, getTracer, getWaitUntil, handleApiError, hasIssuer, hashApiKey, hashAuthenticationHeaders, hashTriggerHeaderValue, initiateMcpOAuthFlow, interpolateTemplate, isApiKeyExpired, isComposioMCPServerAuthenticated, isInternalServiceToken, isSlackUserToken, isThirdPartyMCPServerAuthenticated, isUniqueConstraintError, isZodSchema, loggerFactory, maskApiKey, normalizeDateString, parseEmbeddedJson, parseSSEResponse, preview, problemDetailsSchema, registerAppFetch, retryWithBackoff, setSpanWithError, signJwt, signSlackLinkToken, signSlackUserToken, signTempToken, throwIfUniqueConstraintError, toISODateString, unwrapError, validateApiKey, validateInternalServiceProjectAccess, validateInternalServiceTenantAccess, validateTargetAgent, validateTenantId, validateTriggerHeaderValue, verifyAuthorizationHeader, verifyInternalServiceAuthHeader, verifyInternalServiceToken, verifyJwt, verifyServiceToken, verifySignatureWithConfig, verifySlackLinkToken, verifySlackUserToken, verifyTempToken, verifyTriggerAuth };
31
+ export { ApiKeyGenerationResult, CommonCreateErrorResponses, CommonDeleteErrorResponses, CommonGetErrorResponses, CommonUpdateErrorResponses, CredentialScope, ERROR_DOCS_BASE_URL, ErrorCode, ErrorCodes, ErrorResponse, GenerateInternalServiceTokenParams, GenerateServiceTokenParams, HashedHeaderValue, InternalServiceId, InternalServiceTokenPayload, InternalServices, JsonTransformer, JwtVerifyResult, LLMMessage, LoggerFactoryConfig, McpClient, McpClientOptions, McpOAuthFlowResult, McpSSEConfig, McpServerConfig, McpStreamableHttpConfig, McpTokenExchangeResult, MockLanguageModel, ModelFactory, OAuthConfig, ParsedSSEResponse, PinoLogger, PinoLoggerConfig, ProblemDetails, ServiceTokenPayload, SignJwtOptions, SignSlackLinkTokenParams, SignSlackUserTokenParams, SignatureVerificationErrorCode, SignatureVerificationResult, SignedTempToken, SlackAccessTokenPayload, SlackAccessTokenPayloadSchema, SlackLinkIntent, SlackLinkIntentSchema, SlackLinkTokenPayload, SlackLinkTokenPayloadSchema, TempTokenPayload, TriggerAuthResult, VerifyInternalServiceTokenResult, VerifyJwtOptions, VerifyServiceTokenResult, VerifySlackLinkTokenResult, VerifySlackUserTokenResult, _resetWaitUntilCache, commonCreateErrorResponses, commonDeleteErrorResponses, commonGetErrorResponses, commonUpdateErrorResponses, configureComposioMCPServer, convertZodToJsonSchema, convertZodToJsonSchemaWithPreview, createApiError, createMockModel, decodeJwtPayload, detectAuthenticationRequired, errorResponseSchema, errorSchemaFactory, exchangeMcpAuthorizationCode, extractBearerToken, extractComposioServerId, extractPreviewFields, extractPublicId, fetchComposioServers, fetchSingleComposioServer, flushTraces, formatMessagesForLLM, formatMessagesForLLMContext, generateApiKey, generateId, generateInternalServiceToken, generateServiceToken, getComposioOAuthRedirectUrl, getComposioUserId, getConversationId, getCredentialStoreLookupKeyFromRetrievalParams, getInProcessFetch, getJwtSecret, getLogger, getMetadataFromApiKey, getTracer, getWaitUntil, handleApiError, hasIssuer, hashApiKey, hashAuthenticationHeaders, hashTriggerHeaderValue, initiateMcpOAuthFlow, interpolateTemplate, isApiKeyExpired, isComposioMCPServerAuthenticated, isInternalServiceToken, isSlackUserToken, isThirdPartyMCPServerAuthenticated, isUniqueConstraintError, isZodSchema, loggerFactory, maskApiKey, normalizeDateString, parseEmbeddedJson, parseSSEResponse, preview, problemDetailsSchema, registerAppFetch, retryWithBackoff, setSpanWithError, signJwt, signSlackLinkToken, signSlackUserToken, signTempToken, throwIfUniqueConstraintError, toISODateString, unwrapError, validateApiKey, validateInternalServiceProjectAccess, validateInternalServiceTenantAccess, validateTargetAgent, validateTenantId, validateTriggerHeaderValue, verifyAuthorizationHeader, verifyInternalServiceAuthHeader, verifyInternalServiceToken, verifyJwt, verifyServiceToken, verifySignatureWithConfig, verifySlackLinkToken, verifySlackUserToken, verifyTempToken, verifyTriggerAuth };
@@ -22,11 +22,11 @@ import { SlackAccessTokenPayloadSchema, isSlackUserToken, signSlackUserToken, ve
22
22
  import { parseSSEResponse } from "./sse-parser.js";
23
23
  import { signTempToken, verifyTempToken } from "./temp-jwt.js";
24
24
  import { interpolateTemplate } from "./template-interpolation.js";
25
- import { buildComposioMCPUrl, extractComposioServerId, fetchComposioServers, fetchSingleComposioServer, getComposioOAuthRedirectUrl, getComposioUserId, isComposioMCPServerAuthenticated } from "./third-party-mcp-servers/composio-client.js";
25
+ import { configureComposioMCPServer, extractComposioServerId, fetchComposioServers, fetchSingleComposioServer, getComposioOAuthRedirectUrl, getComposioUserId, isComposioMCPServerAuthenticated } from "./third-party-mcp-servers/composio-client.js";
26
26
  import { isThirdPartyMCPServerAuthenticated } from "./third-party-mcp-servers/third-party-check.js";
27
27
  import "./third-party-mcp-servers/index.js";
28
28
  import { flushTraces, getTracer, setSpanWithError, unwrapError } from "./tracer-factory.js";
29
29
  import { hashAuthenticationHeaders, hashTriggerHeaderValue, validateTriggerHeaderValue, verifySignatureWithConfig, verifyTriggerAuth } from "./trigger-auth.js";
30
30
  import { _resetWaitUntilCache, getWaitUntil } from "./wait-until.js";
31
31
 
32
- export { ERROR_DOCS_BASE_URL, ErrorCode, InternalServices, JsonTransformer, McpClient, MockLanguageModel, ModelFactory, PinoLogger, SlackAccessTokenPayloadSchema, SlackLinkIntentSchema, SlackLinkTokenPayloadSchema, _resetWaitUntilCache, buildComposioMCPUrl, commonCreateErrorResponses, commonDeleteErrorResponses, commonGetErrorResponses, commonUpdateErrorResponses, convertZodToJsonSchema, convertZodToJsonSchemaWithPreview, createApiError, createMockModel, decodeJwtPayload, detectAuthenticationRequired, errorResponseSchema, errorSchemaFactory, exchangeMcpAuthorizationCode, extractBearerToken, extractComposioServerId, extractPreviewFields, extractPublicId, fetchComposioServers, fetchSingleComposioServer, flushTraces, formatMessagesForLLM, formatMessagesForLLMContext, generateApiKey, generateId, generateInternalServiceToken, generateServiceToken, getComposioOAuthRedirectUrl, getComposioUserId, getConversationId, getCredentialStoreLookupKeyFromRetrievalParams, getInProcessFetch, getJwtSecret, getLogger, getMetadataFromApiKey, getTracer, getWaitUntil, handleApiError, hasIssuer, hashApiKey, hashAuthenticationHeaders, hashTriggerHeaderValue, initiateMcpOAuthFlow, interpolateTemplate, isApiKeyExpired, isComposioMCPServerAuthenticated, isInternalServiceToken, isSlackUserToken, isThirdPartyMCPServerAuthenticated, isUniqueConstraintError, isZodSchema, loggerFactory, maskApiKey, normalizeDateString, parseEmbeddedJson, parseSSEResponse, preview, problemDetailsSchema, registerAppFetch, retryWithBackoff, setSpanWithError, signJwt, signSlackLinkToken, signSlackUserToken, signTempToken, throwIfUniqueConstraintError, toISODateString, unwrapError, validateApiKey, validateInternalServiceProjectAccess, validateInternalServiceTenantAccess, validateTargetAgent, validateTenantId, validateTriggerHeaderValue, verifyAuthorizationHeader, verifyInternalServiceAuthHeader, verifyInternalServiceToken, verifyJwt, verifyServiceToken, verifySignatureWithConfig, verifySlackLinkToken, verifySlackUserToken, verifyTempToken, verifyTriggerAuth };
32
+ export { ERROR_DOCS_BASE_URL, ErrorCode, InternalServices, JsonTransformer, McpClient, MockLanguageModel, ModelFactory, PinoLogger, SlackAccessTokenPayloadSchema, SlackLinkIntentSchema, SlackLinkTokenPayloadSchema, _resetWaitUntilCache, commonCreateErrorResponses, commonDeleteErrorResponses, commonGetErrorResponses, commonUpdateErrorResponses, configureComposioMCPServer, convertZodToJsonSchema, convertZodToJsonSchemaWithPreview, createApiError, createMockModel, decodeJwtPayload, detectAuthenticationRequired, errorResponseSchema, errorSchemaFactory, exchangeMcpAuthorizationCode, extractBearerToken, extractComposioServerId, extractPreviewFields, extractPublicId, fetchComposioServers, fetchSingleComposioServer, flushTraces, formatMessagesForLLM, formatMessagesForLLMContext, generateApiKey, generateId, generateInternalServiceToken, generateServiceToken, getComposioOAuthRedirectUrl, getComposioUserId, getConversationId, getCredentialStoreLookupKeyFromRetrievalParams, getInProcessFetch, getJwtSecret, getLogger, getMetadataFromApiKey, getTracer, getWaitUntil, handleApiError, hasIssuer, hashApiKey, hashAuthenticationHeaders, hashTriggerHeaderValue, initiateMcpOAuthFlow, interpolateTemplate, isApiKeyExpired, isComposioMCPServerAuthenticated, isInternalServiceToken, isSlackUserToken, isThirdPartyMCPServerAuthenticated, isUniqueConstraintError, isZodSchema, loggerFactory, maskApiKey, normalizeDateString, parseEmbeddedJson, parseSSEResponse, preview, problemDetailsSchema, registerAppFetch, retryWithBackoff, setSpanWithError, signJwt, signSlackLinkToken, signSlackUserToken, signTempToken, throwIfUniqueConstraintError, toISODateString, unwrapError, validateApiKey, validateInternalServiceProjectAccess, validateInternalServiceTenantAccess, validateTargetAgent, validateTenantId, validateTriggerHeaderValue, verifyAuthorizationHeader, verifyInternalServiceAuthHeader, verifyInternalServiceToken, verifyJwt, verifyServiceToken, verifySignatureWithConfig, verifySlackLinkToken, verifySlackUserToken, verifyTempToken, verifyTriggerAuth };
@@ -1,3 +1,4 @@
1
+ import { McpServerConfig } from "../mcp-client.js";
1
2
  import { PrebuiltMCPServerSchema } from "../../validation/schemas.js";
2
3
  import { z } from "@hono/zod-openapi";
3
4
 
@@ -15,17 +16,14 @@ type CredentialScope = 'project' | 'user';
15
16
  */
16
17
  declare function getComposioUserId(tenantId: string, projectId: string, credentialScope: CredentialScope, userId?: string): string;
17
18
  /**
18
- * Build a Composio MCP URL with the appropriate user_id parameter
19
- * Consolidates user_id injection logic used across the codebase
19
+ * Configure a Composio MCP server config with the appropriate user_id and x-api-key.
20
+ * Mutates serverConfig in place:
21
+ * - Injects user_id query param into the URL (scoped by tenant/project/user)
22
+ * - Injects x-api-key header from COMPOSIO_API_KEY env var
20
23
  *
21
- * @param baseUrl - The base MCP server URL
22
- * @param tenantId - The tenant ID
23
- * @param projectId - The project ID
24
- * @param credentialScope - Whether credentials are 'project' or 'user' scoped
25
- * @param userId - Optional user ID (required for user-scoped credentials)
26
- * @returns The URL with user_id parameter set, or original URL if not a Composio URL
24
+ * No-op if the URL is not a composio.dev URL or already has a user_id.
27
25
  */
28
- declare function buildComposioMCPUrl(baseUrl: string, tenantId: string, projectId: string, credentialScope: CredentialScope, userId?: string): string;
26
+ declare function configureComposioMCPServer(serverConfig: McpServerConfig, tenantId: string, projectId: string, credentialScope: CredentialScope, userId?: string): void;
29
27
  /**
30
28
  * Extract server ID from a Composio MCP URL
31
29
  * Example: https://backend.composio.dev/v3/mcp/1234-1234-1234?user_id=... -> 1234-1234-1234
@@ -56,4 +54,4 @@ declare function fetchComposioServers(): Promise<PrebuiltMCPServer[]>;
56
54
  */
57
55
  declare function fetchSingleComposioServer(tenantId: string, projectId: string, mcpServerUrl: string, credentialScope?: CredentialScope, userId?: string): Promise<PrebuiltMCPServer | null>;
58
56
  //#endregion
59
- export { CredentialScope, buildComposioMCPUrl, extractComposioServerId, fetchComposioServers, fetchSingleComposioServer, getComposioOAuthRedirectUrl, getComposioUserId, isComposioMCPServerAuthenticated };
57
+ export { CredentialScope, configureComposioMCPServer, extractComposioServerId, fetchComposioServers, fetchSingleComposioServer, getComposioOAuthRedirectUrl, getComposioUserId, isComposioMCPServerAuthenticated };
@@ -67,23 +67,27 @@ function getComposioUserId(tenantId, projectId, credentialScope, userId) {
67
67
  return deriveComposioUserId(tenantId, projectId);
68
68
  }
69
69
  /**
70
- * Build a Composio MCP URL with the appropriate user_id parameter
71
- * Consolidates user_id injection logic used across the codebase
70
+ * Configure a Composio MCP server config with the appropriate user_id and x-api-key.
71
+ * Mutates serverConfig in place:
72
+ * - Injects user_id query param into the URL (scoped by tenant/project/user)
73
+ * - Injects x-api-key header from COMPOSIO_API_KEY env var
72
74
  *
73
- * @param baseUrl - The base MCP server URL
74
- * @param tenantId - The tenant ID
75
- * @param projectId - The project ID
76
- * @param credentialScope - Whether credentials are 'project' or 'user' scoped
77
- * @param userId - Optional user ID (required for user-scoped credentials)
78
- * @returns The URL with user_id parameter set, or original URL if not a Composio URL
75
+ * No-op if the URL is not a composio.dev URL or already has a user_id.
79
76
  */
80
- function buildComposioMCPUrl(baseUrl, tenantId, projectId, credentialScope, userId) {
81
- if (!baseUrl.includes("composio.dev")) return baseUrl;
77
+ function configureComposioMCPServer(serverConfig, tenantId, projectId, credentialScope, userId) {
78
+ const baseUrl = serverConfig.url?.toString();
79
+ if (!baseUrl?.includes("composio.dev")) return;
82
80
  const urlObj = new URL(baseUrl);
83
- if (urlObj.searchParams.has("user_id")) return baseUrl;
84
- const composioUserId = getComposioUserId(tenantId, projectId, credentialScope, userId);
85
- urlObj.searchParams.set("user_id", composioUserId);
86
- return urlObj.toString();
81
+ if (!urlObj.searchParams.has("user_id")) {
82
+ const composioUserId = getComposioUserId(tenantId, projectId, credentialScope, userId);
83
+ urlObj.searchParams.set("user_id", composioUserId);
84
+ serverConfig.url = urlObj.toString();
85
+ }
86
+ const composioApiKey = process.env.COMPOSIO_API_KEY;
87
+ if (composioApiKey) serverConfig.headers = {
88
+ ...serverConfig.headers,
89
+ "x-api-key": composioApiKey
90
+ };
87
91
  }
88
92
  /**
89
93
  * Extract server ID from a Composio MCP URL
@@ -334,4 +338,4 @@ async function fetchSingleComposioServer(tenantId, projectId, mcpServerUrl, cred
334
338
  }
335
339
 
336
340
  //#endregion
337
- export { buildComposioMCPUrl, extractComposioServerId, fetchComposioServers, fetchSingleComposioServer, getComposioOAuthRedirectUrl, getComposioUserId, isComposioMCPServerAuthenticated };
341
+ export { configureComposioMCPServer, extractComposioServerId, fetchComposioServers, fetchSingleComposioServer, getComposioOAuthRedirectUrl, getComposioUserId, isComposioMCPServerAuthenticated };
@@ -1,3 +1,3 @@
1
- import { CredentialScope, buildComposioMCPUrl, extractComposioServerId, fetchComposioServers, fetchSingleComposioServer, getComposioOAuthRedirectUrl, getComposioUserId, isComposioMCPServerAuthenticated } from "./composio-client.js";
1
+ import { CredentialScope, configureComposioMCPServer, extractComposioServerId, fetchComposioServers, fetchSingleComposioServer, getComposioOAuthRedirectUrl, getComposioUserId, isComposioMCPServerAuthenticated } from "./composio-client.js";
2
2
  import { isThirdPartyMCPServerAuthenticated } from "./third-party-check.js";
3
- export { CredentialScope, buildComposioMCPUrl, extractComposioServerId, fetchComposioServers, fetchSingleComposioServer, getComposioOAuthRedirectUrl, getComposioUserId, isComposioMCPServerAuthenticated, isThirdPartyMCPServerAuthenticated };
3
+ export { CredentialScope, configureComposioMCPServer, extractComposioServerId, fetchComposioServers, fetchSingleComposioServer, getComposioOAuthRedirectUrl, getComposioUserId, isComposioMCPServerAuthenticated, isThirdPartyMCPServerAuthenticated };
@@ -1,4 +1,4 @@
1
- import { buildComposioMCPUrl, extractComposioServerId, fetchComposioServers, fetchSingleComposioServer, getComposioOAuthRedirectUrl, getComposioUserId, isComposioMCPServerAuthenticated } from "./composio-client.js";
1
+ import { configureComposioMCPServer, extractComposioServerId, fetchComposioServers, fetchSingleComposioServer, getComposioOAuthRedirectUrl, getComposioUserId, isComposioMCPServerAuthenticated } from "./composio-client.js";
2
2
  import { isThirdPartyMCPServerAuthenticated } from "./third-party-check.js";
3
3
 
4
- export { buildComposioMCPUrl, extractComposioServerId, fetchComposioServers, fetchSingleComposioServer, getComposioOAuthRedirectUrl, getComposioUserId, isComposioMCPServerAuthenticated, isThirdPartyMCPServerAuthenticated };
4
+ export { configureComposioMCPServer, extractComposioServerId, fetchComposioServers, fetchSingleComposioServer, getComposioOAuthRedirectUrl, getComposioUserId, isComposioMCPServerAuthenticated, isThirdPartyMCPServerAuthenticated };
@@ -1,10 +1,10 @@
1
1
  import { z } from "@hono/zod-openapi";
2
- import * as drizzle_zod15 from "drizzle-zod";
2
+ import * as drizzle_zod0 from "drizzle-zod";
3
3
  import { AnySQLiteTable } from "drizzle-orm/sqlite-core";
4
4
 
5
5
  //#region src/validation/drizzle-schema-helpers.d.ts
6
- declare function createSelectSchemaWithModifiers<T extends AnySQLiteTable>(table: T, overrides?: Partial<Record<keyof T['_']['columns'], (schema: z.ZodTypeAny) => z.ZodTypeAny>>): drizzle_zod15.BuildSchema<"select", T["_"]["columns"], drizzle_zod15.BuildRefine<T["_"]["columns"], undefined>, undefined>;
7
- declare function createInsertSchemaWithModifiers<T extends AnySQLiteTable>(table: T, overrides?: Partial<Record<keyof T['_']['columns'], (schema: z.ZodTypeAny) => z.ZodTypeAny>>): drizzle_zod15.BuildSchema<"insert", T["_"]["columns"], drizzle_zod15.BuildRefine<Pick<T["_"]["columns"], keyof T["$inferInsert"]>, undefined>, undefined>;
6
+ declare function createSelectSchemaWithModifiers<T extends AnySQLiteTable>(table: T, overrides?: Partial<Record<keyof T['_']['columns'], (schema: z.ZodTypeAny) => z.ZodTypeAny>>): drizzle_zod0.BuildSchema<"select", T["_"]["columns"], drizzle_zod0.BuildRefine<T["_"]["columns"], undefined>, undefined>;
7
+ declare function createInsertSchemaWithModifiers<T extends AnySQLiteTable>(table: T, overrides?: Partial<Record<keyof T['_']['columns'], (schema: z.ZodTypeAny) => z.ZodTypeAny>>): drizzle_zod0.BuildSchema<"insert", T["_"]["columns"], drizzle_zod0.BuildRefine<Pick<T["_"]["columns"], keyof T["$inferInsert"]>, undefined>, undefined>;
8
8
  declare const createSelectSchema: typeof createSelectSchemaWithModifiers;
9
9
  declare const createInsertSchema: typeof createInsertSchemaWithModifiers;
10
10
  /**