@bryan-thompson/inspector-assessment-client 1.11.1 → 1.12.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-DA2koy6X.js → OAuthCallback-DD8JgGmx.js} +1 -1
- package/dist/assets/{OAuthDebugCallback-Bx60PQTT.js → OAuthDebugCallback-CGeg00AP.js} +1 -1
- package/dist/assets/{index-kJ0jPd4m.js → index-sUICDw7A.js} +4 -4
- package/dist/index.html +1 -1
- package/lib/lib/assessmentTypes.d.ts +55 -1
- package/lib/lib/assessmentTypes.d.ts.map +1 -1
- package/lib/services/assessment/AssessmentOrchestrator.d.ts.map +1 -1
- package/lib/services/assessment/AssessmentOrchestrator.js +8 -0
- package/lib/services/assessment/config/annotationPatterns.d.ts +70 -0
- package/lib/services/assessment/config/annotationPatterns.d.ts.map +1 -0
- package/lib/services/assessment/config/annotationPatterns.js +305 -0
- package/lib/services/assessment/modules/ToolAnnotationAssessor.d.ts +16 -2
- package/lib/services/assessment/modules/ToolAnnotationAssessor.d.ts.map +1 -1
- package/lib/services/assessment/modules/ToolAnnotationAssessor.js +212 -132
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { u as useToast, r as reactExports, j as jsxRuntimeExports, p as parseOAuthCallbackParams, g as generateOAuthErrorDescription, S as SESSION_KEYS, I as InspectorOAuthClientProvider, a as auth } from "./index-
|
|
1
|
+
import { u as useToast, r as reactExports, j as jsxRuntimeExports, p as parseOAuthCallbackParams, g as generateOAuthErrorDescription, S as SESSION_KEYS, I as InspectorOAuthClientProvider, a as auth } from "./index-sUICDw7A.js";
|
|
2
2
|
const OAuthCallback = ({ onConnect }) => {
|
|
3
3
|
const { toast } = useToast();
|
|
4
4
|
const hasProcessedRef = reactExports.useRef(false);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as reactExports, S as SESSION_KEYS, p as parseOAuthCallbackParams, j as jsxRuntimeExports, g as generateOAuthErrorDescription } from "./index-
|
|
1
|
+
import { r as reactExports, S as SESSION_KEYS, p as parseOAuthCallbackParams, j as jsxRuntimeExports, g as generateOAuthErrorDescription } from "./index-sUICDw7A.js";
|
|
2
2
|
const OAuthDebugCallback = ({ onConnect }) => {
|
|
3
3
|
reactExports.useEffect(() => {
|
|
4
4
|
let isProcessed = false;
|
|
@@ -16320,7 +16320,7 @@ object({
|
|
|
16320
16320
|
token_type_hint: string().optional()
|
|
16321
16321
|
}).strip();
|
|
16322
16322
|
const name = "@bryan-thompson/inspector-assessment-client";
|
|
16323
|
-
const version$1 = "1.
|
|
16323
|
+
const version$1 = "1.12.0";
|
|
16324
16324
|
const packageJson = {
|
|
16325
16325
|
name,
|
|
16326
16326
|
version: version$1
|
|
@@ -48863,7 +48863,7 @@ const useTheme = () => {
|
|
|
48863
48863
|
[theme, setThemeWithSideEffect]
|
|
48864
48864
|
);
|
|
48865
48865
|
};
|
|
48866
|
-
const version = "1.
|
|
48866
|
+
const version = "1.12.0";
|
|
48867
48867
|
var [createTooltipContext] = createContextScope("Tooltip", [
|
|
48868
48868
|
createPopperScope
|
|
48869
48869
|
]);
|
|
@@ -61740,13 +61740,13 @@ const App = () => {
|
|
|
61740
61740
|
) });
|
|
61741
61741
|
if (window.location.pathname === "/oauth/callback") {
|
|
61742
61742
|
const OAuthCallback = React.lazy(
|
|
61743
|
-
() => __vitePreload(() => import("./OAuthCallback-
|
|
61743
|
+
() => __vitePreload(() => import("./OAuthCallback-DD8JgGmx.js"), true ? [] : void 0)
|
|
61744
61744
|
);
|
|
61745
61745
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(reactExports.Suspense, { fallback: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "Loading..." }), children: /* @__PURE__ */ jsxRuntimeExports.jsx(OAuthCallback, { onConnect: onOAuthConnect }) });
|
|
61746
61746
|
}
|
|
61747
61747
|
if (window.location.pathname === "/oauth/callback/debug") {
|
|
61748
61748
|
const OAuthDebugCallback = React.lazy(
|
|
61749
|
-
() => __vitePreload(() => import("./OAuthDebugCallback-
|
|
61749
|
+
() => __vitePreload(() => import("./OAuthDebugCallback-CGeg00AP.js"), true ? [] : void 0)
|
|
61750
61750
|
);
|
|
61751
61751
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(reactExports.Suspense, { fallback: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "Loading..." }), children: /* @__PURE__ */ jsxRuntimeExports.jsx(OAuthDebugCallback, { onConnect: onOAuthDebugConnect }) });
|
|
61752
61752
|
}
|
package/dist/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg+xml" href="/mcp.svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>MCP Inspector</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-sUICDw7A.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/index-Cuc9GxjD.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
@@ -4,6 +4,15 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export type AssessmentStatus = "PASS" | "FAIL" | "NEED_MORE_INFO";
|
|
6
6
|
export type SecurityRiskLevel = "LOW" | "MEDIUM" | "HIGH";
|
|
7
|
+
/**
|
|
8
|
+
* Alignment status for tool annotations.
|
|
9
|
+
* Extends beyond PASS/FAIL to handle ambiguous cases.
|
|
10
|
+
*/
|
|
11
|
+
export type AlignmentStatus = "ALIGNED" | "MISALIGNED" | "REVIEW_RECOMMENDED" | "UNKNOWN";
|
|
12
|
+
/**
|
|
13
|
+
* Confidence level for behavior inference
|
|
14
|
+
*/
|
|
15
|
+
export type InferenceConfidence = "high" | "medium" | "low";
|
|
7
16
|
export interface TestInputMetadata {
|
|
8
17
|
toolCategory: string;
|
|
9
18
|
generationStrategy: string;
|
|
@@ -526,7 +535,13 @@ export interface ToolAnnotationResult {
|
|
|
526
535
|
expectedReadOnly: boolean;
|
|
527
536
|
expectedDestructive: boolean;
|
|
528
537
|
reason: string;
|
|
538
|
+
/** Confidence level of the inference */
|
|
539
|
+
confidence: InferenceConfidence;
|
|
540
|
+
/** True if the tool name matches an ambiguous pattern */
|
|
541
|
+
isAmbiguous: boolean;
|
|
529
542
|
};
|
|
543
|
+
/** Alignment status between annotations and inferred behavior */
|
|
544
|
+
alignmentStatus?: AlignmentStatus;
|
|
530
545
|
issues: string[];
|
|
531
546
|
recommendations: string[];
|
|
532
547
|
}
|
|
@@ -534,10 +549,29 @@ export interface ToolAnnotationAssessment {
|
|
|
534
549
|
toolResults: ToolAnnotationResult[];
|
|
535
550
|
annotatedCount: number;
|
|
536
551
|
missingAnnotationsCount: number;
|
|
552
|
+
/** Count of high-confidence misalignments only (excludes REVIEW_RECOMMENDED) */
|
|
537
553
|
misalignedAnnotationsCount: number;
|
|
538
554
|
status: AssessmentStatus;
|
|
539
555
|
explanation: string;
|
|
540
556
|
recommendations: string[];
|
|
557
|
+
/** Detailed metrics for annotation quality */
|
|
558
|
+
metrics?: {
|
|
559
|
+
/** Percentage of tools with any annotations (0-100) */
|
|
560
|
+
coverage: number;
|
|
561
|
+
/** Percentage of tools without contradictions (0-100) */
|
|
562
|
+
consistency: number;
|
|
563
|
+
/** Percentage of high-confidence alignments (0-100) */
|
|
564
|
+
correctness: number;
|
|
565
|
+
/** Count of tools needing manual review */
|
|
566
|
+
reviewRequired: number;
|
|
567
|
+
};
|
|
568
|
+
/** Breakdown of tools by alignment status */
|
|
569
|
+
alignmentBreakdown?: {
|
|
570
|
+
aligned: number;
|
|
571
|
+
misaligned: number;
|
|
572
|
+
reviewRecommended: number;
|
|
573
|
+
unknown: number;
|
|
574
|
+
};
|
|
541
575
|
}
|
|
542
576
|
/**
|
|
543
577
|
* Prohibited Libraries Types (Policy #28-30)
|
|
@@ -658,6 +692,7 @@ export interface AssessmentConfiguration {
|
|
|
658
692
|
enableDomainTesting?: boolean;
|
|
659
693
|
mcpProtocolVersion?: string;
|
|
660
694
|
enableSourceCodeAnalysis?: boolean;
|
|
695
|
+
patternConfigPath?: string;
|
|
661
696
|
claudeCode?: ClaudeCodeConfig;
|
|
662
697
|
assessmentCategories?: {
|
|
663
698
|
functionality: boolean;
|
|
@@ -683,7 +718,7 @@ export interface ProgressCallback {
|
|
|
683
718
|
/**
|
|
684
719
|
* Union type for all progress events emitted during assessment.
|
|
685
720
|
*/
|
|
686
|
-
export type ProgressEvent = ModuleStartedProgress | TestBatchProgress | ModuleCompleteProgress | VulnerabilityFoundProgress | AnnotationMissingProgress | AnnotationMisalignedProgress;
|
|
721
|
+
export type ProgressEvent = ModuleStartedProgress | TestBatchProgress | ModuleCompleteProgress | VulnerabilityFoundProgress | AnnotationMissingProgress | AnnotationMisalignedProgress | AnnotationReviewRecommendedProgress;
|
|
687
722
|
/**
|
|
688
723
|
* Emitted when an assessment module begins execution.
|
|
689
724
|
*/
|
|
@@ -772,6 +807,25 @@ export interface AnnotationMisalignedProgress {
|
|
|
772
807
|
confidence: number;
|
|
773
808
|
reason: string;
|
|
774
809
|
}
|
|
810
|
+
/**
|
|
811
|
+
* Emitted when annotation alignment cannot be confidently determined.
|
|
812
|
+
* Used for ambiguous patterns like store_*, queue_*, cache_* where behavior
|
|
813
|
+
* varies by implementation context. Does not indicate a failure - just flags
|
|
814
|
+
* for human review.
|
|
815
|
+
*/
|
|
816
|
+
export interface AnnotationReviewRecommendedProgress {
|
|
817
|
+
type: "annotation_review_recommended";
|
|
818
|
+
tool: string;
|
|
819
|
+
title?: string;
|
|
820
|
+
description?: string;
|
|
821
|
+
parameters: ToolParamProgress[];
|
|
822
|
+
field: "readOnlyHint" | "destructiveHint";
|
|
823
|
+
actual: boolean | undefined;
|
|
824
|
+
inferred: boolean;
|
|
825
|
+
confidence: InferenceConfidence;
|
|
826
|
+
isAmbiguous: boolean;
|
|
827
|
+
reason: string;
|
|
828
|
+
}
|
|
775
829
|
export declare const DEFAULT_ASSESSMENT_CONFIG: AssessmentConfiguration;
|
|
776
830
|
export declare const REVIEWER_MODE_CONFIG: AssessmentConfiguration;
|
|
777
831
|
export declare const DEVELOPER_MODE_CONFIG: AssessmentConfiguration;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assessmentTypes.d.ts","sourceRoot":"","sources":["../../src/lib/assessmentTypes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"assessmentTypes.d.ts","sourceRoot":"","sources":["../../src/lib/assessmentTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssessmentOrchestrator.d.ts","sourceRoot":"","sources":["../../../src/services/assessment/AssessmentOrchestrator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EAGvB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,IAAI,EACJ,2BAA2B,EAC5B,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"AssessmentOrchestrator.d.ts","sourceRoot":"","sources":["../../../src/services/assessment/AssessmentOrchestrator.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,8 @@ import { ToolAnnotationAssessor } from "./modules/ToolAnnotationAssessor.js";
|
|
|
17
17
|
import { ProhibitedLibrariesAssessor } from "./modules/ProhibitedLibrariesAssessor.js";
|
|
18
18
|
import { ManifestValidationAssessor } from "./modules/ManifestValidationAssessor.js";
|
|
19
19
|
import { PortabilityAssessor } from "./modules/PortabilityAssessor.js";
|
|
20
|
+
// Pattern configuration for tool annotation assessment
|
|
21
|
+
import { loadPatternConfig, compilePatterns, } from "./config/annotationPatterns.js";
|
|
20
22
|
// Claude Code integration for intelligent analysis
|
|
21
23
|
import { ClaudeCodeBridge, FULL_CLAUDE_CODE_CONFIG, } from "./lib/claudeCodeBridge.js";
|
|
22
24
|
import { TestDataGenerator } from "./TestDataGenerator.js";
|
|
@@ -116,6 +118,12 @@ export class AssessmentOrchestrator {
|
|
|
116
118
|
if (this.claudeBridge) {
|
|
117
119
|
this.toolAnnotationAssessor.setClaudeBridge(this.claudeBridge);
|
|
118
120
|
}
|
|
121
|
+
// Load custom pattern configuration if provided
|
|
122
|
+
if (this.config.patternConfigPath) {
|
|
123
|
+
const patternConfig = loadPatternConfig(this.config.patternConfigPath);
|
|
124
|
+
const compiledPatterns = compilePatterns(patternConfig);
|
|
125
|
+
this.toolAnnotationAssessor.setPatterns(compiledPatterns);
|
|
126
|
+
}
|
|
119
127
|
}
|
|
120
128
|
if (this.config.assessmentCategories?.prohibitedLibraries) {
|
|
121
129
|
this.prohibitedLibrariesAssessor = new ProhibitedLibrariesAssessor(this.config);
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Annotation Pattern Configuration
|
|
3
|
+
*
|
|
4
|
+
* Configurable pattern system for inferring expected tool behavior from names.
|
|
5
|
+
* Supports JSON configuration files for customization.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Pattern configuration for tool behavior inference.
|
|
9
|
+
* Each category contains string patterns that are converted to RegExp at runtime.
|
|
10
|
+
* Patterns should end with underscore or hyphen (e.g., "get_", "delete-")
|
|
11
|
+
*/
|
|
12
|
+
export interface AnnotationPatternConfig {
|
|
13
|
+
/** Patterns indicating read-only operations (e.g., "get_", "list_", "fetch_") */
|
|
14
|
+
readOnly: string[];
|
|
15
|
+
/** Patterns indicating destructive operations (e.g., "delete_", "remove_", "destroy_") */
|
|
16
|
+
destructive: string[];
|
|
17
|
+
/** Patterns indicating write operations that are not destructive (e.g., "create_", "add_") */
|
|
18
|
+
write: string[];
|
|
19
|
+
/** Patterns that are semantically ambiguous - behavior varies by implementation */
|
|
20
|
+
ambiguous: string[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Compiled patterns ready for matching.
|
|
24
|
+
* String patterns are converted to RegExp objects.
|
|
25
|
+
*/
|
|
26
|
+
export interface CompiledPatterns {
|
|
27
|
+
readOnly: RegExp[];
|
|
28
|
+
destructive: RegExp[];
|
|
29
|
+
write: RegExp[];
|
|
30
|
+
ambiguous: RegExp[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Result of pattern matching with confidence scoring.
|
|
34
|
+
*/
|
|
35
|
+
export interface PatternMatchResult {
|
|
36
|
+
category: "readOnly" | "destructive" | "write" | "ambiguous" | "unknown";
|
|
37
|
+
pattern: string | null;
|
|
38
|
+
confidence: "high" | "medium" | "low";
|
|
39
|
+
isAmbiguous: boolean;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Default annotation patterns.
|
|
43
|
+
* These patterns have been validated against real-world MCP servers.
|
|
44
|
+
*/
|
|
45
|
+
export declare const DEFAULT_ANNOTATION_PATTERNS: AnnotationPatternConfig;
|
|
46
|
+
/**
|
|
47
|
+
* Compile string patterns into RegExp objects for efficient matching.
|
|
48
|
+
*/
|
|
49
|
+
export declare function compilePatterns(config: AnnotationPatternConfig): CompiledPatterns;
|
|
50
|
+
/**
|
|
51
|
+
* Load pattern configuration from a JSON file.
|
|
52
|
+
* Partial configs are merged with defaults.
|
|
53
|
+
*
|
|
54
|
+
* @param configPath - Path to JSON configuration file
|
|
55
|
+
* @returns Merged configuration with defaults
|
|
56
|
+
*/
|
|
57
|
+
export declare function loadPatternConfig(configPath?: string): AnnotationPatternConfig;
|
|
58
|
+
/**
|
|
59
|
+
* Match a tool name against compiled patterns and return the result.
|
|
60
|
+
*
|
|
61
|
+
* @param toolName - The tool name to match
|
|
62
|
+
* @param patterns - Compiled pattern sets
|
|
63
|
+
* @returns Match result with category, confidence, and ambiguity flag
|
|
64
|
+
*/
|
|
65
|
+
export declare function matchToolPattern(toolName: string, patterns: CompiledPatterns): PatternMatchResult;
|
|
66
|
+
/**
|
|
67
|
+
* Get compiled default patterns (cached for performance).
|
|
68
|
+
*/
|
|
69
|
+
export declare function getDefaultCompiledPatterns(): CompiledPatterns;
|
|
70
|
+
//# sourceMappingURL=annotationPatterns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotationPatterns.d.ts","sourceRoot":"","sources":["../../../../src/services/assessment/config/annotationPatterns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,iFAAiF;IACjF,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,0FAA0F;IAC1F,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,8FAA8F;IAC9F,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,mFAAmF;IACnF,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,UAAU,GAAG,aAAa,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC;IACzE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE,uBAqKzC,CAAC;AAoBF;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,uBAAuB,GAC9B,gBAAgB,CAOlB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,CAAC,EAAE,MAAM,GAClB,uBAAuB,CAyBzB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,gBAAgB,GACzB,kBAAkB,CA0DpB;AAOD;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,gBAAgB,CAK7D"}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Annotation Pattern Configuration
|
|
3
|
+
*
|
|
4
|
+
* Configurable pattern system for inferring expected tool behavior from names.
|
|
5
|
+
* Supports JSON configuration files for customization.
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from "fs";
|
|
8
|
+
/**
|
|
9
|
+
* Default annotation patterns.
|
|
10
|
+
* These patterns have been validated against real-world MCP servers.
|
|
11
|
+
*/
|
|
12
|
+
export const DEFAULT_ANNOTATION_PATTERNS = {
|
|
13
|
+
readOnly: [
|
|
14
|
+
"get_",
|
|
15
|
+
"get-",
|
|
16
|
+
"list_",
|
|
17
|
+
"list-",
|
|
18
|
+
"fetch_",
|
|
19
|
+
"fetch-",
|
|
20
|
+
"read_",
|
|
21
|
+
"read-",
|
|
22
|
+
"query_",
|
|
23
|
+
"query-",
|
|
24
|
+
"search_",
|
|
25
|
+
"search-",
|
|
26
|
+
"find_",
|
|
27
|
+
"find-",
|
|
28
|
+
"show_",
|
|
29
|
+
"show-",
|
|
30
|
+
"view_",
|
|
31
|
+
"view-",
|
|
32
|
+
"describe_",
|
|
33
|
+
"describe-",
|
|
34
|
+
"check_",
|
|
35
|
+
"check-",
|
|
36
|
+
"verify_",
|
|
37
|
+
"verify-",
|
|
38
|
+
"validate_",
|
|
39
|
+
"validate-",
|
|
40
|
+
"count_",
|
|
41
|
+
"count-",
|
|
42
|
+
"status_",
|
|
43
|
+
"status-",
|
|
44
|
+
"info_",
|
|
45
|
+
"info-",
|
|
46
|
+
"lookup_",
|
|
47
|
+
"lookup-",
|
|
48
|
+
"browse_",
|
|
49
|
+
"browse-",
|
|
50
|
+
"preview_",
|
|
51
|
+
"preview-",
|
|
52
|
+
"download_",
|
|
53
|
+
"download-",
|
|
54
|
+
],
|
|
55
|
+
destructive: [
|
|
56
|
+
"delete_",
|
|
57
|
+
"delete-",
|
|
58
|
+
"remove_",
|
|
59
|
+
"remove-",
|
|
60
|
+
"destroy_",
|
|
61
|
+
"destroy-",
|
|
62
|
+
"drop_",
|
|
63
|
+
"drop-",
|
|
64
|
+
"purge_",
|
|
65
|
+
"purge-",
|
|
66
|
+
"clear_",
|
|
67
|
+
"clear-",
|
|
68
|
+
"wipe_",
|
|
69
|
+
"wipe-",
|
|
70
|
+
"erase_",
|
|
71
|
+
"erase-",
|
|
72
|
+
"reset_",
|
|
73
|
+
"reset-",
|
|
74
|
+
"truncate_",
|
|
75
|
+
"truncate-",
|
|
76
|
+
"revoke_",
|
|
77
|
+
"revoke-",
|
|
78
|
+
"terminate_",
|
|
79
|
+
"terminate-",
|
|
80
|
+
"cancel_",
|
|
81
|
+
"cancel-",
|
|
82
|
+
"kill_",
|
|
83
|
+
"kill-",
|
|
84
|
+
"force_",
|
|
85
|
+
"force-",
|
|
86
|
+
],
|
|
87
|
+
write: [
|
|
88
|
+
"create_",
|
|
89
|
+
"create-",
|
|
90
|
+
"add_",
|
|
91
|
+
"add-",
|
|
92
|
+
"insert_",
|
|
93
|
+
"insert-",
|
|
94
|
+
"update_",
|
|
95
|
+
"update-",
|
|
96
|
+
"modify_",
|
|
97
|
+
"modify-",
|
|
98
|
+
"edit_",
|
|
99
|
+
"edit-",
|
|
100
|
+
"change_",
|
|
101
|
+
"change-",
|
|
102
|
+
"set_",
|
|
103
|
+
"set-",
|
|
104
|
+
"put_",
|
|
105
|
+
"put-",
|
|
106
|
+
"patch_",
|
|
107
|
+
"patch-",
|
|
108
|
+
"post_",
|
|
109
|
+
"post-",
|
|
110
|
+
"write_",
|
|
111
|
+
"write-",
|
|
112
|
+
"upload_",
|
|
113
|
+
"upload-",
|
|
114
|
+
"send_",
|
|
115
|
+
"send-",
|
|
116
|
+
"submit_",
|
|
117
|
+
"submit-",
|
|
118
|
+
"publish_",
|
|
119
|
+
"publish-",
|
|
120
|
+
"enable_",
|
|
121
|
+
"enable-",
|
|
122
|
+
"disable_",
|
|
123
|
+
"disable-",
|
|
124
|
+
"start_",
|
|
125
|
+
"start-",
|
|
126
|
+
"stop_",
|
|
127
|
+
"stop-",
|
|
128
|
+
"run_",
|
|
129
|
+
"run-",
|
|
130
|
+
"execute_",
|
|
131
|
+
"execute-",
|
|
132
|
+
],
|
|
133
|
+
ambiguous: [
|
|
134
|
+
"store_",
|
|
135
|
+
"store-",
|
|
136
|
+
"queue_",
|
|
137
|
+
"queue-",
|
|
138
|
+
"cache_",
|
|
139
|
+
"cache-",
|
|
140
|
+
"process_",
|
|
141
|
+
"process-",
|
|
142
|
+
"handle_",
|
|
143
|
+
"handle-",
|
|
144
|
+
"manage_",
|
|
145
|
+
"manage-",
|
|
146
|
+
"sync_",
|
|
147
|
+
"sync-",
|
|
148
|
+
"transfer_",
|
|
149
|
+
"transfer-",
|
|
150
|
+
"push_",
|
|
151
|
+
"push-",
|
|
152
|
+
"pop_",
|
|
153
|
+
"pop-",
|
|
154
|
+
"apply_",
|
|
155
|
+
"apply-",
|
|
156
|
+
"compute_",
|
|
157
|
+
"compute-",
|
|
158
|
+
"calculate_",
|
|
159
|
+
"calculate-",
|
|
160
|
+
"transform_",
|
|
161
|
+
"transform-",
|
|
162
|
+
"convert_",
|
|
163
|
+
"convert-",
|
|
164
|
+
"evaluate_",
|
|
165
|
+
"evaluate-",
|
|
166
|
+
"log_",
|
|
167
|
+
"log-",
|
|
168
|
+
"record_",
|
|
169
|
+
"record-",
|
|
170
|
+
"track_",
|
|
171
|
+
"track-",
|
|
172
|
+
"register_",
|
|
173
|
+
"register-",
|
|
174
|
+
"save_",
|
|
175
|
+
"save-",
|
|
176
|
+
],
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* Convert a string pattern to a RegExp.
|
|
180
|
+
* Handles patterns like "get_" -> /^get[_-]?/i
|
|
181
|
+
*/
|
|
182
|
+
function patternToRegex(pattern) {
|
|
183
|
+
// Remove trailing underscore/hyphen for the base pattern
|
|
184
|
+
const base = pattern.replace(/[_-]$/, "");
|
|
185
|
+
// Create regex that matches pattern at start of string, with optional underscore/hyphen
|
|
186
|
+
return new RegExp(`^${escapeRegex(base)}[_-]?`, "i");
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Escape special regex characters in a string.
|
|
190
|
+
*/
|
|
191
|
+
function escapeRegex(str) {
|
|
192
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Compile string patterns into RegExp objects for efficient matching.
|
|
196
|
+
*/
|
|
197
|
+
export function compilePatterns(config) {
|
|
198
|
+
return {
|
|
199
|
+
readOnly: config.readOnly.map(patternToRegex),
|
|
200
|
+
destructive: config.destructive.map(patternToRegex),
|
|
201
|
+
write: config.write.map(patternToRegex),
|
|
202
|
+
ambiguous: config.ambiguous.map(patternToRegex),
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Load pattern configuration from a JSON file.
|
|
207
|
+
* Partial configs are merged with defaults.
|
|
208
|
+
*
|
|
209
|
+
* @param configPath - Path to JSON configuration file
|
|
210
|
+
* @returns Merged configuration with defaults
|
|
211
|
+
*/
|
|
212
|
+
export function loadPatternConfig(configPath) {
|
|
213
|
+
if (!configPath) {
|
|
214
|
+
return DEFAULT_ANNOTATION_PATTERNS;
|
|
215
|
+
}
|
|
216
|
+
try {
|
|
217
|
+
const configContent = fs.readFileSync(configPath, "utf-8");
|
|
218
|
+
const userConfig = JSON.parse(configContent);
|
|
219
|
+
// Merge with defaults - user config overrides defaults for specified categories
|
|
220
|
+
return {
|
|
221
|
+
readOnly: userConfig.readOnly ?? DEFAULT_ANNOTATION_PATTERNS.readOnly,
|
|
222
|
+
destructive: userConfig.destructive ?? DEFAULT_ANNOTATION_PATTERNS.destructive,
|
|
223
|
+
write: userConfig.write ?? DEFAULT_ANNOTATION_PATTERNS.write,
|
|
224
|
+
ambiguous: userConfig.ambiguous ?? DEFAULT_ANNOTATION_PATTERNS.ambiguous,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
console.warn(`Warning: Could not load pattern config from ${configPath}, using defaults`);
|
|
229
|
+
return DEFAULT_ANNOTATION_PATTERNS;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Match a tool name against compiled patterns and return the result.
|
|
234
|
+
*
|
|
235
|
+
* @param toolName - The tool name to match
|
|
236
|
+
* @param patterns - Compiled pattern sets
|
|
237
|
+
* @returns Match result with category, confidence, and ambiguity flag
|
|
238
|
+
*/
|
|
239
|
+
export function matchToolPattern(toolName, patterns) {
|
|
240
|
+
const lowerName = toolName.toLowerCase();
|
|
241
|
+
// Check ambiguous patterns FIRST (highest priority for this feature)
|
|
242
|
+
for (const pattern of patterns.ambiguous) {
|
|
243
|
+
if (pattern.test(lowerName)) {
|
|
244
|
+
return {
|
|
245
|
+
category: "ambiguous",
|
|
246
|
+
pattern: pattern.source,
|
|
247
|
+
confidence: "low",
|
|
248
|
+
isAmbiguous: true,
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
// Check destructive patterns (high confidence)
|
|
253
|
+
for (const pattern of patterns.destructive) {
|
|
254
|
+
if (pattern.test(lowerName)) {
|
|
255
|
+
return {
|
|
256
|
+
category: "destructive",
|
|
257
|
+
pattern: pattern.source,
|
|
258
|
+
confidence: "high",
|
|
259
|
+
isAmbiguous: false,
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
// Check read-only patterns (high confidence)
|
|
264
|
+
for (const pattern of patterns.readOnly) {
|
|
265
|
+
if (pattern.test(lowerName)) {
|
|
266
|
+
return {
|
|
267
|
+
category: "readOnly",
|
|
268
|
+
pattern: pattern.source,
|
|
269
|
+
confidence: "high",
|
|
270
|
+
isAmbiguous: false,
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
// Check write patterns (medium confidence)
|
|
275
|
+
for (const pattern of patterns.write) {
|
|
276
|
+
if (pattern.test(lowerName)) {
|
|
277
|
+
return {
|
|
278
|
+
category: "write",
|
|
279
|
+
pattern: pattern.source,
|
|
280
|
+
confidence: "medium",
|
|
281
|
+
isAmbiguous: false,
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
// No pattern match
|
|
286
|
+
return {
|
|
287
|
+
category: "unknown",
|
|
288
|
+
pattern: null,
|
|
289
|
+
confidence: "low",
|
|
290
|
+
isAmbiguous: true,
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Singleton instance of compiled default patterns for performance.
|
|
295
|
+
*/
|
|
296
|
+
let defaultCompiledPatterns = null;
|
|
297
|
+
/**
|
|
298
|
+
* Get compiled default patterns (cached for performance).
|
|
299
|
+
*/
|
|
300
|
+
export function getDefaultCompiledPatterns() {
|
|
301
|
+
if (!defaultCompiledPatterns) {
|
|
302
|
+
defaultCompiledPatterns = compilePatterns(DEFAULT_ANNOTATION_PATTERNS);
|
|
303
|
+
}
|
|
304
|
+
return defaultCompiledPatterns;
|
|
305
|
+
}
|
|
@@ -12,8 +12,9 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { BaseAssessor } from "./BaseAssessor.js";
|
|
14
14
|
import { AssessmentContext } from "../AssessmentOrchestrator.js";
|
|
15
|
-
import type { ToolAnnotationAssessment, ToolAnnotationResult } from "../../../lib/assessmentTypes.js";
|
|
15
|
+
import type { ToolAnnotationAssessment, ToolAnnotationResult, AssessmentConfiguration } from "../../../lib/assessmentTypes.js";
|
|
16
16
|
import type { ClaudeCodeBridge } from "../lib/claudeCodeBridge.js";
|
|
17
|
+
import { type CompiledPatterns } from "../config/annotationPatterns.js";
|
|
17
18
|
/**
|
|
18
19
|
* Enhanced tool annotation result with Claude inference
|
|
19
20
|
*/
|
|
@@ -43,6 +44,12 @@ export interface EnhancedToolAnnotationAssessment extends ToolAnnotationAssessme
|
|
|
43
44
|
}
|
|
44
45
|
export declare class ToolAnnotationAssessor extends BaseAssessor {
|
|
45
46
|
private claudeBridge?;
|
|
47
|
+
private compiledPatterns;
|
|
48
|
+
constructor(config: AssessmentConfiguration);
|
|
49
|
+
/**
|
|
50
|
+
* Set custom compiled patterns for behavior inference
|
|
51
|
+
*/
|
|
52
|
+
setPatterns(patterns: CompiledPatterns): void;
|
|
46
53
|
/**
|
|
47
54
|
* Set Claude Code Bridge for enhanced behavior inference
|
|
48
55
|
*/
|
|
@@ -69,6 +76,7 @@ export declare class ToolAnnotationAssessor extends BaseAssessor {
|
|
|
69
76
|
private generateEnhancedRecommendations;
|
|
70
77
|
/**
|
|
71
78
|
* Assess a single tool's annotations
|
|
79
|
+
* Now includes alignment status with confidence-aware logic
|
|
72
80
|
*/
|
|
73
81
|
private assessTool;
|
|
74
82
|
/**
|
|
@@ -82,12 +90,18 @@ export declare class ToolAnnotationAssessor extends BaseAssessor {
|
|
|
82
90
|
private extractToolParams;
|
|
83
91
|
/**
|
|
84
92
|
* Infer expected behavior from tool name and description
|
|
93
|
+
* Now returns confidence level and ambiguity flag for better handling
|
|
85
94
|
*/
|
|
86
95
|
private inferBehavior;
|
|
87
96
|
/**
|
|
88
|
-
* Determine overall status
|
|
97
|
+
* Determine overall status using alignment status.
|
|
98
|
+
* Only MISALIGNED counts as failure; REVIEW_RECOMMENDED does not fail.
|
|
89
99
|
*/
|
|
90
100
|
private determineAnnotationStatus;
|
|
101
|
+
/**
|
|
102
|
+
* Calculate metrics and alignment breakdown for the assessment
|
|
103
|
+
*/
|
|
104
|
+
private calculateMetrics;
|
|
91
105
|
/**
|
|
92
106
|
* Generate explanation
|
|
93
107
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolAnnotationAssessor.d.ts","sourceRoot":"","sources":["../../../../src/services/assessment/modules/ToolAnnotationAssessor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EACV,wBAAwB,EACxB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"ToolAnnotationAssessor.d.ts","sourceRoot":"","sources":["../../../../src/services/assessment/modules/ToolAnnotationAssessor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EACV,wBAAwB,EACxB,oBAAoB,EAKpB,uBAAuB,EACxB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,KAAK,gBAAgB,EAGtB,MAAM,8BAA8B,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,4BAA6B,SAAQ,oBAAoB;IACxE,eAAe,CAAC,EAAE;QAChB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,mBAAmB,EAAE,OAAO,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,oBAAoB,EAAE;YACpB,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,eAAe,CAAC,EAAE,OAAO,CAAC;YAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;SAC1B,CAAC;QACF,oBAAoB,EAAE,OAAO,CAAC;QAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,MAAM,EAAE,iBAAiB,GAAG,eAAe,CAAC;KAC7C,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,gCAAiC,SAAQ,wBAAwB;IAChF,WAAW,EAAE,4BAA4B,EAAE,CAAC;IAC5C,cAAc,EAAE,OAAO,CAAC;IACxB,2BAA2B,EAAE,4BAA4B,EAAE,CAAC;CAC7D;AAKD,qBAAa,sBAAuB,SAAQ,YAAY;IACtD,OAAO,CAAC,YAAY,CAAC,CAAmB;IACxC,OAAO,CAAC,gBAAgB,CAAmB;gBAE/B,MAAM,EAAE,uBAAuB;IAM3C;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAK7C;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAK/C;;OAEG;IACH,eAAe,IAAI,OAAO;IAO1B;;OAEG;IACG,MAAM,CACV,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,wBAAwB,GAAG,gCAAgC,CAAC;IAqPvE;;OAEG;YACW,0BAA0B;IA+IxC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAiCnC;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAoFvC;;;OAGG;IACH,OAAO,CAAC,UAAU;IA8GlB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAyC1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAgGrB;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAkDjC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAiDxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAmC3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;CA2ChC"}
|
|
@@ -11,75 +11,24 @@
|
|
|
11
11
|
* Reference: Anthropic MCP Directory Policy #17
|
|
12
12
|
*/
|
|
13
13
|
import { BaseAssessor } from "./BaseAssessor.js";
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const READ_ONLY_PATTERNS = [
|
|
18
|
-
/^get[_-]?/i,
|
|
19
|
-
/^list[_-]?/i,
|
|
20
|
-
/^fetch[_-]?/i,
|
|
21
|
-
/^read[_-]?/i,
|
|
22
|
-
/^query[_-]?/i,
|
|
23
|
-
/^search[_-]?/i,
|
|
24
|
-
/^find[_-]?/i,
|
|
25
|
-
/^show[_-]?/i,
|
|
26
|
-
/^view[_-]?/i,
|
|
27
|
-
/^describe[_-]?/i,
|
|
28
|
-
/^check[_-]?/i,
|
|
29
|
-
/^verify[_-]?/i,
|
|
30
|
-
/^validate[_-]?/i,
|
|
31
|
-
/^count[_-]?/i,
|
|
32
|
-
/^status[_-]?/i,
|
|
33
|
-
/^info[_-]?/i,
|
|
34
|
-
/^lookup[_-]?/i,
|
|
35
|
-
/^browse[_-]?/i,
|
|
36
|
-
/^preview[_-]?/i,
|
|
37
|
-
/^download[_-]?/i, // Downloads but doesn't modify server state
|
|
38
|
-
];
|
|
39
|
-
const DESTRUCTIVE_PATTERNS = [
|
|
40
|
-
/^delete[_-]?/i,
|
|
41
|
-
/^remove[_-]?/i,
|
|
42
|
-
/^destroy[_-]?/i,
|
|
43
|
-
/^drop[_-]?/i,
|
|
44
|
-
/^purge[_-]?/i,
|
|
45
|
-
/^clear[_-]?/i,
|
|
46
|
-
/^wipe[_-]?/i,
|
|
47
|
-
/^erase[_-]?/i,
|
|
48
|
-
/^reset[_-]?/i,
|
|
49
|
-
/^truncate[_-]?/i,
|
|
50
|
-
/^revoke[_-]?/i,
|
|
51
|
-
/^terminate[_-]?/i,
|
|
52
|
-
/^cancel[_-]?/i,
|
|
53
|
-
/^kill[_-]?/i,
|
|
54
|
-
/^force[_-]?/i,
|
|
55
|
-
];
|
|
56
|
-
const WRITE_PATTERNS = [
|
|
57
|
-
/^create[_-]?/i,
|
|
58
|
-
/^add[_-]?/i,
|
|
59
|
-
/^insert[_-]?/i,
|
|
60
|
-
/^update[_-]?/i,
|
|
61
|
-
/^modify[_-]?/i,
|
|
62
|
-
/^edit[_-]?/i,
|
|
63
|
-
/^change[_-]?/i,
|
|
64
|
-
/^set[_-]?/i,
|
|
65
|
-
/^put[_-]?/i,
|
|
66
|
-
/^patch[_-]?/i,
|
|
67
|
-
/^post[_-]?/i,
|
|
68
|
-
/^write[_-]?/i,
|
|
69
|
-
/^save[_-]?/i,
|
|
70
|
-
/^upload[_-]?/i,
|
|
71
|
-
/^send[_-]?/i,
|
|
72
|
-
/^submit[_-]?/i,
|
|
73
|
-
/^publish[_-]?/i,
|
|
74
|
-
/^enable[_-]?/i,
|
|
75
|
-
/^disable[_-]?/i,
|
|
76
|
-
/^start[_-]?/i,
|
|
77
|
-
/^stop[_-]?/i,
|
|
78
|
-
/^run[_-]?/i,
|
|
79
|
-
/^execute[_-]?/i,
|
|
80
|
-
];
|
|
14
|
+
import { getDefaultCompiledPatterns, matchToolPattern, } from "../config/annotationPatterns.js";
|
|
15
|
+
// NOTE: Pattern arrays moved to config/annotationPatterns.ts for configurability
|
|
16
|
+
// The patterns are now loaded from getDefaultCompiledPatterns() or custom config
|
|
81
17
|
export class ToolAnnotationAssessor extends BaseAssessor {
|
|
82
18
|
claudeBridge;
|
|
19
|
+
compiledPatterns;
|
|
20
|
+
constructor(config) {
|
|
21
|
+
super(config);
|
|
22
|
+
// Initialize with default patterns (can be overridden via setPatterns)
|
|
23
|
+
this.compiledPatterns = getDefaultCompiledPatterns();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Set custom compiled patterns for behavior inference
|
|
27
|
+
*/
|
|
28
|
+
setPatterns(patterns) {
|
|
29
|
+
this.compiledPatterns = patterns;
|
|
30
|
+
this.log("Custom annotation patterns configured");
|
|
31
|
+
}
|
|
83
32
|
/**
|
|
84
33
|
* Set Claude Code Bridge for enhanced behavior inference
|
|
85
34
|
*/
|
|
@@ -174,51 +123,92 @@ export class ToolAnnotationAssessor extends BaseAssessor {
|
|
|
174
123
|
});
|
|
175
124
|
}
|
|
176
125
|
}
|
|
177
|
-
// Emit
|
|
126
|
+
// Emit appropriate event based on alignment status
|
|
178
127
|
if (context.onProgress && latestResult.inferredBehavior) {
|
|
179
128
|
const annotations = latestResult.annotations;
|
|
180
129
|
const inferred = latestResult.inferredBehavior;
|
|
181
130
|
const confidence = latestResult.claudeInference?.confidence ?? 50;
|
|
182
131
|
const toolParams = this.extractToolParams(tool.inputSchema);
|
|
183
132
|
const toolAnnotations = this.extractAnnotations(tool);
|
|
184
|
-
|
|
133
|
+
const alignmentStatus = latestResult.alignmentStatus;
|
|
134
|
+
// Check readOnlyHint mismatch
|
|
185
135
|
if (annotations?.readOnlyHint !== undefined &&
|
|
186
136
|
annotations.readOnlyHint !== inferred.expectedReadOnly) {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
137
|
+
if (alignmentStatus === "REVIEW_RECOMMENDED") {
|
|
138
|
+
// Emit review_recommended for ambiguous cases
|
|
139
|
+
context.onProgress({
|
|
140
|
+
type: "annotation_review_recommended",
|
|
141
|
+
tool: tool.name,
|
|
142
|
+
title: toolAnnotations.title,
|
|
143
|
+
description: tool.description,
|
|
144
|
+
parameters: toolParams,
|
|
145
|
+
field: "readOnlyHint",
|
|
146
|
+
actual: annotations.readOnlyHint,
|
|
147
|
+
inferred: inferred.expectedReadOnly,
|
|
148
|
+
confidence: inferred.confidence,
|
|
149
|
+
isAmbiguous: inferred.isAmbiguous,
|
|
150
|
+
reason: inferred.reason,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
// Emit misaligned for high-confidence mismatches
|
|
155
|
+
context.onProgress({
|
|
156
|
+
type: "annotation_misaligned",
|
|
157
|
+
tool: tool.name,
|
|
158
|
+
title: toolAnnotations.title,
|
|
159
|
+
description: tool.description,
|
|
160
|
+
parameters: toolParams,
|
|
161
|
+
field: "readOnlyHint",
|
|
162
|
+
actual: annotations.readOnlyHint,
|
|
163
|
+
expected: inferred.expectedReadOnly,
|
|
164
|
+
confidence,
|
|
165
|
+
reason: `Tool has readOnlyHint=${annotations.readOnlyHint}, but ${inferred.reason}`,
|
|
166
|
+
});
|
|
167
|
+
}
|
|
199
168
|
}
|
|
200
|
-
// Check destructiveHint
|
|
169
|
+
// Check destructiveHint mismatch
|
|
201
170
|
if (annotations?.destructiveHint !== undefined &&
|
|
202
171
|
annotations.destructiveHint !== inferred.expectedDestructive) {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
172
|
+
if (alignmentStatus === "REVIEW_RECOMMENDED") {
|
|
173
|
+
// Emit review_recommended for ambiguous cases
|
|
174
|
+
context.onProgress({
|
|
175
|
+
type: "annotation_review_recommended",
|
|
176
|
+
tool: tool.name,
|
|
177
|
+
title: toolAnnotations.title,
|
|
178
|
+
description: tool.description,
|
|
179
|
+
parameters: toolParams,
|
|
180
|
+
field: "destructiveHint",
|
|
181
|
+
actual: annotations.destructiveHint,
|
|
182
|
+
inferred: inferred.expectedDestructive,
|
|
183
|
+
confidence: inferred.confidence,
|
|
184
|
+
isAmbiguous: inferred.isAmbiguous,
|
|
185
|
+
reason: inferred.reason,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
// Emit misaligned for high-confidence mismatches
|
|
190
|
+
context.onProgress({
|
|
191
|
+
type: "annotation_misaligned",
|
|
192
|
+
tool: tool.name,
|
|
193
|
+
title: toolAnnotations.title,
|
|
194
|
+
description: tool.description,
|
|
195
|
+
parameters: toolParams,
|
|
196
|
+
field: "destructiveHint",
|
|
197
|
+
actual: annotations.destructiveHint,
|
|
198
|
+
expected: inferred.expectedDestructive,
|
|
199
|
+
confidence,
|
|
200
|
+
reason: `Tool has destructiveHint=${annotations.destructiveHint}, but ${inferred.reason}`,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
215
203
|
}
|
|
216
204
|
}
|
|
217
205
|
}
|
|
218
206
|
const status = this.determineAnnotationStatus(toolResults, context.tools.length);
|
|
219
207
|
const explanation = this.generateExplanation(annotatedCount, missingAnnotationsCount, misalignedAnnotationsCount, context.tools.length);
|
|
220
208
|
const recommendations = this.generateRecommendations(toolResults);
|
|
221
|
-
|
|
209
|
+
// Calculate new metrics and alignment breakdown
|
|
210
|
+
const { metrics, alignmentBreakdown } = this.calculateMetrics(toolResults, context.tools.length);
|
|
211
|
+
this.log(`Assessment complete: ${annotatedCount}/${context.tools.length} tools annotated, ${misalignedAnnotationsCount} misaligned, ${alignmentBreakdown.reviewRecommended} need review`);
|
|
222
212
|
// Return enhanced assessment if Claude was used
|
|
223
213
|
if (useClaudeInference) {
|
|
224
214
|
const highConfidenceMisalignments = toolResults.filter((r) => r.claudeInference &&
|
|
@@ -233,6 +223,8 @@ export class ToolAnnotationAssessor extends BaseAssessor {
|
|
|
233
223
|
status,
|
|
234
224
|
explanation: this.generateEnhancedExplanation(annotatedCount, missingAnnotationsCount, highConfidenceMisalignments.length, context.tools.length),
|
|
235
225
|
recommendations: this.generateEnhancedRecommendations(toolResults),
|
|
226
|
+
metrics,
|
|
227
|
+
alignmentBreakdown,
|
|
236
228
|
claudeEnhanced: true,
|
|
237
229
|
highConfidenceMisalignments,
|
|
238
230
|
};
|
|
@@ -245,6 +237,8 @@ export class ToolAnnotationAssessor extends BaseAssessor {
|
|
|
245
237
|
status,
|
|
246
238
|
explanation,
|
|
247
239
|
recommendations,
|
|
240
|
+
metrics,
|
|
241
|
+
alignmentBreakdown,
|
|
248
242
|
};
|
|
249
243
|
}
|
|
250
244
|
/**
|
|
@@ -433,6 +427,7 @@ export class ToolAnnotationAssessor extends BaseAssessor {
|
|
|
433
427
|
}
|
|
434
428
|
/**
|
|
435
429
|
* Assess a single tool's annotations
|
|
430
|
+
* Now includes alignment status with confidence-aware logic
|
|
436
431
|
*/
|
|
437
432
|
assessTool(tool) {
|
|
438
433
|
const issues = [];
|
|
@@ -443,35 +438,65 @@ export class ToolAnnotationAssessor extends BaseAssessor {
|
|
|
443
438
|
annotations.destructiveHint !== undefined;
|
|
444
439
|
// Infer expected behavior from tool name
|
|
445
440
|
const inferredBehavior = this.inferBehavior(tool.name, tool.description);
|
|
441
|
+
// Determine alignment status
|
|
442
|
+
let alignmentStatus = "ALIGNED";
|
|
446
443
|
// Check for missing annotations
|
|
447
444
|
if (!hasAnnotations) {
|
|
448
445
|
issues.push("Missing tool annotations (readOnlyHint, destructiveHint)");
|
|
449
446
|
recommendations.push(`Add annotations to ${tool.name}: readOnlyHint=${inferredBehavior.expectedReadOnly}, destructiveHint=${inferredBehavior.expectedDestructive}`);
|
|
447
|
+
alignmentStatus = "UNKNOWN";
|
|
450
448
|
}
|
|
451
449
|
else {
|
|
452
|
-
// Check for misaligned annotations
|
|
453
|
-
|
|
454
|
-
annotations.readOnlyHint !== inferredBehavior.expectedReadOnly
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
450
|
+
// Check for misaligned annotations with confidence-aware logic
|
|
451
|
+
const readOnlyMismatch = annotations.readOnlyHint !== undefined &&
|
|
452
|
+
annotations.readOnlyHint !== inferredBehavior.expectedReadOnly;
|
|
453
|
+
const destructiveMismatch = annotations.destructiveHint !== undefined &&
|
|
454
|
+
annotations.destructiveHint !== inferredBehavior.expectedDestructive;
|
|
455
|
+
if (readOnlyMismatch || destructiveMismatch) {
|
|
456
|
+
if (inferredBehavior.isAmbiguous ||
|
|
457
|
+
inferredBehavior.confidence === "low") {
|
|
458
|
+
// Ambiguous case: REVIEW_RECOMMENDED, softer language
|
|
459
|
+
alignmentStatus = "REVIEW_RECOMMENDED";
|
|
460
|
+
if (readOnlyMismatch) {
|
|
461
|
+
issues.push(`Review recommended: readOnlyHint=${annotations.readOnlyHint} may or may not match '${tool.name}' behavior (confidence: ${inferredBehavior.confidence})`);
|
|
462
|
+
recommendations.push(`Verify readOnlyHint for ${tool.name}: pattern is ambiguous - manual review recommended`);
|
|
463
|
+
}
|
|
464
|
+
if (destructiveMismatch) {
|
|
465
|
+
issues.push(`Review recommended: destructiveHint=${annotations.destructiveHint} may or may not match '${tool.name}' behavior (confidence: ${inferredBehavior.confidence})`);
|
|
466
|
+
recommendations.push(`Verify destructiveHint for ${tool.name}: pattern is ambiguous - manual review recommended`);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
else {
|
|
470
|
+
// High/medium confidence mismatch: MISALIGNED
|
|
471
|
+
alignmentStatus = "MISALIGNED";
|
|
472
|
+
if (readOnlyMismatch) {
|
|
473
|
+
issues.push(`Potentially misaligned readOnlyHint: set to ${annotations.readOnlyHint}, expected ${inferredBehavior.expectedReadOnly} based on tool name pattern`);
|
|
474
|
+
recommendations.push(`Verify readOnlyHint for ${tool.name}: currently ${annotations.readOnlyHint}, tool name suggests ${inferredBehavior.expectedReadOnly}`);
|
|
475
|
+
}
|
|
476
|
+
if (destructiveMismatch) {
|
|
477
|
+
issues.push(`Potentially misaligned destructiveHint: set to ${annotations.destructiveHint}, expected ${inferredBehavior.expectedDestructive} based on tool name pattern`);
|
|
478
|
+
recommendations.push(`Verify destructiveHint for ${tool.name}: currently ${annotations.destructiveHint}, tool name suggests ${inferredBehavior.expectedDestructive}`);
|
|
479
|
+
}
|
|
480
|
+
}
|
|
462
481
|
}
|
|
463
482
|
}
|
|
464
|
-
// Check for destructive tools without explicit hint
|
|
483
|
+
// Check for destructive tools without explicit hint (only for high-confidence patterns)
|
|
465
484
|
if (inferredBehavior.expectedDestructive &&
|
|
485
|
+
inferredBehavior.confidence !== "low" &&
|
|
466
486
|
annotations.destructiveHint !== true) {
|
|
467
487
|
issues.push("Tool appears destructive but destructiveHint is not set to true");
|
|
468
488
|
recommendations.push(`Set destructiveHint=true for ${tool.name} - this tool appears to perform destructive operations`);
|
|
489
|
+
// Only upgrade to MISALIGNED if we have high confidence
|
|
490
|
+
if (inferredBehavior.confidence === "high") {
|
|
491
|
+
alignmentStatus = "MISALIGNED";
|
|
492
|
+
}
|
|
469
493
|
}
|
|
470
494
|
return {
|
|
471
495
|
toolName: tool.name,
|
|
472
496
|
hasAnnotations,
|
|
473
497
|
annotations: hasAnnotations ? annotations : undefined,
|
|
474
498
|
inferredBehavior,
|
|
499
|
+
alignmentStatus,
|
|
475
500
|
issues,
|
|
476
501
|
recommendations,
|
|
477
502
|
};
|
|
@@ -534,46 +559,60 @@ export class ToolAnnotationAssessor extends BaseAssessor {
|
|
|
534
559
|
}
|
|
535
560
|
/**
|
|
536
561
|
* Infer expected behavior from tool name and description
|
|
562
|
+
* Now returns confidence level and ambiguity flag for better handling
|
|
537
563
|
*/
|
|
538
564
|
inferBehavior(toolName, description) {
|
|
539
|
-
const lowerName = toolName.toLowerCase();
|
|
540
565
|
const lowerDesc = (description || "").toLowerCase();
|
|
541
|
-
//
|
|
542
|
-
|
|
543
|
-
|
|
566
|
+
// Use the configurable pattern matching system
|
|
567
|
+
const patternMatch = matchToolPattern(toolName, this.compiledPatterns);
|
|
568
|
+
// Handle pattern match results
|
|
569
|
+
switch (patternMatch.category) {
|
|
570
|
+
case "ambiguous":
|
|
571
|
+
// Ambiguous patterns - don't make strong assertions
|
|
572
|
+
return {
|
|
573
|
+
expectedReadOnly: false,
|
|
574
|
+
expectedDestructive: false,
|
|
575
|
+
reason: `Tool name matches ambiguous pattern '${patternMatch.pattern}' - behavior varies by implementation context`,
|
|
576
|
+
confidence: "low",
|
|
577
|
+
isAmbiguous: true,
|
|
578
|
+
};
|
|
579
|
+
case "destructive":
|
|
544
580
|
return {
|
|
545
581
|
expectedReadOnly: false,
|
|
546
582
|
expectedDestructive: true,
|
|
547
|
-
reason: `Tool name matches destructive pattern: ${pattern
|
|
583
|
+
reason: `Tool name matches destructive pattern: ${patternMatch.pattern}`,
|
|
584
|
+
confidence: "high",
|
|
585
|
+
isAmbiguous: false,
|
|
548
586
|
};
|
|
549
|
-
|
|
550
|
-
}
|
|
551
|
-
// Check for read-only patterns
|
|
552
|
-
for (const pattern of READ_ONLY_PATTERNS) {
|
|
553
|
-
if (pattern.test(lowerName)) {
|
|
587
|
+
case "readOnly":
|
|
554
588
|
return {
|
|
555
589
|
expectedReadOnly: true,
|
|
556
590
|
expectedDestructive: false,
|
|
557
|
-
reason: `Tool name matches read-only pattern: ${pattern
|
|
591
|
+
reason: `Tool name matches read-only pattern: ${patternMatch.pattern}`,
|
|
592
|
+
confidence: "high",
|
|
593
|
+
isAmbiguous: false,
|
|
558
594
|
};
|
|
559
|
-
|
|
560
|
-
}
|
|
561
|
-
// Check for write patterns (not destructive but not read-only)
|
|
562
|
-
for (const pattern of WRITE_PATTERNS) {
|
|
563
|
-
if (pattern.test(lowerName)) {
|
|
595
|
+
case "write":
|
|
564
596
|
return {
|
|
565
597
|
expectedReadOnly: false,
|
|
566
598
|
expectedDestructive: false,
|
|
567
|
-
reason: `Tool name matches write pattern: ${pattern
|
|
599
|
+
reason: `Tool name matches write pattern: ${patternMatch.pattern}`,
|
|
600
|
+
confidence: "medium",
|
|
601
|
+
isAmbiguous: false,
|
|
568
602
|
};
|
|
569
|
-
|
|
603
|
+
case "unknown":
|
|
604
|
+
default:
|
|
605
|
+
// Fall through to description-based analysis
|
|
606
|
+
break;
|
|
570
607
|
}
|
|
571
|
-
// Check description for hints
|
|
608
|
+
// Check description for hints (medium confidence)
|
|
572
609
|
if (lowerDesc.includes("delete") || lowerDesc.includes("remove")) {
|
|
573
610
|
return {
|
|
574
611
|
expectedReadOnly: false,
|
|
575
612
|
expectedDestructive: true,
|
|
576
613
|
reason: "Description mentions delete/remove operations",
|
|
614
|
+
confidence: "medium",
|
|
615
|
+
isAmbiguous: false,
|
|
577
616
|
};
|
|
578
617
|
}
|
|
579
618
|
if (lowerDesc.includes("read") ||
|
|
@@ -583,30 +622,43 @@ export class ToolAnnotationAssessor extends BaseAssessor {
|
|
|
583
622
|
expectedReadOnly: true,
|
|
584
623
|
expectedDestructive: false,
|
|
585
624
|
reason: "Description suggests read-only operation",
|
|
625
|
+
confidence: "medium",
|
|
626
|
+
isAmbiguous: false,
|
|
586
627
|
};
|
|
587
628
|
}
|
|
588
|
-
// Default: assume write
|
|
629
|
+
// Default: assume write with low confidence (ambiguous)
|
|
589
630
|
return {
|
|
590
631
|
expectedReadOnly: false,
|
|
591
632
|
expectedDestructive: false,
|
|
592
633
|
reason: "Could not infer from name pattern - defaulting to write operation",
|
|
634
|
+
confidence: "low",
|
|
635
|
+
isAmbiguous: true,
|
|
593
636
|
};
|
|
594
637
|
}
|
|
595
638
|
/**
|
|
596
|
-
* Determine overall status
|
|
639
|
+
* Determine overall status using alignment status.
|
|
640
|
+
* Only MISALIGNED counts as failure; REVIEW_RECOMMENDED does not fail.
|
|
597
641
|
*/
|
|
598
642
|
determineAnnotationStatus(results, totalTools) {
|
|
599
643
|
if (totalTools === 0)
|
|
600
644
|
return "PASS";
|
|
601
645
|
const annotatedCount = results.filter((r) => r.hasAnnotations).length;
|
|
602
|
-
|
|
603
|
-
const
|
|
604
|
-
//
|
|
646
|
+
// Only count actual MISALIGNED, not REVIEW_RECOMMENDED
|
|
647
|
+
const misalignedCount = results.filter((r) => r.alignmentStatus === "MISALIGNED").length;
|
|
648
|
+
// Count high-confidence destructive tools without proper hints
|
|
649
|
+
const destructiveWithoutHint = results.filter((r) => r.inferredBehavior?.expectedDestructive === true &&
|
|
650
|
+
r.inferredBehavior?.confidence === "high" &&
|
|
651
|
+
r.annotations?.destructiveHint !== true).length;
|
|
652
|
+
// Destructive tools without proper hints = FAIL (critical safety issue)
|
|
605
653
|
if (destructiveWithoutHint > 0) {
|
|
606
654
|
return "FAIL";
|
|
607
655
|
}
|
|
608
|
-
//
|
|
609
|
-
if (
|
|
656
|
+
// High-confidence misalignments = FAIL
|
|
657
|
+
if (misalignedCount > 0) {
|
|
658
|
+
return "FAIL";
|
|
659
|
+
}
|
|
660
|
+
// All tools annotated = PASS
|
|
661
|
+
if (annotatedCount === totalTools) {
|
|
610
662
|
return "PASS";
|
|
611
663
|
}
|
|
612
664
|
// Some annotations missing = NEED_MORE_INFO
|
|
@@ -620,6 +672,34 @@ export class ToolAnnotationAssessor extends BaseAssessor {
|
|
|
620
672
|
}
|
|
621
673
|
return "NEED_MORE_INFO";
|
|
622
674
|
}
|
|
675
|
+
/**
|
|
676
|
+
* Calculate metrics and alignment breakdown for the assessment
|
|
677
|
+
*/
|
|
678
|
+
calculateMetrics(results, totalTools) {
|
|
679
|
+
const alignmentBreakdown = {
|
|
680
|
+
aligned: results.filter((r) => r.alignmentStatus === "ALIGNED").length,
|
|
681
|
+
misaligned: results.filter((r) => r.alignmentStatus === "MISALIGNED")
|
|
682
|
+
.length,
|
|
683
|
+
reviewRecommended: results.filter((r) => r.alignmentStatus === "REVIEW_RECOMMENDED").length,
|
|
684
|
+
unknown: results.filter((r) => r.alignmentStatus === "UNKNOWN").length,
|
|
685
|
+
};
|
|
686
|
+
const annotatedCount = results.filter((r) => r.hasAnnotations).length;
|
|
687
|
+
const metrics = {
|
|
688
|
+
// Coverage: percentage of tools with annotations
|
|
689
|
+
coverage: totalTools > 0 ? (annotatedCount / totalTools) * 100 : 100,
|
|
690
|
+
// Consistency: percentage without contradictions (not MISALIGNED)
|
|
691
|
+
consistency: totalTools > 0
|
|
692
|
+
? ((totalTools - alignmentBreakdown.misaligned) / totalTools) * 100
|
|
693
|
+
: 100,
|
|
694
|
+
// Correctness: percentage of annotated tools that are ALIGNED
|
|
695
|
+
correctness: annotatedCount > 0
|
|
696
|
+
? (alignmentBreakdown.aligned / annotatedCount) * 100
|
|
697
|
+
: 0,
|
|
698
|
+
// Review required: count of tools needing manual review
|
|
699
|
+
reviewRequired: alignmentBreakdown.reviewRecommended,
|
|
700
|
+
};
|
|
701
|
+
return { metrics, alignmentBreakdown };
|
|
702
|
+
}
|
|
623
703
|
/**
|
|
624
704
|
* Generate explanation
|
|
625
705
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bryan-thompson/inspector-assessment-client",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.0",
|
|
4
4
|
"description": "Client-side application for the Enhanced MCP Inspector with assessment capabilities",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Bryan Thompson <bryan@triepod.ai>",
|