UNPKG

vibe-coder-mcp

Version:

Production-ready MCP server with complete agent integration, multi-transport support, and comprehensive development automation tools for AI-assisted workflows.

105 lines 3.21 kB
export interface LockInfo { id: string; resource: string; owner: string; sessionId?: string; operation: 'read' | 'write' | 'execute'; acquiredAt: Date; expiresAt: Date; metadata?: Record<string, unknown>; } export interface LockAcquisitionResult { success: boolean; lock?: LockInfo; error?: string; waitTime?: number; conflictingLock?: LockInfo; } export interface DeadlockDetectionResult { hasDeadlock: boolean; cycle?: string[]; affectedLocks?: LockInfo[]; resolutionStrategy?: 'timeout' | 'priority' | 'random'; } export interface ConcurrentAccessConfig { lockDirectory: string; defaultLockTimeout: number; maxLockTimeout: number; deadlockDetectionInterval: number; lockCleanupInterval: number; maxRetryAttempts: number; retryDelayMs: number; enableDeadlockDetection: boolean; enableLockAuditTrail: boolean; } export interface LockAuditEvent { id: string; type: 'acquire' | 'release' | 'timeout' | 'deadlock' | 'conflict'; lockId: string; resource: string; owner: string; sessionId?: string; timestamp: Date; duration?: number; metadata?: Record<string, unknown>; } export declare class ConcurrentAccessManager { private static instance; private config; private userConfig; private initialized; private activeLocks; private lockWaiters; private auditEvents; private deadlockDetectionTimer; private cleanupTimer; private lockCounter; private auditCounter; private constructor(); private getConfig; private ensureInitialized; static getInstance(config?: Partial<ConcurrentAccessConfig>): ConcurrentAccessManager; static resetInstance(): void; static hasInstance(): boolean; acquireLock(resource: string, owner: string, operation?: 'read' | 'write' | 'execute', options?: { timeout?: number; sessionId?: string; metadata?: Record<string, unknown>; waitForRelease?: boolean; }): Promise<LockAcquisitionResult>; releaseLock(lockId: string): Promise<boolean>; private atomicLockAcquisition; private waitForLockRelease; private findConflictingLock; private isLockExpired; private notifyWaiters; private removeWaiter; private getOSAwareLockDirectory; private initializeLockDirectory; private startBackgroundTasks; private detectDeadlocks; private hasCycle; private findLockHolder; private cleanupExpiredLocks; private cleanupStaleLocks; private readLockFile; private removeFileLock; private sanitizeResourceName; private logAuditEvent; getActiveLocks(): LockInfo[]; getLockStatistics(): { activeLocks: number; expiredLocks: number; waitingRequests: number; totalAcquisitions: number; totalReleases: number; totalTimeouts: number; totalDeadlocks: number; averageLockDuration: number; }; clearAllLocks(): Promise<void>; dispose(): Promise<void>; shutdown(): Promise<void>; } export declare function getConcurrentAccessManager(): ConcurrentAccessManager; //# sourceMappingURL=concurrent-access.d.ts.map