/** * Task Queue Types */ import { Task, TaskStatus } from '@latestgraviton/protocol'; /** * Extended task with queue metadata */ export interface QueuedTask extends Task { queuedAt: Date; scheduledFor?: Date; attempts: number; lastAttemptAt?: Date; nextRetryAt?: Date; error?: string; assignedTerminal?: string; completedAt?: Date; result?: any; metadata?: Record; } /** * Task priority levels */ export declare enum TaskPriority { CRITICAL = 10, HIGH = 7, NORMAL = 5, LOW = 3, BACKGROUND = 1 } /** * Task retry configuration */ export interface RetryConfig { maxAttempts: number; initialDelay: number; maxDelay: number; backoffMultiplier: number; retryableErrors?: string[]; } /** * Task execution options */ export interface ExecutionOptions { timeout?: number; retryConfig?: RetryConfig; requiresCapabilities?: string[]; preferredTerminals?: string[]; excludeTerminals?: string[]; parallelizable?: boolean; } /** * Task execution result */ export interface ExecutionResult { taskId: string; status: 'success' | 'failure' | 'timeout' | 'cancelled'; result?: any; error?: string; executionTime: number; terminalId: string; metrics?: { tokensUsed: number; memoryUsed: number; cpuTime: number; }; } /** * Queue statistics */ export interface QueueStatistics { pending: number; executing: number; completed: number; failed: number; retrying: number; averageWaitTime: number; averageExecutionTime: number; throughput: number; successRate: number; } /** * Queue event types */ export declare enum QueueEvent { TASK_ADDED = "task:added", TASK_SCHEDULED = "task:scheduled", TASK_ASSIGNED = "task:assigned", TASK_STARTED = "task:started", TASK_COMPLETED = "task:completed", TASK_FAILED = "task:failed", TASK_RETRYING = "task:retrying", TASK_CANCELLED = "task:cancelled", QUEUE_FULL = "queue:full", QUEUE_EMPTY = "queue:empty" } /** * Scheduling strategy */ export declare enum SchedulingStrategy { FIFO = "fifo", PRIORITY = "priority", DEADLINE = "deadline", ROUND_ROBIN = "round_robin", WEIGHTED_ROUND_ROBIN = "weighted_round_robin", LEAST_LOADED = "least_loaded", CAPABILITY_BASED = "capability_based" } /** * Task filter options */ export interface TaskFilterOptions { status?: TaskStatus | TaskStatus[]; priority?: TaskPriority; minPriority?: TaskPriority; projectId?: string; terminalId?: string; createdBefore?: Date; createdAfter?: Date; limit?: number; offset?: number; } /** * Task update payload */ export interface TaskUpdate { status?: TaskStatus; progress?: number; message?: string; metadata?: Record; error?: string; result?: any; } /** * Queue configuration */ export interface QueueConfig { maxSize: number; maxTasksPerTerminal: number; defaultTimeout: number; schedulingStrategy: SchedulingStrategy; retryConfig: RetryConfig; enablePersistence: boolean; enableMetrics: boolean; cleanupInterval: number; staleTaskTimeout: number; } //# sourceMappingURL=types.d.ts.map