UNPKG

snow-flow

Version:

Snow-Flow v3.2.0: Complete ServiceNow Enterprise Suite with 180+ MCP Tools. ATF Testing, Knowledge Management, Service Catalog, Change Management with CAB scheduling, Virtual Agent chatbots with NLU, Performance Analytics KPIs, Flow Designer automation, A

315 lines • 9.11 kB
/** * 🤖 Self-Healing System for Autonomous Error Recovery * * Advanced autonomous system that detects, diagnoses, and automatically * recovers from errors without manual intervention, ensuring maximum * system availability and reliability. */ import { ServiceNowClient } from '../utils/servicenow-client.js'; import { MemorySystem } from '../memory/memory-system.js'; export interface HealingProfile { id: string; systemName: string; assessmentDate: string; healthScore: number; incidents: HealthIncident[]; healingActions: HealingAction[]; patterns: ErrorPattern[]; predictions: HealthPrediction[]; recoveryStrategies: RecoveryStrategy[]; systemMetrics: SystemMetrics; recommendations: HealingRecommendation[]; metadata: HealingMetadata; } export interface HealthIncident { id: string; type: 'error' | 'performance' | 'availability' | 'security' | 'data-integrity'; severity: 'critical' | 'high' | 'medium' | 'low'; title: string; description: string; detectedAt: string; status: 'active' | 'healing' | 'resolved' | 'escalated'; rootCause?: RootCause; impact: IncidentImpact; healingAttempts: number; resolvedAt?: string; resolutionMethod?: string; } export interface RootCause { id: string; category: 'code' | 'configuration' | 'resource' | 'external' | 'data' | 'network'; description: string; confidence: number; evidence: string[]; relatedIncidents: string[]; preventable: boolean; } export interface IncidentImpact { users: number; services: string[]; availability: number; performance: number; dataLoss: boolean; financialImpact?: number; duration: number; } export interface HealingAction { id: string; incidentId: string; type: 'restart' | 'rollback' | 'patch' | 'scale' | 'reroute' | 'cleanup' | 'restore'; title: string; description: string; status: 'pending' | 'executing' | 'completed' | 'failed' | 'rolled-back'; automated: boolean; executionSteps: HealingStep[]; startTime?: string; endTime?: string; result?: HealingResult; rollbackPlan?: string; } export interface HealingStep { order: number; action: string; target: string; parameters: Record<string, any>; status: 'pending' | 'executing' | 'completed' | 'failed' | 'skipped'; output?: string; error?: string; duration?: number; } export interface HealingResult { success: boolean; message: string; metricsAfter: { availability: number; performance: number; errorRate: number; }; sideEffects: string[]; verificationPassed: boolean; } export interface ErrorPattern { id: string; name: string; description: string; signature: PatternSignature; occurrences: number; lastSeen: string; avgResolutionTime: number; successRate: number; recommendedActions: string[]; autoHealable: boolean; } export interface PatternSignature { errorTypes: string[]; keywords: string[]; frequency: 'sporadic' | 'recurring' | 'persistent'; timePattern?: string; correlations: string[]; } export interface HealthPrediction { id: string; type: 'failure' | 'degradation' | 'capacity' | 'security'; component: string; probability: number; timeframe: string; impact: 'critical' | 'high' | 'medium' | 'low'; preventiveActions: PreventiveAction[]; confidence: number; basedOn: string[]; } export interface PreventiveAction { action: string; priority: 'immediate' | 'high' | 'medium' | 'low'; estimatedPrevention: number; cost: 'minimal' | 'moderate' | 'significant'; automatable: boolean; } export interface RecoveryStrategy { id: string; name: string; description: string; applicableTo: string[]; steps: RecoveryStep[]; estimatedTime: number; successRate: number; requirements: string[]; risks: string[]; } export interface RecoveryStep { order: number; action: string; automated: boolean; timeout: number; verification: string; fallback?: string; } export interface SystemMetrics { availability: { current: number; target: number; trend: 'improving' | 'stable' | 'degrading'; }; performance: { responseTime: number; throughput: number; errorRate: number; trend: 'improving' | 'stable' | 'degrading'; }; reliability: { mtbf: number; mttr: number; failureRate: number; }; capacity: { cpu: number; memory: number; storage: number; network: number; }; } export interface HealingRecommendation { id: string; category: 'architecture' | 'monitoring' | 'redundancy' | 'automation' | 'capacity'; priority: 'critical' | 'high' | 'medium' | 'low'; title: string; description: string; benefit: string; effort: 'minimal' | 'moderate' | 'significant' | 'major'; preventedIncidents: number; roi: number; } export interface HealingMetadata { monitoringEnabled: boolean; autoHealingEnabled: boolean; learningMode: boolean; retentionDays: number; integrations: string[]; lastFullScan: string; nextScheduledScan: string; } export interface HealingRequest { scope?: 'full' | 'incremental' | 'specific-services'; services?: string[]; autoHeal?: boolean; predictive?: boolean; learning?: boolean; } export interface HealingResponse { success: boolean; profile: HealingProfile; incidentsDetected: number; incidentsHealed: number; predictionsGenerated: number; recommendations: string[]; warnings: string[]; } export declare class SelfHealingSystem { private logger; private client; private memory; private healingProfiles; private activeIncidents; private errorPatterns; private recoveryStrategies; private monitoringActive; private learningEngine; constructor(client: ServiceNowClient, memory: MemorySystem); /** * Perform system health assessment and healing */ performHealthCheck(request?: HealingRequest): Promise<HealingResponse>; /** * Start autonomous self-healing */ startAutonomousHealing(options?: { checkInterval?: number; healingThreshold?: number; maxRetries?: number; preventive?: boolean; }): Promise<void>; /** * Get real-time health dashboard */ getHealthDashboard(): Promise<{ systemHealth: string; healthScore: number; activeIncidents: HealthIncident[]; recentHealing: HealingAction[]; systemMetrics: SystemMetrics; predictions: HealthPrediction[]; recommendations: HealingRecommendation[]; }>; /** * Manually trigger healing action */ executeHealingAction(actionId: string, options?: { verify?: boolean; monitor?: boolean; rollbackOnFailure?: boolean; }): Promise<{ success: boolean; result: HealingResult; duration: number; }>; /** * Private helper methods */ private initializeRecoveryStrategies; private detectHealthIncidents; private analyzeRootCause; private identifyErrorPatterns; private generateHealthPredictions; private createHealingActions; private executeAutoHealing; private executeHealingSteps; private generateRecoveryStrategies; private collectSystemMetrics; private generateHealingRecommendations; private calculateHealthScore; private handleCriticalIncidents; private executePreventiveActions; private healSelf; private startHealthMonitoring; private checkSystemHealth; private getLatestHealingProfile; private generateDashboard; private generateWarnings; private checkErrorLogs; private checkPerformanceMetrics; private checkAvailability; private determineSeverity; private getRelatedLogs; private getSystemStateAt; private categorizeRootCause; private calculateConfidence; private generateRootCauseDescription; private findRelatedIncidents; private groupIncidentsBySimilarity; private generatePatternName; private generatePatternDescription; private extractKeywords; private determineFrequency; private findCorrelations; private calculateAvgResolutionTime; private calculateSuccessRate; private getRecommendedActions; private isAutoHealable; private analyzeTrends; private predictCapacityIssues; private predictNextOccurrence; private findBestStrategy; private determineActionType; private captureMetrics; private stopService; private clearTempData; private startService; private generateCustomSteps; private getHealingAction; private verifyHealingSafety; private monitorHealingProgress; private rollbackHealing; private executePreventiveAction; } export default SelfHealingSystem; //# sourceMappingURL=self-healing-system.d.ts.map