OpenMAIC-React / src /lib /pbl /mcp /mode-mcp.ts
muthuk1's picture
Convert OpenMAIC from Next.js to React (Vite)
f56a29b verified
/**
* 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];
}
}