@rudderhq/shared 0.5.2-canary.2 → 0.6.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 (79) hide show
  1. package/dist/chat-transcript-provenance.d.ts +7 -0
  2. package/dist/chat-transcript-provenance.d.ts.map +1 -0
  3. package/dist/chat-transcript-provenance.js +41 -0
  4. package/dist/chat-transcript-provenance.js.map +1 -0
  5. package/dist/chat-transcript-provenance.test.d.ts +2 -0
  6. package/dist/chat-transcript-provenance.test.d.ts.map +1 -0
  7. package/dist/chat-transcript-provenance.test.js +30 -0
  8. package/dist/chat-transcript-provenance.test.js.map +1 -0
  9. package/dist/chat-transcript-visibility.d.ts +14 -0
  10. package/dist/chat-transcript-visibility.d.ts.map +1 -0
  11. package/dist/chat-transcript-visibility.js +21 -0
  12. package/dist/chat-transcript-visibility.js.map +1 -0
  13. package/dist/config-schema.d.ts +42 -42
  14. package/dist/constants.d.ts +60 -2
  15. package/dist/constants.d.ts.map +1 -1
  16. package/dist/constants.js +70 -2
  17. package/dist/constants.js.map +1 -1
  18. package/dist/index.d.ts +8 -3
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +6 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/markdown-source-boundary.d.ts +12 -0
  23. package/dist/markdown-source-boundary.d.ts.map +1 -0
  24. package/dist/markdown-source-boundary.js +201 -0
  25. package/dist/markdown-source-boundary.js.map +1 -0
  26. package/dist/types/chat.d.ts +53 -8
  27. package/dist/types/chat.d.ts.map +1 -1
  28. package/dist/types/heartbeat.d.ts +1 -0
  29. package/dist/types/heartbeat.d.ts.map +1 -1
  30. package/dist/types/index.d.ts +2 -1
  31. package/dist/types/index.d.ts.map +1 -1
  32. package/dist/types/mcp.d.ts +146 -0
  33. package/dist/types/mcp.d.ts.map +1 -0
  34. package/dist/types/mcp.js +2 -0
  35. package/dist/types/mcp.js.map +1 -0
  36. package/dist/types/secrets.d.ts +2 -0
  37. package/dist/types/secrets.d.ts.map +1 -1
  38. package/dist/validators/adapter-skills.d.ts +8 -8
  39. package/dist/validators/agent-integration.d.ts +6 -6
  40. package/dist/validators/automation.d.ts +6 -6
  41. package/dist/validators/chat-inline-annotations.test.d.ts +2 -0
  42. package/dist/validators/chat-inline-annotations.test.d.ts.map +1 -0
  43. package/dist/validators/chat-inline-annotations.test.js +251 -0
  44. package/dist/validators/chat-inline-annotations.test.js.map +1 -0
  45. package/dist/validators/chat.d.ts +2437 -39
  46. package/dist/validators/chat.d.ts.map +1 -1
  47. package/dist/validators/chat.js +246 -3
  48. package/dist/validators/chat.js.map +1 -1
  49. package/dist/validators/cost.d.ts +4 -4
  50. package/dist/validators/custom-integration.d.ts +1 -1
  51. package/dist/validators/custom-integration.d.ts.map +1 -1
  52. package/dist/validators/finance.d.ts +4 -4
  53. package/dist/validators/index.d.ts +2 -1
  54. package/dist/validators/index.d.ts.map +1 -1
  55. package/dist/validators/index.js +2 -1
  56. package/dist/validators/index.js.map +1 -1
  57. package/dist/validators/mcp.d.ts +2780 -0
  58. package/dist/validators/mcp.d.ts.map +1 -0
  59. package/dist/validators/mcp.js +500 -0
  60. package/dist/validators/mcp.js.map +1 -0
  61. package/dist/validators/mcp.test.d.ts +2 -0
  62. package/dist/validators/mcp.test.d.ts.map +1 -0
  63. package/dist/validators/mcp.test.js +643 -0
  64. package/dist/validators/mcp.test.js.map +1 -0
  65. package/dist/validators/messenger.d.ts +2 -2
  66. package/dist/validators/messenger.test.js +13 -0
  67. package/dist/validators/messenger.test.js.map +1 -1
  68. package/dist/validators/organization-portability.d.ts +20 -20
  69. package/dist/validators/project.d.ts +6 -6
  70. package/dist/validators/secret.d.ts +3 -3
  71. package/dist/validators/secret.d.ts.map +1 -1
  72. package/dist/validators/secret.js +3 -3
  73. package/dist/validators/secret.js.map +1 -1
  74. package/dist/validators/secret.test.d.ts +2 -0
  75. package/dist/validators/secret.test.d.ts.map +1 -0
  76. package/dist/validators/secret.test.js +20 -0
  77. package/dist/validators/secret.test.js.map +1 -0
  78. package/dist/validators/work-product.d.ts +6 -6
  79. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/validators/mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,500 @@
1
+ import { z } from "zod";
2
+ import { MCP_AGENT_BINDING_STATUSES, MCP_CONNECTION_ACCESS_MODES, MCP_CONNECTION_PROVIDERS, MCP_CONNECTION_STATUSES, MCP_CONNECTION_TRANSPORTS, MCP_OAUTH_GRANT_STATUSES, MCP_PROVIDER_CATALOG, } from "../constants.js";
3
+ const uuidSchema = z.string().uuid();
4
+ const timestampSchema = z.string().datetime({ offset: true });
5
+ const connectionNameSchema = z.string()
6
+ .min(1)
7
+ .max(80)
8
+ .regex(/^[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$/, "Use lowercase letters, numbers, underscores, and hyphens");
9
+ const reservedMcpConnectionNames = new Set(["rudder-tools", "rudder-browser"]);
10
+ const environmentNameSchema = z.string()
11
+ .min(1)
12
+ .max(160)
13
+ .regex(/^[A-Za-z_][A-Za-z0-9_]*$/, "Use a valid environment variable name");
14
+ const externalMcpToolNameSchema = z.string()
15
+ .min(1)
16
+ .max(128)
17
+ .regex(/^[A-Za-z0-9_.-]+$/, "Use an exact MCP tool name");
18
+ const externalMcpToolFilterSchema = z.array(externalMcpToolNameSchema).max(500);
19
+ export const mcpConnectionProviderSchema = z.enum(MCP_CONNECTION_PROVIDERS);
20
+ export const mcpConnectionTransportSchema = z.enum(MCP_CONNECTION_TRANSPORTS);
21
+ export const mcpConnectionAccessModeSchema = z.enum(MCP_CONNECTION_ACCESS_MODES);
22
+ export const mcpConnectionStatusSchema = z.enum(MCP_CONNECTION_STATUSES);
23
+ export const mcpOAuthGrantStatusSchema = z.enum(MCP_OAUTH_GRANT_STATUSES);
24
+ export const mcpAgentBindingStatusSchema = z.enum(MCP_AGENT_BINDING_STATUSES);
25
+ const stringMapSchema = z.record(z.string().max(8_192));
26
+ const environmentValueMapSchema = stringMapSchema.superRefine((values, ctx) => {
27
+ for (const name of Object.keys(values)) {
28
+ if (!environmentNameSchema.safeParse(name).success) {
29
+ ctx.addIssue({
30
+ code: z.ZodIssueCode.custom,
31
+ path: [name],
32
+ message: `${name} must be a valid environment variable name`,
33
+ });
34
+ }
35
+ }
36
+ });
37
+ const safeHeaderSchema = stringMapSchema.superRefine((headers, ctx) => {
38
+ const forbidden = new Set(["authorization", "cookie", "proxy-authorization", "x-api-key"]);
39
+ for (const name of Object.keys(headers)) {
40
+ if (forbidden.has(name.toLowerCase())) {
41
+ ctx.addIssue({
42
+ code: z.ZodIssueCode.custom,
43
+ path: [name],
44
+ message: `${name} must be stored as encrypted credential material`,
45
+ });
46
+ }
47
+ }
48
+ });
49
+ export const mcpStdioSafeConfigSchema = z.object({
50
+ command: z.string().min(1).max(2_048),
51
+ args: z.array(z.string().max(8_192)).max(200).optional(),
52
+ cwd: z.string().min(1).max(4_096).optional(),
53
+ staticEnv: environmentValueMapSchema.optional(),
54
+ forwardedEnv: z.array(environmentNameSchema).max(100).optional(),
55
+ secretEnvNames: z.array(environmentNameSchema).max(100).optional(),
56
+ toolAllowlist: externalMcpToolFilterSchema.optional(),
57
+ toolDenylist: externalMcpToolFilterSchema.optional(),
58
+ }).strict().superRefine((value, ctx) => {
59
+ const staticNames = new Set(Object.keys(value.staticEnv ?? {}));
60
+ for (const name of value.secretEnvNames ?? []) {
61
+ if (staticNames.has(name)) {
62
+ ctx.addIssue({
63
+ code: z.ZodIssueCode.custom,
64
+ path: ["staticEnv", name],
65
+ message: `${name} is marked secret and cannot remain in safe config`,
66
+ });
67
+ }
68
+ }
69
+ });
70
+ export const mcpStreamableHttpSafeConfigSchema = z.object({
71
+ url: z.string().url().max(8_192).optional(),
72
+ staticHeaders: safeHeaderSchema.optional(),
73
+ headersFromEnv: z.record(environmentNameSchema).optional(),
74
+ bearerTokenEnvVar: environmentNameSchema.optional(),
75
+ secretHeaderNames: z.array(z.string().min(1).max(256)).max(100).optional(),
76
+ hasBearerToken: z.boolean().optional(),
77
+ toolAllowlist: externalMcpToolFilterSchema.optional(),
78
+ toolDenylist: externalMcpToolFilterSchema.optional(),
79
+ }).strict().superRefine((value, ctx) => {
80
+ const staticNames = new Set(Object.keys(value.staticHeaders ?? {}).map((name) => name.toLowerCase()));
81
+ const mappedNames = new Set(Object.keys(value.headersFromEnv ?? {}).map((name) => name.toLowerCase()));
82
+ for (const name of value.secretHeaderNames ?? []) {
83
+ if (staticNames.has(name.toLowerCase())) {
84
+ ctx.addIssue({
85
+ code: z.ZodIssueCode.custom,
86
+ path: ["staticHeaders", name],
87
+ message: `${name} is marked secret and cannot remain in safe config`,
88
+ });
89
+ }
90
+ }
91
+ for (const name of mappedNames) {
92
+ if (staticNames.has(name)) {
93
+ ctx.addIssue({
94
+ code: z.ZodIssueCode.custom,
95
+ path: ["headersFromEnv", name],
96
+ message: `${name} cannot have both a static value and an environment mapping`,
97
+ });
98
+ }
99
+ }
100
+ });
101
+ export const mcpConnectionSecretsMutationSchema = z.object({
102
+ env: environmentValueMapSchema.optional(),
103
+ headers: stringMapSchema.optional(),
104
+ bearerToken: z.string().min(1).max(1_000_000).optional(),
105
+ }).strict().refine((value) => (Object.keys(value.env ?? {}).length > 0
106
+ || Object.keys(value.headers ?? {}).length > 0
107
+ || Boolean(value.bearerToken)), {
108
+ message: "At least one secret value is required",
109
+ });
110
+ export const mcpLegacyManualSafeConfigSchema = z.object({
111
+ legacyConfigRetained: z.literal(true),
112
+ }).strict();
113
+ export const mcpCuratedSafeConfigSchema = z.object({
114
+ featureGroups: z.object({
115
+ mode: z.literal("provider_default"),
116
+ excluded: z.array(z.string().min(1).max(120)).max(100),
117
+ }).strict(),
118
+ }).strict();
119
+ export const mcpConnectionSafeConfigSchema = z.union([
120
+ mcpStdioSafeConfigSchema,
121
+ mcpStreamableHttpSafeConfigSchema,
122
+ mcpLegacyManualSafeConfigSchema,
123
+ mcpCuratedSafeConfigSchema,
124
+ ]);
125
+ const mcpConnectionInputFields = {
126
+ name: connectionNameSchema,
127
+ displayName: z.string().trim().min(1).max(120),
128
+ provider: mcpConnectionProviderSchema,
129
+ transport: mcpConnectionTransportSchema,
130
+ externalScope: z.string().trim().min(1).max(512).optional().nullable(),
131
+ accessMode: mcpConnectionAccessModeSchema.optional(),
132
+ safeConfig: mcpConnectionSafeConfigSchema.default({}),
133
+ startupTimeoutMs: z.number().int().min(100).max(300_000).default(10_000),
134
+ toolTimeoutMs: z.number().int().min(100).max(900_000).default(60_000),
135
+ enabled: z.boolean().default(true),
136
+ required: z.boolean().default(false),
137
+ secrets: mcpConnectionSecretsMutationSchema.optional(),
138
+ };
139
+ const providerAccessModes = {
140
+ supabase: ["read_only", "read_write"],
141
+ linear: ["read_only", "read_write"],
142
+ notion: ["provider_default"],
143
+ custom: ["provider_default", "read_only", "read_write"],
144
+ };
145
+ function defaultAccessMode(provider) {
146
+ if (provider === "supabase")
147
+ return "read_only";
148
+ if (provider === "linear")
149
+ return "read_write";
150
+ return "provider_default";
151
+ }
152
+ function sameNames(left, right, caseInsensitive = false) {
153
+ const normalize = (name) => caseInsensitive ? name.toLowerCase() : name;
154
+ const leftNames = new Set(left.map(normalize));
155
+ const rightNames = new Set(right.map(normalize));
156
+ return leftNames.size === rightNames.size
157
+ && [...leftNames].every((name) => rightNames.has(name));
158
+ }
159
+ function validateSafeConnectionConfig(value, ctx, options = {}) {
160
+ const accessMode = value.accessMode ?? defaultAccessMode(value.provider);
161
+ const allowedAccessModes = value.provider
162
+ ? providerAccessModes[value.provider]
163
+ : undefined;
164
+ if (!allowedAccessModes?.some((allowed) => allowed === accessMode)) {
165
+ ctx.addIssue({
166
+ code: z.ZodIssueCode.custom,
167
+ path: ["accessMode"],
168
+ message: `${value.provider ?? "Unknown"} does not support ${accessMode}`,
169
+ });
170
+ }
171
+ if (value.provider !== "custom") {
172
+ if (value.transport !== "streamable_http") {
173
+ ctx.addIssue({
174
+ code: z.ZodIssueCode.custom,
175
+ path: ["transport"],
176
+ message: "Curated providers use Rudder-managed Streamable HTTP",
177
+ });
178
+ }
179
+ const hasManagedCuratedConfig = (options.allowManagedCuratedSafeConfig === true
180
+ && mcpCuratedSafeConfigSchema.safeParse(value.safeConfig).success);
181
+ if (typeof value.safeConfig !== "object"
182
+ || value.safeConfig === null
183
+ || Array.isArray(value.safeConfig)
184
+ || (Object.keys(value.safeConfig).length > 0 && !hasManagedCuratedConfig)) {
185
+ ctx.addIssue({
186
+ code: z.ZodIssueCode.custom,
187
+ path: ["safeConfig"],
188
+ message: "Curated provider URL, headers, and transport config are Rudder-managed",
189
+ });
190
+ }
191
+ if (value.secrets) {
192
+ ctx.addIssue({
193
+ code: z.ZodIssueCode.custom,
194
+ path: ["secrets"],
195
+ message: "Curated provider credentials must come from its OAuth grant",
196
+ });
197
+ }
198
+ return;
199
+ }
200
+ if (value.transport === "stdio") {
201
+ const parsed = mcpStdioSafeConfigSchema.safeParse(value.safeConfig);
202
+ if (!parsed.success) {
203
+ ctx.addIssue({
204
+ code: z.ZodIssueCode.custom,
205
+ path: ["safeConfig"],
206
+ message: "STDIO connections require command-based safe config",
207
+ });
208
+ }
209
+ }
210
+ if (value.transport === "streamable_http") {
211
+ const parsed = mcpStreamableHttpSafeConfigSchema.safeParse(value.safeConfig);
212
+ if (!parsed.success || (value.provider === "custom" && !parsed.data.url)) {
213
+ ctx.addIssue({
214
+ code: z.ZodIssueCode.custom,
215
+ path: ["safeConfig", "url"],
216
+ message: "Custom Streamable HTTP connections require a URL",
217
+ });
218
+ }
219
+ }
220
+ if (value.transport === "legacy_manual") {
221
+ if (!mcpLegacyManualSafeConfigSchema.safeParse(value.safeConfig).success) {
222
+ ctx.addIssue({
223
+ code: z.ZodIssueCode.custom,
224
+ path: ["safeConfig"],
225
+ message: "Legacy manual connections require compatibility config",
226
+ });
227
+ }
228
+ if (value.enabled !== false) {
229
+ ctx.addIssue({
230
+ code: z.ZodIssueCode.custom,
231
+ path: ["enabled"],
232
+ message: "Legacy manual connections cannot be executable",
233
+ });
234
+ }
235
+ }
236
+ if (value.transport === "streamable_http") {
237
+ const parsed = mcpStreamableHttpSafeConfigSchema.safeParse(value.safeConfig);
238
+ if (parsed.success) {
239
+ const declaredHeaderNames = parsed.data.secretHeaderNames ?? [];
240
+ const suppliedHeaderNames = Object.keys(value.secrets?.headers ?? {});
241
+ const declaredBearer = parsed.data.hasBearerToken === true;
242
+ const suppliedBearer = Boolean(value.secrets?.bearerToken);
243
+ const authorizationFromEnv = Object.keys(parsed.data.headersFromEnv ?? {})
244
+ .some((name) => name.toLowerCase() === "authorization");
245
+ const encryptedAuthorizationHeader = (declaredHeaderNames.some((name) => name.toLowerCase() === "authorization")
246
+ || suppliedHeaderNames.some((name) => name.toLowerCase() === "authorization"));
247
+ const bearerEnvironment = Boolean(parsed.data.bearerTokenEnvVar);
248
+ const directBearer = declaredBearer || suppliedBearer;
249
+ if ([
250
+ authorizationFromEnv,
251
+ encryptedAuthorizationHeader,
252
+ bearerEnvironment,
253
+ directBearer,
254
+ ].filter(Boolean).length > 1) {
255
+ ctx.addIssue({
256
+ code: z.ZodIssueCode.custom,
257
+ path: ["safeConfig"],
258
+ message: "Configure only one manual Authorization or Bearer source",
259
+ });
260
+ }
261
+ }
262
+ }
263
+ }
264
+ function validateConnectionSecretMutation(value, ctx) {
265
+ if (value.provider !== "custom")
266
+ return;
267
+ if (value.transport === "stdio") {
268
+ const parsed = mcpStdioSafeConfigSchema.safeParse(value.safeConfig);
269
+ if (parsed.success) {
270
+ const declaredEnvNames = parsed.data.secretEnvNames ?? [];
271
+ const suppliedEnvNames = Object.keys(value.secrets?.env ?? {});
272
+ if (!sameNames(declaredEnvNames, suppliedEnvNames)
273
+ || Object.keys(value.secrets?.headers ?? {}).length > 0
274
+ || Boolean(value.secrets?.bearerToken)) {
275
+ ctx.addIssue({
276
+ code: z.ZodIssueCode.custom,
277
+ path: ["secrets"],
278
+ message: "STDIO secret values must exactly match declared secret environment names",
279
+ });
280
+ }
281
+ }
282
+ }
283
+ if (value.transport === "legacy_manual" && value.secrets) {
284
+ ctx.addIssue({
285
+ code: z.ZodIssueCode.custom,
286
+ path: ["secrets"],
287
+ message: "Legacy manual connections cannot accept new secret values",
288
+ });
289
+ }
290
+ if (value.transport === "streamable_http") {
291
+ const parsed = mcpStreamableHttpSafeConfigSchema.safeParse(value.safeConfig);
292
+ if (parsed.success) {
293
+ const suppliedEnvNames = Object.keys(value.secrets?.env ?? {});
294
+ const declaredHeaderNames = parsed.data.secretHeaderNames ?? [];
295
+ const suppliedHeaderNames = Object.keys(value.secrets?.headers ?? {});
296
+ const declaredBearer = parsed.data.hasBearerToken === true;
297
+ const suppliedBearer = Boolean(value.secrets?.bearerToken);
298
+ if (suppliedEnvNames.length > 0
299
+ || !sameNames(declaredHeaderNames, suppliedHeaderNames, true)
300
+ || declaredBearer !== suppliedBearer) {
301
+ ctx.addIssue({
302
+ code: z.ZodIssueCode.custom,
303
+ path: ["secrets"],
304
+ message: "HTTP mutations accept only exactly declared encrypted headers and direct Bearer values",
305
+ });
306
+ }
307
+ }
308
+ }
309
+ }
310
+ export const createMcpConnectionSchema = z.object(mcpConnectionInputFields)
311
+ .strict()
312
+ .superRefine((value, ctx) => {
313
+ if (reservedMcpConnectionNames.has(value.name)) {
314
+ ctx.addIssue({
315
+ code: z.ZodIssueCode.custom,
316
+ path: ["name"],
317
+ message: `${value.name} is reserved for an internal Rudder runtime`,
318
+ });
319
+ }
320
+ })
321
+ .superRefine(validateSafeConnectionConfig)
322
+ .superRefine(validateConnectionSecretMutation)
323
+ .transform((value) => ({
324
+ ...value,
325
+ accessMode: value.accessMode ?? defaultAccessMode(value.provider),
326
+ }));
327
+ export const updateMcpConnectionSchema = z.object({
328
+ displayName: mcpConnectionInputFields.displayName.optional(),
329
+ externalScope: mcpConnectionInputFields.externalScope.optional(),
330
+ accessMode: mcpConnectionAccessModeSchema.optional(),
331
+ safeConfig: mcpConnectionSafeConfigSchema.optional(),
332
+ startupTimeoutMs: z.number().int().min(100).max(300_000).optional(),
333
+ toolTimeoutMs: z.number().int().min(100).max(900_000).optional(),
334
+ enabled: z.boolean().optional(),
335
+ required: z.boolean().optional(),
336
+ secrets: mcpConnectionSecretsMutationSchema.optional(),
337
+ }).strict().refine((value) => Object.keys(value).length > 0, {
338
+ message: "At least one connection field is required",
339
+ });
340
+ /**
341
+ * Persisted-safe validation target after an immutable provider/transport
342
+ * record has been merged with a public update payload. Existing encrypted
343
+ * secret material is intentionally not required.
344
+ */
345
+ const mcpConnectionMergedConfigFields = {
346
+ provider: mcpConnectionProviderSchema,
347
+ transport: mcpConnectionTransportSchema,
348
+ accessMode: mcpConnectionAccessModeSchema,
349
+ safeConfig: mcpConnectionSafeConfigSchema,
350
+ enabled: z.boolean(),
351
+ };
352
+ export const mcpConnectionMergedConfigSchema = z.object(mcpConnectionMergedConfigFields).strict().superRefine((value, ctx) => {
353
+ validateSafeConnectionConfig(value, ctx, { allowManagedCuratedSafeConfig: true });
354
+ });
355
+ /**
356
+ * Mutation-aware validation target for create, secret rotation, or a safe
357
+ * config change that alters secret declarations.
358
+ */
359
+ export const mcpConnectionMutationConfigSchema = z.object({
360
+ ...mcpConnectionMergedConfigFields,
361
+ secrets: mcpConnectionSecretsMutationSchema.optional(),
362
+ }).strict()
363
+ .superRefine((value, ctx) => {
364
+ validateSafeConnectionConfig(value, ctx, { allowManagedCuratedSafeConfig: true });
365
+ })
366
+ .superRefine(validateConnectionSecretMutation);
367
+ export const mcpConnectionSummarySchema = z.object({
368
+ id: uuidSchema,
369
+ orgId: uuidSchema,
370
+ name: connectionNameSchema,
371
+ displayName: z.string().min(1).max(120),
372
+ provider: mcpConnectionProviderSchema,
373
+ transport: mcpConnectionTransportSchema,
374
+ externalScope: z.string().max(512).nullable(),
375
+ accessMode: mcpConnectionAccessModeSchema,
376
+ status: mcpConnectionStatusSchema,
377
+ safeConfig: mcpConnectionSafeConfigSchema,
378
+ startupTimeoutMs: z.number().int().positive(),
379
+ toolTimeoutMs: z.number().int().positive(),
380
+ enabled: z.boolean(),
381
+ required: z.boolean(),
382
+ hasCredentials: z.boolean(),
383
+ lastDiscoveredAt: timestampSchema.nullable(),
384
+ activatedAt: timestampSchema.nullable(),
385
+ disabledAt: timestampSchema.nullable(),
386
+ revokedAt: timestampSchema.nullable(),
387
+ createdAt: timestampSchema,
388
+ updatedAt: timestampSchema,
389
+ }).strict();
390
+ export const mcpProviderCatalogEntrySchema = z.object({
391
+ id: mcpConnectionProviderSchema,
392
+ label: z.string().min(1),
393
+ curated: z.boolean(),
394
+ requiresOAuth: z.boolean(),
395
+ requiresScopeSelection: z.boolean(),
396
+ scopeLabel: z.string().min(1),
397
+ transports: z.array(mcpConnectionTransportSchema).min(1),
398
+ accessModes: z.array(mcpConnectionAccessModeSchema).min(1),
399
+ defaultAccessMode: mcpConnectionAccessModeSchema,
400
+ }).strict().superRefine((value, ctx) => {
401
+ if (!value.accessModes.includes(value.defaultAccessMode)) {
402
+ ctx.addIssue({
403
+ code: z.ZodIssueCode.custom,
404
+ path: ["defaultAccessMode"],
405
+ message: "Default access mode must be included in accessModes",
406
+ });
407
+ }
408
+ });
409
+ export const mcpProviderCatalogSchema = z.array(mcpProviderCatalogEntrySchema);
410
+ mcpProviderCatalogSchema.parse(MCP_PROVIDER_CATALOG);
411
+ export const mcpOAuthStartSchema = z.object({}).strict();
412
+ export const mcpOAuthStartResponseSchema = z.object({
413
+ connectionId: uuidSchema,
414
+ authorizationUrl: z.string().url().max(16_384),
415
+ expiresAt: timestampSchema,
416
+ }).strict();
417
+ export const mcpOAuthCallbackSchema = z.object({
418
+ state: z.string().min(16).max(8_192),
419
+ code: z.string().min(1).max(16_384).optional(),
420
+ error: z.string().min(1).max(512).optional(),
421
+ errorDescription: z.string().max(4_096).optional(),
422
+ iss: z.string().url().max(8_192).optional(),
423
+ }).strict().superRefine((value, ctx) => {
424
+ if (Boolean(value.code) === Boolean(value.error)) {
425
+ ctx.addIssue({
426
+ code: z.ZodIssueCode.custom,
427
+ message: "OAuth callback must include exactly one of code or error",
428
+ });
429
+ }
430
+ });
431
+ export const mcpScopeSelectionSchema = z.object({
432
+ connectionId: uuidSchema,
433
+ externalScope: z.string().trim().min(1).max(512),
434
+ accessMode: mcpConnectionAccessModeSchema,
435
+ }).strict();
436
+ export const mcpExternalScopeOptionSchema = z.object({
437
+ id: z.string().min(1).max(512),
438
+ displayName: z.string().min(1).max(240),
439
+ metadata: z.record(z.unknown()).default({}),
440
+ }).strict();
441
+ export const mcpOAuthGrantSummarySchema = z.object({
442
+ id: uuidSchema,
443
+ connectionId: uuidSchema,
444
+ providerSubject: z.string().max(1_024).nullable(),
445
+ providerScopes: z.array(z.string().max(512)),
446
+ externalScopeMetadata: z.record(z.unknown()),
447
+ status: mcpOAuthGrantStatusSchema,
448
+ hasCredentials: z.boolean(),
449
+ expiresAt: timestampSchema.nullable(),
450
+ lastRefreshedAt: timestampSchema.nullable(),
451
+ revokedAt: timestampSchema.nullable(),
452
+ createdAt: timestampSchema,
453
+ updatedAt: timestampSchema,
454
+ }).strict();
455
+ export const mcpDiscoveredToolSchema = z.object({
456
+ id: uuidSchema,
457
+ connectionId: uuidSchema,
458
+ externalToolName: z.string().min(1).max(240),
459
+ rudderToolName: z.string().min(1).max(320),
460
+ description: z.string().max(4_000).nullable(),
461
+ inputSchema: z.record(z.unknown()),
462
+ outputSchema: z.record(z.unknown()).nullable(),
463
+ enabled: z.boolean(),
464
+ removedAt: timestampSchema.nullable(),
465
+ }).strict();
466
+ export const mcpAgentBindingSchema = z.object({
467
+ id: uuidSchema,
468
+ connectionId: uuidSchema,
469
+ agentId: uuidSchema,
470
+ status: mcpAgentBindingStatusSchema,
471
+ enabledToolIds: z.array(uuidSchema).max(500),
472
+ }).strict();
473
+ export const mcpAgentConnectionSummarySchema = z.object({
474
+ connection: mcpConnectionSummarySchema,
475
+ binding: mcpAgentBindingSchema.nullable(),
476
+ tools: z.array(mcpDiscoveredToolSchema).max(500),
477
+ }).strict();
478
+ export const upsertMcpAgentBindingSchema = z.object({
479
+ status: mcpAgentBindingStatusSchema.optional(),
480
+ enabledToolIds: z.array(uuidSchema).max(500).optional(),
481
+ }).strict();
482
+ export const updateMcpAgentBindingSchema = z.object({
483
+ status: mcpAgentBindingStatusSchema.optional(),
484
+ enabledToolIds: z.array(uuidSchema).max(500).optional(),
485
+ }).strict().refine((value) => Object.keys(value).length > 0, {
486
+ message: "At least one binding field is required",
487
+ });
488
+ export const managedExternalMcpBindingSchema = z.object({
489
+ bindingId: uuidSchema,
490
+ serverName: connectionNameSchema,
491
+ toolPolicy: z.object({
492
+ mode: z.literal("allowlist"),
493
+ allowedToolNames: z.array(z.string().min(1).max(320)).max(500),
494
+ }).strict(),
495
+ required: z.boolean(),
496
+ startupTimeoutMs: z.number().int().positive(),
497
+ toolTimeoutMs: z.number().int().positive(),
498
+ }).strict();
499
+ export const managedExternalMcpBindingsSchema = z.array(managedExternalMcpBindingSchema).max(100);
500
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/validators/mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=mcp.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.test.d.ts","sourceRoot":"","sources":["../../src/validators/mcp.test.ts"],"names":[],"mappings":""}