# managoat_sandbox v0.2.1 - Table of Contents

> One sandbox behaviour over Sprites, E2B and Daytona, with the conformance suite a fourth adapter runs against.

## Pages

- [Managoat.Sandbox](readme.md)
- [Changelog](changelog.md)

## Modules

- [Managoat.Sandbox](Managoat.Sandbox.md): The sandbox backend contract: one behaviour, one facade, one error taxonomy.
- [Managoat.Sandbox.Command](Managoat.Sandbox.Command.md): A provider-tagged handle to a running (or attached) streaming command.
- [Managoat.Sandbox.Config](Managoat.Sandbox.Config.md): Per-adapter settings, read from this library's own otp_app.
- [Managoat.Sandbox.ConformanceCase](Managoat.Sandbox.ConformanceCase.md): The executable form of the `Managoat.Sandbox` contract: a shared suite
every adapter must pass.
- [Managoat.Sandbox.Daytona](Managoat.Sandbox.Daytona.md): The Daytona adapter: `Managoat.Sandbox` implemented against daytona.io
(or a self-hosted Daytona via `DAYTONA_API_URL`).
- [Managoat.Sandbox.Daytona.Api](Managoat.Sandbox.Daytona.Api.md): Daytona control-plane client (`app.daytona.io/api`, or a self-hosted
instance via `DAYTONA_API_URL`).
- [Managoat.Sandbox.Daytona.Errors](Managoat.Sandbox.Daytona.Errors.md): Normalizes Daytona error shapes into the `Managoat.Sandbox` taxonomy —
the same mapping discipline as the other adapters, tagged `:daytona`.

- [Managoat.Sandbox.Daytona.LogStream](Managoat.Sandbox.Daytona.LogStream.md): Streams a Daytona session command's journaled log into the
`Managoat.Sandbox` owner-frame contract — by polling the plain HTTP log
endpoint, deliberately not the websocket.
- [Managoat.Sandbox.Daytona.Toolbox](Managoat.Sandbox.Daytona.Toolbox.md): Daytona toolbox client — the in-sandbox REST API, proxied per sandbox at
its `toolboxProxyUrl` (same Bearer auth as the control plane).
- [Managoat.Sandbox.E2B](Managoat.Sandbox.E2B.md): The E2B adapter: `Managoat.Sandbox` implemented against e2b.dev.
- [Managoat.Sandbox.E2B.Api](Managoat.Sandbox.E2B.Api.md): E2B control-plane client (`api.e2b.app`): sandbox lifecycle, listing,
pause/resume, TTL and network policy.
- [Managoat.Sandbox.E2B.CommandServer](Managoat.Sandbox.E2B.CommandServer.md): One process per streaming E2B command: owns the Connect stream, translates
envd events into the `Managoat.Sandbox` owner-frame contract, and
heartbeats the sandbox TTL while the command lives.
- [Managoat.Sandbox.E2B.Envd](Managoat.Sandbox.E2B.Envd.md): E2B data-plane client: "envd", the daemon inside every sandbox, reachable
at `https://49983-{sandboxId}.{domain}`.
- [Managoat.Sandbox.E2B.Errors](Managoat.Sandbox.E2B.Errors.md): Normalizes E2B error shapes into the `Managoat.Sandbox` taxonomy — the
same mapping discipline as the Sprites adapter's, with `:e2b` as the
escape-hatch tag.

- [Managoat.Sandbox.Fake](Managoat.Sandbox.Fake.md): A real, in-memory `Managoat.Sandbox` adapter.
- [Managoat.Sandbox.Handle](Managoat.Sandbox.Handle.md): A provider-tagged reference to a sandbox.
- [Managoat.Sandbox.NetworkPolicy](Managoat.Sandbox.NetworkPolicy.md): An intent-level, default-deny egress policy.
- [Managoat.Sandbox.Retry](Managoat.Sandbox.Retry.md): Bounded exponential backoff for **idempotent** external calls.
- [Managoat.Sandbox.Session](Managoat.Sandbox.Session.md): A normalized record of a detachable session living inside a sandbox.
- [Managoat.Sandbox.Sprites](Managoat.Sandbox.Sprites.md): The Sprites adapter: `Managoat.Sandbox` implemented against sprites.dev
via the `sprites-ex` SDK.
- [Managoat.Sandbox.Sprites.Client](Managoat.Sandbox.Sprites.Client.md): SDK client construction and account listing for the Sprites adapter.
- [Managoat.Sandbox.Sprites.Errors](Managoat.Sandbox.Sprites.Errors.md): Normalizes `sprites-ex` error shapes into the `Managoat.Sandbox` taxonomy.

