Metadata-Version: 2.4
Name: sandbox-cloud-client
Version: 0.1.0
Summary: Public client SDK for the Sandbox Cloud Platform (HTTP client + Harbor / SWE-ReX adapters)
Project-URL: Homepage, https://github.com/e3f-six/sandbox-cloud-platform
Author: e3f-six
License-Expression: MPL-2.0
License-File: LICENSE
Keywords: agent-benchmark,harbor,sandbox,swe-rex,terminal-bench
Classifier: License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.11
Requires-Dist: httpx>=0.27
Requires-Dist: pydantic>=2
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Provides-Extra: swerex
Requires-Dist: swe-rex==1.4.0; extra == 'swerex'
Description-Content-Type: text/markdown

# sandbox-cloud-client

Public client SDK for the [Sandbox Cloud Platform](https://github.com/e3f-six/sandbox-cloud-platform) — the `SandboxCloudClient` HTTP client plus the Harbor / SWE-ReX adapter layers, installable from public PyPI by any client (internal or external).

This is the **server-free** subset of the platform: it contains no FastAPI/uvicorn/JWT or control-plane code, so it installs with only `httpx` + `pydantic`.

## Install

```bash
pip install sandbox-cloud-client
# with the real SWE-ReX runtime contract:
pip install "sandbox-cloud-client[swerex]"
```

No `--extra-index-url` / private index is required.

## What's included

| Import | Purpose |
|---|---|
| `sandbox_cloud.clients` | `SandboxCloudClient` (async HTTP client), models, smoke flow |
| `sandbox_cloud.adapters_client.harbor` / `.swerex` | thin Harbor / SWE-ReX-shaped adapters over the client |
| `sandbox_cloud.integrations.harbor` / `.swerex` | discovery + SWE-ReX deployment/runtime wrappers |
| `sandbox_cloud.plugins.harbor` / `.swerex` | the `sandbox-cloud-harbor` / `sandbox-cloud-swerex` console scripts |

To drive a Harbor **terminal-bench** run against the platform, install the companion package and use Harbor's import-path extension point:

```bash
pip install harbor==0.6.6 sandbox-cloud-harbor-environment
export SANDBOX_CLOUD_PLATFORM_BASE_URL=https://your-platform-host
export SANDBOX_CLOUD_PLATFORM_API_KEY=...   # OIDC-only platform → Bearer
harbor run -d terminal-bench@2.0 \
    --environment-import-path sandbox_cloud_harbor_environment:SandboxCloudHarborEnvironment
```

## Compatibility

- Python 3.11+
- `httpx >= 0.27`, `pydantic >= 2`
- `swe-rex == 1.4.0` (via the `swerex` extra; without it, `integrations.swerex` falls back to local dataclasses)

## License

[MPL-2.0](LICENSE) — source-available; modifications are permitted, and modified covered files' source must be published on distribution (file-level copyleft).
