@bryan-thompson/inspector-assessment-client 1.25.1 → 1.25.5

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 (132) hide show
  1. package/dist/assets/{OAuthCallback-CkzX_H4T.js → OAuthCallback-Dl4GYls3.js} +1 -1
  2. package/dist/assets/{OAuthDebugCallback-jZEkm74B.js → OAuthDebugCallback-BdJ38Z-r.js} +1 -1
  3. package/dist/assets/{index-Df9Sx1jt.css → index-cHhcEXbr.css} +4 -0
  4. package/dist/assets/{index-BVx1dGJT.js → index-pfUiTdQb.js} +4 -4
  5. package/dist/index.html +2 -2
  6. package/lib/lib/assessment/configTypes.d.ts +3 -0
  7. package/lib/lib/assessment/configTypes.d.ts.map +1 -1
  8. package/lib/lib/assessment/configTypes.js +11 -6
  9. package/lib/lib/assessment/coreTypes.d.ts +65 -0
  10. package/lib/lib/assessment/coreTypes.d.ts.map +1 -1
  11. package/lib/lib/assessment/extendedTypes.d.ts +127 -0
  12. package/lib/lib/assessment/extendedTypes.d.ts.map +1 -1
  13. package/lib/lib/assessment/resultTypes.d.ts +45 -0
  14. package/lib/lib/assessment/resultTypes.d.ts.map +1 -1
  15. package/lib/services/assessment/AssessmentOrchestrator.d.ts +4 -12
  16. package/lib/services/assessment/AssessmentOrchestrator.d.ts.map +1 -1
  17. package/lib/services/assessment/AssessmentOrchestrator.js +49 -238
  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/ToolClassifier.d.ts +154 -27
  25. package/lib/services/assessment/ToolClassifier.d.ts.map +1 -1
  26. package/lib/services/assessment/ToolClassifier.js +171 -318
  27. package/lib/services/assessment/config/annotationPatterns.d.ts +3 -1
  28. package/lib/services/assessment/config/annotationPatterns.d.ts.map +1 -1
  29. package/lib/services/assessment/config/annotationPatterns.js +5 -2
  30. package/lib/services/assessment/config/architecturePatterns.d.ts +101 -0
  31. package/lib/services/assessment/config/architecturePatterns.d.ts.map +1 -0
  32. package/lib/services/assessment/config/architecturePatterns.js +248 -0
  33. package/lib/services/assessment/config/performanceConfig.d.ts +122 -0
  34. package/lib/services/assessment/config/performanceConfig.d.ts.map +1 -0
  35. package/lib/services/assessment/config/performanceConfig.js +154 -0
  36. package/lib/services/assessment/config/sanitizationPatterns.d.ts +63 -0
  37. package/lib/services/assessment/config/sanitizationPatterns.d.ts.map +1 -0
  38. package/lib/services/assessment/config/sanitizationPatterns.js +223 -0
  39. package/lib/services/assessment/lib/claudeCodeBridge.d.ts +3 -1
  40. package/lib/services/assessment/lib/claudeCodeBridge.d.ts.map +1 -1
  41. package/lib/services/assessment/lib/claudeCodeBridge.js +5 -3
  42. package/lib/services/assessment/lib/concurrencyLimit.d.ts +6 -2
  43. package/lib/services/assessment/lib/concurrencyLimit.d.ts.map +1 -1
  44. package/lib/services/assessment/lib/concurrencyLimit.js +13 -6
  45. package/lib/services/assessment/lib/errors.d.ts +90 -0
  46. package/lib/services/assessment/lib/errors.d.ts.map +1 -0
  47. package/lib/services/assessment/lib/errors.js +136 -0
  48. package/lib/services/assessment/lib/timeoutUtils.d.ts +69 -0
  49. package/lib/services/assessment/lib/timeoutUtils.d.ts.map +1 -0
  50. package/lib/services/assessment/lib/timeoutUtils.js +103 -0
  51. package/lib/services/assessment/modules/BaseAssessor.d.ts +43 -8
  52. package/lib/services/assessment/modules/BaseAssessor.d.ts.map +1 -1
  53. package/lib/services/assessment/modules/BaseAssessor.js +103 -34
  54. package/lib/services/assessment/modules/DeveloperExperienceAssessor.d.ts +38 -1
  55. package/lib/services/assessment/modules/DeveloperExperienceAssessor.d.ts.map +1 -1
  56. package/lib/services/assessment/modules/DeveloperExperienceAssessor.js +185 -19
  57. package/lib/services/assessment/modules/DocumentationAssessor.d.ts +5 -0
  58. package/lib/services/assessment/modules/DocumentationAssessor.d.ts.map +1 -1
  59. package/lib/services/assessment/modules/DocumentationAssessor.js +11 -0
  60. package/lib/services/assessment/modules/ErrorHandlingAssessor.js +1 -1
  61. package/lib/services/assessment/modules/FunctionalityAssessor.d.ts.map +1 -1
  62. package/lib/services/assessment/modules/FunctionalityAssessor.js +6 -3
  63. package/lib/services/assessment/modules/MCPSpecComplianceAssessor.d.ts +3 -0
  64. package/lib/services/assessment/modules/MCPSpecComplianceAssessor.d.ts.map +1 -1
  65. package/lib/services/assessment/modules/MCPSpecComplianceAssessor.js +14 -2
  66. package/lib/services/assessment/modules/ManifestValidationAssessor.d.ts.map +1 -1
  67. package/lib/services/assessment/modules/ManifestValidationAssessor.js +7 -2
  68. package/lib/services/assessment/modules/PromptAssessor.d.ts +1 -0
  69. package/lib/services/assessment/modules/PromptAssessor.d.ts.map +1 -1
  70. package/lib/services/assessment/modules/PromptAssessor.js +26 -16
  71. package/lib/services/assessment/modules/ProtocolComplianceAssessor.d.ts.map +1 -1
  72. package/lib/services/assessment/modules/ProtocolComplianceAssessor.js +6 -2
  73. package/lib/services/assessment/modules/ProtocolConformanceAssessor.d.ts +5 -0
  74. package/lib/services/assessment/modules/ProtocolConformanceAssessor.d.ts.map +1 -1
  75. package/lib/services/assessment/modules/ProtocolConformanceAssessor.js +15 -0
  76. package/lib/services/assessment/modules/ResourceAssessor.d.ts.map +1 -1
  77. package/lib/services/assessment/modules/ResourceAssessor.js +8 -2
  78. package/lib/services/assessment/modules/SecurityAssessor.d.ts +3 -171
  79. package/lib/services/assessment/modules/SecurityAssessor.d.ts.map +1 -1
  80. package/lib/services/assessment/modules/SecurityAssessor.js +25 -1480
  81. package/lib/services/assessment/modules/ToolAnnotationAssessor.d.ts +27 -28
  82. package/lib/services/assessment/modules/ToolAnnotationAssessor.d.ts.map +1 -1
  83. package/lib/services/assessment/modules/ToolAnnotationAssessor.js +340 -863
  84. package/lib/services/assessment/modules/UsabilityAssessor.d.ts +5 -0
  85. package/lib/services/assessment/modules/UsabilityAssessor.d.ts.map +1 -1
  86. package/lib/services/assessment/modules/UsabilityAssessor.js +11 -0
  87. package/lib/services/assessment/modules/annotations/AnnotationDeceptionDetector.d.ts +57 -0
  88. package/lib/services/assessment/modules/annotations/AnnotationDeceptionDetector.d.ts.map +1 -0
  89. package/lib/services/assessment/modules/annotations/AnnotationDeceptionDetector.js +176 -0
  90. package/lib/services/assessment/modules/annotations/ArchitectureDetector.d.ts +67 -0
  91. package/lib/services/assessment/modules/annotations/ArchitectureDetector.d.ts.map +1 -0
  92. package/lib/services/assessment/modules/annotations/ArchitectureDetector.js +239 -0
  93. package/lib/services/assessment/modules/annotations/BehaviorInference.d.ts +46 -0
  94. package/lib/services/assessment/modules/annotations/BehaviorInference.d.ts.map +1 -0
  95. package/lib/services/assessment/modules/annotations/BehaviorInference.js +394 -0
  96. package/lib/services/assessment/modules/annotations/DescriptionAnalyzer.d.ts +64 -0
  97. package/lib/services/assessment/modules/annotations/DescriptionAnalyzer.d.ts.map +1 -0
  98. package/lib/services/assessment/modules/annotations/DescriptionAnalyzer.js +304 -0
  99. package/lib/services/assessment/modules/annotations/DescriptionPoisoningDetector.d.ts +43 -0
  100. package/lib/services/assessment/modules/annotations/DescriptionPoisoningDetector.d.ts.map +1 -0
  101. package/lib/services/assessment/modules/annotations/DescriptionPoisoningDetector.js +276 -0
  102. package/lib/services/assessment/modules/annotations/SchemaAnalyzer.d.ts +122 -0
  103. package/lib/services/assessment/modules/annotations/SchemaAnalyzer.d.ts.map +1 -0
  104. package/lib/services/assessment/modules/annotations/SchemaAnalyzer.js +388 -0
  105. package/lib/services/assessment/modules/annotations/index.d.ts +13 -0
  106. package/lib/services/assessment/modules/annotations/index.d.ts.map +1 -0
  107. package/lib/services/assessment/modules/annotations/index.js +15 -0
  108. package/lib/services/assessment/modules/index.d.ts +10 -0
  109. package/lib/services/assessment/modules/index.d.ts.map +1 -1
  110. package/lib/services/assessment/modules/index.js +13 -0
  111. package/lib/services/assessment/modules/securityTests/SanitizationDetector.d.ts +125 -0
  112. package/lib/services/assessment/modules/securityTests/SanitizationDetector.d.ts.map +1 -0
  113. package/lib/services/assessment/modules/securityTests/SanitizationDetector.js +345 -0
  114. package/lib/services/assessment/modules/securityTests/SecurityPayloadGenerator.d.ts +33 -0
  115. package/lib/services/assessment/modules/securityTests/SecurityPayloadGenerator.d.ts.map +1 -0
  116. package/lib/services/assessment/modules/securityTests/SecurityPayloadGenerator.js +128 -0
  117. package/lib/services/assessment/modules/securityTests/SecurityPayloadTester.d.ts +67 -0
  118. package/lib/services/assessment/modules/securityTests/SecurityPayloadTester.d.ts.map +1 -0
  119. package/lib/services/assessment/modules/securityTests/SecurityPayloadTester.js +372 -0
  120. package/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.d.ts +178 -0
  121. package/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.d.ts.map +1 -0
  122. package/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.js +1207 -0
  123. package/lib/services/assessment/modules/securityTests/index.d.ts +8 -0
  124. package/lib/services/assessment/modules/securityTests/index.d.ts.map +1 -0
  125. package/lib/services/assessment/modules/securityTests/index.js +7 -0
  126. package/lib/services/assessment/orchestratorHelpers.d.ts +83 -0
  127. package/lib/services/assessment/orchestratorHelpers.d.ts.map +1 -0
  128. package/lib/services/assessment/orchestratorHelpers.js +212 -0
  129. package/lib/services/assessment/tool-classifier-patterns.d.ts +85 -0
  130. package/lib/services/assessment/tool-classifier-patterns.d.ts.map +1 -0
  131. package/lib/services/assessment/tool-classifier-patterns.js +365 -0
  132. package/package.json +1 -1
@@ -0,0 +1,365 @@
1
+ /**
2
+ * Tool Classifier Pattern Configuration
3
+ *
4
+ * Pre-compiled regex patterns for MCP tool classification.
5
+ * Extracting patterns to this file provides:
6
+ * - Single source of truth for patterns, confidence values, and risk levels
7
+ * - Pre-compiled patterns (created once at module load, not per classify() call)
8
+ * - Easier maintenance without modifying core classification logic
9
+ *
10
+ * @see ToolClassifier.ts for classification logic
11
+ * @see ToolClassifier.test.ts for pattern behavior validation
12
+ */
13
+ /**
14
+ * Security risk categories for MCP tools.
15
+ *
16
+ * Categories are organized by risk level:
17
+ * - **HIGH**: Tools that may execute code or access sensitive data
18
+ * - **MEDIUM**: Tools with potential bypass or supply chain risks
19
+ * - **LOW**: Safe tools for data retrieval and manipulation
20
+ */
21
+ export var ToolCategory;
22
+ (function (ToolCategory) {
23
+ // HIGH RISK
24
+ ToolCategory["CALCULATOR"] = "calculator";
25
+ ToolCategory["SYSTEM_EXEC"] = "system_exec";
26
+ ToolCategory["CODE_EXECUTOR"] = "code_executor";
27
+ ToolCategory["DATA_ACCESS"] = "data_access";
28
+ ToolCategory["TOOL_OVERRIDE"] = "tool_override";
29
+ ToolCategory["CONFIG_MODIFIER"] = "config_modifier";
30
+ ToolCategory["URL_FETCHER"] = "fetcher";
31
+ // MEDIUM RISK
32
+ ToolCategory["UNICODE_PROCESSOR"] = "unicode";
33
+ ToolCategory["JSON_PARSER"] = "parser";
34
+ ToolCategory["PACKAGE_INSTALLER"] = "installer";
35
+ ToolCategory["RUG_PULL"] = "rug_pull";
36
+ // LOW RISK (SAFE)
37
+ ToolCategory["SAFE_STORAGE"] = "safe_storage";
38
+ ToolCategory["API_WRAPPER"] = "api_wrapper";
39
+ ToolCategory["SEARCH_RETRIEVAL"] = "search_retrieval";
40
+ ToolCategory["CRUD_CREATION"] = "crud_creation";
41
+ ToolCategory["READ_ONLY_INFO"] = "read_only_info";
42
+ ToolCategory["DATA_FETCHER"] = "data_fetcher";
43
+ // DEFAULT
44
+ ToolCategory["GENERIC"] = "generic";
45
+ })(ToolCategory || (ToolCategory = {}));
46
+ /**
47
+ * Complete pattern configuration for all tool categories.
48
+ * Patterns are pre-compiled as static constants for performance.
49
+ *
50
+ * ## Pattern Types
51
+ *
52
+ * 1. **Substring patterns** (`/keyword/i`): Match anywhere in text
53
+ * - Used for HIGH-risk keywords that warrant scrutiny even when embedded
54
+ *
55
+ * 2. **Word boundary patterns** (`/\bword\b/i`): Match isolated words only
56
+ * - Used for common words to prevent false positives
57
+ * - Note: `\b` treats hyphens as boundaries but underscores as word chars
58
+ */
59
+ export const CATEGORY_PATTERNS = {
60
+ // ============================================================================
61
+ // HIGH RISK CATEGORIES
62
+ // ============================================================================
63
+ [ToolCategory.CALCULATOR]: {
64
+ patterns: [
65
+ /calculator/i,
66
+ /compute/i,
67
+ /math/i,
68
+ /calc/i,
69
+ /eval/i,
70
+ /arithmetic/i,
71
+ /expression/i,
72
+ ],
73
+ confidence: 90,
74
+ reasoning: "Calculator pattern detected (arithmetic execution risk)",
75
+ risk: "HIGH",
76
+ },
77
+ [ToolCategory.SYSTEM_EXEC]: {
78
+ patterns: [
79
+ /system.*exec/i,
80
+ /exec.*tool/i,
81
+ /command/i,
82
+ /shell/i,
83
+ /\brun\b/i,
84
+ /execute/i,
85
+ /process/i,
86
+ ],
87
+ confidence: 95,
88
+ reasoning: "System execution pattern detected (command injection risk)",
89
+ risk: "HIGH",
90
+ },
91
+ [ToolCategory.CODE_EXECUTOR]: {
92
+ patterns: [
93
+ /execute.*code/i,
94
+ /run.*code/i,
95
+ /code.*execut/i,
96
+ /run.*script/i,
97
+ /exec.*script/i,
98
+ /\bpython.*code\b/i,
99
+ /\bjavascript.*code\b/i,
100
+ /\bjs.*code\b/i,
101
+ /\beval.*code\b/i,
102
+ /code.*runner/i,
103
+ /script.*runner/i,
104
+ /\bexec\b.*\b(python|js|javascript)\b/i,
105
+ /\b(python|js|javascript)\b.*\bexec\b/i,
106
+ /interpret/i,
107
+ /\brepl\b/i,
108
+ ],
109
+ confidence: 95,
110
+ reasoning: "Code executor pattern detected (arbitrary code execution risk)",
111
+ risk: "HIGH",
112
+ },
113
+ [ToolCategory.DATA_ACCESS]: {
114
+ patterns: [
115
+ /leak/i,
116
+ /\bdata\b/i,
117
+ /show/i,
118
+ /\bget\b/i,
119
+ /\blist\b/i,
120
+ /display/i,
121
+ /\benv/i,
122
+ /secret/i,
123
+ /\bkey\b/i,
124
+ /credential/i,
125
+ /exfiltrat/i,
126
+ ],
127
+ confidence: 85,
128
+ reasoning: "Data access pattern detected (data exfiltration risk)",
129
+ risk: "HIGH",
130
+ },
131
+ [ToolCategory.TOOL_OVERRIDE]: {
132
+ patterns: [
133
+ /override/i,
134
+ /shadow/i,
135
+ /poison/i,
136
+ /create.*tool/i,
137
+ /register.*tool/i,
138
+ /define.*tool/i,
139
+ /tool.*creator/i,
140
+ /add.*tool/i,
141
+ ],
142
+ confidence: 92,
143
+ reasoning: "Tool override pattern detected (shadowing/poisoning risk)",
144
+ risk: "HIGH",
145
+ },
146
+ [ToolCategory.CONFIG_MODIFIER]: {
147
+ patterns: [
148
+ /config/i,
149
+ /setting/i,
150
+ /modifier/i,
151
+ /\badmin\b/i,
152
+ /privilege/i,
153
+ /permission/i,
154
+ /configure/i,
155
+ /drift/i,
156
+ ],
157
+ confidence: 88,
158
+ reasoning: "Config modification pattern detected (configuration drift risk)",
159
+ risk: "HIGH",
160
+ },
161
+ [ToolCategory.URL_FETCHER]: {
162
+ patterns: [
163
+ /fetch/i,
164
+ /\burl\b/i,
165
+ /http/i,
166
+ /download/i,
167
+ /load/i,
168
+ /retrieve/i,
169
+ /\bget\b.*url/i,
170
+ /external/i,
171
+ ],
172
+ confidence: 87,
173
+ reasoning: "URL fetcher pattern detected (indirect prompt injection risk)",
174
+ risk: "HIGH",
175
+ },
176
+ // ============================================================================
177
+ // MEDIUM RISK CATEGORIES
178
+ // ============================================================================
179
+ [ToolCategory.UNICODE_PROCESSOR]: {
180
+ patterns: [
181
+ /unicode/i,
182
+ /encode/i,
183
+ /decode/i,
184
+ /charset/i,
185
+ /utf/i,
186
+ /hex/i,
187
+ /escape/i,
188
+ ],
189
+ confidence: 75,
190
+ reasoning: "Unicode processor pattern detected (bypass encoding risk)",
191
+ risk: "MEDIUM",
192
+ },
193
+ [ToolCategory.JSON_PARSER]: {
194
+ patterns: [
195
+ /parser/i,
196
+ /parse/i,
197
+ /json/i,
198
+ /xml/i,
199
+ /yaml/i,
200
+ /nested/i,
201
+ /deserialize/i,
202
+ /unmarshal/i,
203
+ ],
204
+ confidence: 78,
205
+ reasoning: "JSON/nested parser pattern detected (nested injection risk)",
206
+ risk: "MEDIUM",
207
+ },
208
+ [ToolCategory.PACKAGE_INSTALLER]: {
209
+ patterns: [
210
+ /install/i,
211
+ /package/i,
212
+ /\bnpm\b/i,
213
+ /\bpip\b/i,
214
+ /dependency/i,
215
+ /module/i,
216
+ /library/i,
217
+ /\bgem\b/i,
218
+ ],
219
+ confidence: 70,
220
+ reasoning: "Package installer pattern detected (typosquatting risk)",
221
+ risk: "MEDIUM",
222
+ },
223
+ [ToolCategory.RUG_PULL]: {
224
+ patterns: [
225
+ /rug.*pull/i,
226
+ /trust/i,
227
+ /behavior.*change/i,
228
+ /malicious.*after/i,
229
+ /invocation.*count/i,
230
+ ],
231
+ confidence: 80,
232
+ reasoning: "Rug pull pattern detected (behavioral change risk)",
233
+ risk: "MEDIUM",
234
+ },
235
+ // ============================================================================
236
+ // LOW RISK (SAFE) CATEGORIES
237
+ // ============================================================================
238
+ [ToolCategory.API_WRAPPER]: {
239
+ patterns: [
240
+ /firecrawl/i,
241
+ /\bscrape\b/i,
242
+ /\bcrawl\b/i,
243
+ /web.*scraping/i,
244
+ /api.*wrapper/i,
245
+ /http.*client/i,
246
+ /web.*client/i,
247
+ /rest.*client/i,
248
+ /graphql.*client/i,
249
+ /fetch.*web.*content/i,
250
+ ],
251
+ confidence: 95,
252
+ reasoning: "API wrapper pattern detected (safe data passing, not code execution)",
253
+ risk: "LOW",
254
+ },
255
+ [ToolCategory.SEARCH_RETRIEVAL]: {
256
+ patterns: [
257
+ /\bsearch\b/i,
258
+ /\bfind\b/i,
259
+ /\blookup\b/i,
260
+ /\bquery\b/i,
261
+ /retrieve/i,
262
+ /\blist\b/i,
263
+ /get.*users/i,
264
+ /get.*pages/i,
265
+ /get.*database/i,
266
+ ],
267
+ confidence: 93,
268
+ reasoning: "Search/retrieval pattern detected (returns data, not code execution)",
269
+ risk: "LOW",
270
+ },
271
+ [ToolCategory.CRUD_CREATION]: {
272
+ patterns: [
273
+ /\bcreate\b/i,
274
+ /\badd\b/i,
275
+ /\binsert\b/i,
276
+ /\bupdate\b/i,
277
+ /\bmodify\b/i,
278
+ /\bdelete\b/i,
279
+ /\bduplicate\b/i,
280
+ /\bmove\b/i,
281
+ /\bappend\b/i,
282
+ ],
283
+ confidence: 92,
284
+ reasoning: "CRUD operation pattern detected (data manipulation, not code execution)",
285
+ risk: "LOW",
286
+ },
287
+ [ToolCategory.READ_ONLY_INFO]: {
288
+ patterns: [
289
+ /get.*self/i,
290
+ /get.*teams/i,
291
+ /get.*info/i,
292
+ /get.*status/i,
293
+ /\bwhoami\b/i,
294
+ /get.*workspace/i,
295
+ /get.*user/i,
296
+ /current.*user/i,
297
+ ],
298
+ confidence: 94,
299
+ reasoning: "Read-only info pattern detected (intended data exposure, not vulnerability)",
300
+ risk: "LOW",
301
+ },
302
+ [ToolCategory.DATA_FETCHER]: {
303
+ patterns: [
304
+ /get_.*_data/i, // get_company_data, get_user_data
305
+ /fetch_.*_info/i, // fetch_user_info
306
+ /list_.*records/i, // list_all_records
307
+ /retrieve_.*details/i, // retrieve_order_details
308
+ /read_.*entries/i, // read_log_entries
309
+ /\bget_\w+$/i, // get_users, get_orders (simple get_ prefix)
310
+ /\blist_\w+$/i, // list_items, list_records
311
+ /\bfetch_\w+$/i, // fetch_data, fetch_info
312
+ ],
313
+ confidence: 88,
314
+ reasoning: "Read-only data fetcher pattern detected (returns external data, unlikely to compute)",
315
+ risk: "LOW",
316
+ },
317
+ [ToolCategory.SAFE_STORAGE]: {
318
+ patterns: [
319
+ /safe.*storage/i,
320
+ /safe.*search/i,
321
+ /safe.*list/i,
322
+ /safe.*info/i,
323
+ /safe.*echo/i,
324
+ /safe.*validate/i,
325
+ /safe.*tool/i,
326
+ ],
327
+ confidence: 99,
328
+ reasoning: "Safe tool pattern detected (control group - should be safe)",
329
+ risk: "LOW",
330
+ },
331
+ };
332
+ /**
333
+ * Default configuration for GENERIC category (no pattern match)
334
+ */
335
+ export const GENERIC_CONFIG = {
336
+ confidence: 50,
337
+ reasoning: "No specific pattern match, using generic tests",
338
+ risk: "LOW",
339
+ };
340
+ /**
341
+ * Order in which categories are checked during classification.
342
+ * This order determines priority when a tool matches multiple categories.
343
+ */
344
+ export const CATEGORY_CHECK_ORDER = [
345
+ // HIGH risk first
346
+ ToolCategory.CALCULATOR,
347
+ ToolCategory.SYSTEM_EXEC,
348
+ ToolCategory.CODE_EXECUTOR,
349
+ ToolCategory.DATA_ACCESS,
350
+ ToolCategory.TOOL_OVERRIDE,
351
+ ToolCategory.CONFIG_MODIFIER,
352
+ ToolCategory.URL_FETCHER,
353
+ // MEDIUM risk
354
+ ToolCategory.UNICODE_PROCESSOR,
355
+ ToolCategory.JSON_PARSER,
356
+ ToolCategory.PACKAGE_INSTALLER,
357
+ ToolCategory.RUG_PULL,
358
+ // LOW risk (SAFE)
359
+ ToolCategory.API_WRAPPER,
360
+ ToolCategory.SEARCH_RETRIEVAL,
361
+ ToolCategory.CRUD_CREATION,
362
+ ToolCategory.READ_ONLY_INFO,
363
+ ToolCategory.DATA_FETCHER,
364
+ ToolCategory.SAFE_STORAGE,
365
+ ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bryan-thompson/inspector-assessment-client",
3
- "version": "1.25.1",
3
+ "version": "1.25.5",
4
4
  "description": "Client-side application for the Enhanced MCP Inspector with assessment capabilities",
5
5
  "license": "MIT",
6
6
  "author": "Bryan Thompson <bryan@triepod.ai>",