/** * In-memory store for tracking investigation progress * Shared across all tools - no worker threads needed! */ export interface InvestigationProgress { session_uuid: string; prompt_cycle_id?: string; status: 'in_progress' | 'completed' | 'failed' | 'unknown'; progress_percentage?: number; current_step?: string; current_step_id?: string; steps_completed: Array<{ step_id?: string; step_number: number; description: string; explanation?: string; category: string; status: string; sources_consulted: string[]; timestamp: string; }>; sources_discovered: string[]; created_at: string; last_updated: string; streaming_active: boolean; } declare class InvestigationProgressStore { private store; /** * Initialize a new investigation session */ initSession(sessionUuid: string, promptCycleId?: string): void; /** * Update progress for a session */ updateProgress(sessionUuid: string, updates: Partial>): void; /** * Add a completed step */ addStep(sessionUuid: string, step: Omit): void; /** * Add discovered sources (deduplicates automatically) */ addSources(sessionUuid: string, sources: string[]): void; /** * Update or add a step by ID (for chain of thought updates) */ updateStepById(sessionUuid: string, stepId: string, updates: Partial>): void; /** * Get progress for a session */ getProgress(sessionUuid: string): InvestigationProgress | undefined; /** * Check if we're actively streaming for this session */ isStreaming(sessionUuid: string): boolean; /** * Mark streaming as active/inactive */ setStreaming(sessionUuid: string, active: boolean): void; /** * Mark session as complete */ completeSession(sessionUuid: string): void; /** * Clean up old sessions (older than 1 hour) */ cleanup(): void; /** * Get all active sessions (for debugging) */ getActiveSessions(): string[]; /** * Clear all (for testing) */ clear(): void; } export declare const investigationProgressStore: InvestigationProgressStore; export {};