from typing import Dict, Optional class CommandParser: VALID_COMMANDS = ["MODE", "CARD", "REPO", "RUN", "TEST", "LEDGER", "RESET", "STATE", "HELP"] @staticmethod def parse(command: str) -> Dict: command = (command or "").strip() if not command: return {"valid": False, "error": "Empty command"} parts = command.split(maxsplit=1) cmd = parts[0].upper() arg = parts[1] if len(parts) > 1 else None if cmd not in CommandParser.VALID_COMMANDS: return { "valid": False, "error": f"Unknown command: {cmd}", "suggestion": f"Valid: {', '.join(CommandParser.VALID_COMMANDS)}", } return {"valid": True, "command": cmd, "argument": arg, "raw": command}