/** * Alignment Checker Module * Handles tool annotation alignment detection, extraction, and metrics calculation * * Extracted from ToolAnnotationAssessor.ts as part of Issue #105 refactoring. */ import type { Tool } from "@modelcontextprotocol/sdk/types.js"; import type { ToolAnnotationResult, AssessmentStatus, ToolParamProgress, AnnotationSource } from "../../../../lib/assessmentTypes.js"; import type { CompiledPatterns, ServerPersistenceContext } from "../../config/annotationPatterns.js"; import { type PoisoningScanResult } from "./DescriptionPoisoningDetector.js"; import type { StaticAnnotation } from "../../helpers/StaticAnnotationScanner.js"; /** * Extracted annotation structure from a tool */ export interface ExtractedAnnotations { readOnlyHint?: boolean; destructiveHint?: boolean; title?: string; description?: string; idempotentHint?: boolean; openWorldHint?: boolean; source: AnnotationSource; } /** * Alignment metrics result */ export interface AlignmentMetricsResult { metrics: { coverage: number; consistency: number; correctness: number; reviewRequired: number; }; alignmentBreakdown: { aligned: number; misaligned: number; reviewRecommended: number; unknown: number; }; } /** * Enable or disable annotation debug logging (Issue #155) * Called by CLI when --debug-annotations flag is provided */ export declare function setAnnotationDebugMode(enabled: boolean): void; /** * Check if annotation debug mode is enabled */ export declare function isAnnotationDebugEnabled(): boolean; export declare function extractAnnotations(tool: Tool): ExtractedAnnotations; /** * Extract extended metadata from tool (Issue #54) * Extracts rate limits, permissions, return schemas, and bulk operation support */ export declare function extractExtendedMetadata(tool: Tool): ToolAnnotationResult["extendedMetadata"]; /** * Extract parameters from tool input schema */ export declare function extractToolParams(schema: unknown): ToolParamProgress[]; /** * Scan all description fields in tool input schema for poisoning patterns * Issue #119, Challenge #15: Input schema description poisoning detection * * Malicious actors may embed hidden instructions in parameter descriptions * rather than the main tool description to evade detection. */ export declare function scanInputSchemaDescriptions(tool: Tool): PoisoningScanResult; /** * Assess a single tool's annotations * * @param tool - The tool to assess * @param compiledPatterns - Compiled name patterns for behavior inference * @param persistenceContext - Server persistence context * @param staticAnnotations - Optional map of static annotations from source code (Issue #192) */ export declare function assessSingleTool(tool: Tool, compiledPatterns: CompiledPatterns, persistenceContext?: ServerPersistenceContext, staticAnnotations?: Map): ToolAnnotationResult; /** * Determine overall status based on tool results */ export declare function determineAnnotationStatus(results: ToolAnnotationResult[], totalTools: number): AssessmentStatus; /** * Calculate metrics and alignment breakdown */ export declare function calculateMetrics(results: ToolAnnotationResult[], totalTools: number): AlignmentMetricsResult; //# sourceMappingURL=AlignmentChecker.d.ts.map