Both of these are possible, but SuperLab wasn’t designed to make either of these goals easy.
For the first part (AXB), there are many, many ways to accomplish this. Unfortunately, the second requirement (adaptiveness) is incompatible with some of the more amusingly creative solutions. Adaptiveness at the level you are specifying can only be accomplished through conditional branching in SuperLab 4, which is done at the block level. This fact means that you will effectively only have one trial per block. You’ll have a feedback on one of your events that sets a code value on the trial specifying whether or not the response was correct. The Macro (at the block level) will look for this code value. Depending on its value, it will jump to one of two other blocks… one being more difficult, the other being less.
Of course, this means you have set up each trial individually, so stimulus lists are of no use. Since each trial is set up separately, there is no shortcut to creating a bunch of trials. As a result, creation of a trial is really straightforward. You create three events. The one in the middle will be the same as one of the other two. At the end of the third event, you will get a response and run feedback to mark the relevant code value, which the block will act based on.
This is a vast oversimplification to a very involved setup, but I hope it at least points you in the right direction.