@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.
Files changed (52) hide show
  1. package/dist/assets/{OAuthCallback-BbE88qbF.js → OAuthCallback-CXcl26vR.js} +1 -1
  2. package/dist/assets/{OAuthDebugCallback-CfRYq1JG.js → OAuthDebugCallback-J9s4SF_c.js} +1 -1
  3. package/dist/assets/{index-cHhcEXbr.css → index-BoUA5OL1.css} +3 -0
  4. package/dist/assets/{index-CsUB73MT.js → index-_HAw2b2G.js} +3746 -115
  5. package/dist/index.html +2 -2
  6. package/lib/lib/assessment/configTypes.d.ts +6 -0
  7. package/lib/lib/assessment/configTypes.d.ts.map +1 -1
  8. package/lib/lib/assessment/extendedTypes.d.ts +74 -0
  9. package/lib/lib/assessment/extendedTypes.d.ts.map +1 -1
  10. package/lib/lib/assessment/resultTypes.d.ts +3 -1
  11. package/lib/lib/assessment/resultTypes.d.ts.map +1 -1
  12. package/lib/lib/assessment/sharedSchemas.d.ts +140 -0
  13. package/lib/lib/assessment/sharedSchemas.d.ts.map +1 -0
  14. package/lib/lib/assessment/sharedSchemas.js +113 -0
  15. package/lib/lib/securityPatterns.d.ts.map +1 -1
  16. package/lib/lib/securityPatterns.js +2 -2
  17. package/lib/services/assessment/AssessmentOrchestrator.d.ts +1 -0
  18. package/lib/services/assessment/AssessmentOrchestrator.d.ts.map +1 -1
  19. package/lib/services/assessment/AssessmentOrchestrator.js +34 -1
  20. package/lib/services/assessment/ResponseValidator.d.ts +10 -0
  21. package/lib/services/assessment/ResponseValidator.d.ts.map +1 -1
  22. package/lib/services/assessment/ResponseValidator.js +30 -6
  23. package/lib/services/assessment/config/performanceConfig.d.ts +2 -0
  24. package/lib/services/assessment/config/performanceConfig.d.ts.map +1 -1
  25. package/lib/services/assessment/config/performanceConfig.js +5 -33
  26. package/lib/services/assessment/config/performanceConfigSchemas.d.ts +111 -0
  27. package/lib/services/assessment/config/performanceConfigSchemas.d.ts.map +1 -0
  28. package/lib/services/assessment/config/performanceConfigSchemas.js +123 -0
  29. package/lib/services/assessment/modules/ConformanceAssessor.d.ts +60 -0
  30. package/lib/services/assessment/modules/ConformanceAssessor.d.ts.map +1 -0
  31. package/lib/services/assessment/modules/ConformanceAssessor.js +308 -0
  32. package/lib/services/assessment/modules/ResourceAssessor.d.ts +14 -0
  33. package/lib/services/assessment/modules/ResourceAssessor.d.ts.map +1 -1
  34. package/lib/services/assessment/modules/ResourceAssessor.js +221 -0
  35. package/lib/services/assessment/modules/TemporalAssessor.d.ts +14 -0
  36. package/lib/services/assessment/modules/TemporalAssessor.d.ts.map +1 -1
  37. package/lib/services/assessment/modules/TemporalAssessor.js +29 -1
  38. package/lib/services/assessment/modules/annotations/AlignmentChecker.d.ts +9 -0
  39. package/lib/services/assessment/modules/annotations/AlignmentChecker.d.ts.map +1 -1
  40. package/lib/services/assessment/modules/annotations/AlignmentChecker.js +97 -5
  41. package/lib/services/assessment/modules/annotations/DescriptionPoisoningDetector.d.ts +6 -4
  42. package/lib/services/assessment/modules/annotations/DescriptionPoisoningDetector.d.ts.map +1 -1
  43. package/lib/services/assessment/modules/annotations/DescriptionPoisoningDetector.js +58 -0
  44. package/lib/services/assessment/modules/annotations/index.d.ts +1 -1
  45. package/lib/services/assessment/modules/annotations/index.d.ts.map +1 -1
  46. package/lib/services/assessment/modules/annotations/index.js +2 -1
  47. package/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.d.ts.map +1 -1
  48. package/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.js +3 -3
  49. package/lib/services/assessment/responseValidatorSchemas.d.ts +751 -0
  50. package/lib/services/assessment/responseValidatorSchemas.d.ts.map +1 -0
  51. package/lib/services/assessment/responseValidatorSchemas.js +244 -0
  52. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responseValidatorSchemas.d.ts","sourceRoot":"","sources":["../../../src/services/assessment/responseValidatorSchemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAGpE,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAM9B;;GAEG;AACH,eAAO,MAAM,iBAAiB,oEAM5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;EAGjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAIlC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;EAIrC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAIlC,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;EAMpC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAM7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAA8B,CAAC;AAE9D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAM9D;;GAEG;AACH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;EAIvC,CAAC;AAEH,MAAM,MAAM,4BAA4B,GAAG,CAAC,CAAC,KAAK,CAChD,OAAO,4BAA4B,CACpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQjC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAM5E;;GAEG;AACH,eAAO,MAAM,8BAA8B,2FAMzC,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAC5C,OAAO,8BAA8B,CACtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQjC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAM5E;;;GAGG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKlC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAM9E;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAW/D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAErD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAEzD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAWlE;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,sBAAsB,CAE7E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAExD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,EAAE,CAWpE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;GAE1D"}
@@ -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.30.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>",