For the VSPAERO optimization, OpenVSP is not 'in charge', and the OpenVSP API does not really apply.
vspaero_opt has its own main() function and it uses the VSPAERO solver and OpenVSP via C++ API's.
The simple optimizer used by vspaero_opt is not meant as a long term solution -- think of it more as a proof of concept.
Instead, it is expected that serious users of the adjoint and optimization capability will want to use their own optimizer (possibly through OpenMDAO or another framework). This will allow them to use an optimizer of choice (likely supporting constraints, etc) and also to build up multidisciplinary problems. I.e. you won't just be restricted to VSPAERO and whatever the OpenVSP / VSPAERO developers think of.
For now, this capability is accessed by using the C++ API of VSPAERO and OpenVSP -- everything you need to build your own optimizer (or integrate into a larger framework) are available there. Think of vspaero_opt as a roadmap for developing your own optimizer using VSPAERO and OpenVSP.
There is intent to make a Python API for the VSPAERO solver and adjoint. That could be used with the existing OpenVSP API to integrate into a Python centric framework. I do not know what kind of timeframe to expect for that work -- not particularly soon.
Rob