/** * Task Execution Tracker */ import { EventEmitter } from 'events'; import { TaskStatus } from '@latestgraviton/protocol'; import { QueuedTask, ExecutionResult, TaskUpdate } from './types'; /** * Execution metrics for a single task */ export interface TaskExecutionMetrics { taskId: string; terminalId: string; startTime: Date; endTime?: Date; duration?: number; status: TaskStatus; tokensUsed?: number; memoryUsed?: number; cpuTime?: number; retryCount: number; error?: string; } /** * Aggregated execution metrics */ export interface AggregatedMetrics { totalTasks: number; completedTasks: number; failedTasks: number; runningTasks: number; averageExecutionTime: number; averageTokensUsed: number; successRate: number; throughput: number; peakConcurrency: number; terminalUtilization: Map; } /** * Execution history entry */ export interface ExecutionHistoryEntry { taskId: string; terminalId: string; timestamp: Date; event: 'started' | 'progress' | 'completed' | 'failed' | 'timeout' | 'cancelled'; details?: any; } /** * Task Execution Tracker */ export declare class ExecutionTracker extends EventEmitter { private activeExecutions; private executionHistory; private completedExecutions; private taskTimeouts; private logger; private maxHistorySize; private metricsWindow; constructor(maxHistorySize?: number, metricsWindow?: number); /** * Start tracking task execution */ startExecution(task: QueuedTask, terminalId: string, timeout?: number): void; /** * Update task progress */ updateProgress(taskId: string, update: TaskUpdate): void; /** * Complete task execution */ completeExecution(taskId: string, result: ExecutionResult): void; /** * Handle task timeout */ private handleTimeout; /** * Cancel task execution */ cancelExecution(taskId: string, reason: string): void; /** * Get execution metrics for a task */ getTaskMetrics(taskId: string): TaskExecutionMetrics | undefined; /** * Get all active executions */ getActiveExecutions(): TaskExecutionMetrics[]; /** * Get execution history */ getHistory(filter?: { taskId?: string; terminalId?: string; event?: string; since?: Date; }): ExecutionHistoryEntry[]; /** * Get aggregated metrics */ getAggregatedMetrics(): AggregatedMetrics; /** * Get terminal performance metrics */ getTerminalMetrics(terminalId: string): { tasksExecuted: number; successRate: number; averageExecutionTime: number; currentLoad: number; }; /** * Add entry to history */ private addToHistory; /** * Clean up old completed executions */ private cleanupOldExecutions; /** * Export metrics for persistence */ exportMetrics(): { active: TaskExecutionMetrics[]; completed: TaskExecutionMetrics[]; history: ExecutionHistoryEntry[]; }; /** * Import metrics from persistence */ importMetrics(data: { active?: TaskExecutionMetrics[]; completed?: TaskExecutionMetrics[]; history?: ExecutionHistoryEntry[]; }): void; /** * Clear all data */ clear(): void; } //# sourceMappingURL=execution-tracker.d.ts.map