mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-15 23:32:46 +00:00
fabro_sandbox::driver::connect_provider turns one [server.sandbox.providers.<kind>] entry into an Arc<dyn SandboxProvider> from the sandbox-driver crates. Bundled kinds link the driver's Host, Docker, and Daytona providers in-process; Daytona receives its API key and endpoint explicitly through connect_explicit with a fabro-sandbox/<version> user agent, never from the process environment. Any other kind launches the configured plugin executable through a PluginSupervisor and returns a wrapper that replaces a crashed plugin for new work only, never replaying a failed call. Disabled entries are refused at the construction point. The Host and Docker providers also ship as fabro-sandbox-host and fabro-sandbox-docker plugin executables so CI can drive the bundled providers over stdio and a deployment can move one out of process by configuration alone. An integration test registers the Host executable under the non-bundled kind `host`, creates a sandbox and runs a command over the wire, then attaches to it by persisted id from a fresh plugin process, and checks that a plugin declaring a different kind is refused. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| apps | ||
| components | ||
| foundation | ||
| packages/fabro-api-client | ||