Metadata-Version: 2.3
Name: cyberwave
Version: 0.1.3
Summary: Python SDK for the CyberWave Platform
Author: Your Name
Author-email: you@example.com
Requires-Python: >=3.9,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Dist: aiofiles (>=23.2.1,<24.0.0)
Requires-Dist: httpx (>=0.27.0,<0.28.0)
Requires-Dist: jsonschema (>=4.21.1,<5.0.0)
Requires-Dist: keyring (>=25.0.0,<26.0.0)
Requires-Dist: numpy (>=1.26.4,<2.0.0)
Requires-Dist: pydantic (>=2.7.0,<3.0.0)
Requires-Dist: pyyaml (>=6.0.1,<7.0.0)
Requires-Dist: rerun-sdk (>=0.16.0,<0.17.0)
Description-Content-Type: text/markdown

Cyberwave SDK (MVP)

This package exposes a minimal, synchronous facade for Missions and Runs to enable quick demos and developer onboarding.

Quickstart

```python
from cyberwave import Cyberwave, Mission

cw = Cyberwave(base_url="http://localhost:8000", token="<TOKEN>")

mission = Mission(key="so101/PickOrange", version=1, name="Pick Orange into Bin")
(mission.world()
  .asset("props/table-simple", alias="table")
  .asset("props/bin", alias="bin")
  .asset("props/orange", alias="orange1")
  .place("table",   [0,0,0, 1,0,0,0])
  .place("bin",     [0.6,0,0.8, 1,0,0,0])
  .place("orange1", [0.1,0,0.8, 1,0,0,0])
)
mission.parameters["seed"] = 42
mission.goal_object_in_zone("orange1", "bin", tolerance_m=0.05, hold_s=2.0)

cw.missions.register(mission)
run = cw.runs.start(environment_uuid="<ENV_UUID>", mission_key=mission.key, mission_version=mission.version, parameters=mission.parameters, mode="virtual")
print("run:", run["uuid"]) 
```

See `examples/quickstart_mvp.py` for a complete script with teleop and command calls.


