My understanding is that the underlying part is a next token predictor and that's what is "actually" editing the code but the part that decides what to do (to achieve a successful unit test result for example) is a mix of all the things including post training.
It's all a next token predictor, which is trained at first to predict the next token. RLVR etc. are also training the next token predictor.