research-cli
Version:
AI-powered research assistant with web search capabilities and beautiful terminal UI
90 lines • 2.67 kB
TypeScript
/**
* Smart progress controller for research-cli operations
*/
import type { ProviderEvent } from "../types.js";
export interface ProgressManagerOptions {
/** Enable multi-progress for concurrent operations */
useMultiProgress?: boolean;
/** Silent mode - no progress bars */
silent?: boolean;
/** Custom theme selection */
theme?: "research" | "tool";
}
/**
* Intelligent progress manager that adapts to different operation types
*/
export declare class ProgressManager {
private singleBar?;
private multiBar?;
private options;
private isToolOperationActive;
private toolCount;
private activeOperations;
constructor(options?: ProgressManagerOptions);
/**
* Handle provider events and update progress accordingly
*/
handleProviderEvent(event: ProviderEvent): void;
private handleStartEvent;
private handleToolCallEvent;
private handleToolResultEvent;
private handleChunkEvent;
private handleFinalEvent;
private handleErrorEvent;
private updateMainProgress;
private ensureSingleProgress;
private ensureMultiProgress;
/**
* Enable multi-progress mode for complex operations
*/
enableMultiProgress(): void;
/**
* Disable multi-progress mode
*/
disableMultiProgress(): void;
/**
* Log a message (will appear above progress bars if active)
*/
log(message: string): void;
/**
* Manually create a progress bar for custom operations
*/
createCustomProgress(id: string, total: number, operation: string, startValue?: number): void;
/**
* Update a custom progress bar
*/
updateCustomProgress(id: string, value?: number | null, stage?: string): void;
/**
* Complete a custom progress bar
*/
completeCustomProgress(id: string, finalStage?: string): void;
/**
* Check if any progress bars are currently active
*/
get hasActiveProgress(): boolean;
/**
* Get count of active operations
*/
get activeOperationCount(): number;
/**
* Force cleanup of all progress bars
*/
cleanup(): void;
/**
* Enable silent mode (no progress bars)
*/
setSilent(silent: boolean): void;
}
/**
* Create a new progress manager instance
*/
export declare function createProgressManager(options?: ProgressManagerOptions): ProgressManager;
/**
* Get or create the global progress manager
*/
export declare function getGlobalProgressManager(): ProgressManager;
/**
* Reset the global progress manager
*/
export declare function resetGlobalProgressManager(): void;
//# sourceMappingURL=progress-manager.d.ts.map