AFAIK GrapheneOS flashes everything from fastboot (i.e. no recovery step). Implementing adb sideload protocol shouldn’t be too tricky though.