Refactor: add RuntimeManager class
End-user friendly description of the problem this fixes or functionality that this introduces
- [ ] Include this change in the Release Notes. If checked, you must provide an end-user friendly description for your change below no changelog
Give a summary of what the PR does, explaining any non-trivial design decisions
This should be a pretty clean no-op. But I really want to expand this so that there are separate implementations for each runtime class. Right now the runtime classes themselves are doing a lot of extra lifting for managing runtimes in an external environment (docker, runtime-api, 3p providers)
Link of any specific issues this addresses
To run this PR locally, use the following command:
docker run -it --rm -p 3000:3000 -v /var/run/docker.sock:/var/run/docker.sock --add-host host.docker.internal:host-gateway -e SANDBOX_RUNTIME_CONTAINER_IMAGE=docker.all-hands.dev/all-hands-ai/runtime:c377f9e-nikolaik --name openhands-app-c377f9e docker.all-hands.dev/all-hands-ai/openhands:c377f9e
@rbren I'm guessing you'll be working on this when you have time?
Yeah I might need to just recreate given the merge conflicts. But it was hypothetically ready for review 😄
Yeah, the review process is in trouble. What may help, at the time of submission, is to use request review directly when submitted. We should probably notify people to try to always do that.