@bryan-thompson/inspector-assessment 1.36.5 → 1.38.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 (104) hide show
  1. package/cli/build/lib/assessment-runner/assessment-executor.js +40 -0
  2. package/cli/build/lib/assessment-runner/source-loader.js +11 -0
  3. package/cli/package.json +1 -1
  4. package/client/dist/assets/{OAuthCallback-DJ1av7om.js → OAuthCallback-AngeBaCl.js} +1 -1
  5. package/client/dist/assets/{OAuthDebugCallback-lRXgX7wV.js → OAuthDebugCallback--FE6_fPs.js} +1 -1
  6. package/client/dist/assets/{index-DEdS99fp.js → index-BQC95Boo.js} +4 -4
  7. package/client/dist/index.html +1 -1
  8. package/client/lib/lib/assessment/coreTypes.d.ts +37 -0
  9. package/client/lib/lib/assessment/coreTypes.d.ts.map +1 -1
  10. package/client/lib/lib/assessment/resultTypes.d.ts +30 -1
  11. package/client/lib/lib/assessment/resultTypes.d.ts.map +1 -1
  12. package/client/lib/lib/assessment/sharedSchemas.d.ts +10 -0
  13. package/client/lib/lib/assessment/sharedSchemas.d.ts.map +1 -1
  14. package/client/lib/lib/assessment/sharedSchemas.js +4 -0
  15. package/client/lib/lib/securityPatterns/advancedExploitPatterns.d.ts +13 -0
  16. package/client/lib/lib/securityPatterns/advancedExploitPatterns.d.ts.map +1 -0
  17. package/client/lib/lib/securityPatterns/advancedExploitPatterns.js +504 -0
  18. package/client/lib/lib/securityPatterns/authSessionPatterns.d.ts +12 -0
  19. package/client/lib/lib/securityPatterns/authSessionPatterns.d.ts.map +1 -0
  20. package/client/lib/lib/securityPatterns/authSessionPatterns.js +357 -0
  21. package/client/lib/lib/securityPatterns/index.d.ts +18 -0
  22. package/client/lib/lib/securityPatterns/index.d.ts.map +1 -0
  23. package/client/lib/lib/securityPatterns/index.js +18 -0
  24. package/client/lib/lib/securityPatterns/injectionPatterns.d.ts +13 -0
  25. package/client/lib/lib/securityPatterns/injectionPatterns.d.ts.map +1 -0
  26. package/client/lib/lib/securityPatterns/injectionPatterns.js +356 -0
  27. package/client/lib/lib/securityPatterns/resourceExhaustionPatterns.d.ts +12 -0
  28. package/client/lib/lib/securityPatterns/resourceExhaustionPatterns.d.ts.map +1 -0
  29. package/client/lib/lib/securityPatterns/resourceExhaustionPatterns.js +215 -0
  30. package/client/lib/lib/securityPatterns/toolSpecificPatterns.d.ts +13 -0
  31. package/client/lib/lib/securityPatterns/toolSpecificPatterns.d.ts.map +1 -0
  32. package/client/lib/lib/securityPatterns/toolSpecificPatterns.js +373 -0
  33. package/client/lib/lib/securityPatterns/types.d.ts +20 -0
  34. package/client/lib/lib/securityPatterns/types.d.ts.map +1 -0
  35. package/client/lib/lib/securityPatterns/types.js +6 -0
  36. package/client/lib/lib/securityPatterns/utils.d.ts +56 -0
  37. package/client/lib/lib/securityPatterns/utils.d.ts.map +1 -0
  38. package/client/lib/lib/securityPatterns/utils.js +96 -0
  39. package/client/lib/lib/securityPatterns/validationPatterns.d.ts +13 -0
  40. package/client/lib/lib/securityPatterns/validationPatterns.d.ts.map +1 -0
  41. package/client/lib/lib/securityPatterns/validationPatterns.js +110 -0
  42. package/client/lib/lib/securityPatterns.d.ts +18 -69
  43. package/client/lib/lib/securityPatterns.d.ts.map +1 -1
  44. package/client/lib/lib/securityPatterns.js +18 -1946
  45. package/client/lib/services/assessment/AssessmentOrchestrator.d.ts +6 -1
  46. package/client/lib/services/assessment/AssessmentOrchestrator.d.ts.map +1 -1
  47. package/client/lib/services/assessment/config/performanceConfig.d.ts +18 -0
  48. package/client/lib/services/assessment/config/performanceConfig.d.ts.map +1 -1
  49. package/client/lib/services/assessment/config/performanceConfig.js +6 -0
  50. package/client/lib/services/assessment/config/performanceConfigSchemas.d.ts +18 -0
  51. package/client/lib/services/assessment/config/performanceConfigSchemas.d.ts.map +1 -1
  52. package/client/lib/services/assessment/config/performanceConfigSchemas.js +20 -0
  53. package/client/lib/services/assessment/helpers/ExternalAPIDependencyDetector.d.ts +165 -0
  54. package/client/lib/services/assessment/helpers/ExternalAPIDependencyDetector.d.ts.map +1 -0
  55. package/client/lib/services/assessment/helpers/ExternalAPIDependencyDetector.js +317 -0
  56. package/client/lib/services/assessment/helpers/StdioTransportDetector.d.ts +137 -0
  57. package/client/lib/services/assessment/helpers/StdioTransportDetector.d.ts.map +1 -0
  58. package/client/lib/services/assessment/helpers/StdioTransportDetector.js +315 -0
  59. package/client/lib/services/assessment/helpers/ToolAnnotationExtractor.d.ts +34 -0
  60. package/client/lib/services/assessment/helpers/ToolAnnotationExtractor.d.ts.map +1 -0
  61. package/client/lib/services/assessment/helpers/ToolAnnotationExtractor.js +85 -0
  62. package/client/lib/services/assessment/modules/ErrorHandlingAssessor.d.ts +23 -0
  63. package/client/lib/services/assessment/modules/ErrorHandlingAssessor.d.ts.map +1 -1
  64. package/client/lib/services/assessment/modules/ErrorHandlingAssessor.js +255 -20
  65. package/client/lib/services/assessment/modules/FunctionalityAssessor.d.ts +10 -0
  66. package/client/lib/services/assessment/modules/FunctionalityAssessor.d.ts.map +1 -1
  67. package/client/lib/services/assessment/modules/FunctionalityAssessor.js +65 -3
  68. package/client/lib/services/assessment/modules/ProtocolComplianceAssessor.d.ts.map +1 -1
  69. package/client/lib/services/assessment/modules/ProtocolComplianceAssessor.js +30 -0
  70. package/client/lib/services/assessment/modules/SecurityAssessor.d.ts.map +1 -1
  71. package/client/lib/services/assessment/modules/SecurityAssessor.js +6 -0
  72. package/client/lib/services/assessment/modules/TemporalAssessor.d.ts.map +1 -1
  73. package/client/lib/services/assessment/modules/TemporalAssessor.js +16 -3
  74. package/client/lib/services/assessment/modules/annotations/AlignmentChecker.d.ts.map +1 -1
  75. package/client/lib/services/assessment/modules/annotations/AlignmentChecker.js +6 -2
  76. package/client/lib/services/assessment/modules/annotations/DescriptionPoisoningDetector.d.ts.map +1 -1
  77. package/client/lib/services/assessment/modules/annotations/DescriptionPoisoningDetector.js +16 -7
  78. package/client/lib/services/assessment/modules/securityTests/AnnotationAwareSeverity.d.ts +55 -0
  79. package/client/lib/services/assessment/modules/securityTests/AnnotationAwareSeverity.d.ts.map +1 -0
  80. package/client/lib/services/assessment/modules/securityTests/AnnotationAwareSeverity.js +135 -0
  81. package/client/lib/services/assessment/modules/securityTests/ErrorClassifier.d.ts +14 -0
  82. package/client/lib/services/assessment/modules/securityTests/ErrorClassifier.d.ts.map +1 -1
  83. package/client/lib/services/assessment/modules/securityTests/ErrorClassifier.js +24 -1
  84. package/client/lib/services/assessment/modules/securityTests/SafeResponseDetector.d.ts +6 -0
  85. package/client/lib/services/assessment/modules/securityTests/SafeResponseDetector.d.ts.map +1 -1
  86. package/client/lib/services/assessment/modules/securityTests/SafeResponseDetector.js +9 -1
  87. package/client/lib/services/assessment/modules/securityTests/SecurityPatternLibrary.d.ts +43 -1
  88. package/client/lib/services/assessment/modules/securityTests/SecurityPatternLibrary.d.ts.map +1 -1
  89. package/client/lib/services/assessment/modules/securityTests/SecurityPatternLibrary.js +87 -1
  90. package/client/lib/services/assessment/modules/securityTests/SecurityPayloadTester.d.ts +39 -1
  91. package/client/lib/services/assessment/modules/securityTests/SecurityPayloadTester.d.ts.map +1 -1
  92. package/client/lib/services/assessment/modules/securityTests/SecurityPayloadTester.js +93 -3
  93. package/client/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.d.ts +1 -1
  94. package/client/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.d.ts.map +1 -1
  95. package/client/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.js +10 -1
  96. package/client/lib/services/assessment/modules/securityTests/index.d.ts +1 -0
  97. package/client/lib/services/assessment/modules/securityTests/index.d.ts.map +1 -1
  98. package/client/lib/services/assessment/modules/securityTests/index.js +1 -0
  99. package/client/lib/services/assessment/modules/temporal/VarianceClassifier.d.ts +16 -1
  100. package/client/lib/services/assessment/modules/temporal/VarianceClassifier.d.ts.map +1 -1
  101. package/client/lib/services/assessment/modules/temporal/VarianceClassifier.js +43 -1
  102. package/client/package.json +1 -1
  103. package/package.json +1 -1
  104. package/server/package.json +1 -1
@@ -5,9 +5,11 @@
5
5
  * @public
6
6
  * @module AssessmentOrchestrator
7
7
  */
8
- import { MCPDirectoryAssessment, AssessmentConfiguration, ManifestJsonSchema, ProgressCallback, ServerInfo, PackageJson } from "../../lib/assessmentTypes.js";
8
+ import { MCPDirectoryAssessment, AssessmentConfiguration, ManifestJsonSchema, ProgressCallback, ServerInfo, PackageJson, ToolAnnotationsContext } from "../../lib/assessmentTypes.js";
9
9
  import { Tool, CompatibilityCallToolResult } from "@modelcontextprotocol/sdk/types.js";
10
10
  import { ClaudeCodeBridge, ClaudeCodeBridgeConfig } from "./lib/claudeCodeBridge.js";
11
+ import { ExternalAPIDependencyInfo } from "./helpers/ExternalAPIDependencyDetector.js";
12
+ import { TransportDetectionResult } from "./helpers/StdioTransportDetector.js";
11
13
  /**
12
14
  * MCP Resource interface for assessment context
13
15
  * @public
@@ -96,6 +98,9 @@ export interface AssessmentContext {
96
98
  oauthEnabled?: boolean;
97
99
  };
98
100
  listTools?: () => Promise<Tool[]>;
101
+ externalAPIDependencies?: ExternalAPIDependencyInfo;
102
+ transportDetection?: TransportDetectionResult;
103
+ toolAnnotationsContext?: ToolAnnotationsContext;
99
104
  }
100
105
  /**
101
106
  * Main orchestrator class for running MCP server assessments
@@ -1 +1 @@
1
- {"version":3,"file":"AssessmentOrchestrator.d.ts","sourceRoot":"","sources":["../../../src/services/assessment/AssessmentOrchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AssessmentOrchestrator.d.ts","sourceRoot":"","sources":["../../../src/services/assessment/AssessmentOrchestrator.ts"],"names":[],"mappings":"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"}
@@ -63,6 +63,20 @@ export interface PerformanceConfig {
63
63
  * @default 50
64
64
  */
65
65
  eventEmitterMaxListeners: number;
66
+ /**
67
+ * Maximum retry attempts for transient errors in security tests.
68
+ * Payload-level retry with exponential backoff for connection errors.
69
+ * @default 2
70
+ * @see https://github.com/triepod-ai/inspector-assessment/issues/157
71
+ */
72
+ securityRetryMaxAttempts: number;
73
+ /**
74
+ * Initial backoff delay in milliseconds for security test retries.
75
+ * Uses exponential backoff: delay * 2^attempt (100ms → 200ms → 400ms)
76
+ * @default 100
77
+ * @see https://github.com/triepod-ai/inspector-assessment/issues/157
78
+ */
79
+ securityRetryBackoffMs: number;
66
80
  }
67
81
  /**
68
82
  * Default performance configuration.
@@ -86,6 +100,8 @@ export declare const PERFORMANCE_PRESETS: {
86
100
  securityTestTimeoutMs: number;
87
101
  queueWarningThreshold: number;
88
102
  eventEmitterMaxListeners: number;
103
+ securityRetryMaxAttempts: number;
104
+ securityRetryBackoffMs: number;
89
105
  }>;
90
106
  /** Conservative settings for resource-constrained environments */
91
107
  readonly resourceConstrained: Readonly<{
@@ -96,6 +112,8 @@ export declare const PERFORMANCE_PRESETS: {
96
112
  testTimeoutMs: number;
97
113
  securityTestTimeoutMs: number;
98
114
  eventEmitterMaxListeners: number;
115
+ securityRetryMaxAttempts: number;
116
+ securityRetryBackoffMs: number;
99
117
  }>;
100
118
  };
101
119
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"performanceConfig.d.ts","sourceRoot":"","sources":["../../../../src/services/assessment/config/performanceConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C;;;;GAIG;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;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CASzE,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IAC9B,mDAAmD;;IAGnD,8CAA8C;;;;8BA1ExB,MAAM;uBAoBb,MAAM;+BAOE,MAAM;+BAaN,MAAM;kCAOH,MAAM;;IAkChC,kEAAkE;;;;;8BAjF5C,MAAM;uBAoBb,MAAM;+BAOE,MAAM;kCAoBH,MAAM;;CAyCxB,CAAC;AAEX;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACjC,MAAM,EAAE,CAGV;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAClC,QAAQ,CAAC,iBAAiB,CAAC,CAsB7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,QAAQ,CAAC,iBAAiB,CAAC,CAyC7B"}
1
+ {"version":3,"file":"performanceConfig.d.ts","sourceRoot":"","sources":["../../../../src/services/assessment/config/performanceConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C;;;;GAIG;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;IAEjC;;;;;OAKG;IACH,wBAAwB,EAAE,MAAM,CAAC;IAEjC;;;;;OAKG;IACH,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAWzE,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,mBAAmB;IAC9B,mDAAmD;;IAGnD,8CAA8C;;;;8BA5FxB,MAAM;uBAoBb,MAAM;+BAOE,MAAM;+BAaN,MAAM;kCAOH,MAAM;kCAQN,MAAM;gCAQR,MAAM;;IAoC9B,kEAAkE;;;;;8BAnG5C,MAAM;uBAoBb,MAAM;+BAOE,MAAM;kCAoBH,MAAM;kCAQN,MAAM;gCAQR,MAAM;;CA2CtB,CAAC;AAEX;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACjC,MAAM,EAAE,CAGV;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAClC,QAAQ,CAAC,iBAAiB,CAAC,CA4B7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,QAAQ,CAAC,iBAAiB,CAAC,CAyC7B"}
@@ -24,6 +24,8 @@ export const DEFAULT_PERFORMANCE_CONFIG = Object.freeze({
24
24
  securityTestTimeoutMs: 5000,
25
25
  queueWarningThreshold: 10000,
26
26
  eventEmitterMaxListeners: 50,
27
+ securityRetryMaxAttempts: 2,
28
+ securityRetryBackoffMs: 100,
27
29
  });
28
30
  /**
29
31
  * Performance presets for common use cases.
@@ -82,6 +84,10 @@ export function mergeWithDefaults(partial) {
82
84
  DEFAULT_PERFORMANCE_CONFIG.queueWarningThreshold,
83
85
  eventEmitterMaxListeners: partial.eventEmitterMaxListeners ??
84
86
  DEFAULT_PERFORMANCE_CONFIG.eventEmitterMaxListeners,
87
+ securityRetryMaxAttempts: partial.securityRetryMaxAttempts ??
88
+ DEFAULT_PERFORMANCE_CONFIG.securityRetryMaxAttempts,
89
+ securityRetryBackoffMs: partial.securityRetryBackoffMs ??
90
+ DEFAULT_PERFORMANCE_CONFIG.securityRetryBackoffMs,
85
91
  };
86
92
  }
87
93
  /**
@@ -46,6 +46,16 @@ export declare const PerformanceConfigSchema: z.ZodObject<{
46
46
  * Maximum EventEmitter listeners to prevent Node.js warnings.
47
47
  */
48
48
  eventEmitterMaxListeners: z.ZodOptional<z.ZodNumber>;
49
+ /**
50
+ * Maximum retry attempts for transient errors in security tests.
51
+ * Issue #157: Connection retry logic for reliability
52
+ */
53
+ securityRetryMaxAttempts: z.ZodOptional<z.ZodNumber>;
54
+ /**
55
+ * Initial backoff delay in milliseconds for security test retries.
56
+ * Issue #157: Connection retry logic for reliability
57
+ */
58
+ securityRetryBackoffMs: z.ZodOptional<z.ZodNumber>;
49
59
  }, "strip", z.ZodTypeAny, {
50
60
  batchFlushIntervalMs?: number;
51
61
  functionalityBatchSize?: number;
@@ -54,6 +64,8 @@ export declare const PerformanceConfigSchema: z.ZodObject<{
54
64
  securityTestTimeoutMs?: number;
55
65
  queueWarningThreshold?: number;
56
66
  eventEmitterMaxListeners?: number;
67
+ securityRetryMaxAttempts?: number;
68
+ securityRetryBackoffMs?: number;
57
69
  }, {
58
70
  batchFlushIntervalMs?: number;
59
71
  functionalityBatchSize?: number;
@@ -62,6 +74,8 @@ export declare const PerformanceConfigSchema: z.ZodObject<{
62
74
  securityTestTimeoutMs?: number;
63
75
  queueWarningThreshold?: number;
64
76
  eventEmitterMaxListeners?: number;
77
+ securityRetryMaxAttempts?: number;
78
+ securityRetryBackoffMs?: number;
65
79
  }>;
66
80
  /**
67
81
  * Type inferred from the schema.
@@ -99,6 +113,8 @@ export declare function safeParsePerformanceConfig(config: unknown): z.SafeParse
99
113
  securityTestTimeoutMs?: number;
100
114
  queueWarningThreshold?: number;
101
115
  eventEmitterMaxListeners?: number;
116
+ securityRetryMaxAttempts?: number;
117
+ securityRetryBackoffMs?: number;
102
118
  }, {
103
119
  batchFlushIntervalMs?: number;
104
120
  functionalityBatchSize?: number;
@@ -107,5 +123,7 @@ export declare function safeParsePerformanceConfig(config: unknown): z.SafeParse
107
123
  securityTestTimeoutMs?: number;
108
124
  queueWarningThreshold?: number;
109
125
  eventEmitterMaxListeners?: number;
126
+ securityRetryMaxAttempts?: number;
127
+ securityRetryBackoffMs?: number;
110
128
  }>;
111
129
  //# sourceMappingURL=performanceConfigSchemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"performanceConfigSchemas.d.ts","sourceRoot":"","sources":["../../../../src/services/assessment/config/performanceConfigSchemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAG3E,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;IAClC;;OAEG;;IAcH;;OAEG;;IAcH;;OAEG;;IAcH;;OAEG;;IAcH;;OAEG;;IAcH;;OAEG;;IAcH;;OAEG;;;;;;;;;;;;;;;;;;EAaH,CAAC;AAEH;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE/E;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAW1E;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,GACd,wBAAwB,CAE1B;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO;;;;;;;;;;;;;;;;GAEzD"}
1
+ {"version":3,"file":"performanceConfigSchemas.d.ts","sourceRoot":"","sources":["../../../../src/services/assessment/config/performanceConfigSchemas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAG3E,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;IAClC;;OAEG;;IAcH;;OAEG;;IAcH;;OAEG;;IAcH;;OAEG;;IAcH;;OAEG;;IAcH;;OAEG;;IAcH;;OAEG;;IAcH;;;OAGG;;IAcH;;;OAGG;;;;;;;;;;;;;;;;;;;;;;EAaH,CAAC;AAEH;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAE/E;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAW1E;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,GACd,wBAAwB,CAE1B;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;GAEzD"}
@@ -83,6 +83,26 @@ export const PerformanceConfigSchema = z.object({
83
83
  .min(PERF_CONFIG_RANGES.eventEmitterMaxListeners.min, `eventEmitterMaxListeners must be >= ${PERF_CONFIG_RANGES.eventEmitterMaxListeners.min}`)
84
84
  .max(PERF_CONFIG_RANGES.eventEmitterMaxListeners.max, `eventEmitterMaxListeners must be <= ${PERF_CONFIG_RANGES.eventEmitterMaxListeners.max}`)
85
85
  .optional(),
86
+ /**
87
+ * Maximum retry attempts for transient errors in security tests.
88
+ * Issue #157: Connection retry logic for reliability
89
+ */
90
+ securityRetryMaxAttempts: z
91
+ .number()
92
+ .int("securityRetryMaxAttempts must be an integer")
93
+ .min(PERF_CONFIG_RANGES.securityRetryMaxAttempts.min, `securityRetryMaxAttempts must be >= ${PERF_CONFIG_RANGES.securityRetryMaxAttempts.min}`)
94
+ .max(PERF_CONFIG_RANGES.securityRetryMaxAttempts.max, `securityRetryMaxAttempts must be <= ${PERF_CONFIG_RANGES.securityRetryMaxAttempts.max}`)
95
+ .optional(),
96
+ /**
97
+ * Initial backoff delay in milliseconds for security test retries.
98
+ * Issue #157: Connection retry logic for reliability
99
+ */
100
+ securityRetryBackoffMs: z
101
+ .number()
102
+ .int("securityRetryBackoffMs must be an integer")
103
+ .min(PERF_CONFIG_RANGES.securityRetryBackoffMs.min, `securityRetryBackoffMs must be >= ${PERF_CONFIG_RANGES.securityRetryBackoffMs.min}`)
104
+ .max(PERF_CONFIG_RANGES.securityRetryBackoffMs.max, `securityRetryBackoffMs must be <= ${PERF_CONFIG_RANGES.securityRetryBackoffMs.max}`)
105
+ .optional(),
86
106
  });
87
107
  /**
88
108
  * Validate a partial performance config using Zod.
@@ -0,0 +1,165 @@
1
+ /**
2
+ * External API Dependency Detector
3
+ *
4
+ * Identifies tools that depend on external APIs based on:
5
+ * 1. Tool name and description patterns (fast, always available)
6
+ * 2. Source code scanning for API calls (more accurate, when source available)
7
+ *
8
+ * This information enables downstream assessors to adjust their behavior:
9
+ * - TemporalAssessor: Relaxed variance thresholds for external API tools
10
+ * - FunctionalityAssessor: Accept API errors as valid responses
11
+ * - ErrorHandlingAssessor: Account for external service failures
12
+ *
13
+ * Issue #168: Enhanced with source code scanning support
14
+ *
15
+ * @module helpers/ExternalAPIDependencyDetector
16
+ */
17
+ import { Tool } from "@modelcontextprotocol/sdk/types.js";
18
+ /**
19
+ * Implications of external API dependencies for downstream assessors
20
+ * @public
21
+ */
22
+ export interface ExternalAPIImplications {
23
+ /** Expected temporal variance behavior */
24
+ temporalVariance: string;
25
+ /** Dependency on external service availability */
26
+ availabilityDependency: string;
27
+ /** Potential rate limiting from external services */
28
+ rateLimitingRisk?: string;
29
+ }
30
+ /**
31
+ * External API dependency detection results
32
+ * @public
33
+ */
34
+ export interface ExternalAPIDependencyInfo {
35
+ /** Set of tool names that depend on external APIs */
36
+ toolsWithExternalAPIDependency: Set<string>;
37
+ /** Number of tools detected with external API dependencies */
38
+ detectedCount: number;
39
+ /** Detection confidence based on pattern strength */
40
+ confidence: "high" | "medium" | "low";
41
+ /** List of detected tool names (for serialization) */
42
+ detectedTools: string[];
43
+ /** Extracted domains from source code scanning (e.g., ["api.worldbank.org"]) */
44
+ domains?: string[];
45
+ /** Whether source code was available and scanned */
46
+ sourceCodeScanned?: boolean;
47
+ /** Implications for downstream assessors when external APIs are detected */
48
+ implications?: ExternalAPIImplications;
49
+ }
50
+ /**
51
+ * Detects external API dependencies in MCP tools based on name and description patterns.
52
+ * Designed to run during context preparation before assessors execute.
53
+ *
54
+ * @public
55
+ */
56
+ export declare class ExternalAPIDependencyDetector {
57
+ /**
58
+ * Tool name patterns that suggest external API dependency.
59
+ * Uses word-boundary matching to prevent false positives.
60
+ *
61
+ * Extracted from VarianceClassifier (Issue #166) for reuse across modules.
62
+ */
63
+ private readonly EXTERNAL_API_PATTERNS;
64
+ /**
65
+ * Description patterns that suggest external API dependency.
66
+ * Regex patterns for more flexible matching.
67
+ */
68
+ private readonly EXTERNAL_API_DESCRIPTION_PATTERNS;
69
+ /**
70
+ * Source code patterns that indicate external API calls.
71
+ * Each pattern captures the URL in group 1.
72
+ *
73
+ * Issue #168: Patterns from proposal for source code scanning
74
+ */
75
+ private readonly SOURCE_CODE_API_PATTERNS;
76
+ /**
77
+ * URL patterns to skip (localhost, local networks, documentation)
78
+ */
79
+ private readonly LOCALHOST_PATTERNS;
80
+ /**
81
+ * File patterns to skip during source code scanning
82
+ */
83
+ private readonly SKIP_FILE_PATTERNS;
84
+ /**
85
+ * Detect external API dependencies from tools and optionally source code.
86
+ *
87
+ * Detection strategy:
88
+ * 1. Always analyze tool names and descriptions (fast, no source needed)
89
+ * 2. If sourceCodeFiles provided, scan for actual API calls (more accurate)
90
+ * 3. Combine results and compute confidence
91
+ *
92
+ * @param tools - List of MCP tools to analyze
93
+ * @param sourceCodeFiles - Optional map of file paths to content for source scanning
94
+ * @returns Detection results with tool names, domains, and implications
95
+ */
96
+ detect(tools: Tool[], sourceCodeFiles?: Map<string, string>): ExternalAPIDependencyInfo;
97
+ /** Maximum content length per file (500KB) - prevents ReDoS attacks */
98
+ private readonly MAX_CONTENT_LENGTH;
99
+ /** Maximum matches per file - prevents runaway matching */
100
+ private readonly MAX_MATCHES_PER_FILE;
101
+ /**
102
+ * Scan source code files for external API URLs.
103
+ * Returns unique external domains found in the code.
104
+ *
105
+ * @param sourceCodeFiles - Map of file paths to content
106
+ * @returns Array of unique external domain names
107
+ */
108
+ scanSourceCode(sourceCodeFiles: Map<string, string>): string[];
109
+ /**
110
+ * Extract the hostname from a URL string.
111
+ *
112
+ * @param url - URL string (may be partial)
113
+ * @returns Hostname or null if extraction fails
114
+ */
115
+ private extractDomain;
116
+ /**
117
+ * Check if a URL points to localhost or local network.
118
+ *
119
+ * @param url - URL string to check
120
+ * @returns true if URL is local
121
+ */
122
+ private isLocalhost;
123
+ /**
124
+ * Check if a file should be skipped during source scanning.
125
+ *
126
+ * @param filePath - Path to check
127
+ * @returns true if file should be skipped
128
+ */
129
+ private shouldSkipFile;
130
+ /**
131
+ * Compute detection confidence based on both methods.
132
+ * Source code confirmation boosts confidence.
133
+ *
134
+ * @param toolCount - Number of tools detected via name/description
135
+ * @param domains - Domains found in source code
136
+ * @returns Confidence level
137
+ */
138
+ private computeConfidence;
139
+ /**
140
+ * Generate implications for downstream assessors.
141
+ *
142
+ * @param domains - External domains found
143
+ * @returns Implications object
144
+ */
145
+ private generateImplications;
146
+ /**
147
+ * Check if a single tool depends on external APIs.
148
+ * Uses BOTH name patterns AND description analysis for detection.
149
+ *
150
+ * @param tool - MCP tool to check
151
+ * @returns true if tool appears to depend on external APIs
152
+ */
153
+ isExternalAPITool(tool: Tool): boolean;
154
+ /**
155
+ * Get the list of name patterns used for detection.
156
+ * Useful for debugging and documentation.
157
+ */
158
+ getNamePatterns(): readonly string[];
159
+ /**
160
+ * Get the list of description patterns used for detection.
161
+ * Useful for debugging and documentation.
162
+ */
163
+ getDescriptionPatterns(): readonly RegExp[];
164
+ }
165
+ //# sourceMappingURL=ExternalAPIDependencyDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalAPIDependencyDetector.d.ts","sourceRoot":"","sources":["../../../../src/services/assessment/helpers/ExternalAPIDependencyDetector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,0CAA0C;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,yBAAyB;IACxC,qDAAqD;IACrD,8BAA8B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5C,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,sDAAsD;IACtD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oDAAoD;IACpD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,4EAA4E;IAC5E,YAAY,CAAC,EAAE,uBAAuB,CAAC;CACxC;AAED;;;;;GAKG;AACH,qBAAa,6BAA6B;IACxC;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAuBpC;IAEF;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,iCAAiC,CAQhD;IAEF;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAevC;IAEF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAUjC;IAEF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAajC;IAEF;;;;;;;;;;;OAWG;IACH,MAAM,CACJ,KAAK,EAAE,IAAI,EAAE,EACb,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,yBAAyB;IA0C5B,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAW;IAE9C,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAO;IAE5C;;;;;;OAMG;IACH,cAAc,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE;IAoC9D;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAUrB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAInB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAItB;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;;;;OAKG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;;;;;OAMG;IACH,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAmBtC;;;OAGG;IACH,eAAe,IAAI,SAAS,MAAM,EAAE;IAIpC;;;OAGG;IACH,sBAAsB,IAAI,SAAS,MAAM,EAAE;CAG5C"}