@bonginkan/maria
Version:
MARIA OS v5.9.5 – Self-Evolving Organizational Intelligence OS | Speed Improvement Phase 3: LLM Optimization + Command Refactoring | Performance Measurement + Run Evidence System | Zero ESLint/TypeScript Errors | 人とAIが役割を持ち、学び、進化し続けるための仕事のOS | GraphRAG ×
66 lines (65 loc) • 1.86 kB
TypeScript
/**
* Base Service Class for Resource Management
* All services should extend this for proper timer/listener cleanup
*/
export interface ServiceConfig {
name: string;
enableTelemetry?: boolean;
jitterPercent?: number;
}
export declare abstract class BaseService {
protected readonly serviceName: string;
protected timers: NodeJS.Timeout[];
protected listeners: Array<() => void>;
protected destroyed: boolean;
protected telemetryEnabled: boolean;
protected jitterPercent: number;
constructor(config: ServiceConfig);
/**
* Register a timer with automatic cleanup and jitter
*/
protected registerTimer(fn: () => void | Promise<void>, interval: number, options?: {
immediate?: boolean;
jitter?: boolean;
}): void;
/**
* Register a cleanup listener
*/
protected registerListener(cleanup: () => void | Promise<void>): void;
/**
* Register a delayed task
*/
protected registerDelay(fn: () => void | Promise<void>, delay: number): NodeJS.Timeout;
/**
* Cancel a specific timer
*/
protected cancelTimer(timer: NodeJS.Timeout): boolean;
/**
* Get service health status
*/
getHealth(): ServiceHealth;
/**
* Log telemetry event
*/
protected logTelemetry(event: string, metadata?: Record<string, unknown>): void;
/**
* Destroy the service and cleanup all resources
*/
destroy(): void;
/**
* Check if service is destroyed
*/
isDestroyed(): boolean;
/**
* Abstract method - services should implement their initialization
*/
abstract initialize(): Promise<void>;
}
export interface ServiceHealth {
service: string;
status: "healthy" | "unhealthy" | "destroyed";
timers: number;
listeners: number;
uptime: number;
memory: number;
}