/** * @license * Copyright 2025 OSAgent OC * SPDX-License-Identifier: Apache-2.0 */ import type { QueuedPrompt, SkillDetectionResult, RegisteredAgent } from './types.js'; /** * Orchestration Queue - manages prompt queue for ordered processing */ export declare class OrchestrationQueue { private queue; private history; private maxQueueSize; private maxHistorySize; private listeners; /** Counter for listener errors - used for observability */ private listenerErrors; constructor(maxQueueSize?: number, maxHistorySize?: number); /** * Generate unique prompt ID */ private generateId; /** * Enqueue a new prompt */ enqueue(originalPrompt: string, options?: { priority?: number; assignedAgent?: RegisteredAgent; parentPromptId?: string; detectionResult?: SkillDetectionResult; }): QueuedPrompt; /** * Get next prompt to process (highest priority first) */ dequeue(): QueuedPrompt | null; /** * Update prompt status */ updateStatus(id: string, status: QueuedPrompt['status'], updates?: Partial>): QueuedPrompt | null; /** * Move completed prompt to history */ private moveToHistory; /** * Get prompt by ID */ get(id: string): QueuedPrompt | null; /** * Get all queued prompts */ getQueued(): QueuedPrompt[]; /** * Get prompts by status */ getByStatus(status: QueuedPrompt['status']): QueuedPrompt[]; /** * Get processing prompts count */ getProcessingCount(): number; /** * Get recent history */ getHistory(limit?: number): QueuedPrompt[]; /** * Get child prompts of a parent */ getChildPrompts(parentId: string): QueuedPrompt[]; /** * Cancel a queued prompt */ cancel(id: string): boolean; /** * Clear all pending prompts */ clearPending(): number; /** * Get queue statistics */ getStats(): { queueSize: number; pending: number; processing: number; historySize: number; averageProcessingTime: number; successRate: number; listenerErrors: number; }; /** * Event subscription */ on(event: 'enqueue' | 'dequeue' | 'statusChange' | 'cancel', callback: (prompt: QueuedPrompt) => void): () => void; /** * Emit event */ private emit; /** * Get the count of listener errors for observability */ getListenerErrorCount(): number; /** * Export queue state for persistence */ export(): { queue: QueuedPrompt[]; history: QueuedPrompt[]; }; /** * Import queue state */ import(state: { queue?: QueuedPrompt[]; history?: QueuedPrompt[]; }): void; }