guidance_prompt = """
### Guidance: 
    First generate abstract sequence, further convert into waypoints"""

action_prompt = """
### Actions for execution:
    [MOVE_X] target_x (grab)
    [MOVE_Y] target_y (grab)
    [MOVE_Z] target_z (grab)
    [GRIP] 
    [PUSH] target_x target_y target_z (grab)
    [PULL] target_x target_y target_z (grab)"""


####################################################################################################

faucet_open_demo_prompt = [
    f"""
### Task Instruction: 
    Faucet Open

### Object Kinematic Knowledge:
    <hand pos="0.006 0.400 0.195"/>
    <joint pos="0.020 0.821 0.124" type="hinge" range="-1.57 1.57" axis="0 0 1"/>
    <faucet pos="0.020 0.671 0.124"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1  Align with faucet's y position (0.671)
    2. Go to faucet's x position (0.020)
    3. Go smaller x value than faucet's x position (-0.080)
    4. Align with faucet's z position (0.124)
    5. Now push the faucet toward front left direction (0.220, 0.871, 0.124)

### 3D Manipulation Waypoints:
    [MOVE_Y] 0.671
    [MOVE_X] 0.020
    [MOVE_X] -0.080
    [MOVE_Z] 0.124
    [PUSH] 0.220 0.871 0.124
""",
    f"""
### Task Instruction: 
    Faucet Open

### Object Kinematic Knowledge:
    <hand pos="0.006 0.400 0.195"/>
    <joint pos="-0.011 0.833 0.124" type="hinge" range="-1.57 1.57" axis="0 0 1"/>
    <faucet pos="-0.011 0.683 0.124"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1  Align with faucet's y position (0.683)
    2. Go to faucet's x position (-0.011)
    3. Go smaller x value than faucet's x position (-0.111)
    4. Align with faucet's z position (0.124)
    5. Now push the faucet toward front left direction (0.189, 0.883, 0.124)

### 3D Manipulation Waypoints:
    [MOVE_Y] 0.683
    [MOVE_X] -0.011
    [MOVE_X] -0.111
    [MOVE_Z] 0.124
    [PUSH] 0.189 0.883 0.124
""",
    f"""
### Task Instruction: 
    Faucet Open

### Object Kinematic Knowledge:
    <hand pos="0.006 0.400 0.195"/>
    <joint pos="-0.047 0.837 0.124" type="hinge" range="-1.57 1.57" axis="0 0 1"/>
    <faucet pos="-0.047 0.687 0.124"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1  Align with faucet's y position (0.683)
    2. Go to faucet's x position (-0.047)
    3. Go smaller x value than faucet's x position (-0.147)
    4. Align with faucet's z position (0.124)
    5. Now push the faucet toward front left direction (0.153, 0.883, 0.124)

### 3D Manipulation Waypoints:
    [MOVE_Y] 0.683
    [MOVE_X] -0.047
    [MOVE_X] -0.147
    [MOVE_Z] 0.124
    [PUSH] 0.153 0.883 0.124
""",
    f"""
### Task Instruction: 
    Faucet Open

### Object Kinematic Knowledge:
    <hand pos="0.006 0.400 0.195"/>
    <joint pos="0.007 0.839 0.124" type="hinge" range="-1.57 1.57" axis="0 0 1"/>
    <faucet pos="0.007 0.689 0.124"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1  Align with faucet's y position (0.689)
    2. Go to faucet's x position (0.007)
    3. Go smaller x value than faucet's x position (-0.093)
    4. Align with faucet's z position (0.124)
    5. Now push the faucet toward front left direction (0.207, 0.889, 0.124)

### 3D Manipulation Waypoints:
    [MOVE_Y] 0.683
    [MOVE_X] 0.007
    [MOVE_X] -0.093
    [MOVE_Z] 0.124
    [PUSH] 0.207 0.889 0.124
""",
    f"""
### Task Instruction: 
    Faucet Open

### Object Kinematic Knowledge:
    <hand pos="0.006 0.400 0.195"/>
    <joint pos="-0.037 0.849 0.124" type="hinge" range="-1.57 1.57" axis="0 0 1"/>
    <faucet pos="-0.037 0.699 0.124"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1  Align with faucet's y position (0.699)
    2. Go to faucet's x position (-0.037)
    3. Go smaller x value than faucet's x position (-0.137)
    4. Align with faucet's z position (0.124)
    5. Now push the faucet toward front left direction (0.163, 0.899, 0.124)

### 3D Manipulation Waypoints:
    [MOVE_Y] 0.699
    [MOVE_X] -0.037
    [MOVE_X] -0.137
    [MOVE_Z] 0.124
    [PUSH] 0.163 0.899 0.124
""",
    f"""
### Task Instruction: 
    Faucet Open

### Object Kinematic Knowledge:
    <hand pos="0.006 0.400 0.195"/>
    <joint pos="-0.013 0.840 0.124" type="hinge" range="-1.57 1.57" axis="0 0 1"/>
    <faucet pos="-0.013 0.690 0.124"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1  Align with faucet's y position (0.690)
    2. Go to faucet's x position (-0.013)
    3. Go smaller x value than faucet's x position (-0.113)
    4. Align with faucet's z position (0.124)
    5. Now push the faucet toward front left direction (0.187, 0.890, 0.124)

### 3D Manipulation Waypoints:
    [MOVE_Y] 0.690    
    [MOVE_X] -0.013
    [MOVE_X] -0.113
    [MOVE_Z] 0.124
    [PUSH] 0.187 0.890 0.124
""",
]
