/** * Tool Classifier Pattern Configuration * * Pre-compiled regex patterns for MCP tool classification. * Extracting patterns to this file provides: * - Single source of truth for patterns, confidence values, and risk levels * - Pre-compiled patterns (created once at module load, not per classify() call) * - Easier maintenance without modifying core classification logic * * @see ToolClassifier.ts for classification logic * @see ToolClassifier.test.ts for pattern behavior validation */ /** * Security risk categories for MCP tools. * * Categories are organized by risk level: * - **HIGH**: Tools that may execute code or access sensitive data * - **MEDIUM**: Tools with potential bypass or supply chain risks * - **LOW**: Safe tools for data retrieval and manipulation */ export declare enum ToolCategory { CALCULATOR = "calculator", SYSTEM_EXEC = "system_exec", CODE_EXECUTOR = "code_executor", DATA_ACCESS = "data_access", TOOL_OVERRIDE = "tool_override", CONFIG_MODIFIER = "config_modifier", URL_FETCHER = "fetcher", UNICODE_PROCESSOR = "unicode", JSON_PARSER = "parser", PACKAGE_INSTALLER = "installer", RUG_PULL = "rug_pull", SAFE_STORAGE = "safe_storage", API_WRAPPER = "api_wrapper", SEARCH_RETRIEVAL = "search_retrieval", CRUD_CREATION = "crud_creation", READ_ONLY_INFO = "read_only_info", DATA_FETCHER = "data_fetcher", GENERIC = "generic" } /** * Risk level for security categorization */ export type RiskLevel = "HIGH" | "MEDIUM" | "LOW"; /** * Configuration for a single tool category */ export interface CategoryConfig { /** Pre-compiled regex patterns for this category */ readonly patterns: readonly RegExp[]; /** Confidence score (0-100) when this category matches */ readonly confidence: number; /** Human-readable reasoning for classification */ readonly reasoning: string; /** Risk level for security prioritization */ readonly risk: RiskLevel; } /** * Complete pattern configuration for all tool categories. * Patterns are pre-compiled as static constants for performance. * * ## Pattern Types * * 1. **Substring patterns** (`/keyword/i`): Match anywhere in text * - Used for HIGH-risk keywords that warrant scrutiny even when embedded * * 2. **Word boundary patterns** (`/\bword\b/i`): Match isolated words only * - Used for common words to prevent false positives * - Note: `\b` treats hyphens as boundaries but underscores as word chars */ export declare const CATEGORY_PATTERNS: Readonly, CategoryConfig>>; /** * Default configuration for GENERIC category (no pattern match) */ export declare const GENERIC_CONFIG: Readonly<{ confidence: number; reasoning: string; risk: RiskLevel; }>; /** * Order in which categories are checked during classification. * This order determines priority when a tool matches multiple categories. */ export declare const CATEGORY_CHECK_ORDER: readonly Exclude[]; //# sourceMappingURL=tool-classifier-patterns.d.ts.map