mcp4openapi 0.3.0 → 0.3.1

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 (188) hide show
  1. package/dist/src/argument-normalizer.d.ts +5 -0
  2. package/dist/src/argument-normalizer.d.ts.map +1 -0
  3. package/dist/src/argument-normalizer.js +61 -0
  4. package/dist/src/argument-normalizer.js.map +1 -0
  5. package/dist/src/auth/oauth-provider.d.ts.map +1 -1
  6. package/dist/src/auth/oauth-provider.js +5 -2
  7. package/dist/src/auth/oauth-provider.js.map +1 -1
  8. package/dist/src/cli-config.d.ts +9 -0
  9. package/dist/src/cli-config.d.ts.map +1 -0
  10. package/dist/src/cli-config.js +111 -0
  11. package/dist/src/cli-config.js.map +1 -0
  12. package/dist/src/composite-executor.d.ts +77 -0
  13. package/dist/src/composite-executor.d.ts.map +1 -0
  14. package/dist/src/composite-executor.js +193 -0
  15. package/dist/src/composite-executor.js.map +1 -0
  16. package/dist/src/constants.d.ts +85 -0
  17. package/dist/src/constants.d.ts.map +1 -0
  18. package/dist/src/constants.js +85 -0
  19. package/dist/src/constants.js.map +1 -0
  20. package/dist/src/core/cli-config.d.ts.map +1 -1
  21. package/dist/src/core/cli-config.js +1 -0
  22. package/dist/src/core/cli-config.js.map +1 -1
  23. package/dist/src/core/index.d.ts.map +1 -1
  24. package/dist/src/core/index.js +1 -0
  25. package/dist/src/core/index.js.map +1 -1
  26. package/dist/src/dag-executor.d.ts +49 -0
  27. package/dist/src/dag-executor.d.ts.map +1 -0
  28. package/dist/src/dag-executor.js +138 -0
  29. package/dist/src/dag-executor.js.map +1 -0
  30. package/dist/src/errors.d.ts +59 -0
  31. package/dist/src/errors.d.ts.map +1 -0
  32. package/dist/src/errors.js +119 -0
  33. package/dist/src/errors.js.map +1 -0
  34. package/dist/src/filtering.d.ts +19 -0
  35. package/dist/src/filtering.d.ts.map +1 -0
  36. package/dist/src/filtering.js +292 -0
  37. package/dist/src/filtering.js.map +1 -0
  38. package/dist/src/generated-schemas.d.ts +45 -0
  39. package/dist/src/generated-schemas.d.ts.map +1 -1
  40. package/dist/src/generated-schemas.js +3 -0
  41. package/dist/src/generated-schemas.js.map +1 -1
  42. package/dist/src/http-client-factory.d.ts +62 -0
  43. package/dist/src/http-client-factory.d.ts.map +1 -0
  44. package/dist/src/http-client-factory.js +133 -0
  45. package/dist/src/http-client-factory.js.map +1 -0
  46. package/dist/src/http-transport-config.d.ts +6 -0
  47. package/dist/src/http-transport-config.d.ts.map +1 -0
  48. package/dist/src/http-transport-config.js +47 -0
  49. package/dist/src/http-transport-config.js.map +1 -0
  50. package/dist/src/http-transport.d.ts +316 -0
  51. package/dist/src/http-transport.d.ts.map +1 -0
  52. package/dist/src/http-transport.js +2412 -0
  53. package/dist/src/http-transport.js.map +1 -0
  54. package/dist/src/index.js +0 -0
  55. package/dist/src/interceptors.d.ts +116 -0
  56. package/dist/src/interceptors.d.ts.map +1 -0
  57. package/dist/src/interceptors.js +392 -0
  58. package/dist/src/interceptors.js.map +1 -0
  59. package/dist/src/jsonrpc-validator.d.ts +27 -0
  60. package/dist/src/jsonrpc-validator.d.ts.map +1 -0
  61. package/dist/src/jsonrpc-validator.js +58 -0
  62. package/dist/src/jsonrpc-validator.js.map +1 -0
  63. package/dist/src/logger.d.ts +59 -0
  64. package/dist/src/logger.d.ts.map +1 -0
  65. package/dist/src/logger.js +177 -0
  66. package/dist/src/logger.js.map +1 -0
  67. package/dist/src/mcp-server-manager.d.ts +20 -0
  68. package/dist/src/mcp-server-manager.d.ts.map +1 -0
  69. package/dist/src/mcp-server-manager.js +38 -0
  70. package/dist/src/mcp-server-manager.js.map +1 -0
  71. package/dist/src/mcp-server.d.ts +203 -0
  72. package/dist/src/mcp-server.d.ts.map +1 -0
  73. package/dist/src/mcp-server.js +1369 -0
  74. package/dist/src/mcp-server.js.map +1 -0
  75. package/dist/src/metrics.d.ts +97 -0
  76. package/dist/src/metrics.d.ts.map +1 -0
  77. package/dist/src/metrics.js +273 -0
  78. package/dist/src/metrics.js.map +1 -0
  79. package/dist/src/naming-warnings.d.ts +23 -0
  80. package/dist/src/naming-warnings.d.ts.map +1 -0
  81. package/dist/src/naming-warnings.js +83 -0
  82. package/dist/src/naming-warnings.js.map +1 -0
  83. package/dist/src/naming.d.ts +58 -0
  84. package/dist/src/naming.d.ts.map +1 -0
  85. package/dist/src/naming.js +510 -0
  86. package/dist/src/naming.js.map +1 -0
  87. package/dist/src/oauth-provider.d.ts +131 -0
  88. package/dist/src/oauth-provider.d.ts.map +1 -0
  89. package/dist/src/oauth-provider.js +836 -0
  90. package/dist/src/oauth-provider.js.map +1 -0
  91. package/dist/src/openapi/openapi-parser.d.ts.map +1 -1
  92. package/dist/src/openapi/openapi-parser.js +22 -0
  93. package/dist/src/openapi/openapi-parser.js.map +1 -1
  94. package/dist/src/openapi-parser.d.ts +70 -0
  95. package/dist/src/openapi-parser.d.ts.map +1 -0
  96. package/dist/src/openapi-parser.js +436 -0
  97. package/dist/src/openapi-parser.js.map +1 -0
  98. package/dist/src/profile/profile-loader.d.ts.map +1 -1
  99. package/dist/src/profile/profile-loader.js +8 -1
  100. package/dist/src/profile/profile-loader.js.map +1 -1
  101. package/dist/src/profile/profile-registry.d.ts +2 -1
  102. package/dist/src/profile/profile-registry.d.ts.map +1 -1
  103. package/dist/src/profile/profile-registry.js +18 -1
  104. package/dist/src/profile/profile-registry.js.map +1 -1
  105. package/dist/src/profile/profile-resolver.d.ts +16 -0
  106. package/dist/src/profile/profile-resolver.d.ts.map +1 -1
  107. package/dist/src/profile/profile-resolver.js +120 -0
  108. package/dist/src/profile/profile-resolver.js.map +1 -1
  109. package/dist/src/profile-loader.d.ts +78 -0
  110. package/dist/src/profile-loader.d.ts.map +1 -0
  111. package/dist/src/profile-loader.js +483 -0
  112. package/dist/src/profile-loader.js.map +1 -0
  113. package/dist/src/profile-registry.d.ts +18 -0
  114. package/dist/src/profile-registry.d.ts.map +1 -0
  115. package/dist/src/profile-registry.js +26 -0
  116. package/dist/src/profile-registry.js.map +1 -0
  117. package/dist/src/profile-resolver.d.ts +19 -0
  118. package/dist/src/profile-resolver.d.ts.map +1 -0
  119. package/dist/src/profile-resolver.js +167 -0
  120. package/dist/src/profile-resolver.js.map +1 -0
  121. package/dist/src/proxy-executor.d.ts +86 -0
  122. package/dist/src/proxy-executor.d.ts.map +1 -0
  123. package/dist/src/proxy-executor.js +497 -0
  124. package/dist/src/proxy-executor.js.map +1 -0
  125. package/dist/src/schema-validator.d.ts +30 -0
  126. package/dist/src/schema-validator.d.ts.map +1 -0
  127. package/dist/src/schema-validator.js +128 -0
  128. package/dist/src/schema-validator.js.map +1 -0
  129. package/dist/src/startup-profile.d.ts +17 -0
  130. package/dist/src/startup-profile.d.ts.map +1 -0
  131. package/dist/src/startup-profile.js +30 -0
  132. package/dist/src/startup-profile.js.map +1 -0
  133. package/dist/src/startup-validation.d.ts +11 -0
  134. package/dist/src/startup-validation.d.ts.map +1 -0
  135. package/dist/src/startup-validation.js +21 -0
  136. package/dist/src/startup-validation.js.map +1 -0
  137. package/dist/src/tool-filter.d.ts +65 -0
  138. package/dist/src/tool-filter.d.ts.map +1 -0
  139. package/dist/src/tool-filter.js +471 -0
  140. package/dist/src/tool-filter.js.map +1 -0
  141. package/dist/src/tool-generator.d.ts +67 -0
  142. package/dist/src/tool-generator.d.ts.map +1 -0
  143. package/dist/src/tool-generator.js +182 -0
  144. package/dist/src/tool-generator.js.map +1 -0
  145. package/dist/src/tooling/composite-executor.d.ts.map +1 -1
  146. package/dist/src/tooling/composite-executor.js +7 -2
  147. package/dist/src/tooling/composite-executor.js.map +1 -1
  148. package/dist/src/tooling/proxy-executor.d.ts.map +1 -1
  149. package/dist/src/tooling/proxy-executor.js +4 -0
  150. package/dist/src/tooling/proxy-executor.js.map +1 -1
  151. package/dist/src/tooling/tool-generator.d.ts.map +1 -1
  152. package/dist/src/tooling/tool-generator.js +36 -3
  153. package/dist/src/tooling/tool-generator.js.map +1 -1
  154. package/dist/src/transport/http-transport-config.d.ts.map +1 -1
  155. package/dist/src/transport/http-transport-config.js +1 -0
  156. package/dist/src/transport/http-transport-config.js.map +1 -1
  157. package/dist/src/transport/http-transport.d.ts +5 -0
  158. package/dist/src/transport/http-transport.d.ts.map +1 -1
  159. package/dist/src/transport/http-transport.js +63 -1
  160. package/dist/src/transport/http-transport.js.map +1 -1
  161. package/dist/src/transport/profile-index.d.ts +84 -0
  162. package/dist/src/transport/profile-index.d.ts.map +1 -0
  163. package/dist/src/transport/profile-index.js +405 -0
  164. package/dist/src/transport/profile-index.js.map +1 -0
  165. package/dist/src/types/http-transport.d.ts +1 -0
  166. package/dist/src/types/http-transport.d.ts.map +1 -1
  167. package/dist/src/types/openapi.d.ts +3 -0
  168. package/dist/src/types/openapi.d.ts.map +1 -1
  169. package/dist/src/types/profile.d.ts +3 -0
  170. package/dist/src/types/profile.d.ts.map +1 -1
  171. package/dist/src/validation/validation-utils.d.ts.map +1 -1
  172. package/dist/src/validation/validation-utils.js +1 -0
  173. package/dist/src/validation/validation-utils.js.map +1 -1
  174. package/dist/src/validation-utils.d.ts +49 -0
  175. package/dist/src/validation-utils.d.ts.map +1 -0
  176. package/dist/src/validation-utils.js +138 -0
  177. package/dist/src/validation-utils.js.map +1 -0
  178. package/html/profile-index.html +386 -0
  179. package/package.json +2 -1
  180. package/profile-schema.json +14 -0
  181. package/profiles/gitlab/developer-profile-oauth.json +1 -1
  182. package/profiles/gitlab/developer-profile.json +1508 -0
  183. package/profiles/gitlab/developer-profile.test.json +3432 -0
  184. package/profiles/n8n/profile-optimized.json +1 -1
  185. package/profiles/n8n/profile.json +1 -1
  186. package/profiles/n8n-nodes/profile-nodes.json +1 -1
  187. package/profiles/semgrep/profile.json +1 -1
  188. package/profiles/youtrack/profile.json +1 -1
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Structured error types for MCP server
3
+ *
4
+ * Provides type-safe error handling with machine-readable error codes
5
+ * and structured error details for better debugging and client handling.
6
+ */
7
+ import { randomUUID } from 'node:crypto';
8
+ export class MCPError extends Error {
9
+ constructor(message, code, details) {
10
+ super(message);
11
+ this.code = code;
12
+ this.details = details;
13
+ this.name = 'MCPError';
14
+ }
15
+ }
16
+ export class ValidationError extends MCPError {
17
+ constructor(message, details) {
18
+ super(message, 'VALIDATION_ERROR', details);
19
+ this.name = 'ValidationError';
20
+ }
21
+ }
22
+ export class OperationNotFoundError extends MCPError {
23
+ constructor(operationId) {
24
+ super(`Operation not found: ${operationId}`, 'OPERATION_NOT_FOUND', { operationId });
25
+ this.name = 'OperationNotFoundError';
26
+ }
27
+ }
28
+ export class ResourceNotFoundError extends MCPError {
29
+ constructor(resource, resourceType = 'Resource') {
30
+ super(`${resourceType} not found: ${resource}`, 'RESOURCE_NOT_FOUND', { resource, resourceType });
31
+ this.name = 'ResourceNotFoundError';
32
+ }
33
+ }
34
+ export class ParameterError extends MCPError {
35
+ constructor(paramName, reason) {
36
+ super(`Invalid parameter '${paramName}': ${reason}`, 'PARAMETER_ERROR', { paramName, reason });
37
+ this.name = 'ParameterError';
38
+ }
39
+ }
40
+ export class AuthenticationError extends MCPError {
41
+ constructor(message = 'Authentication required', details) {
42
+ super(message, 'AUTHENTICATION_ERROR', details);
43
+ this.name = 'AuthenticationError';
44
+ }
45
+ }
46
+ export class AuthorizationError extends MCPError {
47
+ constructor(message = 'Insufficient permissions') {
48
+ super(message, 'AUTHORIZATION_ERROR');
49
+ this.name = 'AuthorizationError';
50
+ }
51
+ }
52
+ export class RateLimitError extends MCPError {
53
+ constructor(message, retryAfter) {
54
+ super(message, 'RATE_LIMIT_EXCEEDED', retryAfter ? { retryAfter } : undefined);
55
+ this.name = 'RateLimitError';
56
+ }
57
+ }
58
+ export class NetworkError extends MCPError {
59
+ constructor(message, statusCode, details) {
60
+ super(message, 'NETWORK_ERROR', { statusCode, ...details });
61
+ this.name = 'NetworkError';
62
+ }
63
+ }
64
+ export class ConfigurationError extends MCPError {
65
+ constructor(message, details) {
66
+ super(message, 'CONFIGURATION_ERROR', details);
67
+ this.name = 'ConfigurationError';
68
+ }
69
+ }
70
+ export class SessionError extends MCPError {
71
+ constructor(message, sessionId) {
72
+ super(message, 'SESSION_ERROR', sessionId ? { sessionId } : undefined);
73
+ this.name = 'SessionError';
74
+ }
75
+ }
76
+ export class UnknownCliFlagError extends MCPError {
77
+ constructor(flags) {
78
+ const sortedFlags = [...flags].sort();
79
+ super(`Unknown CLI flags: ${sortedFlags.join(', ')}`, 'UNKNOWN_CLI_FLAG', { flags: sortedFlags });
80
+ this.name = 'UnknownCliFlagError';
81
+ }
82
+ }
83
+ /**
84
+ * Helper function to check if an error is an MCPError
85
+ */
86
+ export function isMCPError(error) {
87
+ return error instanceof MCPError;
88
+ }
89
+ /**
90
+ * Generate a unique correlation ID for error tracking
91
+ *
92
+ * Why: Allows matching client-reported errors with server logs
93
+ */
94
+ export function generateCorrelationId() {
95
+ return randomUUID();
96
+ }
97
+ /**
98
+ * Helper function to get error details for logging
99
+ */
100
+ export function getErrorDetails(error) {
101
+ if (isMCPError(error)) {
102
+ return {
103
+ name: error.name,
104
+ code: error.code,
105
+ message: error.message,
106
+ details: error.details,
107
+ stack: error.stack,
108
+ };
109
+ }
110
+ if (error instanceof Error) {
111
+ return {
112
+ name: error.name,
113
+ message: error.message,
114
+ stack: error.stack,
115
+ };
116
+ }
117
+ return { message: String(error) };
118
+ }
119
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { ToolDefinition } from './types/profile.js';
2
+ import type { OperationInfo } from './types/openapi.js';
3
+ export type FilteringRules = Record<string, string[]>;
4
+ export interface FilteringParseResult {
5
+ filtering: FilteringRules;
6
+ normalizedHeader: string;
7
+ }
8
+ export declare function normalizeFilteringHeaderValue(value?: string): string | undefined;
9
+ export declare function parseFilteringHeader(headerValue: string): FilteringParseResult;
10
+ export declare function isControlKey(key: string): boolean;
11
+ export declare function getFilterMaxValues(): number;
12
+ export declare function enforceFiltering(context: {
13
+ filtering: FilteringRules;
14
+ toolDef: ToolDefinition;
15
+ args: Record<string, unknown>;
16
+ parameterAliases?: Record<string, string[]>;
17
+ operation?: OperationInfo;
18
+ }): void;
19
+ //# sourceMappingURL=filtering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtering.d.ts","sourceRoot":"","sources":["../../src/filtering.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOxD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,cAAc,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,6BAA6B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOhF;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,CA2D9E;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEjD;AAaD,wBAAgB,kBAAkB,IAAI,MAAM,CAY3C;AAyJD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B,GAAG,IAAI,CA+BP"}
@@ -0,0 +1,292 @@
1
+ import { AuthorizationError, ValidationError } from './errors.js';
2
+ const CONTROL_KEYS = new Set(['_allow_list', '_allow_read']);
3
+ const KEY_PATTERN = /^[A-Za-z0-9_][A-Za-z0-9_-]{0,63}$/;
4
+ export function normalizeFilteringHeaderValue(value) {
5
+ if (value === undefined || value === null) {
6
+ return undefined;
7
+ }
8
+ const normalized = value.trim();
9
+ return normalized.length > 0 ? normalized : undefined;
10
+ }
11
+ export function parseFilteringHeader(headerValue) {
12
+ const normalizedHeader = normalizeFilteringHeaderValue(headerValue);
13
+ if (!normalizedHeader) {
14
+ return { filtering: Object.create(null), normalizedHeader: '' };
15
+ }
16
+ const maxValues = getFilterMaxValues();
17
+ const filtering = Object.create(null);
18
+ const parts = normalizedHeader.split(',');
19
+ for (const part of parts) {
20
+ const trimmed = part.trim();
21
+ if (!trimmed) {
22
+ continue;
23
+ }
24
+ const equalsIndex = trimmed.indexOf('=');
25
+ if (equalsIndex === -1) {
26
+ if (!CONTROL_KEYS.has(trimmed) || !KEY_PATTERN.test(trimmed)) {
27
+ throw new ValidationError('Invalid X-Mcp4-Params header. Expected comma-separated key=value pairs.');
28
+ }
29
+ filtering[trimmed] = filtering[trimmed] ?? [];
30
+ continue;
31
+ }
32
+ const key = trimmed.slice(0, equalsIndex).trim();
33
+ const rawValue = trimmed.slice(equalsIndex + 1).trim();
34
+ if (!key || !KEY_PATTERN.test(key)) {
35
+ throw new ValidationError('Invalid X-Mcp4-Params header. Expected comma-separated key=value pairs.');
36
+ }
37
+ if (CONTROL_KEYS.has(key)) {
38
+ throw new ValidationError('Invalid X-Mcp4-Params header. Expected comma-separated key=value pairs.');
39
+ }
40
+ if (!rawValue) {
41
+ continue;
42
+ }
43
+ let decodedValue;
44
+ try {
45
+ decodedValue = decodeURIComponent(rawValue);
46
+ }
47
+ catch {
48
+ throw new ValidationError('Invalid X-Mcp4-Params header. Expected comma-separated key=value pairs.');
49
+ }
50
+ const values = filtering[key] ?? [];
51
+ if (values.length >= maxValues) {
52
+ throw new ValidationError(`X-Mcp4-Params exceeds max values for key '${key}'. Max allowed is ${maxValues}.`);
53
+ }
54
+ values.push(decodedValue);
55
+ filtering[key] = values;
56
+ }
57
+ return { filtering, normalizedHeader };
58
+ }
59
+ export function isControlKey(key) {
60
+ return CONTROL_KEYS.has(key);
61
+ }
62
+ export function getFilterMaxValues() {
63
+ const raw = process.env.MCP4_FILTER_MAX_VALUES;
64
+ if (raw === undefined) {
65
+ return 10;
66
+ }
67
+ const parsed = parseInt(raw, 10);
68
+ if (Number.isNaN(parsed) || parsed <= 0) {
69
+ throw new ValidationError(`Invalid MCP4_FILTER_MAX_VALUES: expected positive integer, got '${raw}'.`);
70
+ }
71
+ return parsed;
72
+ }
73
+ function prepareFilteringContext(filtering, toolDef, args, parameterAliases, operation) {
74
+ const aliasToCanonical = buildAliasToCanonical(parameterAliases);
75
+ const toolParamGroups = buildToolParamGroups(toolDef, parameterAliases, aliasToCanonical);
76
+ const filterKeys = Object.keys(filtering).filter(key => !isControlKey(key));
77
+ validateFilterKeys(filterKeys, toolParamGroups, toolDef.parameters);
78
+ const allowedByCanonical = buildAllowedByCanonical(filterKeys, filtering, aliasToCanonical, toolParamGroups);
79
+ const applicableCanonicals = Array.from(allowedByCanonical.keys());
80
+ const operationCategory = resolveOperationCategory(operation, args['action']);
81
+ return {
82
+ aliasToCanonical,
83
+ toolParamGroups,
84
+ allowedByCanonical,
85
+ applicableCanonicals,
86
+ operationCategory,
87
+ hasAnyFilterParam: applicableCanonicals.some(canonical => {
88
+ const group = toolParamGroups.get(canonical);
89
+ return group ? getArgumentValue(args, group.names) !== undefined : false;
90
+ }),
91
+ permissions: {
92
+ allowList: Object.prototype.hasOwnProperty.call(filtering, '_allow_list'),
93
+ allowRead: Object.prototype.hasOwnProperty.call(filtering, '_allow_read')
94
+ },
95
+ action: typeof args['action'] === 'string' ? args['action'] : undefined
96
+ };
97
+ }
98
+ function buildAllowedByCanonical(filterKeys, filtering, aliasToCanonical, toolParamGroups) {
99
+ const allowedByCanonical = new Map();
100
+ for (const key of filterKeys) {
101
+ const canonical = aliasToCanonical.get(key) ?? key;
102
+ if (!toolParamGroups.has(canonical)) {
103
+ continue;
104
+ }
105
+ const values = filtering[key] ?? [];
106
+ if (values.length === 0) {
107
+ continue;
108
+ }
109
+ const existing = allowedByCanonical.get(canonical) ?? [];
110
+ existing.push(...values);
111
+ allowedByCanonical.set(canonical, dedupe(existing));
112
+ }
113
+ return allowedByCanonical;
114
+ }
115
+ function validateParameterValue(argValue, allowedValues, canonical) {
116
+ const allowedSet = new Set(allowedValues);
117
+ if (Array.isArray(argValue)) {
118
+ for (const item of argValue) {
119
+ if (!isPrimitiveValue(item)) {
120
+ throw new AuthorizationError(`Filter conflict for '${canonical}': expected one of [${allowedValues.join(', ')}], got '${formatValue(item)}'.`);
121
+ }
122
+ const stringValue = String(item);
123
+ if (!allowedSet.has(stringValue)) {
124
+ throw new AuthorizationError(`Filter conflict for '${canonical}': expected one of [${allowedValues.join(', ')}], got '${stringValue}'.`);
125
+ }
126
+ }
127
+ return;
128
+ }
129
+ if (typeof argValue === 'object' && argValue !== null) {
130
+ throw new AuthorizationError(`Filter conflict for '${canonical}': expected one of [${allowedValues.join(', ')}], got '${formatValue(argValue)}'.`);
131
+ }
132
+ const stringValue = String(argValue);
133
+ if (!allowedSet.has(stringValue)) {
134
+ throw new AuthorizationError(`Filter conflict for '${canonical}': expected one of [${allowedValues.join(', ')}], got '${stringValue}'.`);
135
+ }
136
+ }
137
+ function validateCanonicalParameter(ctx, canonical, args, toolDef) {
138
+ const allowedValues = ctx.allowedByCanonical.get(canonical) ?? [];
139
+ const group = ctx.toolParamGroups.get(canonical);
140
+ if (!group) {
141
+ return;
142
+ }
143
+ const paramDefinition = toolDef.parameters[canonical];
144
+ const argValue = getArgumentValue(args, group.names);
145
+ const { operationCategory, permissions, hasAnyFilterParam, action } = ctx;
146
+ const isList = operationCategory === 'list';
147
+ const isRead = operationCategory === 'read';
148
+ const isModify = operationCategory === 'modify';
149
+ if (argValue === undefined) {
150
+ if ((isList && permissions.allowList) || (isRead && permissions.allowRead)) {
151
+ return;
152
+ }
153
+ if (action && isRequiredForAction(paramDefinition, action)) {
154
+ throw new AuthorizationError(`Filter requires parameter '${canonical}' for tool '${toolDef.name}' action '${action}'.`);
155
+ }
156
+ if (isModify && hasAnyFilterParam) {
157
+ return;
158
+ }
159
+ if (isList || isRead || isModify) {
160
+ throw new AuthorizationError(`Filter requires parameter '${canonical}' for tool '${toolDef.name}'.`);
161
+ }
162
+ return;
163
+ }
164
+ // For list/read operations, allow _allow_list/_allow_read to relax value enforcement.
165
+ // This enables "read/list any" access while keeping modify operations constrained to the allow-set.
166
+ if ((isList && permissions.allowList) || (isRead && permissions.allowRead)) {
167
+ return;
168
+ }
169
+ validateParameterValue(argValue, allowedValues, canonical);
170
+ }
171
+ export function enforceFiltering(context) {
172
+ const { filtering, toolDef, args, parameterAliases, operation } = context;
173
+ const filterKeys = Object.keys(filtering).filter(key => !isControlKey(key));
174
+ if (filterKeys.length === 0) {
175
+ return;
176
+ }
177
+ const ctx = prepareFilteringContext(filtering, toolDef, args, parameterAliases ?? {}, operation);
178
+ if (ctx.applicableCanonicals.length === 0) {
179
+ return;
180
+ }
181
+ if (ctx.operationCategory === 'modify' && !ctx.hasAnyFilterParam) {
182
+ for (const canonical of ctx.applicableCanonicals) {
183
+ const paramDefinition = toolDef.parameters[canonical];
184
+ if (ctx.action && isRequiredForAction(paramDefinition, ctx.action)) {
185
+ throw new AuthorizationError(`Filter requires parameter '${canonical}' for tool '${toolDef.name}' action '${ctx.action}'.`);
186
+ }
187
+ }
188
+ throw new AuthorizationError(`Filter requires at least one of [${ctx.applicableCanonicals.join(', ')}] for tool '${toolDef.name}'.`);
189
+ }
190
+ for (const canonical of ctx.applicableCanonicals) {
191
+ validateCanonicalParameter(ctx, canonical, args, toolDef);
192
+ }
193
+ }
194
+ function buildAliasToCanonical(parameterAliases) {
195
+ const aliasToCanonical = new Map();
196
+ for (const [canonical, aliases] of Object.entries(parameterAliases)) {
197
+ for (const alias of aliases) {
198
+ if (!aliasToCanonical.has(alias)) {
199
+ aliasToCanonical.set(alias, canonical);
200
+ }
201
+ }
202
+ }
203
+ return aliasToCanonical;
204
+ }
205
+ function buildToolParamGroups(toolDef, parameterAliases, aliasToCanonical) {
206
+ const groups = new Map();
207
+ for (const paramName of Object.keys(toolDef.parameters)) {
208
+ const canonical = aliasToCanonical.get(paramName) ?? paramName;
209
+ const aliasNames = parameterAliases[canonical] ?? [];
210
+ const group = groups.get(canonical) ?? { names: [] };
211
+ group.names = dedupe([canonical, ...aliasNames, paramName, ...group.names]);
212
+ groups.set(canonical, group);
213
+ }
214
+ return groups;
215
+ }
216
+ function validateFilterKeys(filterKeys, toolParamGroups, parameters) {
217
+ const allowedKeys = new Set();
218
+ for (const [canonical, group] of toolParamGroups.entries()) {
219
+ allowedKeys.add(canonical);
220
+ for (const name of group.names) {
221
+ allowedKeys.add(name);
222
+ }
223
+ }
224
+ for (const key of Object.keys(parameters)) {
225
+ allowedKeys.add(key);
226
+ }
227
+ const unknownKeys = filterKeys.filter(key => !allowedKeys.has(key));
228
+ if (unknownKeys.length === 0) {
229
+ return;
230
+ }
231
+ const allowedList = Array.from(allowedKeys).sort().join(', ');
232
+ throw new ValidationError(`Unknown filter key '${unknownKeys[0]}'. Allowed keys: ${allowedList}`);
233
+ }
234
+ function isRequiredForAction(paramDefinition, action) {
235
+ if (!paramDefinition) {
236
+ return false;
237
+ }
238
+ if (paramDefinition.required) {
239
+ return true;
240
+ }
241
+ if (!paramDefinition.required_for || paramDefinition.required_for.length === 0) {
242
+ return false;
243
+ }
244
+ return paramDefinition.required_for.includes(action);
245
+ }
246
+ function getArgumentValue(args, names) {
247
+ for (const name of names) {
248
+ if (args[name] !== undefined) {
249
+ return args[name];
250
+ }
251
+ }
252
+ return undefined;
253
+ }
254
+ function resolveOperationCategory(operation, action) {
255
+ if (operation) {
256
+ const method = operation.method.toLowerCase();
257
+ if (method === 'get') {
258
+ const hasPathParams = operation.parameters.some(param => param.in === 'path');
259
+ return hasPathParams ? 'read' : 'list';
260
+ }
261
+ }
262
+ const actionValue = typeof action === 'string' ? action.toLowerCase() : '';
263
+ if (actionValue === 'list' || actionValue === 'search') {
264
+ return 'list';
265
+ }
266
+ if (actionValue === 'get' || actionValue === 'read') {
267
+ return 'read';
268
+ }
269
+ return 'modify';
270
+ }
271
+ function dedupe(values) {
272
+ return Array.from(new Set(values));
273
+ }
274
+ function isPrimitiveValue(value) {
275
+ return ['string', 'number', 'boolean'].includes(typeof value);
276
+ }
277
+ function formatValue(value) {
278
+ if (value === undefined) {
279
+ return 'undefined';
280
+ }
281
+ if (value === null) {
282
+ return 'null';
283
+ }
284
+ if (Array.isArray(value)) {
285
+ return 'array';
286
+ }
287
+ if (typeof value === 'object') {
288
+ return 'object';
289
+ }
290
+ return String(value);
291
+ }
292
+ //# sourceMappingURL=filtering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filtering.js","sourceRoot":"","sources":["../../src/filtering.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,9 @@ export declare const parameterDefinitionSchema: z.ZodObject<{
19
19
  required: z.ZodOptional<z.ZodBoolean>;
20
20
  required_for: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
21
21
  enum: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
22
+ minLength: z.ZodOptional<z.ZodNumber>;
23
+ maxLength: z.ZodOptional<z.ZodNumber>;
24
+ pattern: z.ZodOptional<z.ZodString>;
22
25
  items: z.ZodOptional<z.ZodObject<{
23
26
  type: z.ZodString;
24
27
  }, "strip", z.ZodTypeAny, {
@@ -55,6 +58,9 @@ export declare const parameterDefinitionSchema: z.ZodObject<{
55
58
  required?: boolean | undefined;
56
59
  required_for?: string[] | undefined;
57
60
  enum?: string[] | undefined;
61
+ minLength?: number | undefined;
62
+ maxLength?: number | undefined;
63
+ pattern?: string | undefined;
58
64
  items?: {
59
65
  type: string;
60
66
  } | undefined;
@@ -75,6 +81,9 @@ export declare const parameterDefinitionSchema: z.ZodObject<{
75
81
  required?: boolean | undefined;
76
82
  required_for?: string[] | undefined;
77
83
  enum?: string[] | undefined;
84
+ minLength?: number | undefined;
85
+ maxLength?: number | undefined;
86
+ pattern?: string | undefined;
78
87
  items?: {
79
88
  type: string;
80
89
  } | undefined;
@@ -305,6 +314,9 @@ export declare const toolDefinitionSchema: z.ZodObject<{
305
314
  required: z.ZodOptional<z.ZodBoolean>;
306
315
  required_for: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
307
316
  enum: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
317
+ minLength: z.ZodOptional<z.ZodNumber>;
318
+ maxLength: z.ZodOptional<z.ZodNumber>;
319
+ pattern: z.ZodOptional<z.ZodString>;
308
320
  items: z.ZodOptional<z.ZodObject<{
309
321
  type: z.ZodString;
310
322
  }, "strip", z.ZodTypeAny, {
@@ -341,6 +353,9 @@ export declare const toolDefinitionSchema: z.ZodObject<{
341
353
  required?: boolean | undefined;
342
354
  required_for?: string[] | undefined;
343
355
  enum?: string[] | undefined;
356
+ minLength?: number | undefined;
357
+ maxLength?: number | undefined;
358
+ pattern?: string | undefined;
344
359
  items?: {
345
360
  type: string;
346
361
  } | undefined;
@@ -361,6 +376,9 @@ export declare const toolDefinitionSchema: z.ZodObject<{
361
376
  required?: boolean | undefined;
362
377
  required_for?: string[] | undefined;
363
378
  enum?: string[] | undefined;
379
+ minLength?: number | undefined;
380
+ maxLength?: number | undefined;
381
+ pattern?: string | undefined;
364
382
  items?: {
365
383
  type: string;
366
384
  } | undefined;
@@ -388,6 +406,9 @@ export declare const toolDefinitionSchema: z.ZodObject<{
388
406
  required?: boolean | undefined;
389
407
  required_for?: string[] | undefined;
390
408
  enum?: string[] | undefined;
409
+ minLength?: number | undefined;
410
+ maxLength?: number | undefined;
411
+ pattern?: string | undefined;
391
412
  items?: {
392
413
  type: string;
393
414
  } | undefined;
@@ -435,6 +456,9 @@ export declare const toolDefinitionSchema: z.ZodObject<{
435
456
  required?: boolean | undefined;
436
457
  required_for?: string[] | undefined;
437
458
  enum?: string[] | undefined;
459
+ minLength?: number | undefined;
460
+ maxLength?: number | undefined;
461
+ pattern?: string | undefined;
438
462
  items?: {
439
463
  type: string;
440
464
  } | undefined;
@@ -1053,6 +1077,9 @@ export declare const profileSchema: z.ZodObject<{
1053
1077
  required: z.ZodOptional<z.ZodBoolean>;
1054
1078
  required_for: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1055
1079
  enum: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1080
+ minLength: z.ZodOptional<z.ZodNumber>;
1081
+ maxLength: z.ZodOptional<z.ZodNumber>;
1082
+ pattern: z.ZodOptional<z.ZodString>;
1056
1083
  items: z.ZodOptional<z.ZodObject<{
1057
1084
  type: z.ZodString;
1058
1085
  }, "strip", z.ZodTypeAny, {
@@ -1089,6 +1116,9 @@ export declare const profileSchema: z.ZodObject<{
1089
1116
  required?: boolean | undefined;
1090
1117
  required_for?: string[] | undefined;
1091
1118
  enum?: string[] | undefined;
1119
+ minLength?: number | undefined;
1120
+ maxLength?: number | undefined;
1121
+ pattern?: string | undefined;
1092
1122
  items?: {
1093
1123
  type: string;
1094
1124
  } | undefined;
@@ -1109,6 +1139,9 @@ export declare const profileSchema: z.ZodObject<{
1109
1139
  required?: boolean | undefined;
1110
1140
  required_for?: string[] | undefined;
1111
1141
  enum?: string[] | undefined;
1142
+ minLength?: number | undefined;
1143
+ maxLength?: number | undefined;
1144
+ pattern?: string | undefined;
1112
1145
  items?: {
1113
1146
  type: string;
1114
1147
  } | undefined;
@@ -1136,6 +1169,9 @@ export declare const profileSchema: z.ZodObject<{
1136
1169
  required?: boolean | undefined;
1137
1170
  required_for?: string[] | undefined;
1138
1171
  enum?: string[] | undefined;
1172
+ minLength?: number | undefined;
1173
+ maxLength?: number | undefined;
1174
+ pattern?: string | undefined;
1139
1175
  items?: {
1140
1176
  type: string;
1141
1177
  } | undefined;
@@ -1183,6 +1219,9 @@ export declare const profileSchema: z.ZodObject<{
1183
1219
  required?: boolean | undefined;
1184
1220
  required_for?: string[] | undefined;
1185
1221
  enum?: string[] | undefined;
1222
+ minLength?: number | undefined;
1223
+ maxLength?: number | undefined;
1224
+ pattern?: string | undefined;
1186
1225
  items?: {
1187
1226
  type: string;
1188
1227
  } | undefined;
@@ -1639,6 +1678,9 @@ export declare const profileSchema: z.ZodObject<{
1639
1678
  required?: boolean | undefined;
1640
1679
  required_for?: string[] | undefined;
1641
1680
  enum?: string[] | undefined;
1681
+ minLength?: number | undefined;
1682
+ maxLength?: number | undefined;
1683
+ pattern?: string | undefined;
1642
1684
  items?: {
1643
1685
  type: string;
1644
1686
  } | undefined;
@@ -1767,6 +1809,9 @@ export declare const profileSchema: z.ZodObject<{
1767
1809
  required?: boolean | undefined;
1768
1810
  required_for?: string[] | undefined;
1769
1811
  enum?: string[] | undefined;
1812
+ minLength?: number | undefined;
1813
+ maxLength?: number | undefined;
1814
+ pattern?: string | undefined;
1770
1815
  items?: {
1771
1816
  type: string;
1772
1817
  } | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"generated-schemas.d.ts","sourceRoot":"","sources":["../../src/generated-schemas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAI9B,CAAC;AAEH,eAAO,MAAM,mBAAmB,+JAA2I,CAAC;AAE5K,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBpC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYvC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAsD,CAAC;AAE7F,eAAO,MAAM,mBAAmB;;;;;;;;;EAG9B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;EAKhC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAI5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY5B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW/B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAchC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMlC,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWxB,CAAC"}
1
+ {"version":3,"file":"generated-schemas.d.ts","sourceRoot":"","sources":["../../src/generated-schemas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAI9B,CAAC;AAEH,eAAO,MAAM,mBAAmB,+JAA2I,CAAC;AAE5K,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBpC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYvC,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAsD,CAAC;AAE7F,eAAO,MAAM,mBAAmB;;;;;;;;;EAG9B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;EAKhC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAI5B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY5B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW/B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAchC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMlC,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWxB,CAAC"}
@@ -12,6 +12,9 @@ export const parameterDefinitionSchema = z.object({
12
12
  required: z.boolean().optional(),
13
13
  required_for: z.array(z.string()).optional(),
14
14
  enum: z.array(z.string()).optional(),
15
+ minLength: z.number().optional(),
16
+ maxLength: z.number().optional(),
17
+ pattern: z.string().optional(),
15
18
  items: z.object({
16
19
  type: z.string()
17
20
  }).optional(),