import asyncio class AgentState: _instance = None def __init__(self): if not hasattr(self, '_stop_requested'): self._stop_requested = asyncio.Event() self.last_valid_state = None # store the last valid browser state def __new__(cls): if cls._instance is None: cls._instance = super(AgentState, cls).__new__(cls) return cls._instance def request_stop(self): self._stop_requested.set() def clear_stop(self): self._stop_requested.clear() self.last_valid_state = None def is_stop_requested(self): return self._stop_requested.is_set() def set_last_valid_state(self, state): self.last_valid_state = state def get_last_valid_state(self): return self.last_valid_state