nodes:
  - id: aloha-client
    custom:
      source: cargo
      args: run -p aloha-client --release
      inputs:
        puppet_goal_position: replay/puppet_goal_position
        tick: dora/timer/millis/20
      outputs:
        - puppet_position

  - id: replay
    custom:
      source: ../nodes/replay.py
      inputs:
        action: policy/action
      outputs:
        - puppet_goal_position

  - id: whisper
    custom:
      source: ../nodes/whisper_node.py
      inputs:
        tick: dora/timer/millis/20
      outputs:
        - text_llm
        - text_policy

  - id: llm
    operator:
      python: ../nodes/llm_op.py
      inputs:
        text: whisper/text_llm

  - id: policy
    operator:
      python: ../nodes/policy.py
      inputs:
        speech: whisper/text_policy
      outputs:
        - action

  - id: plot
    custom:
      source: ../nodes/plot_node.py
      inputs:
        image: webcam/image
        position: aloha-client/puppet_position
        text_policy: whisper/text_policy
        text_llm: whisper/text_llm
      envs:
        IMAGE_WIDTH: 1280
        IMAGE_HEIGHT: 720
  
  - id: webcam
    custom:
      source: ../nodes/realsense_node.py
      inputs:
        tick: dora/timer/millis/20
      outputs:
        - image