@bryan-thompson/inspector-assessment-client 1.30.1 → 1.31.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.
- package/dist/assets/{OAuthCallback-BbE88qbF.js → OAuthCallback-CXcl26vR.js} +1 -1
- package/dist/assets/{OAuthDebugCallback-CfRYq1JG.js → OAuthDebugCallback-J9s4SF_c.js} +1 -1
- package/dist/assets/{index-cHhcEXbr.css → index-BoUA5OL1.css} +3 -0
- package/dist/assets/{index-CsUB73MT.js → index-_HAw2b2G.js} +3746 -115
- package/dist/index.html +2 -2
- package/lib/lib/assessment/configTypes.d.ts +6 -0
- package/lib/lib/assessment/configTypes.d.ts.map +1 -1
- package/lib/lib/assessment/extendedTypes.d.ts +74 -0
- package/lib/lib/assessment/extendedTypes.d.ts.map +1 -1
- package/lib/lib/assessment/resultTypes.d.ts +3 -1
- package/lib/lib/assessment/resultTypes.d.ts.map +1 -1
- package/lib/lib/assessment/sharedSchemas.d.ts +140 -0
- package/lib/lib/assessment/sharedSchemas.d.ts.map +1 -0
- package/lib/lib/assessment/sharedSchemas.js +113 -0
- package/lib/lib/securityPatterns.d.ts.map +1 -1
- package/lib/lib/securityPatterns.js +2 -2
- package/lib/services/assessment/AssessmentOrchestrator.d.ts +1 -0
- package/lib/services/assessment/AssessmentOrchestrator.d.ts.map +1 -1
- package/lib/services/assessment/AssessmentOrchestrator.js +34 -1
- package/lib/services/assessment/ResponseValidator.d.ts +10 -0
- package/lib/services/assessment/ResponseValidator.d.ts.map +1 -1
- package/lib/services/assessment/ResponseValidator.js +30 -6
- package/lib/services/assessment/config/performanceConfig.d.ts +2 -0
- package/lib/services/assessment/config/performanceConfig.d.ts.map +1 -1
- package/lib/services/assessment/config/performanceConfig.js +5 -33
- package/lib/services/assessment/config/performanceConfigSchemas.d.ts +111 -0
- package/lib/services/assessment/config/performanceConfigSchemas.d.ts.map +1 -0
- package/lib/services/assessment/config/performanceConfigSchemas.js +123 -0
- package/lib/services/assessment/modules/ConformanceAssessor.d.ts +60 -0
- package/lib/services/assessment/modules/ConformanceAssessor.d.ts.map +1 -0
- package/lib/services/assessment/modules/ConformanceAssessor.js +308 -0
- package/lib/services/assessment/modules/ResourceAssessor.d.ts +14 -0
- package/lib/services/assessment/modules/ResourceAssessor.d.ts.map +1 -1
- package/lib/services/assessment/modules/ResourceAssessor.js +221 -0
- package/lib/services/assessment/modules/TemporalAssessor.d.ts +14 -0
- package/lib/services/assessment/modules/TemporalAssessor.d.ts.map +1 -1
- package/lib/services/assessment/modules/TemporalAssessor.js +29 -1
- package/lib/services/assessment/modules/annotations/AlignmentChecker.d.ts +9 -0
- package/lib/services/assessment/modules/annotations/AlignmentChecker.d.ts.map +1 -1
- package/lib/services/assessment/modules/annotations/AlignmentChecker.js +97 -5
- package/lib/services/assessment/modules/annotations/DescriptionPoisoningDetector.d.ts +6 -4
- package/lib/services/assessment/modules/annotations/DescriptionPoisoningDetector.d.ts.map +1 -1
- package/lib/services/assessment/modules/annotations/DescriptionPoisoningDetector.js +58 -0
- package/lib/services/assessment/modules/annotations/index.d.ts +1 -1
- package/lib/services/assessment/modules/annotations/index.d.ts.map +1 -1
- package/lib/services/assessment/modules/annotations/index.js +2 -1
- package/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.d.ts.map +1 -1
- package/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.js +3 -3
- package/lib/services/assessment/responseValidatorSchemas.d.ts +751 -0
- package/lib/services/assessment/responseValidatorSchemas.d.ts.map +1 -0
- package/lib/services/assessment/responseValidatorSchemas.js +244 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responseValidatorSchemas.d.ts","sourceRoot":"","sources":["../../../src/services/assessment/responseValidatorSchemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod Schemas for Response Validation Types
|
|
3
|
+
*
|
|
4
|
+
* Runtime validation schemas for MCP tool response validation.
|
|
5
|
+
* Provides safe parsing of MCP SDK response types to replace type assertions.
|
|
6
|
+
*
|
|
7
|
+
* @module assessment/responseValidatorSchemas
|
|
8
|
+
* @see ResponseValidator.ts - Consumer of these schemas
|
|
9
|
+
* @see resultTypes.ts - ResponseMetadata interface definition
|
|
10
|
+
*/
|
|
11
|
+
import { z } from "zod";
|
|
12
|
+
import { ZOD_SCHEMA_VERSION } from "../../lib/assessment/sharedSchemas.js";
|
|
13
|
+
// Re-export schema version for consumers
|
|
14
|
+
export { ZOD_SCHEMA_VERSION };
|
|
15
|
+
// ============================================================================
|
|
16
|
+
// Content Block Schemas
|
|
17
|
+
// ============================================================================
|
|
18
|
+
/**
|
|
19
|
+
* Schema for MCP content type enum values.
|
|
20
|
+
*/
|
|
21
|
+
export const ContentTypeSchema = z.enum([
|
|
22
|
+
"text",
|
|
23
|
+
"image",
|
|
24
|
+
"resource",
|
|
25
|
+
"resource_link",
|
|
26
|
+
"audio",
|
|
27
|
+
]);
|
|
28
|
+
/**
|
|
29
|
+
* Schema for a text content block.
|
|
30
|
+
*/
|
|
31
|
+
export const TextContentBlockSchema = z.object({
|
|
32
|
+
type: z.literal("text"),
|
|
33
|
+
text: z.string(),
|
|
34
|
+
});
|
|
35
|
+
/**
|
|
36
|
+
* Schema for an image content block.
|
|
37
|
+
*/
|
|
38
|
+
export const ImageContentBlockSchema = z.object({
|
|
39
|
+
type: z.literal("image"),
|
|
40
|
+
data: z.string(),
|
|
41
|
+
mimeType: z.string(),
|
|
42
|
+
});
|
|
43
|
+
/**
|
|
44
|
+
* Schema for a resource content block.
|
|
45
|
+
*/
|
|
46
|
+
export const ResourceContentBlockSchema = z.object({
|
|
47
|
+
type: z.union([z.literal("resource"), z.literal("resource_link")]),
|
|
48
|
+
uri: z.string().optional(),
|
|
49
|
+
mimeType: z.string().optional(),
|
|
50
|
+
});
|
|
51
|
+
/**
|
|
52
|
+
* Schema for an audio content block.
|
|
53
|
+
*/
|
|
54
|
+
export const AudioContentBlockSchema = z.object({
|
|
55
|
+
type: z.literal("audio"),
|
|
56
|
+
data: z.string(),
|
|
57
|
+
mimeType: z.string().optional(),
|
|
58
|
+
});
|
|
59
|
+
/**
|
|
60
|
+
* Generic content block schema that accepts any type string.
|
|
61
|
+
* Used as fallback for unknown content types.
|
|
62
|
+
*/
|
|
63
|
+
export const GenericContentBlockSchema = z.object({
|
|
64
|
+
type: z.string(),
|
|
65
|
+
text: z.string().optional(),
|
|
66
|
+
data: z.string().optional(),
|
|
67
|
+
mimeType: z.string().optional(),
|
|
68
|
+
uri: z.string().optional(),
|
|
69
|
+
});
|
|
70
|
+
/**
|
|
71
|
+
* Union of all known content block types, with fallback for unknown types.
|
|
72
|
+
*/
|
|
73
|
+
export const ContentBlockSchema = z.union([
|
|
74
|
+
TextContentBlockSchema,
|
|
75
|
+
ImageContentBlockSchema,
|
|
76
|
+
ResourceContentBlockSchema,
|
|
77
|
+
AudioContentBlockSchema,
|
|
78
|
+
GenericContentBlockSchema,
|
|
79
|
+
]);
|
|
80
|
+
/**
|
|
81
|
+
* Schema for content array in MCP responses.
|
|
82
|
+
* Uses ContentBlockSchema union for stricter type discrimination.
|
|
83
|
+
*/
|
|
84
|
+
export const ContentArraySchema = z.array(ContentBlockSchema);
|
|
85
|
+
// ============================================================================
|
|
86
|
+
// Response Metadata Schemas
|
|
87
|
+
// ============================================================================
|
|
88
|
+
/**
|
|
89
|
+
* Schema for output schema validation result.
|
|
90
|
+
*/
|
|
91
|
+
export const OutputSchemaValidationSchema = z.object({
|
|
92
|
+
hasOutputSchema: z.boolean(),
|
|
93
|
+
isValid: z.boolean(),
|
|
94
|
+
error: z.string().optional(),
|
|
95
|
+
});
|
|
96
|
+
/**
|
|
97
|
+
* Schema for response metadata tracking.
|
|
98
|
+
* Matches ResponseMetadata interface in resultTypes.ts.
|
|
99
|
+
*/
|
|
100
|
+
export const ResponseMetadataSchema = z.object({
|
|
101
|
+
contentTypes: z.array(ContentTypeSchema),
|
|
102
|
+
hasStructuredContent: z.boolean(),
|
|
103
|
+
hasMeta: z.boolean(),
|
|
104
|
+
textBlockCount: z.number().int().nonnegative(),
|
|
105
|
+
imageCount: z.number().int().nonnegative(),
|
|
106
|
+
resourceCount: z.number().int().nonnegative(),
|
|
107
|
+
outputSchemaValidation: OutputSchemaValidationSchema.optional(),
|
|
108
|
+
});
|
|
109
|
+
// ============================================================================
|
|
110
|
+
// Validation Result Schemas
|
|
111
|
+
// ============================================================================
|
|
112
|
+
/**
|
|
113
|
+
* Schema for validation classification enum.
|
|
114
|
+
*/
|
|
115
|
+
export const ValidationClassificationSchema = z.enum([
|
|
116
|
+
"fully_working",
|
|
117
|
+
"partially_working",
|
|
118
|
+
"connectivity_only",
|
|
119
|
+
"broken",
|
|
120
|
+
"error",
|
|
121
|
+
]);
|
|
122
|
+
/**
|
|
123
|
+
* Schema for validation result.
|
|
124
|
+
* Matches ValidationResult interface in ResponseValidator.ts.
|
|
125
|
+
*/
|
|
126
|
+
export const ValidationResultSchema = z.object({
|
|
127
|
+
isValid: z.boolean(),
|
|
128
|
+
isError: z.boolean(),
|
|
129
|
+
confidence: z.number().int().min(0).max(100),
|
|
130
|
+
issues: z.array(z.string()),
|
|
131
|
+
evidence: z.array(z.string()),
|
|
132
|
+
classification: ValidationClassificationSchema,
|
|
133
|
+
responseMetadata: ResponseMetadataSchema.optional(),
|
|
134
|
+
});
|
|
135
|
+
// ============================================================================
|
|
136
|
+
// MCP Response Schemas
|
|
137
|
+
// ============================================================================
|
|
138
|
+
/**
|
|
139
|
+
* Schema for MCP tool call result (CompatibilityCallToolResult).
|
|
140
|
+
* Validates the structure of tool responses from MCP SDK.
|
|
141
|
+
*/
|
|
142
|
+
export const MCPToolCallResultSchema = z.object({
|
|
143
|
+
content: ContentArraySchema.optional(),
|
|
144
|
+
isError: z.boolean().optional(),
|
|
145
|
+
structuredContent: z.unknown().optional(),
|
|
146
|
+
_meta: z.unknown().optional(),
|
|
147
|
+
});
|
|
148
|
+
// ============================================================================
|
|
149
|
+
// Validation Helpers
|
|
150
|
+
// ============================================================================
|
|
151
|
+
/**
|
|
152
|
+
* Validate content array from MCP response.
|
|
153
|
+
*
|
|
154
|
+
* @param content - Content array to validate
|
|
155
|
+
* @returns Array of validation error messages (empty if valid)
|
|
156
|
+
*/
|
|
157
|
+
export function validateContentArray(content) {
|
|
158
|
+
const result = ContentArraySchema.safeParse(content);
|
|
159
|
+
if (result.success) {
|
|
160
|
+
return [];
|
|
161
|
+
}
|
|
162
|
+
return result.error.errors.map((e) => {
|
|
163
|
+
const path = e.path.length > 0 ? `${e.path.join(".")}: ` : "";
|
|
164
|
+
return `${path}${e.message}`;
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Safely parse content array without throwing.
|
|
169
|
+
*
|
|
170
|
+
* @param content - Raw content array
|
|
171
|
+
* @returns SafeParseResult with success status and data/error
|
|
172
|
+
*/
|
|
173
|
+
export function safeParseContentArray(content) {
|
|
174
|
+
return ContentArraySchema.safeParse(content);
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Safely parse MCP tool call result.
|
|
178
|
+
*
|
|
179
|
+
* @param result - Raw tool call result
|
|
180
|
+
* @returns SafeParseResult with success status and data/error
|
|
181
|
+
*/
|
|
182
|
+
export function safeParseMCPToolCallResult(result) {
|
|
183
|
+
return MCPToolCallResultSchema.safeParse(result);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Validate validation result structure.
|
|
187
|
+
*
|
|
188
|
+
* @param result - Validation result to validate
|
|
189
|
+
* @returns Array of validation error messages (empty if valid)
|
|
190
|
+
*/
|
|
191
|
+
export function validateValidationResult(result) {
|
|
192
|
+
const parseResult = ValidationResultSchema.safeParse(result);
|
|
193
|
+
if (parseResult.success) {
|
|
194
|
+
return [];
|
|
195
|
+
}
|
|
196
|
+
return parseResult.error.errors.map((e) => {
|
|
197
|
+
const path = e.path.length > 0 ? `${e.path.join(".")}: ` : "";
|
|
198
|
+
return `${path}${e.message}`;
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Parse validation result with validation.
|
|
203
|
+
*
|
|
204
|
+
* @param result - Raw validation result
|
|
205
|
+
* @returns Validated result
|
|
206
|
+
* @throws ZodError if validation fails
|
|
207
|
+
*/
|
|
208
|
+
export function parseValidationResult(result) {
|
|
209
|
+
return ValidationResultSchema.parse(result);
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Safely parse validation result without throwing.
|
|
213
|
+
*
|
|
214
|
+
* @param result - Raw validation result
|
|
215
|
+
* @returns SafeParseResult with success status and data/error
|
|
216
|
+
*/
|
|
217
|
+
export function safeParseValidationResult(result) {
|
|
218
|
+
return ValidationResultSchema.safeParse(result);
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Validate response metadata structure.
|
|
222
|
+
*
|
|
223
|
+
* @param metadata - Response metadata to validate
|
|
224
|
+
* @returns Array of validation error messages (empty if valid)
|
|
225
|
+
*/
|
|
226
|
+
export function validateResponseMetadata(metadata) {
|
|
227
|
+
const result = ResponseMetadataSchema.safeParse(metadata);
|
|
228
|
+
if (result.success) {
|
|
229
|
+
return [];
|
|
230
|
+
}
|
|
231
|
+
return result.error.errors.map((e) => {
|
|
232
|
+
const path = e.path.length > 0 ? `${e.path.join(".")}: ` : "";
|
|
233
|
+
return `${path}${e.message}`;
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Safely parse response metadata without throwing.
|
|
238
|
+
*
|
|
239
|
+
* @param metadata - Raw response metadata
|
|
240
|
+
* @returns SafeParseResult with success status and data/error
|
|
241
|
+
*/
|
|
242
|
+
export function safeParseResponseMetadata(metadata) {
|
|
243
|
+
return ResponseMetadataSchema.safeParse(metadata);
|
|
244
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bryan-thompson/inspector-assessment-client",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.31.0",
|
|
4
4
|
"description": "Client-side application for the Enhanced MCP Inspector with assessment capabilities",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Bryan Thompson <bryan@triepod.ai>",
|