mcp4openapi 0.3.1 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/dist/src/core/cli-config.d.ts.map +1 -1
- package/dist/src/core/cli-config.js +2 -0
- package/dist/src/core/cli-config.js.map +1 -1
- package/dist/src/core/index.d.ts.map +1 -1
- package/dist/src/core/index.js +18 -3
- package/dist/src/core/index.js.map +1 -1
- package/dist/src/index.js +0 -0
- package/dist/src/profile/profile-allowlist.d.ts +18 -0
- package/dist/src/profile/profile-allowlist.d.ts.map +1 -0
- package/dist/src/profile/profile-allowlist.js +68 -0
- package/dist/src/profile/profile-allowlist.js.map +1 -0
- package/dist/src/profile/profile-registry.d.ts +5 -0
- package/dist/src/profile/profile-registry.d.ts.map +1 -1
- package/dist/src/profile/profile-registry.js +38 -14
- package/dist/src/profile/profile-registry.js.map +1 -1
- package/package.json +2 -2
- package/profiles/gitlab/developer-profile-oauth.json +243 -41
- package/profiles/gitlab/developer-profile-oauth.test.json +1009 -5
- package/profiles/gitlab/openapi.yaml +1419 -164
- package/profiles/gitlab/profile-optimized-oauth.json +785 -0
- package/profiles/gitlab/profile-optimized-oauth.test.json +1566 -0
- package/profiles/grafana/openapi.json +28078 -0
- package/profiles/grafana/profile.json +1083 -0
- package/profiles/grafana/profile.test.json +235 -0
- package/profiles/mattermost/openapi.yaml +27434 -0
- package/profiles/mattermost/profile.json +463 -0
- package/profiles/mattermost/profile.test.json +607 -0
- package/profiles/n8n/profile-optimized.json +1002 -364
- package/profiles/n8n/profile-optimized.test.json +43 -43
- package/dist/src/argument-normalizer.d.ts +0 -5
- package/dist/src/argument-normalizer.d.ts.map +0 -1
- package/dist/src/argument-normalizer.js +0 -61
- package/dist/src/argument-normalizer.js.map +0 -1
- package/dist/src/cli-config.d.ts +0 -9
- package/dist/src/cli-config.d.ts.map +0 -1
- package/dist/src/cli-config.js +0 -111
- package/dist/src/cli-config.js.map +0 -1
- package/dist/src/composite-executor.d.ts +0 -77
- package/dist/src/composite-executor.d.ts.map +0 -1
- package/dist/src/composite-executor.js +0 -193
- package/dist/src/composite-executor.js.map +0 -1
- package/dist/src/constants.d.ts +0 -85
- package/dist/src/constants.d.ts.map +0 -1
- package/dist/src/constants.js +0 -85
- package/dist/src/constants.js.map +0 -1
- package/dist/src/dag-executor.d.ts +0 -49
- package/dist/src/dag-executor.d.ts.map +0 -1
- package/dist/src/dag-executor.js +0 -138
- package/dist/src/dag-executor.js.map +0 -1
- package/dist/src/errors.d.ts +0 -59
- package/dist/src/errors.d.ts.map +0 -1
- package/dist/src/errors.js +0 -119
- package/dist/src/errors.js.map +0 -1
- package/dist/src/filtering.d.ts +0 -19
- package/dist/src/filtering.d.ts.map +0 -1
- package/dist/src/filtering.js +0 -292
- package/dist/src/filtering.js.map +0 -1
- package/dist/src/http-client-factory.d.ts +0 -62
- package/dist/src/http-client-factory.d.ts.map +0 -1
- package/dist/src/http-client-factory.js +0 -133
- package/dist/src/http-client-factory.js.map +0 -1
- package/dist/src/http-transport-config.d.ts +0 -6
- package/dist/src/http-transport-config.d.ts.map +0 -1
- package/dist/src/http-transport-config.js +0 -47
- package/dist/src/http-transport-config.js.map +0 -1
- package/dist/src/http-transport.d.ts +0 -316
- package/dist/src/http-transport.d.ts.map +0 -1
- package/dist/src/http-transport.js +0 -2412
- package/dist/src/http-transport.js.map +0 -1
- package/dist/src/interceptors.d.ts +0 -116
- package/dist/src/interceptors.d.ts.map +0 -1
- package/dist/src/interceptors.js +0 -392
- package/dist/src/interceptors.js.map +0 -1
- package/dist/src/jsonrpc-validator.d.ts +0 -27
- package/dist/src/jsonrpc-validator.d.ts.map +0 -1
- package/dist/src/jsonrpc-validator.js +0 -58
- package/dist/src/jsonrpc-validator.js.map +0 -1
- package/dist/src/logger.d.ts +0 -59
- package/dist/src/logger.d.ts.map +0 -1
- package/dist/src/logger.js +0 -177
- package/dist/src/logger.js.map +0 -1
- package/dist/src/mcp-server-manager.d.ts +0 -20
- package/dist/src/mcp-server-manager.d.ts.map +0 -1
- package/dist/src/mcp-server-manager.js +0 -38
- package/dist/src/mcp-server-manager.js.map +0 -1
- package/dist/src/mcp-server.d.ts +0 -203
- package/dist/src/mcp-server.d.ts.map +0 -1
- package/dist/src/mcp-server.js +0 -1369
- package/dist/src/mcp-server.js.map +0 -1
- package/dist/src/metrics.d.ts +0 -97
- package/dist/src/metrics.d.ts.map +0 -1
- package/dist/src/metrics.js +0 -273
- package/dist/src/metrics.js.map +0 -1
- package/dist/src/naming-warnings.d.ts +0 -23
- package/dist/src/naming-warnings.d.ts.map +0 -1
- package/dist/src/naming-warnings.js +0 -83
- package/dist/src/naming-warnings.js.map +0 -1
- package/dist/src/naming.d.ts +0 -58
- package/dist/src/naming.d.ts.map +0 -1
- package/dist/src/naming.js +0 -510
- package/dist/src/naming.js.map +0 -1
- package/dist/src/oauth-provider.d.ts +0 -131
- package/dist/src/oauth-provider.d.ts.map +0 -1
- package/dist/src/oauth-provider.js +0 -836
- package/dist/src/oauth-provider.js.map +0 -1
- package/dist/src/openapi-parser.d.ts +0 -70
- package/dist/src/openapi-parser.d.ts.map +0 -1
- package/dist/src/openapi-parser.js +0 -436
- package/dist/src/openapi-parser.js.map +0 -1
- package/dist/src/profile-loader.d.ts +0 -78
- package/dist/src/profile-loader.d.ts.map +0 -1
- package/dist/src/profile-loader.js +0 -483
- package/dist/src/profile-loader.js.map +0 -1
- package/dist/src/profile-registry.d.ts +0 -18
- package/dist/src/profile-registry.d.ts.map +0 -1
- package/dist/src/profile-registry.js +0 -26
- package/dist/src/profile-registry.js.map +0 -1
- package/dist/src/profile-resolver.d.ts +0 -19
- package/dist/src/profile-resolver.d.ts.map +0 -1
- package/dist/src/profile-resolver.js +0 -167
- package/dist/src/profile-resolver.js.map +0 -1
- package/dist/src/proxy-executor.d.ts +0 -86
- package/dist/src/proxy-executor.d.ts.map +0 -1
- package/dist/src/proxy-executor.js +0 -497
- package/dist/src/proxy-executor.js.map +0 -1
- package/dist/src/schema-validator.d.ts +0 -30
- package/dist/src/schema-validator.d.ts.map +0 -1
- package/dist/src/schema-validator.js +0 -128
- package/dist/src/schema-validator.js.map +0 -1
- package/dist/src/startup-profile.d.ts +0 -17
- package/dist/src/startup-profile.d.ts.map +0 -1
- package/dist/src/startup-profile.js +0 -30
- package/dist/src/startup-profile.js.map +0 -1
- package/dist/src/startup-validation.d.ts +0 -11
- package/dist/src/startup-validation.d.ts.map +0 -1
- package/dist/src/startup-validation.js +0 -21
- package/dist/src/startup-validation.js.map +0 -1
- package/dist/src/tool-filter.d.ts +0 -65
- package/dist/src/tool-filter.d.ts.map +0 -1
- package/dist/src/tool-filter.js +0 -471
- package/dist/src/tool-filter.js.map +0 -1
- package/dist/src/tool-generator.d.ts +0 -67
- package/dist/src/tool-generator.d.ts.map +0 -1
- package/dist/src/tool-generator.js +0 -182
- package/dist/src/tool-generator.js.map +0 -1
- package/dist/src/validation-utils.d.ts +0 -49
- package/dist/src/validation-utils.d.ts.map +0 -1
- package/dist/src/validation-utils.js +0 -138
- package/dist/src/validation-utils.js.map +0 -1
- package/profiles/gitlab/developer-profile.json +0 -1508
- package/profiles/gitlab/developer-profile.test.json +0 -3432
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Request body schema validator
|
|
3
|
-
*
|
|
4
|
-
* Why: Catch invalid requests before sending to API. Better error messages for users.
|
|
5
|
-
* Validates against OpenAPI schema definitions.
|
|
6
|
-
*/
|
|
7
|
-
import { isEmail, isUri } from './validation-utils.js';
|
|
8
|
-
export class SchemaValidator {
|
|
9
|
-
/**
|
|
10
|
-
* Validate request body against OpenAPI schema
|
|
11
|
-
*
|
|
12
|
-
* Why: Prevents sending malformed requests. OpenAPI schema is the source of truth.
|
|
13
|
-
*/
|
|
14
|
-
validateRequestBody(operation, body) {
|
|
15
|
-
if (!operation.requestBody?.content['application/json']?.schema) {
|
|
16
|
-
return { valid: true };
|
|
17
|
-
}
|
|
18
|
-
const schema = operation.requestBody.content['application/json'].schema;
|
|
19
|
-
const errors = [];
|
|
20
|
-
this.validateAgainstSchema(body, schema, '', errors);
|
|
21
|
-
return {
|
|
22
|
-
valid: errors.length === 0,
|
|
23
|
-
errors: errors.length > 0 ? errors : undefined,
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Recursively validate data against schema
|
|
28
|
-
*/
|
|
29
|
-
validateAgainstSchema(data, schema, path, errors) {
|
|
30
|
-
// Null/undefined handling
|
|
31
|
-
if (data === null || data === undefined) {
|
|
32
|
-
if (schema.type && schema.type !== 'null') {
|
|
33
|
-
errors.push({
|
|
34
|
-
path: path || '(root)',
|
|
35
|
-
message: `Expected ${schema.type}, got ${data}`,
|
|
36
|
-
schema,
|
|
37
|
-
value: data,
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
// Type validation
|
|
43
|
-
if (schema.type) {
|
|
44
|
-
const actualType = Array.isArray(data) ? 'array' : typeof data;
|
|
45
|
-
// OpenAPI 'integer' is a subtype of 'number' with format constraint
|
|
46
|
-
const expectedType = schema.type === 'integer' ? 'number' : schema.type;
|
|
47
|
-
if (actualType !== expectedType) {
|
|
48
|
-
errors.push({
|
|
49
|
-
path: path || '(root)',
|
|
50
|
-
message: `Expected ${schema.type}, got ${actualType}`,
|
|
51
|
-
schema,
|
|
52
|
-
value: data,
|
|
53
|
-
});
|
|
54
|
-
return; // Stop validation if type is wrong
|
|
55
|
-
}
|
|
56
|
-
// Additional integer validation: check it's actually an integer
|
|
57
|
-
if (schema.type === 'integer' && typeof data === 'number') {
|
|
58
|
-
if (!Number.isInteger(data)) {
|
|
59
|
-
errors.push({
|
|
60
|
-
path: path || '(root)',
|
|
61
|
-
message: `Expected integer, got number`,
|
|
62
|
-
schema,
|
|
63
|
-
value: data,
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
// Enum validation
|
|
69
|
-
// Note: Using 'as any' here is safe - we're checking if value exists in enum array
|
|
70
|
-
// TypeScript doesn't know the enum values at compile time
|
|
71
|
-
if (schema.enum && !schema.enum.includes(data)) {
|
|
72
|
-
errors.push({
|
|
73
|
-
path: path || '(root)',
|
|
74
|
-
message: `Value must be one of: ${schema.enum.join(', ')}`,
|
|
75
|
-
schema,
|
|
76
|
-
value: data,
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
// Object properties validation
|
|
80
|
-
if (schema.type === 'object' && schema.properties) {
|
|
81
|
-
const obj = data;
|
|
82
|
-
// Check required properties
|
|
83
|
-
for (const required of schema.required || []) {
|
|
84
|
-
if (obj[required] === undefined) {
|
|
85
|
-
errors.push({
|
|
86
|
-
path: path ? `${path}.${required}` : required,
|
|
87
|
-
message: 'Required property is missing',
|
|
88
|
-
schema,
|
|
89
|
-
value: undefined,
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
// Validate each property
|
|
94
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
95
|
-
if (schema.properties[key]) {
|
|
96
|
-
this.validateAgainstSchema(value, schema.properties[key], path ? `${path}.${key}` : key, errors);
|
|
97
|
-
}
|
|
98
|
-
// Note: Not validating additionalProperties (too strict for most APIs)
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
// Array items validation
|
|
102
|
-
if (schema.type === 'array' && schema.items && Array.isArray(data)) {
|
|
103
|
-
data.forEach((item, index) => {
|
|
104
|
-
this.validateAgainstSchema(item, schema.items, `${path}[${index}]`, errors);
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
// String format validation (basic)
|
|
108
|
-
if (schema.type === 'string' && schema.format && typeof data === 'string') {
|
|
109
|
-
if (schema.format === 'email' && !isEmail(data)) {
|
|
110
|
-
errors.push({
|
|
111
|
-
path: path || '(root)',
|
|
112
|
-
message: 'Invalid email format',
|
|
113
|
-
schema,
|
|
114
|
-
value: data,
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
if (schema.format === 'uri' && !isUri(data)) {
|
|
118
|
-
errors.push({
|
|
119
|
-
path: path || '(root)',
|
|
120
|
-
message: 'Invalid URI format',
|
|
121
|
-
schema,
|
|
122
|
-
value: data,
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
//# sourceMappingURL=schema-validator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-validator.js","sourceRoot":"","sources":["../../src/schema-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type ResolvedProfile } from './profile-resolver.js';
|
|
2
|
-
interface StartupProfileOptions {
|
|
3
|
-
specPathEnv?: string;
|
|
4
|
-
profilePath?: string;
|
|
5
|
-
profileId?: string;
|
|
6
|
-
profilesDir?: string;
|
|
7
|
-
}
|
|
8
|
-
interface StartupProfileResult {
|
|
9
|
-
specPath?: string;
|
|
10
|
-
profilePath?: string;
|
|
11
|
-
profileId?: string;
|
|
12
|
-
defaultProfile?: ResolvedProfile;
|
|
13
|
-
hasExplicitSpecPath: boolean;
|
|
14
|
-
}
|
|
15
|
-
export declare function resolveStartupProfile(options: StartupProfileOptions): Promise<StartupProfileResult>;
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=startup-profile.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"startup-profile.d.ts","sourceRoot":"","sources":["../../src/startup-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEzG,UAAU,qBAAqB;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA4BzG"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { resolveProfileById, resolveProfileFromPath } from './profile-resolver.js';
|
|
2
|
-
export async function resolveStartupProfile(options) {
|
|
3
|
-
const hasExplicitSpecPath = !!options.specPathEnv;
|
|
4
|
-
let specPath = options.specPathEnv;
|
|
5
|
-
let profilePath = options.profilePath;
|
|
6
|
-
let profileId = options.profileId;
|
|
7
|
-
let defaultProfile;
|
|
8
|
-
if (!profilePath && profileId) {
|
|
9
|
-
const resolved = await resolveProfileById(profileId, options.profilesDir, { specPathOverride: specPath });
|
|
10
|
-
defaultProfile = resolved;
|
|
11
|
-
profilePath = resolved.profilePath;
|
|
12
|
-
profileId = resolved.profileId;
|
|
13
|
-
specPath = resolved.specPath;
|
|
14
|
-
}
|
|
15
|
-
else if (profilePath) {
|
|
16
|
-
const resolved = await resolveProfileFromPath(profilePath, { specPathOverride: specPath });
|
|
17
|
-
defaultProfile = resolved;
|
|
18
|
-
profilePath = resolved.profilePath;
|
|
19
|
-
profileId = resolved.profileId;
|
|
20
|
-
specPath = resolved.specPath;
|
|
21
|
-
}
|
|
22
|
-
return {
|
|
23
|
-
specPath,
|
|
24
|
-
profilePath,
|
|
25
|
-
profileId,
|
|
26
|
-
defaultProfile,
|
|
27
|
-
hasExplicitSpecPath,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=startup-profile.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"startup-profile.js","sourceRoot":"","sources":["../../src/startup-profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAwB,MAAM,uBAAuB,CAAC;AAiBzG,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAA8B;IACxE,MAAM,mBAAmB,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAClD,IAAI,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;IACnC,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACtC,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAClC,IAAI,cAA2C,CAAC;IAEhD,IAAI,CAAC,WAAW,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1G,cAAc,GAAG,QAAQ,CAAC;QAC1B,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QACnC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC/B,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAC/B,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,WAAW,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3F,cAAc,GAAG,QAAQ,CAAC;QAC1B,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QACnC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC/B,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED,OAAO;QACL,QAAQ;QACR,WAAW;QACX,SAAS;QACT,cAAc;QACd,mBAAmB;KACpB,CAAC;AACJ,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Startup validation helpers for CLI.
|
|
3
|
-
*/
|
|
4
|
-
export declare const HTTP_PROFILE_ROUTING_ERROR: string;
|
|
5
|
-
export declare function getHttpProfileRoutingErrorMessage(options: {
|
|
6
|
-
transport: string;
|
|
7
|
-
profileRoutingEnabled: boolean;
|
|
8
|
-
hasDefaultProfile: boolean;
|
|
9
|
-
hasSpecPath: boolean;
|
|
10
|
-
}): string | null;
|
|
11
|
-
//# sourceMappingURL=startup-validation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"startup-validation.d.ts","sourceRoot":"","sources":["../../src/startup-validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,0BAA0B,QAEkG,CAAC;AAE1I,wBAAgB,iCAAiC,CAAC,OAAO,EAAE;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;CACtB,GAAG,MAAM,GAAG,IAAI,CAchB"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Startup validation helpers for CLI.
|
|
3
|
-
*/
|
|
4
|
-
export const HTTP_PROFILE_ROUTING_ERROR = 'HTTP profile routing is disabled and no default profile is configured.\n' +
|
|
5
|
-
'Set MCP4_HTTP_PROFILE_ROUTING=true to enable /profile/:id/mcp routes, or provide MCP4_PROFILE_PATH (or --profile-path) to serve /mcp.';
|
|
6
|
-
export function getHttpProfileRoutingErrorMessage(options) {
|
|
7
|
-
if (options.transport !== 'http') {
|
|
8
|
-
return null;
|
|
9
|
-
}
|
|
10
|
-
if (options.hasDefaultProfile) {
|
|
11
|
-
return null;
|
|
12
|
-
}
|
|
13
|
-
if (options.hasSpecPath) {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
if (options.profileRoutingEnabled) {
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
return HTTP_PROFILE_ROUTING_ERROR;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=startup-validation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"startup-validation.js","sourceRoot":"","sources":["../../src/startup-validation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,0BAA0B,GACrC,0EAA0E;IAC1E,uIAAuI,CAAC;AAE1I,MAAM,UAAU,iCAAiC,CAAC,OAKjD;IACC,IAAI,OAAO,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,0BAA0B,CAAC;AACpC,CAAC"}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import type { ToolDefinition } from './types/profile.js';
|
|
2
|
-
import type { OperationInfo } from './types/openapi.js';
|
|
3
|
-
export interface ToolFilterConfig {
|
|
4
|
-
allowList: Set<string>;
|
|
5
|
-
denyList: Set<string>;
|
|
6
|
-
allowRegex: RegExp[];
|
|
7
|
-
denyRegex: RegExp[];
|
|
8
|
-
allowCategories: Set<'list' | 'read'>;
|
|
9
|
-
hasAllowRules: boolean;
|
|
10
|
-
sources: {
|
|
11
|
-
allowList: string[];
|
|
12
|
-
allowRegex: string[];
|
|
13
|
-
denyList: string[];
|
|
14
|
-
denyRegex: string[];
|
|
15
|
-
allowCategories: string[];
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
export interface ToolFilterResult {
|
|
19
|
-
allowed: ToolDefinition[];
|
|
20
|
-
removed: ToolDefinition[];
|
|
21
|
-
reasons: Map<string, string[]>;
|
|
22
|
-
}
|
|
23
|
-
export interface SessionToolFilterRequest {
|
|
24
|
-
exactNames: Set<string>;
|
|
25
|
-
regexPatterns: RegExp[];
|
|
26
|
-
allowComposite: {
|
|
27
|
-
allowList: boolean;
|
|
28
|
-
allowRead: boolean;
|
|
29
|
-
};
|
|
30
|
-
normalizedHeader: string;
|
|
31
|
-
rawEntries: string[];
|
|
32
|
-
hasRules: boolean;
|
|
33
|
-
}
|
|
34
|
-
export interface SessionToolFilter {
|
|
35
|
-
allowedToolNames: Set<string>;
|
|
36
|
-
reasons: Map<string, string[]>;
|
|
37
|
-
patterns: {
|
|
38
|
-
allow: RegExp[];
|
|
39
|
-
};
|
|
40
|
-
allowComposite: {
|
|
41
|
-
allowList: boolean;
|
|
42
|
-
allowRead: boolean;
|
|
43
|
-
};
|
|
44
|
-
normalizedHeader: string;
|
|
45
|
-
}
|
|
46
|
-
export interface ToolFilterOperationResolver {
|
|
47
|
-
getOperationById?: (operationId: string) => OperationInfo | undefined;
|
|
48
|
-
getOperationForCall?: (call: string) => OperationInfo | undefined;
|
|
49
|
-
}
|
|
50
|
-
export declare function normalizeToolName(name: string): string;
|
|
51
|
-
export declare function normalizeToolFilterHeaderValue(value?: string): string | undefined;
|
|
52
|
-
export declare function parseToolFilterConfig(env: NodeJS.ProcessEnv): ToolFilterConfig | undefined;
|
|
53
|
-
export declare function parseSessionToolFilterHeader(headerValue: string, maxEntries?: number): SessionToolFilterRequest;
|
|
54
|
-
export declare function applyToolFilter(tools: ToolDefinition[], config: ToolFilterConfig, resolver?: ToolFilterOperationResolver): ToolFilterResult;
|
|
55
|
-
export declare function applySessionToolFilter(tools: ToolDefinition[], request: SessionToolFilterRequest, resolver?: ToolFilterOperationResolver): SessionToolFilter;
|
|
56
|
-
export declare function detectListReadOperations(tool: ToolDefinition, resolver?: ToolFilterOperationResolver): {
|
|
57
|
-
isList: boolean;
|
|
58
|
-
isRead: boolean;
|
|
59
|
-
};
|
|
60
|
-
export declare function validateRegexPattern(pattern: string): {
|
|
61
|
-
valid: boolean;
|
|
62
|
-
error?: string;
|
|
63
|
-
};
|
|
64
|
-
export declare function getSessionToolFilterMaxEntries(): number;
|
|
65
|
-
//# sourceMappingURL=tool-filter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tool-filter.d.ts","sourceRoot":"","sources":["../../src/tool-filter.ts"],"names":[],"mappings":"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"}
|