| 123456789101112131415161718192021222324252627282930313233343536373839 |
- /**
- * 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];
- }
- }
|