- Status: ✅ CREATED
- File:
uv.lock - Last Updated: April 12, 2026
- Packages Resolved: 116 packages
- Purpose: Ensures reproducible builds with locked dependency versions
Verification:
ls -lah uv.lock
# Output: uv.lock (471 KB)- Status: ✅ CONFIGURED
- File:
pyproject.toml - Entry Point:
server = "server.app:main" - Location: Line 26 of
[project.scripts]
Configuration:
[project.scripts]
server = "server.app:main"Usage:
# After installation, run server with:
python -m pip install -e .
server
# Or directly:
python -c "from server.app import main; main()"- Status: ✅ SPECIFIED
- File:
pyproject.toml - Dependency:
openenv-core>=0.2.0 - Location: Line 17 of
[project.dependencies]
Full Dependency Stack:
dependencies = [
"openenv-core>=0.2.0",
"fastapi>=0.116.1",
"uvicorn[standard]>=0.35.0",
"pydantic>=2.11.7",
"openai>=1.99.9",
"python-dotenv>=1.0.1"
]- Status: ✅ EXISTS
- File:
server/app.py - Main Function:
main()at line 109 - FastAPI App: Initialized with OpenEnv environment
Server Features:
- FastAPI application on configurable host/port
- Environment variables:
HOST(default: 0.0.0.0),PORT(default: 8000) - Endpoints:
GET /- Home with metadataGET /metadata- Environment metadataGET /tasks- List available tasksPOST /reset/{task_id}- Reset environmentPOST /step- Execute actionGET|POST /grade- Get final score
docker build -t scaler:latest .
docker run -p 8000:7860 scaler:latest# Using uv (fast)
uv pip install -e .
server
# Using pip
pip install -e .
python -m server.app# Heroku, Railway, Hugging Face Spaces, etc.
# Entry point: server.app:main (via uvicorn)
# Port: 8000 or env-configurablescaler/
├── pyproject.toml ✓ [project.scripts] configured
├── uv.lock ✓ 116 packages locked
├── requirements.txt ✓ Dependencies listed
├── Dockerfile ✓ Docker image definition
│
├── server/
│ ├── __init__.py ✓ Package marker
│ └── app.py ✓ FastAPI app + main()
│
├── openenv_env/
│ ├── __init__.py
│ ├── environment.py ✓ OpenEnv implementation
│ ├── spec.py ✓ Data models
│ └── tasks.py ✓ Task definitions
│
└── tests/
└── test_environment.py ✓ Test suite
| Component | Status | Details |
|---|---|---|
| Lock File | ✅ | uv.lock (116 pkgs) |
| Entry Point | ✅ | server = server.app:main |
| Dependencies | ✅ | openenv-core>=0.2.0 + 5 others |
| Server Code | ✅ | server/app.py with main() |
| Docker | ✅ | Dockerfile ready |
| CI/CD | ✅ | .github/workflows/ configured |
# Activate virtual environment
source .venv/bin/activate # Linux/Mac
.venv\Scripts\Activate.ps1 # Windows
# Run directly
python -m uvicorn server.app:app --reload --host 0.0.0.0 --port 8000# Using installed entry point
server
# Or via uvicorn
uvicorn server.app:app --host 0.0.0.0 --port 8000export HOST=0.0.0.0
export PORT=3000
server # Runs on port 3000# Check health
curl http://localhost:8000/
# List available tasks
curl http://localhost:8000/tasks
# Get metadata
curl http://localhost:8000/metadata
# Reset and play
curl -X POST http://localhost:8000/reset/easy_robot_assembly
# Execute action
curl -X POST http://localhost:8000/step \
-H "Content-Type: application/json" \
-d '{"command":"add_part","args":{"part_type":"arms"}}'
# Get grade
curl http://localhost:8000/gradeAll requirements for multi-mode deployment have been satisfied. The application is ready for:
- ✅ Local development
- ✅ Docker containerization
- ✅ Cloud deployment (Heroku, Railway, Hugging Face Spaces)
- ✅ CI/CD automated builds
- ✅ Reproducible production builds (via
uv.lock)
Next Steps:
- Run
serverto start the development server - Deploy with
docker buildfor production - CI/CD automatically tests and builds on push