/** * Agentic QE v3 - Work Stealing Coordinator * Enables idle agents to steal stale claims for load balancing * * Work stealing algorithm: * 1. Identify idle agents (no claims, idle > threshold) * 2. Find stale claims (claimed but inactive > threshold) * 3. Match idle agents to stealable claims by domain/capability * 4. Execute steal with proper handoff semantics */ import { Claim, Claimant, ClaimType, WorkStealingConfig, IWorkStealingCoordinator, IClaimService, IClaimRepository } from './interfaces'; import { EventBus } from '../../kernel/interfaces'; import { AgentType } from '../../shared/types'; interface AgentActivity { agentId: string; claimant: Claimant; lastActivityAt: Date; currentClaimId?: string; } export declare class WorkStealingCoordinator implements IWorkStealingCoordinator { private readonly claimService; private readonly repository; private readonly eventBus?; private readonly config; private readonly agentActivity; private checkTimer; private initialized; constructor(claimService: IClaimService, repository: IClaimRepository, eventBus?: EventBus | undefined, config?: Partial); initialize(): Promise; dispose(): Promise; checkAndSteal(): Promise; getStealableClaims(idleAgent: Claimant): Promise; recordActivity(agentId: string, claimId?: string): void; /** * Register an agent for activity tracking */ registerAgent(claimant: Claimant): void; /** * Unregister an agent from activity tracking */ unregisterAgent(agentId: string): void; getIdleAgents(): Claimant[]; getBusyAgents(): Claimant[]; /** * Mark an agent as having completed their current claim */ markClaimCompleted(agentId: string): void; /** * Get all tracked agents */ getTrackedAgents(): AgentActivity[]; /** * Set activity time for an agent (for testing purposes) */ setAgentActivityTime(agentId: string, time: Date): void; /** * Enable work stealing */ enable(): void; /** * Disable work stealing */ disable(): void; /** * Check if work stealing is enabled */ isEnabled(): boolean; /** * Update configuration */ updateConfig(config: Partial): void; private emitStealEvent; } /** * Create a work stealing coordinator */ export declare function createWorkStealingCoordinator(claimService: IClaimService, repository: IClaimRepository, eventBus?: EventBus, config?: Partial): WorkStealingCoordinator; /** * Check if an agent can work on a specific claim type */ export declare function canAgentHandleClaimType(agentType: AgentType | undefined, claimType: ClaimType): boolean; /** * Calculate priority score for work stealing * Higher score = higher priority to steal */ export declare function calculateStealPriority(claim: Claim): number; export {}; //# sourceMappingURL=work-stealing.d.ts.map