refactor(run): refactor run internals
Refactors how temporary directories and tool are setup and created.
TempManager
is now only responsible for creating temporary directories and a ToolManager
, and cleaning these up once the context ends.
ToolManager
is a factory used to create ToolUser
instances. This transfers tools to the device only when required, and abstracts them so we don't have to worry about which path they are sent to in the Runner
class.
Edited by Luke Hackwell