"""Page-flow errors. Codes stay for logs; they no longer map to a state-center fail callback.""" class NodeError(RuntimeError): error_code = "UI_ELEMENT_NOT_FOUND" retryable = False route_role = "OPS" class LoginFailed(NodeError): error_code = "SYS_LOGIN_FAIL" retryable = True route_role = "OPS" class SupplierContractDisabled(NodeError): error_code = "BIZ_CONTRACT_DISABLED" retryable = False route_role = "PURCHASER" class PdfMergeUnsupported(NodeError): error_code = "CAP_PDF_MERGE_UNSUPPORTED" retryable = False route_role = "OPS" class UnknownRpaError(NodeError): error_code = "RPA_UNKNOWN_ERROR" retryable = True route_role = "OPS"