/** * Swarm Session Manager * * High-level API for managing Swarm multi-agent sessions. * Handles session creation, task registration, wave progression, and completion tracking. * * Features: * - Session lifecycle management * - Wave-based task progression * - Progress monitoring (completed/failed/claimed/pending) * - Automatic wave advancement detection * * @module swarm-manager * @version 1.0 */ import type { SQLiteDatabase } from '../../sqlite.js'; import { type CreateTaskParams } from './swarm-db.js'; /** * Swarm session progress summary */ export interface SwarmProgress { sessionId: string; totalTasks: number; completed: number; failed: number; claimed: number; pending: number; currentWave: number; totalWaves: number; } /** * Swarm Session Manager * * Manages Swarm multi-agent coordination sessions. * Provides high-level APIs for task registration, progress tracking, and wave advancement. */ export declare class SwarmManager { private db; private _closed; /** * Create a new SwarmManager * * @param dbPath - Path to SQLite database file */ constructor(dbPath: string); /** * Ensure the manager is not closed * @throws {Error} If manager has been closed */ private ensureOpen; /** * Create a new Swarm session * * @returns Session ID (UUID) */ createSession(): string; /** * Add tasks to a session * * @param sessionId - Session ID * @param tasks - Array of task parameters * @returns Array of created task IDs */ addTasks(sessionId: string, tasks: CreateTaskParams[]): string[]; /** * Get session progress summary * * @param sessionId - Session ID * @returns Progress summary with counts and wave info */ getProgress(sessionId: string): SwarmProgress; /** * Check if session is complete * * A session is complete when all tasks are either completed or failed (no pending/claimed). * * @param sessionId - Session ID * @returns true if all tasks are finished */ isSessionComplete(sessionId: string): boolean; /** * Get current active wave number * * Returns the lowest wave number that has pending tasks. * If no pending tasks exist, returns the highest wave number + 1. * * @param sessionId - Session ID * @returns Current wave number */ getCurrentWave(sessionId: string): number; /** * Check if a specific wave is complete * * A wave is complete when all its tasks are either completed or failed. * * @param sessionId - Session ID * @param wave - Wave number to check * @returns true if wave is complete */ isWaveComplete(sessionId: string, wave: number): boolean; /** * Advance to next wave * * Checks if current wave is complete, then returns the next wave number. * Returns null if all waves are complete. * * @param sessionId - Session ID * @returns Next wave number, or null if session is complete */ advanceWave(sessionId: string): number | null; /** * Get database instance * * @returns Database instance */ getDatabase(): SQLiteDatabase; /** * Close database connection */ close(): void; } //# sourceMappingURL=swarm-manager.d.ts.map