UNPKG

@sirmrmarty/n8n-nodes-tmux-orchestrator

Version:

n8n nodes for orchestrating Claude AI agents through tmux sessions

64 lines (63 loc) 2.29 kB
export interface ManagedResource { id: string; type: 'interval' | 'timeout' | 'process' | 'custom'; resource: any; cleanup: () => void | Promise<void>; createdAt: number; description?: string; } export interface ResourceManagerOptions { autoCleanupOnExit?: boolean; maxAge?: number; maxResources?: number; } export declare class ResourceManager { private static instance; private resources; private cleanupInterval?; private options; private constructor(); static getInstance(options?: ResourceManagerOptions): ResourceManager; createInterval(callback: () => void | Promise<void>, delay: number, description?: string): { id: string; intervalId: NodeJS.Timeout; }; createTimeout(callback: () => void | Promise<void>, delay: number, description?: string): { id: string; timeoutId: NodeJS.Timeout; }; registerResource(type: 'process' | 'custom', resource: any, cleanup: () => void | Promise<void>, description?: string): string; cleanup(id: string): Promise<boolean>; cleanupByType(type: ManagedResource['type']): Promise<number>; cleanupAll(): Promise<number>; getStats(): { total: number; byType: Record<string, number>; oldestAge: number; averageAge: number; }; listResources(): ManagedResource[]; createScope(description?: string): ResourceScope; private generateId; private setupExitHandlers; private performPeriodicCleanup; private enforceResourceLimits; } export declare class ResourceScope { private resourceIds; private manager; private description?; constructor(manager: ResourceManager, description?: string); createInterval(callback: () => void | Promise<void>, delay: number, description?: string): { id: string; intervalId: NodeJS.Timeout; }; createTimeout(callback: () => void | Promise<void>, delay: number, description?: string): { id: string; timeoutId: NodeJS.Timeout; }; registerResource(type: 'process' | 'custom', resource: any, cleanup: () => void | Promise<void>, description?: string): string; cleanup(): Promise<number>; getResourceCount(): number; } export declare const resourceManager: ResourceManager;