Metadata-Version: 2.4
Name: praisonai-sandbox
Version: 0.0.5
Summary: Isolated agent code execution for PraisonAI — Docker, E2B, Modal, Sandlock, SSH backends extracted from the praisonai wrapper.
Author: Mervin Praison
License: MIT
Project-URL: Homepage, https://docs.praison.ai
Project-URL: Repository, https://github.com/mervinpraison/PraisonAI
Requires-Python: <3.15,>=3.10
Description-Content-Type: text/markdown
Requires-Dist: praisonaiagents>=1.6.126
Requires-Dist: rich>=13.7
Requires-Dist: typer>=0.12.0
Requires-Dist: click>=8.4.2
Provides-Extra: docker
Requires-Dist: docker>=7.0.0; extra == "docker"
Provides-Extra: e2b
Requires-Dist: e2b-code-interpreter>=1.0.0; extra == "e2b"
Provides-Extra: sandlock
Requires-Dist: sandlock>=0.1.0; extra == "sandlock"
Provides-Extra: ssh
Requires-Dist: asyncssh>=2.14.0; extra == "ssh"
Provides-Extra: modal
Requires-Dist: modal>=0.64.0; extra == "modal"
Provides-Extra: daytona
Requires-Dist: daytona-sdk>=0.1.0; extra == "daytona"
Provides-Extra: all
Requires-Dist: praisonai-sandbox[daytona,docker,e2b,modal,sandlock,ssh]; extra == "all"

# praisonai-sandbox

Isolated agent code execution for PraisonAI — Docker, subprocess, E2B, Modal, Sandlock, and SSH backends.

## Install

```bash
pip install praisonai-sandbox[docker]
```

## Usage

```python
from praisonai_sandbox import DockerSandbox
from praisonaiagents.sandbox import SandboxConfig

config = SandboxConfig.docker("python:3.11-slim")
sandbox = DockerSandbox(image=config.image, config=config)
```

Or via the agents manager:

```python
from praisonaiagents.sandbox import SandboxManager, SandboxConfig

manager = SandboxManager(SandboxConfig.subprocess())
result = await manager.run_code("print('hello')")
```

## Console script

```bash
praisonai-sandbox --help
```

Backward-compatible imports via the umbrella package:

```python
from praisonai.sandbox import SubprocessSandbox  # shim → praisonai_sandbox
```

## Validating your install

> **Note:** The `e2e-validation/` bundle and `tests/` ship with the source
> repository, not the published wheel. Run these commands from a checkout of
> this repo (`src/praisonai-sandbox/`), not from a `pip install`ed environment.

Run the single-command end-to-end smoke suite (no API keys needed for the
subprocess path; Docker is optional and skipped when unavailable):

```bash
python e2e-validation/run_e2e.py
```

Or use the pytest live probes:

```bash
python -m pytest tests/test_live_sandbox.py -v
```

See [`e2e-validation/`](./e2e-validation/) for the manual guide.
