@bryan-thompson/inspector-assessment-client 1.25.4 → 1.25.6

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 (126) hide show
  1. package/dist/assets/{OAuthCallback-DE62cdTZ.js → OAuthCallback-D6y8tFfF.js} +1 -1
  2. package/dist/assets/{OAuthDebugCallback-CWjFdCIE.js → OAuthDebugCallback-DHegnqTa.js} +1 -1
  3. package/dist/assets/{index-PCQVSwHa.js → index-Cu02Ah3g.js} +4 -4
  4. package/dist/assets/{index-Df9Sx1jt.css → index-cHhcEXbr.css} +4 -0
  5. package/dist/index.html +2 -2
  6. package/lib/lib/assessment/coreTypes.d.ts +65 -0
  7. package/lib/lib/assessment/coreTypes.d.ts.map +1 -1
  8. package/lib/lib/assessment/extendedTypes.d.ts +127 -0
  9. package/lib/lib/assessment/extendedTypes.d.ts.map +1 -1
  10. package/lib/lib/assessment/resultTypes.d.ts +45 -0
  11. package/lib/lib/assessment/resultTypes.d.ts.map +1 -1
  12. package/lib/lib/moduleScoring.d.ts +2 -2
  13. package/lib/lib/moduleScoring.d.ts.map +1 -1
  14. package/lib/lib/moduleScoring.js +3 -2
  15. package/lib/services/assessment/AssessmentOrchestrator.d.ts +3 -7
  16. package/lib/services/assessment/AssessmentOrchestrator.d.ts.map +1 -1
  17. package/lib/services/assessment/AssessmentOrchestrator.js +13 -2
  18. package/lib/services/assessment/TestDataGenerator.d.ts +9 -1
  19. package/lib/services/assessment/TestDataGenerator.d.ts.map +1 -1
  20. package/lib/services/assessment/TestDataGenerator.js +32 -6
  21. package/lib/services/assessment/TestScenarioEngine.d.ts +9 -1
  22. package/lib/services/assessment/TestScenarioEngine.d.ts.map +1 -1
  23. package/lib/services/assessment/TestScenarioEngine.js +17 -14
  24. package/lib/services/assessment/config/annotationPatterns.d.ts +3 -1
  25. package/lib/services/assessment/config/annotationPatterns.d.ts.map +1 -1
  26. package/lib/services/assessment/config/annotationPatterns.js +5 -2
  27. package/lib/services/assessment/config/architecturePatterns.d.ts +101 -0
  28. package/lib/services/assessment/config/architecturePatterns.d.ts.map +1 -0
  29. package/lib/services/assessment/config/architecturePatterns.js +248 -0
  30. package/lib/services/assessment/config/performanceConfig.d.ts +122 -0
  31. package/lib/services/assessment/config/performanceConfig.d.ts.map +1 -0
  32. package/lib/services/assessment/config/performanceConfig.js +154 -0
  33. package/lib/services/assessment/config/sanitizationPatterns.d.ts +63 -0
  34. package/lib/services/assessment/config/sanitizationPatterns.d.ts.map +1 -0
  35. package/lib/services/assessment/config/sanitizationPatterns.js +223 -0
  36. package/lib/services/assessment/lib/claudeCodeBridge.d.ts +40 -3
  37. package/lib/services/assessment/lib/claudeCodeBridge.d.ts.map +1 -1
  38. package/lib/services/assessment/lib/claudeCodeBridge.js +149 -8
  39. package/lib/services/assessment/lib/concurrencyLimit.d.ts +6 -2
  40. package/lib/services/assessment/lib/concurrencyLimit.d.ts.map +1 -1
  41. package/lib/services/assessment/lib/concurrencyLimit.js +13 -6
  42. package/lib/services/assessment/lib/errors.d.ts +90 -0
  43. package/lib/services/assessment/lib/errors.d.ts.map +1 -0
  44. package/lib/services/assessment/lib/errors.js +136 -0
  45. package/lib/services/assessment/lib/timeoutUtils.d.ts +69 -0
  46. package/lib/services/assessment/lib/timeoutUtils.d.ts.map +1 -0
  47. package/lib/services/assessment/lib/timeoutUtils.js +103 -0
  48. package/lib/services/assessment/modules/BaseAssessor.d.ts +43 -8
  49. package/lib/services/assessment/modules/BaseAssessor.d.ts.map +1 -1
  50. package/lib/services/assessment/modules/BaseAssessor.js +103 -34
  51. package/lib/services/assessment/modules/DeveloperExperienceAssessor.d.ts +38 -1
  52. package/lib/services/assessment/modules/DeveloperExperienceAssessor.d.ts.map +1 -1
  53. package/lib/services/assessment/modules/DeveloperExperienceAssessor.js +185 -19
  54. package/lib/services/assessment/modules/DocumentationAssessor.d.ts +5 -0
  55. package/lib/services/assessment/modules/DocumentationAssessor.d.ts.map +1 -1
  56. package/lib/services/assessment/modules/DocumentationAssessor.js +11 -0
  57. package/lib/services/assessment/modules/ErrorHandlingAssessor.js +1 -1
  58. package/lib/services/assessment/modules/FunctionalityAssessor.d.ts.map +1 -1
  59. package/lib/services/assessment/modules/FunctionalityAssessor.js +6 -3
  60. package/lib/services/assessment/modules/MCPSpecComplianceAssessor.d.ts +3 -0
  61. package/lib/services/assessment/modules/MCPSpecComplianceAssessor.d.ts.map +1 -1
  62. package/lib/services/assessment/modules/MCPSpecComplianceAssessor.js +14 -2
  63. package/lib/services/assessment/modules/ManifestValidationAssessor.d.ts.map +1 -1
  64. package/lib/services/assessment/modules/ManifestValidationAssessor.js +7 -2
  65. package/lib/services/assessment/modules/PromptAssessor.d.ts +1 -0
  66. package/lib/services/assessment/modules/PromptAssessor.d.ts.map +1 -1
  67. package/lib/services/assessment/modules/PromptAssessor.js +26 -16
  68. package/lib/services/assessment/modules/ProtocolComplianceAssessor.d.ts.map +1 -1
  69. package/lib/services/assessment/modules/ProtocolComplianceAssessor.js +6 -2
  70. package/lib/services/assessment/modules/ProtocolConformanceAssessor.d.ts +5 -0
  71. package/lib/services/assessment/modules/ProtocolConformanceAssessor.d.ts.map +1 -1
  72. package/lib/services/assessment/modules/ProtocolConformanceAssessor.js +15 -0
  73. package/lib/services/assessment/modules/ResourceAssessor.d.ts.map +1 -1
  74. package/lib/services/assessment/modules/ResourceAssessor.js +8 -2
  75. package/lib/services/assessment/modules/SecurityAssessor.d.ts +3 -171
  76. package/lib/services/assessment/modules/SecurityAssessor.d.ts.map +1 -1
  77. package/lib/services/assessment/modules/SecurityAssessor.js +25 -1480
  78. package/lib/services/assessment/modules/ToolAnnotationAssessor.d.ts +27 -28
  79. package/lib/services/assessment/modules/ToolAnnotationAssessor.d.ts.map +1 -1
  80. package/lib/services/assessment/modules/ToolAnnotationAssessor.js +340 -863
  81. package/lib/services/assessment/modules/UsabilityAssessor.d.ts +5 -0
  82. package/lib/services/assessment/modules/UsabilityAssessor.d.ts.map +1 -1
  83. package/lib/services/assessment/modules/UsabilityAssessor.js +11 -0
  84. package/lib/services/assessment/modules/annotations/AnnotationDeceptionDetector.d.ts +57 -0
  85. package/lib/services/assessment/modules/annotations/AnnotationDeceptionDetector.d.ts.map +1 -0
  86. package/lib/services/assessment/modules/annotations/AnnotationDeceptionDetector.js +176 -0
  87. package/lib/services/assessment/modules/annotations/ArchitectureDetector.d.ts +67 -0
  88. package/lib/services/assessment/modules/annotations/ArchitectureDetector.d.ts.map +1 -0
  89. package/lib/services/assessment/modules/annotations/ArchitectureDetector.js +239 -0
  90. package/lib/services/assessment/modules/annotations/BehaviorInference.d.ts +46 -0
  91. package/lib/services/assessment/modules/annotations/BehaviorInference.d.ts.map +1 -0
  92. package/lib/services/assessment/modules/annotations/BehaviorInference.js +394 -0
  93. package/lib/services/assessment/modules/annotations/DescriptionAnalyzer.d.ts +64 -0
  94. package/lib/services/assessment/modules/annotations/DescriptionAnalyzer.d.ts.map +1 -0
  95. package/lib/services/assessment/modules/annotations/DescriptionAnalyzer.js +304 -0
  96. package/lib/services/assessment/modules/annotations/DescriptionPoisoningDetector.d.ts +43 -0
  97. package/lib/services/assessment/modules/annotations/DescriptionPoisoningDetector.d.ts.map +1 -0
  98. package/lib/services/assessment/modules/annotations/DescriptionPoisoningDetector.js +276 -0
  99. package/lib/services/assessment/modules/annotations/SchemaAnalyzer.d.ts +122 -0
  100. package/lib/services/assessment/modules/annotations/SchemaAnalyzer.d.ts.map +1 -0
  101. package/lib/services/assessment/modules/annotations/SchemaAnalyzer.js +388 -0
  102. package/lib/services/assessment/modules/annotations/index.d.ts +13 -0
  103. package/lib/services/assessment/modules/annotations/index.d.ts.map +1 -0
  104. package/lib/services/assessment/modules/annotations/index.js +15 -0
  105. package/lib/services/assessment/modules/index.d.ts +10 -0
  106. package/lib/services/assessment/modules/index.d.ts.map +1 -1
  107. package/lib/services/assessment/modules/index.js +13 -0
  108. package/lib/services/assessment/modules/securityTests/SanitizationDetector.d.ts +125 -0
  109. package/lib/services/assessment/modules/securityTests/SanitizationDetector.d.ts.map +1 -0
  110. package/lib/services/assessment/modules/securityTests/SanitizationDetector.js +345 -0
  111. package/lib/services/assessment/modules/securityTests/SecurityPayloadGenerator.d.ts +33 -0
  112. package/lib/services/assessment/modules/securityTests/SecurityPayloadGenerator.d.ts.map +1 -0
  113. package/lib/services/assessment/modules/securityTests/SecurityPayloadGenerator.js +128 -0
  114. package/lib/services/assessment/modules/securityTests/SecurityPayloadTester.d.ts +67 -0
  115. package/lib/services/assessment/modules/securityTests/SecurityPayloadTester.d.ts.map +1 -0
  116. package/lib/services/assessment/modules/securityTests/SecurityPayloadTester.js +372 -0
  117. package/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.d.ts +178 -0
  118. package/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.d.ts.map +1 -0
  119. package/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.js +1207 -0
  120. package/lib/services/assessment/modules/securityTests/index.d.ts +8 -0
  121. package/lib/services/assessment/modules/securityTests/index.d.ts.map +1 -0
  122. package/lib/services/assessment/modules/securityTests/index.js +7 -0
  123. package/lib/services/assessment/tool-classifier-patterns.d.ts +1 -0
  124. package/lib/services/assessment/tool-classifier-patterns.d.ts.map +1 -1
  125. package/lib/services/assessment/tool-classifier-patterns.js +17 -0
  126. package/package.json +1 -1
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Performance Configuration for Assessment Engine
3
+ *
4
+ * Centralizes performance-related magic numbers that were previously
5
+ * scattered across multiple modules. Supports JSON configuration files
6
+ * for runtime tuning via CLI flags.
7
+ *
8
+ * @see https://github.com/triepod-ai/inspector-assessment/issues/37
9
+ */
10
+ import type { Logger } from "../lib/logger.js";
11
+ /**
12
+ * Performance configuration for assessment execution.
13
+ * Controls batching, timeouts, concurrency, and resource limits.
14
+ */
15
+ export interface PerformanceConfig {
16
+ /**
17
+ * Interval in milliseconds between progress batch flushes.
18
+ * Controls how often batched test results are emitted.
19
+ * @default 500
20
+ */
21
+ batchFlushIntervalMs: number;
22
+ /**
23
+ * Batch size for functionality assessment progress events.
24
+ * Smaller than security batch size because functionality tests are fewer.
25
+ * @default 5
26
+ */
27
+ functionalityBatchSize: number;
28
+ /**
29
+ * Batch size for security assessment progress events.
30
+ * @default 10
31
+ */
32
+ securityBatchSize: number;
33
+ /**
34
+ * Timeout for individual test scenario execution in milliseconds.
35
+ * Applied via Promise.race in TestScenarioEngine.
36
+ * @default 5000
37
+ */
38
+ testTimeoutMs: number;
39
+ /**
40
+ * Timeout for individual security payload tests in milliseconds.
41
+ * Fallback when not specified in assessment configuration.
42
+ * @default 5000
43
+ */
44
+ securityTestTimeoutMs: number;
45
+ /**
46
+ * Warning threshold for queue depth monitoring.
47
+ * Triggers warning when task queue exceeds this size.
48
+ *
49
+ * Derivation: Advanced security assessments can legitimately queue:
50
+ * 29 tools x 140 payloads (across 23 attack patterns) = 4,060 tasks
51
+ *
52
+ * Threshold of 10,000 provides ~146% headroom to accommodate larger
53
+ * tool sets while catching true runaway scenarios.
54
+ * @default 10000
55
+ */
56
+ queueWarningThreshold: number;
57
+ /**
58
+ * Maximum EventEmitter listeners to prevent Node.js warnings.
59
+ * Assessment operations require more listeners than Node's default (10).
60
+ * @default 50
61
+ */
62
+ eventEmitterMaxListeners: number;
63
+ }
64
+ /**
65
+ * Default performance configuration.
66
+ * These values preserve existing behavior across all modules.
67
+ */
68
+ export declare const DEFAULT_PERFORMANCE_CONFIG: Readonly<Required<PerformanceConfig>>;
69
+ /**
70
+ * Performance presets for common use cases.
71
+ */
72
+ export declare const PERFORMANCE_PRESETS: {
73
+ /** Default configuration - balanced performance */
74
+ readonly default: Readonly<Required<PerformanceConfig>>;
75
+ /** Optimized for speed with larger batches */
76
+ readonly fast: Readonly<{
77
+ functionalityBatchSize: 10;
78
+ securityBatchSize: 20;
79
+ batchFlushIntervalMs: number;
80
+ testTimeoutMs: number;
81
+ securityTestTimeoutMs: number;
82
+ queueWarningThreshold: number;
83
+ eventEmitterMaxListeners: number;
84
+ }>;
85
+ /** Conservative settings for resource-constrained environments */
86
+ readonly resourceConstrained: Readonly<{
87
+ functionalityBatchSize: 3;
88
+ securityBatchSize: 5;
89
+ queueWarningThreshold: 5000;
90
+ batchFlushIntervalMs: number;
91
+ testTimeoutMs: number;
92
+ securityTestTimeoutMs: number;
93
+ eventEmitterMaxListeners: number;
94
+ }>;
95
+ };
96
+ /**
97
+ * Validate a partial performance config.
98
+ * Ensures values are within reasonable bounds.
99
+ *
100
+ * @param config - Partial config to validate
101
+ * @returns Array of validation error messages (empty if valid)
102
+ */
103
+ export declare function validatePerformanceConfig(config: Partial<PerformanceConfig>): string[];
104
+ /**
105
+ * Merge a partial config with defaults.
106
+ * User-provided values override defaults.
107
+ *
108
+ * @param partial - Partial config to merge
109
+ * @returns Complete config with defaults applied
110
+ */
111
+ export declare function mergeWithDefaults(partial: Partial<PerformanceConfig>): Required<PerformanceConfig>;
112
+ /**
113
+ * Load performance configuration from a JSON file.
114
+ * Partial configs are validated and merged with defaults.
115
+ *
116
+ * @param configPath - Path to JSON configuration file
117
+ * @param logger - Optional logger for diagnostic output
118
+ * @returns Complete configuration with defaults applied
119
+ * @throws Error if config file has validation errors
120
+ */
121
+ export declare function loadPerformanceConfig(configPath?: string, logger?: Logger): Required<PerformanceConfig>;
122
+ //# sourceMappingURL=performanceConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performanceConfig.d.ts","sourceRoot":"","sources":["../../../../src/services/assessment/config/performanceConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAE5C;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,oBAAoB,EAAE,MAAM,CAAC;IAE7B;;;;OAIG;IACH,sBAAsB,EAAE,MAAM,CAAC;IAE/B;;;OAGG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;;;;;;;;;OAUG;IACH,qBAAqB,EAAE,MAAM,CAAC;IAE9B;;;;OAIG;IACH,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CASzE,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B,mDAAmD;;IAGnD,8CAA8C;;;;8BAxExB,MAAM;uBAoBb,MAAM;+BAOE,MAAM;+BAaN,MAAM;kCAOH,MAAM;;IAgChC,kEAAkE;;;;;8BA/E5C,MAAM;uBAoBb,MAAM;+BAOE,MAAM;kCAoBH,MAAM;;CAuCxB,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACjC,MAAM,EAAE,CAwDV;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAClC,QAAQ,CAAC,iBAAiB,CAAC,CAsB7B;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,QAAQ,CAAC,iBAAiB,CAAC,CAyC7B"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Performance Configuration for Assessment Engine
3
+ *
4
+ * Centralizes performance-related magic numbers that were previously
5
+ * scattered across multiple modules. Supports JSON configuration files
6
+ * for runtime tuning via CLI flags.
7
+ *
8
+ * @see https://github.com/triepod-ai/inspector-assessment/issues/37
9
+ */
10
+ import * as fs from "fs";
11
+ /**
12
+ * Default performance configuration.
13
+ * These values preserve existing behavior across all modules.
14
+ */
15
+ export const DEFAULT_PERFORMANCE_CONFIG = Object.freeze({
16
+ batchFlushIntervalMs: 500,
17
+ functionalityBatchSize: 5,
18
+ securityBatchSize: 10,
19
+ testTimeoutMs: 5000,
20
+ securityTestTimeoutMs: 5000,
21
+ queueWarningThreshold: 10000,
22
+ eventEmitterMaxListeners: 50,
23
+ });
24
+ /**
25
+ * Performance presets for common use cases.
26
+ */
27
+ export const PERFORMANCE_PRESETS = {
28
+ /** Default configuration - balanced performance */
29
+ default: DEFAULT_PERFORMANCE_CONFIG,
30
+ /** Optimized for speed with larger batches */
31
+ fast: Object.freeze({
32
+ ...DEFAULT_PERFORMANCE_CONFIG,
33
+ functionalityBatchSize: 10,
34
+ securityBatchSize: 20,
35
+ }),
36
+ /** Conservative settings for resource-constrained environments */
37
+ resourceConstrained: Object.freeze({
38
+ ...DEFAULT_PERFORMANCE_CONFIG,
39
+ functionalityBatchSize: 3,
40
+ securityBatchSize: 5,
41
+ queueWarningThreshold: 5000,
42
+ }),
43
+ };
44
+ /**
45
+ * Validate a partial performance config.
46
+ * Ensures values are within reasonable bounds.
47
+ *
48
+ * @param config - Partial config to validate
49
+ * @returns Array of validation error messages (empty if valid)
50
+ */
51
+ export function validatePerformanceConfig(config) {
52
+ const errors = [];
53
+ if (config.batchFlushIntervalMs !== undefined &&
54
+ (config.batchFlushIntervalMs < 50 || config.batchFlushIntervalMs > 10000)) {
55
+ errors.push("batchFlushIntervalMs must be between 50 and 10000");
56
+ }
57
+ if (config.functionalityBatchSize !== undefined &&
58
+ (config.functionalityBatchSize < 1 || config.functionalityBatchSize > 100)) {
59
+ errors.push("functionalityBatchSize must be between 1 and 100");
60
+ }
61
+ if (config.securityBatchSize !== undefined &&
62
+ (config.securityBatchSize < 1 || config.securityBatchSize > 100)) {
63
+ errors.push("securityBatchSize must be between 1 and 100");
64
+ }
65
+ if (config.testTimeoutMs !== undefined &&
66
+ (config.testTimeoutMs < 100 || config.testTimeoutMs > 300000)) {
67
+ errors.push("testTimeoutMs must be between 100 and 300000");
68
+ }
69
+ if (config.securityTestTimeoutMs !== undefined &&
70
+ (config.securityTestTimeoutMs < 100 ||
71
+ config.securityTestTimeoutMs > 300000)) {
72
+ errors.push("securityTestTimeoutMs must be between 100 and 300000");
73
+ }
74
+ if (config.queueWarningThreshold !== undefined &&
75
+ (config.queueWarningThreshold < 100 ||
76
+ config.queueWarningThreshold > 1000000)) {
77
+ errors.push("queueWarningThreshold must be between 100 and 1000000");
78
+ }
79
+ if (config.eventEmitterMaxListeners !== undefined &&
80
+ (config.eventEmitterMaxListeners < 10 ||
81
+ config.eventEmitterMaxListeners > 1000)) {
82
+ errors.push("eventEmitterMaxListeners must be between 10 and 1000");
83
+ }
84
+ return errors;
85
+ }
86
+ /**
87
+ * Merge a partial config with defaults.
88
+ * User-provided values override defaults.
89
+ *
90
+ * @param partial - Partial config to merge
91
+ * @returns Complete config with defaults applied
92
+ */
93
+ export function mergeWithDefaults(partial) {
94
+ return {
95
+ batchFlushIntervalMs: partial.batchFlushIntervalMs ??
96
+ DEFAULT_PERFORMANCE_CONFIG.batchFlushIntervalMs,
97
+ functionalityBatchSize: partial.functionalityBatchSize ??
98
+ DEFAULT_PERFORMANCE_CONFIG.functionalityBatchSize,
99
+ securityBatchSize: partial.securityBatchSize ?? DEFAULT_PERFORMANCE_CONFIG.securityBatchSize,
100
+ testTimeoutMs: partial.testTimeoutMs ?? DEFAULT_PERFORMANCE_CONFIG.testTimeoutMs,
101
+ securityTestTimeoutMs: partial.securityTestTimeoutMs ??
102
+ DEFAULT_PERFORMANCE_CONFIG.securityTestTimeoutMs,
103
+ queueWarningThreshold: partial.queueWarningThreshold ??
104
+ DEFAULT_PERFORMANCE_CONFIG.queueWarningThreshold,
105
+ eventEmitterMaxListeners: partial.eventEmitterMaxListeners ??
106
+ DEFAULT_PERFORMANCE_CONFIG.eventEmitterMaxListeners,
107
+ };
108
+ }
109
+ /**
110
+ * Load performance configuration from a JSON file.
111
+ * Partial configs are validated and merged with defaults.
112
+ *
113
+ * @param configPath - Path to JSON configuration file
114
+ * @param logger - Optional logger for diagnostic output
115
+ * @returns Complete configuration with defaults applied
116
+ * @throws Error if config file has validation errors
117
+ */
118
+ export function loadPerformanceConfig(configPath, logger) {
119
+ if (!configPath) {
120
+ return { ...DEFAULT_PERFORMANCE_CONFIG };
121
+ }
122
+ try {
123
+ const configContent = fs.readFileSync(configPath, "utf-8");
124
+ const userConfig = JSON.parse(configContent);
125
+ // Validate the config
126
+ const errors = validatePerformanceConfig(userConfig);
127
+ if (errors.length > 0) {
128
+ const errorMsg = `Invalid performance config: ${errors.join(", ")}`;
129
+ logger?.error(errorMsg, { configPath, errors });
130
+ throw new Error(errorMsg);
131
+ }
132
+ logger?.debug("Loaded performance config", { configPath, userConfig });
133
+ return mergeWithDefaults(userConfig);
134
+ }
135
+ catch (error) {
136
+ if (error instanceof SyntaxError) {
137
+ logger?.error("Invalid JSON in performance config file", {
138
+ configPath,
139
+ error: error.message,
140
+ });
141
+ throw new Error(`Invalid JSON in performance config: ${configPath}`);
142
+ }
143
+ // Re-throw validation errors
144
+ if (error instanceof Error && error.message.includes("Invalid")) {
145
+ throw error;
146
+ }
147
+ // File read errors - use defaults with warning
148
+ logger?.warn("Could not load performance config, using defaults", {
149
+ configPath,
150
+ error: error instanceof Error ? error.message : String(error),
151
+ });
152
+ return { ...DEFAULT_PERFORMANCE_CONFIG };
153
+ }
154
+ }
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Sanitization Library Pattern Configuration
3
+ *
4
+ * Detects security libraries and sanitization practices in tool metadata/descriptions.
5
+ * Used by SanitizationDetector to reduce false positives when tools have proper
6
+ * input sanitization in place.
7
+ *
8
+ * @see Issue #56: Improve security analysis granularity
9
+ */
10
+ /**
11
+ * Categories of sanitization approaches
12
+ */
13
+ export type SanitizationCategory = "xss" | "html" | "sql" | "input" | "encoding" | "framework";
14
+ /**
15
+ * Pattern definition for detecting a specific sanitization library
16
+ */
17
+ export interface SanitizationLibraryPattern {
18
+ /** Library name for reporting */
19
+ name: string;
20
+ /** Regex patterns to detect this library */
21
+ patterns: RegExp[];
22
+ /** Type of sanitization this library provides */
23
+ category: SanitizationCategory;
24
+ /** Confidence boost when detected (15-25 points) */
25
+ confidenceBoost: number;
26
+ /** Languages this library is typically used with */
27
+ languageHint?: string[];
28
+ }
29
+ /**
30
+ * Known sanitization libraries with detection patterns
31
+ *
32
+ * Detection is conservative - patterns match explicit mentions of libraries
33
+ * rather than generic terms that could have other meanings.
34
+ */
35
+ export declare const SANITIZATION_LIBRARY_PATTERNS: SanitizationLibraryPattern[];
36
+ /**
37
+ * Generic sanitization keyword patterns
38
+ *
39
+ * These are less specific than library patterns and provide lower confidence boost.
40
+ * Used when no specific library is detected but sanitization is mentioned.
41
+ */
42
+ export declare const GENERIC_SANITIZATION_KEYWORDS: RegExp[];
43
+ /**
44
+ * Response-time sanitization indicators
45
+ *
46
+ * Patterns that indicate sanitization was applied to the response.
47
+ * These provide evidence that input was processed safely.
48
+ */
49
+ export declare const RESPONSE_SANITIZATION_INDICATORS: RegExp[];
50
+ /**
51
+ * Confidence boost values for different detection types
52
+ */
53
+ export declare const CONFIDENCE_BOOSTS: {
54
+ /** Specific library detected (e.g., DOMPurify) */
55
+ readonly SPECIFIC_LIBRARY: 25;
56
+ /** Generic sanitization keyword detected */
57
+ readonly GENERIC_KEYWORD: 8;
58
+ /** Response-time sanitization evidence */
59
+ readonly RESPONSE_EVIDENCE: 10;
60
+ /** Maximum total adjustment (cap) */
61
+ readonly MAX_ADJUSTMENT: 50;
62
+ };
63
+ //# sourceMappingURL=sanitizationPatterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitizationPatterns.d.ts","sourceRoot":"","sources":["../../../../src/services/assessment/config/sanitizationPatterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC5B,KAAK,GACL,MAAM,GACN,KAAK,GACL,OAAO,GACP,UAAU,GACV,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,iDAAiD;IACjD,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,oDAAoD;IACpD,eAAe,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,0BAA0B,EAkKrE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,MAAM,EAWjD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,EAAE,MAAM,EAWpD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB;IAC5B,kDAAkD;;IAElD,4CAA4C;;IAE5C,0CAA0C;;IAE1C,qCAAqC;;CAE7B,CAAC"}
@@ -0,0 +1,223 @@
1
+ /**
2
+ * Sanitization Library Pattern Configuration
3
+ *
4
+ * Detects security libraries and sanitization practices in tool metadata/descriptions.
5
+ * Used by SanitizationDetector to reduce false positives when tools have proper
6
+ * input sanitization in place.
7
+ *
8
+ * @see Issue #56: Improve security analysis granularity
9
+ */
10
+ /**
11
+ * Known sanitization libraries with detection patterns
12
+ *
13
+ * Detection is conservative - patterns match explicit mentions of libraries
14
+ * rather than generic terms that could have other meanings.
15
+ */
16
+ export const SANITIZATION_LIBRARY_PATTERNS = [
17
+ // XSS Prevention Libraries
18
+ {
19
+ name: "DOMPurify",
20
+ patterns: [/\bDOMPurify\b/i, /\bdom[\-_]?purify\b/i],
21
+ category: "xss",
22
+ confidenceBoost: 25,
23
+ languageHint: ["javascript", "typescript"],
24
+ },
25
+ {
26
+ name: "xss",
27
+ patterns: [
28
+ /\bxss\s*\(/i,
29
+ /require\s*\(\s*['"]xss['"]\s*\)/i,
30
+ /import.*from\s+['"]xss['"]/i,
31
+ /xss\s+library/i,
32
+ ],
33
+ category: "xss",
34
+ confidenceBoost: 25,
35
+ languageHint: ["javascript", "typescript"],
36
+ },
37
+ {
38
+ name: "bleach",
39
+ patterns: [/\bbleach\b/i, /bleach\.clean/i, /import\s+bleach/i],
40
+ category: "xss",
41
+ confidenceBoost: 25,
42
+ languageHint: ["python"],
43
+ },
44
+ // HTML Sanitization
45
+ {
46
+ name: "sanitize-html",
47
+ patterns: [
48
+ /\bsanitize[\-_]?html\b/i,
49
+ /sanitizeHtml\s*\(/i,
50
+ /require\s*\(\s*['"]sanitize-html['"]\s*\)/i,
51
+ ],
52
+ category: "html",
53
+ confidenceBoost: 20,
54
+ languageHint: ["javascript", "typescript"],
55
+ },
56
+ {
57
+ name: "escape-html",
58
+ patterns: [
59
+ /\bescape[\-_]?html\b/i,
60
+ /escapeHtml\s*\(/i,
61
+ /require\s*\(\s*['"]escape-html['"]\s*\)/i,
62
+ ],
63
+ category: "encoding",
64
+ confidenceBoost: 15,
65
+ languageHint: ["javascript", "typescript"],
66
+ },
67
+ {
68
+ name: "he",
69
+ patterns: [
70
+ /\bhe\.encode/i,
71
+ /\bhe\.escape/i,
72
+ /require\s*\(\s*['"]he['"]\s*\)/i,
73
+ ],
74
+ category: "encoding",
75
+ confidenceBoost: 15,
76
+ languageHint: ["javascript", "typescript"],
77
+ },
78
+ // Input Validation Libraries
79
+ {
80
+ name: "validator",
81
+ patterns: [
82
+ /validator\.js/i,
83
+ /\bvalidatorjs\b/i,
84
+ /validator\.(isEmail|escape|sanitize|isURL|isAlphanumeric)/i,
85
+ /require\s*\(\s*['"]validator['"]\s*\)/i,
86
+ ],
87
+ category: "input",
88
+ confidenceBoost: 20,
89
+ languageHint: ["javascript", "typescript"],
90
+ },
91
+ {
92
+ name: "Zod",
93
+ patterns: [
94
+ /\bz\.string\s*\(\)/i,
95
+ /\bz\.object\s*\(/i,
96
+ /\bzod\b/i,
97
+ /\.safeParse\s*\(/i,
98
+ /import.*from\s+['"]zod['"]/i,
99
+ ],
100
+ category: "input",
101
+ confidenceBoost: 15,
102
+ languageHint: ["typescript"],
103
+ },
104
+ {
105
+ name: "Joi",
106
+ patterns: [
107
+ /\bJoi\b/i,
108
+ /Joi\.string\s*\(\)/i,
109
+ /Joi\.object\s*\(/i,
110
+ /\.validate\s*\(/i,
111
+ /require\s*\(\s*['"]joi['"]\s*\)/i,
112
+ ],
113
+ category: "input",
114
+ confidenceBoost: 15,
115
+ languageHint: ["javascript", "typescript"],
116
+ },
117
+ {
118
+ name: "yup",
119
+ patterns: [
120
+ /\byup\b/i,
121
+ /yup\.string\s*\(\)/i,
122
+ /yup\.object\s*\(/i,
123
+ /import.*from\s+['"]yup['"]/i,
124
+ ],
125
+ category: "input",
126
+ confidenceBoost: 15,
127
+ languageHint: ["javascript", "typescript"],
128
+ },
129
+ {
130
+ name: "pydantic",
131
+ patterns: [
132
+ /\bpydantic\b/i,
133
+ /from\s+pydantic\s+import/i,
134
+ /BaseModel/i,
135
+ /Field\s*\(/i,
136
+ ],
137
+ category: "input",
138
+ confidenceBoost: 15,
139
+ languageHint: ["python"],
140
+ },
141
+ // SQL Injection Prevention
142
+ {
143
+ name: "parameterized-queries",
144
+ patterns: [
145
+ /prepared[\s_]?statement/i,
146
+ /parameterized[\s_]?quer/i,
147
+ /\$\d+\s/i, // PostgreSQL style $1, $2
148
+ /:\w+\s/i, // Named parameters :name
149
+ /\?\s/i, // Positional parameters ?
150
+ ],
151
+ category: "sql",
152
+ confidenceBoost: 20,
153
+ languageHint: ["sql"],
154
+ },
155
+ // Framework-level Protection
156
+ {
157
+ name: "helmet",
158
+ patterns: [
159
+ /\bhelmet\b/i,
160
+ /helmet\s*\(\)/i,
161
+ /require\s*\(\s*['"]helmet['"]\s*\)/i,
162
+ ],
163
+ category: "framework",
164
+ confidenceBoost: 10,
165
+ languageHint: ["javascript", "typescript"],
166
+ },
167
+ {
168
+ name: "django-csrf",
169
+ patterns: [/csrf_token/i, /CsrfViewMiddleware/i, /@csrf_protect/i],
170
+ category: "framework",
171
+ confidenceBoost: 10,
172
+ languageHint: ["python"],
173
+ },
174
+ ];
175
+ /**
176
+ * Generic sanitization keyword patterns
177
+ *
178
+ * These are less specific than library patterns and provide lower confidence boost.
179
+ * Used when no specific library is detected but sanitization is mentioned.
180
+ */
181
+ export const GENERIC_SANITIZATION_KEYWORDS = [
182
+ /\bsanitiz(e|ed|es|ing|ation)\b/i,
183
+ /\bescap(e|ed|es|ing)\b/i,
184
+ /\bencod(e|ed|es|ing)\b/i,
185
+ /\bvalidat(e|ed|es|ing|ion)\b/i,
186
+ /\bfilter(ed|s|ing)?\b/i,
187
+ /\bclean(ed|s|ing)?\b/i,
188
+ /\bpurif(y|ied|ies|ying)\b/i,
189
+ /\bnormaliz(e|ed|es|ing)\b/i,
190
+ /\bstrip(ped|s|ping)?\b/i,
191
+ /\btrim(med|s|ming)?\b/i,
192
+ ];
193
+ /**
194
+ * Response-time sanitization indicators
195
+ *
196
+ * Patterns that indicate sanitization was applied to the response.
197
+ * These provide evidence that input was processed safely.
198
+ */
199
+ export const RESPONSE_SANITIZATION_INDICATORS = [
200
+ /\[sanitized\]/i,
201
+ /\[filtered\]/i,
202
+ /\[redacted\]/i,
203
+ /\[removed\]/i,
204
+ /\[cleaned\]/i,
205
+ /\[escaped\]/i,
206
+ /input.*sanitized/i,
207
+ /content.*filtered/i,
208
+ /value.*cleaned/i,
209
+ /data.*validated/i,
210
+ ];
211
+ /**
212
+ * Confidence boost values for different detection types
213
+ */
214
+ export const CONFIDENCE_BOOSTS = {
215
+ /** Specific library detected (e.g., DOMPurify) */
216
+ SPECIFIC_LIBRARY: 25,
217
+ /** Generic sanitization keyword detected */
218
+ GENERIC_KEYWORD: 8,
219
+ /** Response-time sanitization evidence */
220
+ RESPONSE_EVIDENCE: 10,
221
+ /** Maximum total adjustment (cap) */
222
+ MAX_ADJUSTMENT: 50,
223
+ };
@@ -12,6 +12,7 @@
12
12
  */
13
13
  import type { Tool } from "@modelcontextprotocol/sdk/types.js";
14
14
  import type { AUPCategory } from "../../../lib/assessmentTypes.js";
15
+ import { Logger } from "./logger.js";
15
16
  /**
16
17
  * Response from Claude Code execution
17
18
  */
@@ -21,6 +22,14 @@ export interface ClaudeCodeResponse {
21
22
  error?: string;
22
23
  executionTimeMs?: number;
23
24
  }
25
+ /**
26
+ * HTTP transport configuration for connecting to mcp-auditor API
27
+ */
28
+ export interface HttpTransportConfig {
29
+ baseUrl: string;
30
+ apiKey?: string;
31
+ headers?: Record<string, string>;
32
+ }
24
33
  /**
25
34
  * Configuration for Claude Code Bridge
26
35
  */
@@ -28,6 +37,8 @@ export interface ClaudeCodeBridgeConfig {
28
37
  enabled: boolean;
29
38
  timeout?: number;
30
39
  maxRetries?: number;
40
+ transport?: "cli" | "http";
41
+ httpConfig?: HttpTransportConfig;
31
42
  features: {
32
43
  intelligentTestGeneration?: boolean;
33
44
  aupSemanticAnalysis?: boolean;
@@ -96,6 +107,11 @@ export declare const DEFAULT_CLAUDE_CODE_CONFIG: ClaudeCodeBridgeConfig;
96
107
  * Full configuration with all features enabled
97
108
  */
98
109
  export declare const FULL_CLAUDE_CODE_CONFIG: ClaudeCodeBridgeConfig;
110
+ /**
111
+ * HTTP transport configuration using mcp-auditor as Claude API proxy
112
+ * Requires mcp-auditor server running on the specified baseUrl
113
+ */
114
+ export declare const HTTP_CLAUDE_CODE_CONFIG: ClaudeCodeBridgeConfig;
99
115
  /**
100
116
  * Claude Code Bridge
101
117
  * Executes Claude CLI for intelligent analysis during MCP assessments
@@ -103,23 +119,44 @@ export declare const FULL_CLAUDE_CODE_CONFIG: ClaudeCodeBridgeConfig;
103
119
  export declare class ClaudeCodeBridge {
104
120
  private config;
105
121
  private isAvailable;
106
- constructor(config: ClaudeCodeBridgeConfig);
122
+ private logger?;
123
+ constructor(config: ClaudeCodeBridgeConfig, logger?: Logger);
107
124
  /**
108
125
  * Check if a specific feature is enabled
109
126
  * Note: annotationInference is an alias for behaviorInference
110
127
  */
111
128
  isFeatureEnabled(feature: keyof ClaudeCodeBridgeConfig["features"]): boolean;
129
+ /**
130
+ * Get the current transport type
131
+ */
132
+ getTransport(): "cli" | "http";
133
+ /**
134
+ * Check availability based on transport type
135
+ * For CLI: checks if claude binary exists
136
+ * For HTTP: assumes available (validated on first request)
137
+ */
138
+ private checkAvailability;
112
139
  /**
113
140
  * Check if Claude CLI is available on the system
114
141
  */
115
- private checkClaudeAvailability;
142
+ private checkCliAvailability;
143
+ /**
144
+ * Check HTTP endpoint health (async version for runtime checks)
145
+ * Can be called to verify HTTP transport is working
146
+ */
147
+ checkHttpHealth(): Promise<boolean>;
116
148
  /**
117
149
  * Execute Claude CLI with a prompt
118
150
  * Uses execFileSync to avoid shell injection vulnerabilities
119
151
  */
120
152
  private executeClaudeCommand;
121
153
  /**
122
- * Execute with retries
154
+ * Execute via HTTP transport using mcp-auditor's Claude API proxy
155
+ * Requires mcp-auditor server with /api/claude/messages endpoint
156
+ */
157
+ private executeHttpCommand;
158
+ /**
159
+ * Execute with retries - supports both CLI and HTTP transports
123
160
  */
124
161
  private executeWithRetry;
125
162
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"claudeCodeBridge.d.ts","sourceRoot":"","sources":["../../../../src/services/assessment/lib/claudeCodeBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claudeCodeBridge.d.ts","sourceRoot":"","sources":["../../../../src/services/assessment/lib/claudeCodeBridge.ts"],"names":[],"mappings":"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"}