robopark 2.8.10 → 2.8.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "robopark",
3
- "version": "2.8.10",
3
+ "version": "2.8.12",
4
4
  "description": "RoboPark fleet control CLI — set up, watch, and drive a fleet of talking robots. The operator front-end over the infinicode mesh.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -142,6 +142,7 @@ class PreviewAgent:
142
142
  self.robot_id = cfg.get("robot_id", os.getenv("ROBOT_ID", _hostname()))
143
143
  self.device_token: Optional[str] = cfg.get("device_token") or os.getenv("DEVICE_TOKEN") or _load_token()
144
144
  self.device_id: Optional[str] = cfg.get("device_id")
145
+ self.enrollment_token: Optional[str] = cfg.get("enrollment_token")
145
146
  self.video_device = cfg.get("video_device", os.getenv("VIDEO_DEVICE", "auto"))
146
147
  self.audio_device = cfg.get("audio_device", os.getenv("AUDIO_DEVICE", "default"))
147
148
  self.width = int(cfg.get("video_width", os.getenv("VIDEO_WIDTH", DEFAULT_VIDEO_WIDTH)))
@@ -157,7 +158,7 @@ class PreviewAgent:
157
158
  self._publisher: Optional["LiveKitPublisher"] = None
158
159
 
159
160
  async def run(self) -> None:
160
- enrollment_token = os.getenv("ENROLLMENT_TOKEN") or cfg.get("enrollment_token")
161
+ enrollment_token = os.getenv("ENROLLMENT_TOKEN") or self.enrollment_token
161
162
  if not self.device_token and enrollment_token:
162
163
  self.device_token = await _enroll(self.scheduler_url, enrollment_token, self.robot_id)
163
164
 
@@ -230,7 +231,7 @@ class PreviewAgent:
230
231
  if not self._session or not self.device_token:
231
232
  return PreviewState()
232
233
  r = await self._session.get(
233
- f"{self.scheduler_url.rstrip('/')}/api/robots/{self.robot_id}/preview/agent",
234
+ f"{self.scheduler_url.rstrip('/')}/api/robots/{self.device_id or self.robot_id}/preview/agent",
234
235
  headers={"Authorization": f"Bearer {self.device_token}"},
235
236
  timeout=10.0,
236
237
  )
@@ -0,0 +1,9 @@
1
+ # Python deps for the ROBOT/PI side only (preview_agent.py) — a subset of
2
+ # requirements.txt, which also covers the scheduler server (fastapi/uvicorn/
3
+ # aiosqlite/etc). Keeping this split means a Pi/robot install doesn't pull in
4
+ # server-only packages it will never use.
5
+ httpx==0.27.2
6
+ livekit>=0.18
7
+ opencv-python>=4.8
8
+ pyaudio>=0.2
9
+ picamera2>=0.3; platform_machine == 'aarch64' or platform_machine == 'arm64'