# sanad_api_x2 — AGIBOT X2 fleet agent.
requests>=2.31,<3
# only needed if X2_POSITION_SOURCE=rosbridge (reads /odom over a websocket):
websocket-client>=1.6,<2
# NOT installed here:
#   rclpy    — comes from the ROS base image (see Dockerfile BASE_IMAGE); it is
#              not on PyPI and must match the robot's ROS distro.
#   aimrt_py — AgiBot's runtime, installed with their stack if you use it.
# The agent degrades to heartbeat mode when no state source is reachable, so a
# missing backend never stops telemetry.
