/** * Mode MCP - Controls the current workflow mode during PBL generation. * * Migrated from PBL-Nano. Simplified: no list_tools(), pure method calls. */ import type { PBLMode, PBLToolResult } from '../types'; export class ModeMCP { private currentMode: PBLMode; private availableModes: PBLMode[]; constructor(availableModes: PBLMode[], defaultMode: PBLMode) { this.availableModes = availableModes; this.currentMode = defaultMode; } setMode(mode: PBLMode): PBLToolResult { if (!this.availableModes.includes(mode)) { return { success: false, error: `Mode "${mode}" not available. Available: ${this.availableModes.join(', ')}`, }; } if (mode === this.currentMode) { return { success: false, error: `Already in "${mode}" mode.` }; } this.currentMode = mode; return { success: true, message: `Switched to "${mode}" mode.` }; } getCurrentMode(): PBLMode { return this.currentMode; } getAvailableModes(): PBLMode[] { return [...this.availableModes]; } }