Metadata-Version: 2.4
Name: praisonai-sandbox
Version: 0.0.2
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
```
