UNPKG

@re-shell/cli

Version:

Full-stack development platform uniting microservices and microfrontends. Build complete applications with .NET (ASP.NET Core Web API, Minimal API), Java (Spring Boot, Quarkus, Micronaut, Vert.x), Rust (Actix-Web, Warp, Rocket, Axum), Python (FastAPI, Dja

128 lines (127 loc) 3.4 kB
import { EventEmitter } from 'events'; export interface HealthCheck { id: string; name: string; category: HealthCategory; description: string; severity: HealthSeverity; check: () => Promise<HealthResult>; repair?: () => Promise<RepairResult>; dependencies?: string[]; timeout: number; enabled: boolean; } export declare enum HealthCategory { SYSTEM = "system", NETWORK = "network", FILESYSTEM = "filesystem", DEPENDENCIES = "dependencies", CONFIGURATION = "configuration", PERFORMANCE = "performance", SECURITY = "security", ENVIRONMENT = "environment" } export declare enum HealthSeverity { INFO = 0, WARNING = 1, ERROR = 2, CRITICAL = 3 } export declare enum HealthStatus { HEALTHY = "healthy", DEGRADED = "degraded", UNHEALTHY = "unhealthy", UNKNOWN = "unknown" } export interface HealthResult { status: HealthStatus; message: string; details?: Record<string, any>; metrics?: Record<string, number>; suggestions?: string[]; timestamp: Date; duration: number; } export interface RepairResult { success: boolean; message: string; actions: string[]; timestamp: Date; duration: number; } export interface DiagnosticReport { id: string; timestamp: Date; overallStatus: HealthStatus; summary: { total: number; healthy: number; degraded: number; unhealthy: number; unknown: number; }; results: Array<{ check: HealthCheck; result: HealthResult; repairAttempted?: boolean; repairResult?: RepairResult; }>; systemInfo: SystemInfo; recommendations: string[]; duration: number; } export interface SystemInfo { platform: string; arch: string; nodeVersion: string; cliVersion: string; workingDirectory: string; homeDirectory: string; memory: { total: number; free: number; used: number; }; cpu: { model: string; cores: number; loadAverage: number[]; }; uptime: number; } export declare class HealthDiagnostics extends EventEmitter { private checks; private lastReport?; private running; constructor(); private registerBuiltinChecks; registerCheck(check: HealthCheck): void; unregisterCheck(id: string): boolean; runDiagnostics(options?: { categories?: HealthCategory[]; includeRepairs?: boolean; timeout?: number; }): Promise<DiagnosticReport>; private runSingleCheck; private runRepair; private sortChecksByDependencies; private calculateOverallStatus; private generateRecommendations; private getSystemInfo; private getCliVersion; private generateReportId; getChecks(): HealthCheck[]; getChecksByCategory(category: HealthCategory): HealthCheck[]; getLastReport(): DiagnosticReport | undefined; isRunning(): boolean; enableCheck(id: string): boolean; disableCheck(id: string): boolean; quickCheck(): Promise<{ status: HealthStatus; message: string; critical: number; }>; } export declare function createHealthDiagnostics(): HealthDiagnostics; export declare function getGlobalHealthDiagnostics(): HealthDiagnostics; export declare function setGlobalHealthDiagnostics(diagnostics: HealthDiagnostics): void;