nodes:
  - id: dora-reachy1
    build: pip install -e ../../../node-hub/dora-reachy1
    path: dora-reachy1
    inputs:
      head_action: text-interpolation/head_action
      antenna_action: text-interpolation/antenna_action
      gripper_action: text-interpolation/gripper_action
      r_arm_action: text-interpolation/r_arm_action

  - id: keyboard-listener
    build: pip install dora-keyboard
    path: dora-keyboard
    outputs:
      - char

  - id: key-interpolation
    path: ../nodes/key_interpolation.py
    inputs:
      keyboard: keyboard-listener/char
    outputs:
      - r_arm_action
      - head_action
      - text

  - id: text-interpolation
    path: ../nodes/text_interpolation.py
    inputs:
      text: dora-qwenvl/tick
      text_2: key-interpolation/text
    outputs:
      - head_action
      - antenna_action
      - gripper_action
      - r_arm_action

  - id: camera
    build: pip install -e ../../../node-hub/dora-reachy1
    path: dora-reachy1-vision
    inputs:
      tick: dora/timer/millis/16
    outputs:
      - image
    env:
      CAPTURE_PATH: 8
      IMAGE_WIDTH: 640
      IMAGE_HEIGHT: 480

  - id: plot
    build: cargo install dora-rerun --locked
    path: dora-rerun
    inputs:
      image:
        source: camera/image
        queue_size: 1
      textlog_vlm: dora-qwenvl/tick
    env:
      IMAGE_WIDTH: 640
      IMAGE_HEIGHT: 480

  - id: dora-qwenvl
    build: pip install -e ../../../../dora/node-hub/dora-qwenvl
    path: dora-qwenvl
    inputs:
      image:
        source: camera/image
        queue_size: 1
      tick: dora/timer/millis/2000
    outputs:
      - text
      - tick
    env:
      DEFAULT_QUESTION: Respond with right, left, forward, backward, open, or close to grab the trash.
      CUSTOM_MODEL_PATH: /home/peter/Documents/work/LLaMA-Factory/saves/qwen2_vl-2b/lora-dora-demo-trash-2/sft
