When the user passes in --runtime-python-path and --runtime-env-externally-managed that means that the python environment is wholly maintained outside of runt.
This is the simplest scenario for running a python kernel, since there's no initialization or lifetime issues with the environment.
Instead the python-runtime-agent should:
- Ensure that the python path is valid
- Launch the kernel, rooted at the environment, and using a temporary location for conn.json
- Bind the cell execution calls to the kernel
- Shutdown the process during onShutdown
Don't worry about discovering kernels, or using kernel.json that jupyter uses. We can cross that bridge later, if necessary