from __future__ import annotations class ApexAgentError(Exception): """Base error for semantic errors surfaced above the driver layer.""" class DriverError(ApexAgentError): """A driver operation failed.""" class DeviceNotFoundError(ApexAgentError): """A requested device id is unknown.""" class DeviceOfflineError(ApexAgentError): """A device is unavailable or lost its connection.""" class DeviceBusyError(ApexAgentError): """A device is already in use.""" class ElementNotFoundError(ApexAgentError): """A requested screen element was not found.""" class TaskFailedError(ApexAgentError): """A task failed before reaching its goal."""