Metadata-Version: 2.4
Name: synth-env
Version: 0.0.1.dev1
Author-email: Synth AI <josh@usesynth.ai>
License: MIT
Project-URL: Homepage, https://github.com/synth-laboratories/Environments
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pydantic
Requires-Dist: python-dotenv>=1.0.1
Requires-Dist: pytest>=8.3.3
Requires-Dist: pydantic-openapi-schema>=1.5.1
Requires-Dist: pytest-asyncio>=0.24.0
Requires-Dist: numpy>=2.2.3
Requires-Dist: networkx>=3.4.2
Requires-Dist: synth-ai
Requires-Dist: synth-sdk
Requires-Dist: crafter>=1.8.3
Requires-Dist: fastapi>=0.115.12
Requires-Dist: gym-sokoban>=0.0.6
Requires-Dist: gymnasium>=1.1.1
Requires-Dist: uvicorn>=0.34.2
Requires-Dist: ty>=0.0.1a5
Requires-Dist: ruff>=0.11.10
Requires-Dist: pyboy>=2.6.0
Requires-Dist: setuptools>=80.8.0
Requires-Dist: psutil>=7.0.0
Dynamic: license-file

# Environments
Synthetic Environments / Long Horizon Tasks / Digital Control Agents

![Coverage](https://img.shields.io/badge/coverage-42.3%25-yellow)
![Python](https://img.shields.io/badge/python-3.11+-blue)
![License](https://img.shields.io/badge/license-MIT-green)
![Tests](https://img.shields.io/badge/tests-passing-brightgreen)

# Motivation
- We're building Environments to have key desiderata for long-horizon language agents
- Snapshotting and reproducibility
- Statefulness as a first-class citizen
- Consistent abstractions for engine interaction and state reads across settings
- Environment observability and tracing
- HTTP access for simplified training and evaluation
- Strong data abstractions to enable easily-configurable filtering and curriculum learning
- Simple abstractions for agent-originated tool edits, etc.

# User Guide
Note - this repo is under extremely active development. Hic sunt dracones, if not contributing it may be more useful as a reference or development resource than as core code for your production systems.

# Supported Environments
[] Sokoban (maturing, not active dev)
    - This environment is not of our own making! Please credit the great researchers at [Deepmind](https://deepmind.google/discover/blog/agents-that-imagine-and-plan/) and [Ragen](https://ragen-ai.github.io), among others.
    - Checkout test_synth_react.py for a hello world example!
[] Hendryks Math [] (maturing)
[] Crafter-Classic (maturing)
[] EnronBench (active dev)
[] SWE-Bench (active dev - do not attempt)
[] NMMO (active dev - do not attempt)
[] Red (active dev)
[] Verilog (maturing)

...

# Development

To use the Astral suite of devtools:
- Package management: `uv sync`, `uv add`, `uv remove`
- Linting: `ruff format .`
- Type checking: `uvx ty check`

## Testing and Coverage

Run tests with coverage:
```bash
# Run all tests with coverage report
pytest tests/ --cov=src --cov-report=html --cov-report=term

# Run specific test files
pytest tests/unit/test_registry.py

# Run with verbose output
pytest tests/ -v
```

Current test coverage: **42.3%**

The test suite includes:
- **Unit tests** for core components (registry, environments, engines)
- **Integration tests** for service API endpoints
- **Q* solver tests** for Sokoban environment
- No AI agent demos in tests (algorithmic solving only)

