UNPKG

@ai-capabilities-suite/mcp-debugger-core

Version:

Core debugging engine for Node.js and TypeScript applications. Provides Inspector Protocol integration, breakpoint management, variable inspection, execution control, profiling, hang detection, and source map support.

155 lines (154 loc) 3.81 kB
/** * Session event types for recording */ export declare enum SessionEventType { SESSION_START = "session_start", SESSION_END = "session_end", BREAKPOINT_SET = "breakpoint_set", BREAKPOINT_HIT = "breakpoint_hit", BREAKPOINT_REMOVED = "breakpoint_removed", STEP_OVER = "step_over", STEP_INTO = "step_into", STEP_OUT = "step_out", CONTINUE = "continue", PAUSE = "pause", VARIABLE_INSPECT = "variable_inspect", EXPRESSION_EVALUATE = "expression_evaluate", STACK_TRACE = "stack_trace", ERROR = "error" } /** * Session event for recording */ export interface SessionEvent { type: SessionEventType; timestamp: number; sessionId: string; data?: Record<string, any>; masked?: boolean; } /** * Session recording metadata */ export interface SessionRecordingMetadata { sessionId: string; startTime: number; endTime?: number; duration?: number; eventCount: number; privacyMode: PrivacyMode; } /** * Complete session recording */ export interface SessionRecording { metadata: SessionRecordingMetadata; events: SessionEvent[]; } /** * Privacy mode for session recording */ export declare enum PrivacyMode { FULL = "full",// Record everything MASKED = "masked",// Mask sensitive data MINIMAL = "minimal",// Only record event types and timestamps DISABLED = "disabled" } /** * Storage configuration for recordings */ export interface StorageConfig { maxRecordings: number; maxEventsPerRecording: number; retentionDays: number; } /** * Session recorder for advanced observability * Records debugging session events for replay and analysis */ export declare class SessionRecorder { private recordings; private metadata; private privacyMode; private storageConfig; private sensitivePatterns; constructor(privacyMode?: PrivacyMode, storageConfig?: Partial<StorageConfig>); /** * Start recording a session */ startRecording(sessionId: string): void; /** * Stop recording a session */ stopRecording(sessionId: string): void; /** * Check if data contains sensitive information */ private containsSensitiveData; /** * Mask sensitive data in event data */ private maskSensitiveData; /** * Process event data based on privacy mode */ private processEventData; /** * Record an event */ recordEvent(sessionId: string, type: SessionEventType, data: Record<string, any>): void; /** * Get recording for a session */ getRecording(sessionId: string): SessionRecording | undefined; /** * Get all recordings */ getAllRecordings(): SessionRecording[]; /** * Delete a recording */ deleteRecording(sessionId: string): boolean; /** * Clear old recordings based on retention policy */ pruneOldRecordings(): number; /** * Enforce recording limit */ enforceRecordingLimit(): number; /** * Export recording as JSON */ exportRecording(sessionId: string): string | undefined; /** * Import recording from JSON */ importRecording(json: string): boolean; /** * Get recording statistics */ getStatistics(): { totalRecordings: number; totalEvents: number; oldestRecording?: number; newestRecording?: number; averageEventsPerRecording: number; }; /** * Set privacy mode */ setPrivacyMode(mode: PrivacyMode): void; /** * Get current privacy mode */ getPrivacyMode(): PrivacyMode; /** * Add custom sensitive pattern */ addSensitivePattern(pattern: RegExp): void; /** * Clear all recordings */ clearAllRecordings(): void; }