@bryan-thompson/inspector-assessment-client 1.30.1 → 1.32.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-Cl2ANLYP.js} +1 -1
- package/dist/assets/{OAuthDebugCallback-CfRYq1JG.js → OAuthDebugCallback-Ws62T4Ns.js} +1 -1
- package/dist/assets/{index-cHhcEXbr.css → index-BoUA5OL1.css} +3 -0
- package/dist/assets/{index-CsUB73MT.js → index-DaPIdOcS.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 +95 -0
- package/lib/lib/assessment/extendedTypes.d.ts.map +1 -1
- package/lib/lib/assessment/resultTypes.d.ts +14 -2
- 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/moduleScoring.d.ts.map +1 -1
- package/lib/lib/moduleScoring.js +5 -0
- package/lib/lib/securityPatterns.d.ts.map +1 -1
- package/lib/lib/securityPatterns.js +2 -2
- package/lib/services/assessment/AssessmentOrchestrator.d.ts +20 -18
- package/lib/services/assessment/AssessmentOrchestrator.d.ts.map +1 -1
- package/lib/services/assessment/AssessmentOrchestrator.js +143 -144
- 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 +64 -0
- package/lib/services/assessment/modules/ConformanceAssessor.d.ts.map +1 -0
- package/lib/services/assessment/modules/ConformanceAssessor.js +329 -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 +226 -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/registry/AssessorDefinitions.d.ts +38 -0
- package/lib/services/assessment/registry/AssessorDefinitions.d.ts.map +1 -0
- package/lib/services/assessment/registry/AssessorDefinitions.js +370 -0
- package/lib/services/assessment/registry/AssessorRegistry.d.ts +124 -0
- package/lib/services/assessment/registry/AssessorRegistry.d.ts.map +1 -0
- package/lib/services/assessment/registry/AssessorRegistry.js +321 -0
- package/lib/services/assessment/registry/estimators.d.ts +93 -0
- package/lib/services/assessment/registry/estimators.d.ts.map +1 -0
- package/lib/services/assessment/registry/estimators.js +176 -0
- package/lib/services/assessment/registry/index.d.ts +13 -0
- package/lib/services/assessment/registry/index.d.ts.map +1 -0
- package/lib/services/assessment/registry/index.js +16 -0
- package/lib/services/assessment/registry/types.d.ts +180 -0
- package/lib/services/assessment/registry/types.d.ts.map +1 -0
- package/lib/services/assessment/registry/types.js +35 -0
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SecurityResponseAnalyzer.d.ts","sourceRoot":"","sources":["../../../../../src/services/assessment/modules/securityTests/SecurityResponseAnalyzer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SecurityResponseAnalyzer.d.ts","sourceRoot":"","sources":["../../../../../src/services/assessment/modules/securityTests/SecurityResponseAnalyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -815,9 +815,9 @@ export class SecurityResponseAnalyzer {
|
|
|
815
815
|
// CWE-326: Weak Key Length
|
|
816
816
|
const weakKeyPatterns = [
|
|
817
817
|
{
|
|
818
|
-
// Match
|
|
819
|
-
pattern: /"key_length"\s*:\s*[1-9](?!\d)/i,
|
|
820
|
-
evidence: "key_length <
|
|
818
|
+
// Match key_length 1-15 bytes (< 16 bytes = weak for AES-128/HMAC)
|
|
819
|
+
pattern: /"key_length"\s*:\s*(?:[1-9]|1[0-5])(?!\d)/i,
|
|
820
|
+
evidence: "key_length < 16 bytes (weak key)",
|
|
821
821
|
},
|
|
822
822
|
{
|
|
823
823
|
pattern: /"key_secure"\s*:\s*false/i,
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assessor Definitions
|
|
3
|
+
*
|
|
4
|
+
* Declarative configuration for all 19 assessors.
|
|
5
|
+
* Single source of truth for assessor registration, phase ordering,
|
|
6
|
+
* config flags, and Claude bridge support.
|
|
7
|
+
*
|
|
8
|
+
* @module assessment/registry/AssessorDefinitions
|
|
9
|
+
* @see GitHub Issue #91
|
|
10
|
+
*/
|
|
11
|
+
import type { AssessorDefinition } from "./types.js";
|
|
12
|
+
import { AssessmentPhase } from "./types.js";
|
|
13
|
+
/**
|
|
14
|
+
* All assessor definitions in phase order.
|
|
15
|
+
* This is the single source of truth for assessor registration.
|
|
16
|
+
*
|
|
17
|
+
* Order within phases:
|
|
18
|
+
* - Phase 0 (PRE): Temporal only
|
|
19
|
+
* - Phase 1 (CORE): Functionality, Security, Documentation, ErrorHandling, Usability
|
|
20
|
+
* - Phase 2 (PROTOCOL): ProtocolCompliance
|
|
21
|
+
* - Phase 3 (COMPLIANCE): AUP, Annotations, Libraries, Manifest, Portability, APIs, Auth
|
|
22
|
+
* - Phase 4 (CAPABILITY): Resources, Prompts, CrossCapability
|
|
23
|
+
* - Phase 5 (QUALITY): FileModularization, Conformance
|
|
24
|
+
*/
|
|
25
|
+
export declare const ASSESSOR_DEFINITIONS: AssessorDefinition[];
|
|
26
|
+
/**
|
|
27
|
+
* Map of assessor ID to definition for fast lookup.
|
|
28
|
+
*/
|
|
29
|
+
export declare const ASSESSOR_DEFINITION_MAP: Map<string, AssessorDefinition>;
|
|
30
|
+
/**
|
|
31
|
+
* Get assessor definitions by phase.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getDefinitionsByPhase(phase: AssessmentPhase): AssessorDefinition[];
|
|
34
|
+
/**
|
|
35
|
+
* Get all phases in execution order.
|
|
36
|
+
*/
|
|
37
|
+
export declare function getOrderedPhases(): AssessmentPhase[];
|
|
38
|
+
//# sourceMappingURL=AssessorDefinitions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssessorDefinitions.d.ts","sourceRoot":"","sources":["../../../../src/services/assessment/registry/AssessorDefinitions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA4D1C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,EA4SpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAEnE,CAAC;AAEF;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,eAAe,GACrB,kBAAkB,EAAE,CAEtB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,eAAe,EAAE,CASpD"}
|
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assessor Definitions
|
|
3
|
+
*
|
|
4
|
+
* Declarative configuration for all 19 assessors.
|
|
5
|
+
* Single source of truth for assessor registration, phase ordering,
|
|
6
|
+
* config flags, and Claude bridge support.
|
|
7
|
+
*
|
|
8
|
+
* @module assessment/registry/AssessorDefinitions
|
|
9
|
+
* @see GitHub Issue #91
|
|
10
|
+
*/
|
|
11
|
+
import { AssessmentPhase } from "./types.js";
|
|
12
|
+
// Core assessor imports
|
|
13
|
+
import { FunctionalityAssessor } from "../modules/FunctionalityAssessor.js";
|
|
14
|
+
import { SecurityAssessor } from "../modules/SecurityAssessor.js";
|
|
15
|
+
import { DocumentationAssessor } from "../modules/DocumentationAssessor.js";
|
|
16
|
+
import { ErrorHandlingAssessor } from "../modules/ErrorHandlingAssessor.js";
|
|
17
|
+
import { UsabilityAssessor } from "../modules/UsabilityAssessor.js";
|
|
18
|
+
// Protocol compliance
|
|
19
|
+
import { ProtocolComplianceAssessor } from "../modules/ProtocolComplianceAssessor.js";
|
|
20
|
+
// MCP Directory compliance gap assessors
|
|
21
|
+
import { AUPComplianceAssessor } from "../modules/AUPComplianceAssessor.js";
|
|
22
|
+
import { ToolAnnotationAssessor } from "../modules/ToolAnnotationAssessor.js";
|
|
23
|
+
import { ProhibitedLibrariesAssessor } from "../modules/ProhibitedLibrariesAssessor.js";
|
|
24
|
+
import { ManifestValidationAssessor } from "../modules/ManifestValidationAssessor.js";
|
|
25
|
+
import { PortabilityAssessor } from "../modules/PortabilityAssessor.js";
|
|
26
|
+
import { ExternalAPIScannerAssessor } from "../modules/ExternalAPIScannerAssessor.js";
|
|
27
|
+
import { TemporalAssessor } from "../modules/TemporalAssessor.js";
|
|
28
|
+
import { AuthenticationAssessor } from "../modules/AuthenticationAssessor.js";
|
|
29
|
+
// Capability assessors
|
|
30
|
+
import { ResourceAssessor } from "../modules/ResourceAssessor.js";
|
|
31
|
+
import { PromptAssessor } from "../modules/PromptAssessor.js";
|
|
32
|
+
import { CrossCapabilitySecurityAssessor } from "../modules/CrossCapabilitySecurityAssessor.js";
|
|
33
|
+
// Code quality assessors
|
|
34
|
+
import { FileModularizationAssessor } from "../modules/FileModularizationAssessor.js";
|
|
35
|
+
import { ConformanceAssessor } from "../modules/ConformanceAssessor.js";
|
|
36
|
+
// Pattern configuration for ToolAnnotationAssessor
|
|
37
|
+
import { loadPatternConfig, compilePatterns, } from "../config/annotationPatterns.js";
|
|
38
|
+
// Test estimators
|
|
39
|
+
import { estimateTemporalTests, estimateFunctionalityTests, estimateSecurityTests, estimateDocumentationTests, estimateErrorHandlingTests, estimateUsabilityTests, estimateProtocolComplianceTests, estimateAUPComplianceTests, estimateToolAnnotationTests, estimateProhibitedLibrariesTests, estimateManifestValidationTests, estimatePortabilityTests, estimateExternalAPIScannerTests, estimateAuthenticationTests, estimateResourceTests, estimatePromptTests, estimateCrossCapabilityTests, estimateFileModularizationTests, estimateConformanceTests, } from "./estimators.js";
|
|
40
|
+
/**
|
|
41
|
+
* All assessor definitions in phase order.
|
|
42
|
+
* This is the single source of truth for assessor registration.
|
|
43
|
+
*
|
|
44
|
+
* Order within phases:
|
|
45
|
+
* - Phase 0 (PRE): Temporal only
|
|
46
|
+
* - Phase 1 (CORE): Functionality, Security, Documentation, ErrorHandling, Usability
|
|
47
|
+
* - Phase 2 (PROTOCOL): ProtocolCompliance
|
|
48
|
+
* - Phase 3 (COMPLIANCE): AUP, Annotations, Libraries, Manifest, Portability, APIs, Auth
|
|
49
|
+
* - Phase 4 (CAPABILITY): Resources, Prompts, CrossCapability
|
|
50
|
+
* - Phase 5 (QUALITY): FileModularization, Conformance
|
|
51
|
+
*/
|
|
52
|
+
export const ASSESSOR_DEFINITIONS = [
|
|
53
|
+
// ============================================================================
|
|
54
|
+
// Phase 0: PRE - Temporal (must run first for clean baseline)
|
|
55
|
+
// ============================================================================
|
|
56
|
+
{
|
|
57
|
+
id: "temporal",
|
|
58
|
+
displayName: "Temporal",
|
|
59
|
+
assessorClass: TemporalAssessor,
|
|
60
|
+
resultField: "temporal",
|
|
61
|
+
phase: AssessmentPhase.PRE,
|
|
62
|
+
configFlags: {
|
|
63
|
+
primary: "temporal",
|
|
64
|
+
defaultEnabled: false, // Opt-in
|
|
65
|
+
},
|
|
66
|
+
requiresExtended: true,
|
|
67
|
+
supportsClaudeBridge: false,
|
|
68
|
+
estimateTests: estimateTemporalTests,
|
|
69
|
+
},
|
|
70
|
+
// ============================================================================
|
|
71
|
+
// Phase 1: CORE - The original 5 assessors
|
|
72
|
+
// ============================================================================
|
|
73
|
+
{
|
|
74
|
+
id: "functionality",
|
|
75
|
+
displayName: "Functionality",
|
|
76
|
+
assessorClass: FunctionalityAssessor,
|
|
77
|
+
resultField: "functionality",
|
|
78
|
+
phase: AssessmentPhase.CORE,
|
|
79
|
+
configFlags: {
|
|
80
|
+
primary: "functionality",
|
|
81
|
+
defaultEnabled: true, // Enabled unless explicitly disabled
|
|
82
|
+
},
|
|
83
|
+
requiresExtended: false,
|
|
84
|
+
supportsClaudeBridge: false,
|
|
85
|
+
estimateTests: estimateFunctionalityTests,
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
id: "security",
|
|
89
|
+
displayName: "Security",
|
|
90
|
+
assessorClass: SecurityAssessor,
|
|
91
|
+
resultField: "security",
|
|
92
|
+
phase: AssessmentPhase.CORE,
|
|
93
|
+
configFlags: {
|
|
94
|
+
primary: "security",
|
|
95
|
+
defaultEnabled: true,
|
|
96
|
+
},
|
|
97
|
+
requiresExtended: false,
|
|
98
|
+
supportsClaudeBridge: true, // Supports Claude semantic analysis
|
|
99
|
+
estimateTests: estimateSecurityTests,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
id: "documentation",
|
|
103
|
+
displayName: "Documentation",
|
|
104
|
+
assessorClass: DocumentationAssessor,
|
|
105
|
+
resultField: "documentation",
|
|
106
|
+
phase: AssessmentPhase.CORE,
|
|
107
|
+
configFlags: {
|
|
108
|
+
primary: "documentation",
|
|
109
|
+
defaultEnabled: true,
|
|
110
|
+
},
|
|
111
|
+
requiresExtended: false,
|
|
112
|
+
supportsClaudeBridge: false,
|
|
113
|
+
estimateTests: estimateDocumentationTests,
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
id: "errorHandling",
|
|
117
|
+
displayName: "Error Handling",
|
|
118
|
+
assessorClass: ErrorHandlingAssessor,
|
|
119
|
+
resultField: "errorHandling",
|
|
120
|
+
phase: AssessmentPhase.CORE,
|
|
121
|
+
configFlags: {
|
|
122
|
+
primary: "errorHandling",
|
|
123
|
+
defaultEnabled: true,
|
|
124
|
+
},
|
|
125
|
+
requiresExtended: false,
|
|
126
|
+
supportsClaudeBridge: false,
|
|
127
|
+
estimateTests: estimateErrorHandlingTests,
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
id: "usability",
|
|
131
|
+
displayName: "Usability",
|
|
132
|
+
assessorClass: UsabilityAssessor,
|
|
133
|
+
resultField: "usability",
|
|
134
|
+
phase: AssessmentPhase.CORE,
|
|
135
|
+
configFlags: {
|
|
136
|
+
primary: "usability",
|
|
137
|
+
defaultEnabled: true,
|
|
138
|
+
},
|
|
139
|
+
requiresExtended: false,
|
|
140
|
+
supportsClaudeBridge: false,
|
|
141
|
+
estimateTests: estimateUsabilityTests,
|
|
142
|
+
},
|
|
143
|
+
// ============================================================================
|
|
144
|
+
// Phase 2: PROTOCOL - Unified protocol compliance
|
|
145
|
+
// ============================================================================
|
|
146
|
+
{
|
|
147
|
+
id: "protocolCompliance",
|
|
148
|
+
displayName: "Protocol Compliance",
|
|
149
|
+
assessorClass: ProtocolComplianceAssessor,
|
|
150
|
+
resultField: "mcpSpecCompliance", // Legacy field name for BC
|
|
151
|
+
phase: AssessmentPhase.PROTOCOL,
|
|
152
|
+
configFlags: {
|
|
153
|
+
primary: "protocolCompliance",
|
|
154
|
+
// BC: Enable if ANY of these deprecated flags is true
|
|
155
|
+
deprecated: ["mcpSpecCompliance", "protocolConformance"],
|
|
156
|
+
defaultEnabled: false, // Opt-in
|
|
157
|
+
},
|
|
158
|
+
requiresExtended: true,
|
|
159
|
+
supportsClaudeBridge: false,
|
|
160
|
+
estimateTests: estimateProtocolComplianceTests,
|
|
161
|
+
},
|
|
162
|
+
// ============================================================================
|
|
163
|
+
// Phase 3: COMPLIANCE - MCP Directory compliance gap assessors
|
|
164
|
+
// ============================================================================
|
|
165
|
+
{
|
|
166
|
+
id: "aupCompliance",
|
|
167
|
+
displayName: "AUP",
|
|
168
|
+
assessorClass: AUPComplianceAssessor,
|
|
169
|
+
resultField: "aupCompliance",
|
|
170
|
+
phase: AssessmentPhase.COMPLIANCE,
|
|
171
|
+
configFlags: {
|
|
172
|
+
primary: "aupCompliance",
|
|
173
|
+
defaultEnabled: false,
|
|
174
|
+
},
|
|
175
|
+
requiresExtended: true,
|
|
176
|
+
supportsClaudeBridge: true, // Supports Claude semantic analysis
|
|
177
|
+
estimateTests: estimateAUPComplianceTests,
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
id: "toolAnnotations",
|
|
181
|
+
displayName: "Annotations",
|
|
182
|
+
assessorClass: ToolAnnotationAssessor,
|
|
183
|
+
resultField: "toolAnnotations",
|
|
184
|
+
phase: AssessmentPhase.COMPLIANCE,
|
|
185
|
+
configFlags: {
|
|
186
|
+
primary: "toolAnnotations",
|
|
187
|
+
defaultEnabled: false,
|
|
188
|
+
},
|
|
189
|
+
requiresExtended: true,
|
|
190
|
+
supportsClaudeBridge: true, // Supports Claude behavior inference
|
|
191
|
+
estimateTests: estimateToolAnnotationTests,
|
|
192
|
+
// Custom setup for pattern configuration
|
|
193
|
+
customSetup: (assessor, config, logger) => {
|
|
194
|
+
if (config.patternConfigPath) {
|
|
195
|
+
const patternConfig = loadPatternConfig(config.patternConfigPath, logger);
|
|
196
|
+
const compiledPatterns = compilePatterns(patternConfig);
|
|
197
|
+
assessor.setPatterns(compiledPatterns);
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
id: "prohibitedLibraries",
|
|
203
|
+
displayName: "Libraries",
|
|
204
|
+
assessorClass: ProhibitedLibrariesAssessor,
|
|
205
|
+
resultField: "prohibitedLibraries",
|
|
206
|
+
phase: AssessmentPhase.COMPLIANCE,
|
|
207
|
+
configFlags: {
|
|
208
|
+
primary: "prohibitedLibraries",
|
|
209
|
+
defaultEnabled: false,
|
|
210
|
+
},
|
|
211
|
+
requiresExtended: true,
|
|
212
|
+
supportsClaudeBridge: false,
|
|
213
|
+
estimateTests: estimateProhibitedLibrariesTests,
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
id: "manifestValidation",
|
|
217
|
+
displayName: "Manifest",
|
|
218
|
+
assessorClass: ManifestValidationAssessor,
|
|
219
|
+
resultField: "manifestValidation",
|
|
220
|
+
phase: AssessmentPhase.COMPLIANCE,
|
|
221
|
+
configFlags: {
|
|
222
|
+
primary: "manifestValidation",
|
|
223
|
+
defaultEnabled: false,
|
|
224
|
+
},
|
|
225
|
+
requiresExtended: true,
|
|
226
|
+
supportsClaudeBridge: false,
|
|
227
|
+
estimateTests: estimateManifestValidationTests,
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
id: "portability",
|
|
231
|
+
displayName: "Portability",
|
|
232
|
+
assessorClass: PortabilityAssessor,
|
|
233
|
+
resultField: "portability",
|
|
234
|
+
phase: AssessmentPhase.COMPLIANCE,
|
|
235
|
+
configFlags: {
|
|
236
|
+
primary: "portability",
|
|
237
|
+
defaultEnabled: false,
|
|
238
|
+
},
|
|
239
|
+
requiresExtended: true,
|
|
240
|
+
supportsClaudeBridge: false,
|
|
241
|
+
estimateTests: estimatePortabilityTests,
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
id: "externalAPIScanner",
|
|
245
|
+
displayName: "External APIs",
|
|
246
|
+
assessorClass: ExternalAPIScannerAssessor,
|
|
247
|
+
resultField: "externalAPIScanner",
|
|
248
|
+
phase: AssessmentPhase.COMPLIANCE,
|
|
249
|
+
configFlags: {
|
|
250
|
+
primary: "externalAPIScanner",
|
|
251
|
+
defaultEnabled: false,
|
|
252
|
+
},
|
|
253
|
+
requiresExtended: true,
|
|
254
|
+
supportsClaudeBridge: false,
|
|
255
|
+
estimateTests: estimateExternalAPIScannerTests,
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
id: "authentication",
|
|
259
|
+
displayName: "Authentication",
|
|
260
|
+
assessorClass: AuthenticationAssessor,
|
|
261
|
+
resultField: "authentication",
|
|
262
|
+
phase: AssessmentPhase.COMPLIANCE,
|
|
263
|
+
configFlags: {
|
|
264
|
+
primary: "authentication",
|
|
265
|
+
defaultEnabled: false,
|
|
266
|
+
},
|
|
267
|
+
requiresExtended: true,
|
|
268
|
+
supportsClaudeBridge: false,
|
|
269
|
+
estimateTests: estimateAuthenticationTests,
|
|
270
|
+
},
|
|
271
|
+
// ============================================================================
|
|
272
|
+
// Phase 4: CAPABILITY - Resources, Prompts, Cross-capability
|
|
273
|
+
// ============================================================================
|
|
274
|
+
{
|
|
275
|
+
id: "resources",
|
|
276
|
+
displayName: "Resources",
|
|
277
|
+
assessorClass: ResourceAssessor,
|
|
278
|
+
resultField: "resources",
|
|
279
|
+
phase: AssessmentPhase.CAPABILITY,
|
|
280
|
+
configFlags: {
|
|
281
|
+
primary: "resources",
|
|
282
|
+
defaultEnabled: false,
|
|
283
|
+
},
|
|
284
|
+
requiresExtended: true,
|
|
285
|
+
supportsClaudeBridge: false,
|
|
286
|
+
estimateTests: estimateResourceTests,
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
id: "prompts",
|
|
290
|
+
displayName: "Prompts",
|
|
291
|
+
assessorClass: PromptAssessor,
|
|
292
|
+
resultField: "prompts",
|
|
293
|
+
phase: AssessmentPhase.CAPABILITY,
|
|
294
|
+
configFlags: {
|
|
295
|
+
primary: "prompts",
|
|
296
|
+
defaultEnabled: false,
|
|
297
|
+
},
|
|
298
|
+
requiresExtended: true,
|
|
299
|
+
supportsClaudeBridge: false,
|
|
300
|
+
estimateTests: estimatePromptTests,
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
id: "crossCapability",
|
|
304
|
+
displayName: "Cross-Capability",
|
|
305
|
+
assessorClass: CrossCapabilitySecurityAssessor,
|
|
306
|
+
resultField: "crossCapability",
|
|
307
|
+
phase: AssessmentPhase.CAPABILITY,
|
|
308
|
+
configFlags: {
|
|
309
|
+
primary: "crossCapability",
|
|
310
|
+
defaultEnabled: false,
|
|
311
|
+
},
|
|
312
|
+
requiresExtended: true,
|
|
313
|
+
supportsClaudeBridge: false,
|
|
314
|
+
estimateTests: estimateCrossCapabilityTests,
|
|
315
|
+
},
|
|
316
|
+
// ============================================================================
|
|
317
|
+
// Phase 5: QUALITY - Code quality and conformance
|
|
318
|
+
// ============================================================================
|
|
319
|
+
{
|
|
320
|
+
id: "fileModularization",
|
|
321
|
+
displayName: "File Modularization",
|
|
322
|
+
assessorClass: FileModularizationAssessor,
|
|
323
|
+
resultField: "fileModularization",
|
|
324
|
+
phase: AssessmentPhase.QUALITY,
|
|
325
|
+
configFlags: {
|
|
326
|
+
primary: "fileModularization",
|
|
327
|
+
defaultEnabled: false,
|
|
328
|
+
},
|
|
329
|
+
requiresExtended: true,
|
|
330
|
+
supportsClaudeBridge: false,
|
|
331
|
+
estimateTests: estimateFileModularizationTests,
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
id: "conformance",
|
|
335
|
+
displayName: "Conformance",
|
|
336
|
+
assessorClass: ConformanceAssessor,
|
|
337
|
+
resultField: "conformance",
|
|
338
|
+
phase: AssessmentPhase.QUALITY,
|
|
339
|
+
configFlags: {
|
|
340
|
+
primary: "conformance",
|
|
341
|
+
defaultEnabled: false,
|
|
342
|
+
},
|
|
343
|
+
requiresExtended: true,
|
|
344
|
+
supportsClaudeBridge: false,
|
|
345
|
+
estimateTests: estimateConformanceTests,
|
|
346
|
+
},
|
|
347
|
+
];
|
|
348
|
+
/**
|
|
349
|
+
* Map of assessor ID to definition for fast lookup.
|
|
350
|
+
*/
|
|
351
|
+
export const ASSESSOR_DEFINITION_MAP = new Map(ASSESSOR_DEFINITIONS.map((def) => [def.id, def]));
|
|
352
|
+
/**
|
|
353
|
+
* Get assessor definitions by phase.
|
|
354
|
+
*/
|
|
355
|
+
export function getDefinitionsByPhase(phase) {
|
|
356
|
+
return ASSESSOR_DEFINITIONS.filter((def) => def.phase === phase);
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Get all phases in execution order.
|
|
360
|
+
*/
|
|
361
|
+
export function getOrderedPhases() {
|
|
362
|
+
return [
|
|
363
|
+
AssessmentPhase.PRE,
|
|
364
|
+
AssessmentPhase.CORE,
|
|
365
|
+
AssessmentPhase.PROTOCOL,
|
|
366
|
+
AssessmentPhase.COMPLIANCE,
|
|
367
|
+
AssessmentPhase.CAPABILITY,
|
|
368
|
+
AssessmentPhase.QUALITY,
|
|
369
|
+
];
|
|
370
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assessor Registry
|
|
3
|
+
*
|
|
4
|
+
* Central registry for managing assessor instances with metadata.
|
|
5
|
+
* Provides phase-ordered execution, Claude bridge wiring, and test count aggregation.
|
|
6
|
+
*
|
|
7
|
+
* @module assessment/registry/AssessorRegistry
|
|
8
|
+
* @see GitHub Issue #91
|
|
9
|
+
*/
|
|
10
|
+
import type { AssessmentConfiguration } from "../../../lib/assessment/configTypes.js";
|
|
11
|
+
import type { MCPDirectoryAssessment } from "../../../lib/assessment/resultTypes.js";
|
|
12
|
+
import type { BaseAssessor } from "../modules/BaseAssessor.js";
|
|
13
|
+
import type { AssessmentContext } from "../AssessmentOrchestrator.js";
|
|
14
|
+
import type { ClaudeCodeBridge } from "../lib/claudeCodeBridge.js";
|
|
15
|
+
import { type AssessorDefinition, type RegisteredAssessor, AssessmentPhase } from "./types.js";
|
|
16
|
+
/**
|
|
17
|
+
* AssessorRegistry manages assessor instances and their execution.
|
|
18
|
+
*
|
|
19
|
+
* Key responsibilities:
|
|
20
|
+
* 1. Lazy instantiation based on configuration flags
|
|
21
|
+
* 2. Phase-ordered execution with Phase 0 always first and sequential
|
|
22
|
+
* 3. Claude bridge wiring to supporting assessors
|
|
23
|
+
* 4. Test count aggregation from all assessors
|
|
24
|
+
* 5. Backward-compatible property access via getAssessor()
|
|
25
|
+
*/
|
|
26
|
+
export declare class AssessorRegistry {
|
|
27
|
+
private config;
|
|
28
|
+
private logger;
|
|
29
|
+
private assessors;
|
|
30
|
+
private claudeBridge?;
|
|
31
|
+
constructor(config: AssessmentConfiguration);
|
|
32
|
+
/**
|
|
33
|
+
* Register all enabled assessors based on configuration.
|
|
34
|
+
* Called during orchestrator initialization.
|
|
35
|
+
*/
|
|
36
|
+
registerAll(definitions?: AssessorDefinition[]): void;
|
|
37
|
+
/**
|
|
38
|
+
* Register a single assessor.
|
|
39
|
+
*/
|
|
40
|
+
private register;
|
|
41
|
+
/**
|
|
42
|
+
* Check if an assessor should be enabled based on configuration.
|
|
43
|
+
* Implements OR logic for backward-compatible deprecated flags.
|
|
44
|
+
*/
|
|
45
|
+
isEnabled(definition: AssessorDefinition): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Check a single config flag value.
|
|
48
|
+
* If defaultEnabled is true, returns true unless flag is explicitly false.
|
|
49
|
+
* If defaultEnabled is false, returns true only if flag is explicitly true.
|
|
50
|
+
*/
|
|
51
|
+
private checkFlag;
|
|
52
|
+
/**
|
|
53
|
+
* Get a registered assessor by ID.
|
|
54
|
+
* Returns undefined if not registered or disabled.
|
|
55
|
+
*/
|
|
56
|
+
getAssessor<T extends BaseAssessor = BaseAssessor>(id: string): T | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* Get all registered assessors for a specific phase.
|
|
59
|
+
*/
|
|
60
|
+
getByPhase(phase: AssessmentPhase): RegisteredAssessor[];
|
|
61
|
+
/**
|
|
62
|
+
* Set Claude bridge for all supporting assessors.
|
|
63
|
+
* Called when Claude Code is enabled.
|
|
64
|
+
*/
|
|
65
|
+
setClaudeBridge(bridge: ClaudeCodeBridge): void;
|
|
66
|
+
/**
|
|
67
|
+
* Wire Claude bridge to a single assessor.
|
|
68
|
+
*/
|
|
69
|
+
private wireClaudeBridge;
|
|
70
|
+
/**
|
|
71
|
+
* Execute all assessors in phase order.
|
|
72
|
+
* Phase 0 (PRE) always runs first and sequentially.
|
|
73
|
+
* Other phases run based on parallelTesting config.
|
|
74
|
+
*
|
|
75
|
+
* @returns Partial MCPDirectoryAssessment with results from all assessors
|
|
76
|
+
*/
|
|
77
|
+
executeAll(context: AssessmentContext): Promise<Partial<MCPDirectoryAssessment>>;
|
|
78
|
+
/**
|
|
79
|
+
* Execute all assessors in a single phase.
|
|
80
|
+
*/
|
|
81
|
+
private executePhase;
|
|
82
|
+
/**
|
|
83
|
+
* Execute assessors in parallel.
|
|
84
|
+
*/
|
|
85
|
+
private executeParallel;
|
|
86
|
+
/**
|
|
87
|
+
* Execute assessors sequentially.
|
|
88
|
+
*/
|
|
89
|
+
private executeSequential;
|
|
90
|
+
/**
|
|
91
|
+
* Extract status string from assessment result.
|
|
92
|
+
* Most results have a 'status' property.
|
|
93
|
+
*/
|
|
94
|
+
private extractStatus;
|
|
95
|
+
/**
|
|
96
|
+
* Get tool count from context (respects selectedToolsForTesting config).
|
|
97
|
+
*/
|
|
98
|
+
private getToolCountForContext;
|
|
99
|
+
/**
|
|
100
|
+
* Get total test count from all registered assessors.
|
|
101
|
+
*/
|
|
102
|
+
getTotalTestCount(): number;
|
|
103
|
+
/**
|
|
104
|
+
* Get test count for a specific assessor.
|
|
105
|
+
*/
|
|
106
|
+
getTestCount(id: string): number;
|
|
107
|
+
/**
|
|
108
|
+
* Get all registered assessor IDs.
|
|
109
|
+
*/
|
|
110
|
+
getRegisteredIds(): string[];
|
|
111
|
+
/**
|
|
112
|
+
* Check if a specific assessor is registered.
|
|
113
|
+
*/
|
|
114
|
+
isRegistered(id: string): boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Get the count of registered assessors.
|
|
117
|
+
*/
|
|
118
|
+
get size(): number;
|
|
119
|
+
/**
|
|
120
|
+
* Update configuration (e.g., for dynamic config changes).
|
|
121
|
+
*/
|
|
122
|
+
updateConfig(config: AssessmentConfiguration): void;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=AssessorRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssessorRegistry.d.ts","sourceRoot":"","sources":["../../../../src/services/assessment/registry/AssessorRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EAEvB,eAAe,EAEhB,MAAM,SAAS,CAAC;AAOjB;;;;;;;;;GASG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,YAAY,CAAC,CAAmB;gBAE5B,MAAM,EAAE,uBAAuB;IAQ3C;;;OAGG;IACH,WAAW,CAAC,WAAW,GAAE,kBAAkB,EAAyB,GAAG,IAAI;IAc3E;;OAEG;IACH,OAAO,CAAC,QAAQ;IA8BhB;;;OAGG;IACH,SAAS,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO;IAmClD;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAajB;;;OAGG;IACH,WAAW,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,EAC/C,EAAE,EAAE,MAAM,GACT,CAAC,GAAG,SAAS;IAKhB;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,kBAAkB,EAAE;IAMxD;;;OAGG;IACH,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAU/C;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;;;;;OAMG;IACG,UAAU,CACd,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IA8B3C;;OAEG;YACW,YAAY;IAoB1B;;OAEG;YACW,eAAe;IA+C7B;;OAEG;YACW,iBAAiB;IAiD/B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAQ3B;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAKhC;;OAEG;IACH,gBAAgB,IAAI,MAAM,EAAE;IAI5B;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;CAGpD"}
|