/** * Shared State for Worker Communication * * Enables workers to: * - Share data via a common state store * - Signal completion of dependencies * - Lock resources to prevent conflicts * - Pass messages between workers */ export interface SharedMessage { from: string; to: string | '*'; type: 'data' | 'signal' | 'request'; content: string; timestamp: string; } export interface ResourceLock { resource: string; owner: string; acquired: string; expires: string; } export declare class SharedState { private stateDir; private stateFile; private messagesFile; private locksFile; constructor(workspaceDir: string); private ensureStateDir; /** * Set a shared value */ set(key: string, value: unknown, workerId?: string): void; /** * Get a shared value */ get(key: string): unknown; /** * Get all shared state */ getAll(): Record; /** * Signal that a worker has completed a specific task/dependency */ signalComplete(signalName: string, workerId: string, data?: unknown): void; /** * Wait for a signal (polling-based) * Returns true if signal is already set, false if not */ checkSignal(signalName: string): { completed: boolean; data?: unknown; }; /** * Send a message to another worker */ sendMessage(from: string, to: string, type: 'data' | 'signal' | 'request', content: string): void; /** * Get messages for a worker */ getMessages(workerId: string, since?: string): SharedMessage[]; /** * Try to acquire a resource lock */ acquireLock(resource: string, workerId: string, durationMs?: number): boolean; /** * Release a resource lock */ releaseLock(resource: string, workerId: string): boolean; /** * Clean up expired locks */ cleanupExpiredLocks(): void; /** * Get summary for injecting into worker prompts */ getSummaryForWorker(workerId: string): string; /** * Clear all shared state (for cleanup between sessions) */ clear(): void; private loadState; private saveState; private loadSignals; private saveSignals; private loadMessages; private saveMessages; private loadLocks; private saveLocks; }