UNPKG

codecrucible-synth

Version:

Production-Ready AI Development Platform with Multi-Voice Synthesis, Smithery MCP Integration, Enterprise Security, and Zero-Timeout Reliability

159 lines 4.27 kB
#!/usr/bin/env node /** * Comprehensive Error Handling and Observability System * Provides centralized error handling, tracking, and observability */ import { EventEmitter } from 'events'; export interface ErrorContext { userId?: string; sessionId?: string; operation: string; component: string; timestamp: number; requestId?: string; metadata?: Record<string, any>; } export interface ErrorInfo { id: string; type: ErrorType; severity: ErrorSeverity; message: string; stack?: string; context: ErrorContext; count: number; firstOccurrence: number; lastOccurrence: number; resolution?: string; status: 'active' | 'acknowledged' | 'resolved' | 'ignored'; } export type ErrorType = 'validation' | 'authentication' | 'authorization' | 'network' | 'database' | 'file_system' | 'external_api' | 'configuration' | 'business_logic' | 'system' | 'performance' | 'security' | 'unknown'; export type ErrorSeverity = 'low' | 'medium' | 'high' | 'critical'; export interface ErrorPattern { id: string; pattern: RegExp; type: ErrorType; severity: ErrorSeverity; description: string; recommendation: string; autoFixable: boolean; } export interface AlertRule { id: string; name: string; condition: (error: ErrorInfo) => boolean; severity: ErrorSeverity; enabled: boolean; cooldownMs: number; lastTriggered?: number; actions: AlertAction[]; } export interface AlertAction { type: 'log' | 'email' | 'webhook' | 'restart' | 'circuit_breaker'; config: Record<string, any>; } export interface ObservabilityMetrics { errorRate: number; errorsByType: Record<ErrorType, number>; errorsBySeverity: Record<ErrorSeverity, number>; errorsByComponent: Record<string, number>; meanTimeToResolve: number; circuitBreakerStatus: Record<string, 'open' | 'closed' | 'half_open'>; healthScore: number; } export declare class ErrorHandlingSystem extends EventEmitter { private errors; private errorPatterns; private alertRules; private circuitBreakers; private correlationContext; private isInitialized; /** * Initialize the error handling system */ initialize(): Promise<void>; /** * Handle an error with comprehensive context */ handleError(error: Error | string, context: Partial<ErrorContext>): Promise<string>; /** * Classify error type and severity */ private classifyError; /** * Find existing error by similarity */ private findExistingError; /** * Log error with appropriate level */ private logError; /** * Check and trigger alert rules */ private checkAlertRules; /** * Execute alert actions */ private executeAlertActions; /** * Execute webhook alert action */ private executeWebhookAction; /** * Update circuit breakers based on errors */ private updateCircuitBreakers; /** * Trigger circuit breaker manually */ private triggerCircuitBreaker; /** * Get comprehensive observability metrics */ getMetrics(): ObservabilityMetrics; /** * Load error patterns from configuration */ private loadErrorPatterns; /** * Setup default alert rules */ private setupDefaultAlertRules; /** * Setup default circuit breakers */ private setupDefaultCircuitBreakers; /** * Generate unique error ID */ private generateErrorId; /** * Generate unique request ID for correlation */ private generateRequestId; /** * Resolve an error manually */ resolveError(errorId: string, resolution: string): boolean; /** * Get error details */ getError(errorId: string): ErrorInfo | null; /** * Get correlation context for request */ getCorrelationContext(requestId: string): Record<string, any> | null; /** * Generate error report */ generateReport(): string; /** * Cleanup old errors and correlation data */ cleanup(): void; /** * Dispose of the error handling system */ dispose(): void; } //# sourceMappingURL=error-handling-system.d.ts.map