mcp-ai-agent-guidelines
Version:
A comprehensive Model Context Protocol server providing advanced tools, resources, and prompts for implementing AI agent best practices
95 lines • 2.57 kB
TypeScript
/**
* 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<string, unknown>;
}
/**
* 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