Deploy beso model as a WebSocket policy server (local or remote via SSH)
mkdir -p $AGENTROBOT_ROOT/logs
if [ -z "{node}" ] || [ "{node}" = "localhost" ]; then
LOG=$AGENTROBOT_ROOT/logs/beso-${HOSTNAME:-local}-{port}.log echo "Deploying beso locally (GPU {gpu_id}, port {port})..." if ss -tlnp 2>/dev/null | grep -q :{port}; then echo "ERROR: Port {port} already in use locally"; exit 1 fi cd $REPO && source .venv/bin/activate export PYTHONPATH=$AGENTROBOT_ROOT/agentic/policy_websocket/src:$REPO export CUDA_VISIBLE_DEVICES={gpu_id} nohup python3 policy_server.py --port {port} --checkpoint {checkpoint} > $LOG 2>&1 & echo "PID=$!" echo "Server starting locally on port {port}. Log: $LOG" else
LOG=$AGENTROBOT_ROOT/logs/beso-{node}-{port}.log if ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 {node} "ss -tlnp | grep :{port}" 2>/dev/null | grep -q :{port}; then echo "ERROR: Port {port} already in use on {node}"; exit 1 fi ssh -o StrictHostKeyChecking=no {node} " cd $REPO && source .venv/bin/activate export PYTHONPATH=$AGENTROBOT_ROOT/agentic/policy_websocket/src:$REPO export CUDA_VISIBLE_DEVICES={gpu_id} nohup python3 policy_server.py --port {port} --checkpoint {checkpoint} > $LOG 2>&1 & echo "PID=$!" " echo "Server starting on {node}:{port} (GPU {gpu_id}). Log: $LOG" fi echo "Wait ~90s for model to load."