UNPKG

il2cpp-dump-analyzer-mcp

Version:

Agentic RAG system for analyzing IL2CPP dump.cs files from Unity games

161 lines (160 loc) 3.88 kB
/** * Container lifecycle management for IL2CPP dump analyzer MCP system * Handles startup, shutdown, health monitoring, and restart policies */ import { EventEmitter } from 'events'; import { HealthService } from './health-service.js'; import { MetricsService } from './metrics-service.js'; export interface LifecycleConfig { startupTimeout: number; shutdownTimeout: number; healthCheckInterval: number; restartPolicy: 'never' | 'on-failure' | 'always' | 'unless-stopped'; maxRestarts: number; restartDelay: number; dependencyChecks: boolean; gracefulShutdown: boolean; } export interface LifecycleState { phase: 'starting' | 'running' | 'stopping' | 'stopped' | 'failed'; startTime?: Date; lastRestart?: Date; restartCount: number; isHealthy: boolean; dependencies: DependencyStatus[]; } export interface DependencyStatus { name: string; status: 'healthy' | 'unhealthy' | 'unknown'; lastCheck: Date; required: boolean; checkUrl?: string; timeout: number; } /** * Container lifecycle management service */ export declare class LifecycleManager extends EventEmitter { private config; private state; private healthService?; private metricsService?; private startupTimer?; private shutdownTimer?; private restartTimer?; private dependencyCheckInterval?; private shutdownHandlers; private startupHandlers; constructor(config?: Partial<LifecycleConfig>); /** * Initialize dependency definitions */ private initializeDependencies; /** * Initialize lifecycle manager with services */ initialize(services: { healthService: HealthService; metricsService: MetricsService; }): void; /** * Start the application lifecycle */ start(): Promise<void>; /** * Execute startup sequence */ private executeStartup; /** * Stop the application lifecycle */ stop(): Promise<void>; /** * Execute graceful shutdown */ private executeGracefulShutdown; /** * Execute shutdown sequence */ private executeShutdownSequence; /** * Execute immediate shutdown */ private executeImmediateShutdown; /** * Handle health status changes */ private handleHealthStatusChange; /** * Handle restart policy */ private handleRestartPolicy; /** * Schedule a restart */ private scheduleRestart; /** * Restart the application */ private restart; /** * Check dependencies health */ private checkDependencies; /** * Check individual dependency */ private checkDependency; /** * Check database dependency */ private checkDatabaseDependency; /** * Check REST API dependency */ private checkRestApiDependency; /** * Check models dependency (Xenova models availability) */ private checkModelsDependency; /** * Start dependency monitoring */ private startDependencyMonitoring; /** * Stop dependency monitoring */ private stopDependencyMonitoring; /** * Setup signal handlers */ private setupSignalHandlers; /** * Update lifecycle state */ private setState; /** * Register startup handler */ onStartup(handler: () => Promise<void>): void; /** * Register shutdown handler */ onShutdown(handler: () => Promise<void>): void; /** * Get current lifecycle state */ getState(): LifecycleState; /** * Get lifecycle configuration */ getConfig(): LifecycleConfig; /** * Force restart (manual trigger) */ forceRestart(reason?: string): Promise<void>; /** * Reset restart counter */ resetRestartCounter(): void; }