/** * Mode Manager Singleton * * Manages agent mode state across tool calls with transition history tracking. * Provides mode-specific tool recommendations for context-appropriate workflows. */ /** * Available agent operation modes */ export type Mode = "planning" | "editing" | "analysis" | "debugging" | "refactoring" | "documentation" | "interactive" | "one-shot"; /** * Current state of the agent mode */ export interface ModeState { /** Current active mode */ currentMode: Mode; /** Previous mode before the last transition */ previousMode?: Mode; /** Timestamp of the current mode activation */ timestamp: Date; /** Optional context data for the mode */ context?: Record; } /** * Record of a mode transition */ export interface ModeTransition { /** Mode transitioned from */ from: Mode; /** Mode transitioned to */ to: Mode; /** When the transition occurred */ timestamp: Date; /** Optional reason for the transition */ reason?: string; } /** * Singleton class for managing agent mode state */ declare class ModeManager { private state; private history; /** * Get the current active mode */ getCurrentMode(): Mode; /** * Set a new mode and record the transition * * @param mode - The new mode to activate * @param reason - Optional reason for the mode change * @returns The new mode state */ setMode(mode: Mode, reason?: string): ModeState; /** * Get recommended tools for a specific mode * * @param mode - The mode to get tools for (defaults to current mode) * @returns Array of recommended tool names */ getToolsForMode(mode?: Mode): string[]; /** * Get the full history of mode transitions * * @returns Array of all recorded transitions */ getHistory(): ModeTransition[]; /** * Reset the mode manager to its initial state */ reset(): void; } /** * Singleton instance of the ModeManager * * Use this exported instance to access mode management functionality * across the application. * * @example * ```typescript * import { modeManager } from './mode-manager.js'; * * // Get current mode * const mode = modeManager.getCurrentMode(); * * // Change mode * modeManager.setMode('planning', 'Starting design phase'); * * // Get tools for current mode * const tools = modeManager.getToolsForMode(); * ``` */ export declare const modeManager: ModeManager; export {}; //# sourceMappingURL=mode-manager.d.ts.map