/** * Worker Session * * Per-worker state and execution context. */ import { EventEmitter } from 'events'; import type { WorkerSession as WorkerSessionState, WorkerStatus, TokenUsage, TicketContext, ImplementationResult } from '../types.js'; import type { AgentRunner } from '../agents/agent-runner.js'; /** * Worker Session Events */ export interface WorkerSessionEvents { 'status:changed': { workerId: number; status: WorkerStatus; }; 'ticket:started': { workerId: number; ticketId: string; }; 'ticket:completed': { workerId: number; ticketId: string; result: ImplementationResult; }; 'ticket:failed': { workerId: number; ticketId: string; error: string; }; 'cost:updated': { workerId: number; totalCost: number; }; } /** * Worker Session * * Manages state and execution for a single worker. */ export declare class WorkerSession extends EventEmitter { private state; private agentRunner?; private abortController?; constructor(workerId: number, worktreePath: string, branchName: string); /** * Get current state */ getState(): WorkerSessionState; /** * Get worker ID */ getWorkerId(): number; /** * Get current status */ getStatus(): WorkerStatus; /** * Set status */ setStatus(status: WorkerStatus): void; /** * Check if worker is idle */ isIdle(): boolean; /** * Check if worker is busy */ isBusy(): boolean; /** * Set agent runner */ setAgentRunner(runner: AgentRunner): void; /** * Get agent runner */ getAgentRunner(): AgentRunner | undefined; /** * Get worktree path */ getWorktreePath(): string; /** * Get branch name */ getBranchName(): string; /** * Start processing a ticket */ process(context: TicketContext): Promise; /** * Internal process implementation */ private processInternal; /** * Retry current ticket */ retry(context: TicketContext): Promise; /** * Cancel current processing */ cancel(): void; /** * Pause the worker */ pause(): void; /** * Resume the worker */ resume(): void; /** * Add cost */ addCost(cost: number): void; /** * Get total cost */ getTotalCost(): number; /** * Get completed count */ getCompletedCount(): number; /** * Get failed count */ getFailedCount(): number; /** * Get retry count for current ticket */ getRetryCount(): number; /** * Get current ticket ID */ getCurrentTicketId(): string | undefined; /** * Get last error */ getLastError(): string | undefined; /** * Update token usage for current ticket */ updateTokenUsage(tokens: TokenUsage): void; /** * Get current token usage */ getCurrentTokenUsage(): TokenUsage | undefined; /** * Get elapsed time for current ticket */ getElapsedTime(): number; /** * Reset worker state */ reset(): void; /** * Get statistics */ getStats(): { workerId: number; status: WorkerStatus; completed: number; failed: number; cost: number; currentTicket?: string; elapsedMs?: number; }; } /** * Create a worker session */ export declare function createWorkerSession(workerId: number, worktreePath: string, branchName: string): WorkerSession; //# sourceMappingURL=worker-session.d.ts.map