export interface Message { role: 'user' | 'assistant' | 'system'; content: string; timestamp: number; riskScore: number; } export interface ConversationState { sessionId: string; history: Message[]; trustScore: number; createdAt: number; lastUpdatedAt: number; } export interface EscalationScore { score: number; trend: 'increasing' | 'stable' | 'decreasing'; signals: string[]; } export interface ConversationTrackerConfig { maxHistoryLength?: number; sessionTTL?: number; maxSessions?: number; } /** * Tracks conversation state across multiple turns to detect gradual jailbreak attempts */ export declare class ConversationTracker { private sessions; private config; constructor(config?: ConversationTrackerConfig); /** * Add a message to the conversation history */ addMessage(sessionId: string, role: 'user' | 'assistant' | 'system', content: string, riskScore: number): void; /** * Analyze escalation patterns in the conversation * Detects gradual jailbreak: safe → edge → unsafe */ analyzeEscalation(sessionId: string): EscalationScore; /** * Detect context injection attempts * Looks for: role override, contradictions, gaslighting */ detectContextInjection(sessionId: string): { detected: boolean; signals: string[]; }; /** * Get conversation state for a session */ getSession(sessionId: string): ConversationState | undefined; /** * Get current trust score for a session */ getTrustScore(sessionId: string): number; /** * Delete a session */ deleteSession(sessionId: string): void; /** * Clean up expired sessions based on TTL */ cleanup(): number; /** * Clean up old sessions if exceeding max count */ private cleanupOldSessions; /** * Get statistics about tracked sessions */ getStats(): { sessionCount: number; totalMessages: number; avgTrustScore: number; }; /** * Clear all sessions (useful for testing) */ clearAll(): void; } export declare const globalConversationTracker: ConversationTracker;