/** * L1 Input Sanitizer (v2) * * Detects prompt injection patterns and PAP (Persuasive Adversarial Prompts) in user input. * First line of defense against manipulation attempts. * * Enhanced Features (v2): * - 40 Persuasion technique detection (PAP attacks) * - Psychological manipulation detection * - Authority/scarcity/urgency exploitation detection * - Emotional manipulation detection * - Multi-technique attack detection */ import { SanitizerResult, GuardLogger } from "../types"; interface InjectionPattern { pattern: RegExp; weight: number; name: string; } type PersuasionCategory = "authority" | "scarcity" | "social_proof" | "reciprocity" | "commitment" | "liking" | "fear" | "logical_appeal" | "evidence" | "emotional"; export interface InputSanitizerConfig { threshold?: number; customPatterns?: InjectionPattern[]; logMatches?: boolean; logger?: GuardLogger; /** Enable PAP (Persuasive Adversarial Prompts) detection */ detectPAP?: boolean; /** PAP detection threshold (0-1, default 0.4) */ papThreshold?: number; /** Minimum number of different persuasion techniques to trigger alert */ minPersuasionTechniques?: number; /** Block if multiple persuasion categories used (compound attack) */ blockCompoundPersuasion?: boolean; } /** Extended result type for PAP-aware sanitization */ export interface PAPSanitizerResult extends SanitizerResult { pap?: { detected: boolean; techniques: string[]; categories: PersuasionCategory[]; compoundAttack: boolean; persuasionScore: number; }; } export declare class InputSanitizer { private patterns; private threshold; private logMatches; private detectPAP; private papThreshold; private minPersuasionTechniques; private blockCompoundPersuasion; private logger; constructor(config?: InputSanitizerConfig); /** * Sanitize input and detect injection patterns (including PAP) */ sanitize(input: string, requestId?: string): PAPSanitizerResult; /** * Detect persuasion techniques (PAP attacks) */ private detectPersuasionTechniques; /** * Basic input sanitization */ private buildInputVariants; private basicSanitize; /** * Add custom pattern at runtime */ addPattern(pattern: RegExp, weight: number, name: string): void; /** * Set threshold */ setThreshold(threshold: number): void; /** * Set PAP detection threshold */ setPAPThreshold(threshold: number): void; /** * Enable/disable PAP detection */ setPAPDetection(enabled: boolean): void; /** * Get PAP statistics for monitoring */ static getPAPCategories(): PersuasionCategory[]; } export {};