UNPKG

@layr-labs/hourglass-performer

Version:

TypeScript SDK for building Hourglass AVS performers

146 lines 3.59 kB
import { PerformerStatus } from '../types/performer'; import { ILogger } from '../utils/logger'; /** * Health check configuration */ export interface HealthCheckConfig { /** Interval for automatic health checks in milliseconds */ checkInterval?: number; /** Maximum number of consecutive failures before marking unhealthy */ maxFailures?: number; /** Timeout for health check operations in milliseconds */ timeout?: number; /** Enable automatic recovery attempts */ autoRecover?: boolean; } /** * Health check result */ export interface HealthCheckResult { /** Overall health status */ status: PerformerStatus; /** Health check timestamp */ timestamp: number; /** Detailed health information */ details: { uptime: number; memoryUsage: NodeJS.MemoryUsage; taskCount: number; lastTaskTime?: number; errors: string[]; }; /** Custom health indicators */ custom?: Record<string, any>; } /** * Health check provider interface */ export interface HealthCheckProvider { /** Provider name */ name: string; /** Check health and return status */ check(): Promise<{ healthy: boolean; details?: any; error?: string; }>; } /** * Built-in health check providers */ export declare class MemoryHealthProvider implements HealthCheckProvider { private maxMemoryMB; name: string; constructor(maxMemoryMB?: number); check(): Promise<{ healthy: boolean; details?: any; error?: string; }>; } export declare class UptimeHealthProvider implements HealthCheckProvider { private startTime; name: string; constructor(startTime?: number); check(): Promise<{ healthy: boolean; details?: any; }>; } /** * Health manager for tracking performer health and status */ export declare class HealthManager { private logger; private currentStatus; private config; private providers; private failures; private lastHealthCheck?; private healthCheckInterval?; private startTime; private taskCount; private lastTaskTime?; private errors; private customMetrics; constructor(logger: ILogger, config?: HealthCheckConfig); /** * Start the health manager */ start(): void; /** * Stop the health manager */ stop(): void; /** * Add a custom health check provider */ addProvider(provider: HealthCheckProvider): void; /** * Remove a health check provider */ removeProvider(name: string): void; /** * Get current status */ getStatus(): PerformerStatus; /** * Set status manually */ setStatus(status: PerformerStatus): void; /** * Record a task execution */ recordTask(): void; /** * Record an error */ recordError(error: string): void; /** * Set custom metric */ setCustomMetric(key: string, value: any): void; /** * Get custom metric */ getCustomMetric(key: string): any; /** * Perform comprehensive health check */ performHealthCheck(): Promise<HealthCheckResult>; /** * Get last health check result */ getLastHealthCheck(): HealthCheckResult | undefined; /** * Get health summary for monitoring */ getHealthSummary(): { status: PerformerStatus; uptime: number; taskCount: number; errorCount: number; memoryUsageMB: number; }; } //# sourceMappingURL=healthManager.d.ts.map