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)"""


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

drawer_close_demo_prompt = [
    f"""
### Task Instruction: 
    Drawer Close

### Object Kinematic Knowledge:
    <hand pos="0.006 0.600 0.194"/>
    <joint pos="-0.029 0.740 0.090" type="slide" axis="0 1 0" range="-0.16 0"/>
    <handle pos="-0.029 0.600 0.090"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Move up so later hand can be descended to handle (0.150) 
    2. Align with handle's x position (-0.029)
    3. Align with handle's y position (0.600)
    4. Descend hand to place handle between grippers (0.095)
    5. Now push the handle toward front direction to close the drawer (-0.029, 0.900, 0.095) 

### 3D Manipulation Waypoints:
    [MOVE_Z] 0.150
    [MOVE_X] -0.029
    [MOVE_Y] 0.600
    [MOVE_Z] 0.095
    [PUSH] -0.029 0.900 0.095
""",
    f"""
### Task Instruction: 
    Drawer Close

### Object Kinematic Knowledge:
    <hand pos="0.006 0.600 0.194"/>
    <joint pos="-0.039 0.740 0.090" type="slide" axis="0 1 0" range="-0.16 0"/>
    <handle pos="-0.039 0.600 0.090"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Move up so later hand can be descended to handle (0.150) 
    2. Align with handle's x position (-0.039)
    3. Align with handle's y position (0.600)
    4. Descend hand to place handle between grippers (0.095)
    5. Now push the handle toward front direction to close the drawer (-0.039, 0.900, 0.095) 

### 3D Manipulation Waypoints:
    [MOVE_Z] 0.150
    [MOVE_X] -0.039
    [MOVE_Y] 0.600
    [MOVE_Z] 0.095
    [PUSH] -0.039 0.900 0.095
""",
    f"""
### Task Instruction: 
    Drawer Close

### Object Kinematic Knowledge:
    <hand pos="0.006 0.600 0.194"/>
    <joint pos="-0.029 0.740 0.090" type="slide" axis="0 1 0" range="-0.16 0"/>
    <handle pos="-0.029 0.600 0.090"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Move up so later hand can be descended to handle (0.150) 
    2. Align with handle's x position (-0.029)
    3. Align with handle's y position (0.600)
    4. Descend hand to place handle between grippers (0.095)
    5. Now push the handle toward front direction to close the drawer (-0.029, 0.900, 0.095) 

### 3D Manipulation Waypoints:
    [MOVE_Z] 0.150
    [MOVE_X] -0.029
    [MOVE_Y] 0.600
    [MOVE_Z] 0.095
    [PUSH] -0.029 0.900 0.095
""",
    f"""
### Task Instruction: 
    Drawer Close

### Object Kinematic Knowledge:
    <hand pos="0.006 0.600 0.194"/>
    <joint pos="-0.039 0.740 0.090" type="slide" axis="0 1 0" range="-0.16 0"/>
    <handle pos="-0.039 0.600 0.090"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Move up so later hand can be descended to handle (0.150) 
    2. Align with handle's x position (-0.039)
    3. Align with handle's y position (0.600)
    4. Descend hand to place handle between grippers (0.095)
    5. Now push the handle toward front direction to close the drawer (-0.039, 0.900, 0.095) 

### 3D Manipulation Waypoints:
    [MOVE_Z] 0.150
    [MOVE_X] -0.039
    [MOVE_Y] 0.600
    [MOVE_Z] 0.095
    [PUSH] -0.039 0.900 0.095
""",
    f"""
### Task Instruction: 
    Drawer Close

### Object Kinematic Knowledge:
    <hand pos="0.006 0.600 0.194"/>
    <joint pos="-0.029 0.740 0.090" type="slide" axis="0 1 0" range="-0.16 0"/>
    <handle pos="-0.029 0.600 0.090"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Move up so later hand can be descended to handle (0.150) 
    2. Align with handle's x position (-0.029)
    3. Align with handle's y position (0.600)
    4. Descend hand to place handle between grippers (0.095)
    5. Now push the handle toward front direction to close the drawer (-0.029, 0.900, 0.095) 

### 3D Manipulation Waypoints:
    [MOVE_Z] 0.150
    [MOVE_X] -0.029
    [MOVE_Y] 0.600
    [MOVE_Z] 0.095
    [PUSH] -0.029 0.900 0.095
""",
    f"""
### Task Instruction: 
    Drawer Close

### Object Kinematic Knowledge:
    <hand pos="0.006 0.600 0.194"/>
    <joint pos="-0.039 0.740 0.090" type="slide" axis="0 1 0" range="-0.16 0"/>
    <handle pos="-0.039 0.600 0.090"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Move up so later hand can be descended to handle (0.150) 
    2. Align with handle's x position (-0.039)
    3. Align with handle's y position (0.600)
    4. Descend hand to place handle between grippers (0.095)
    5. Now push the handle toward front direction to close the drawer (-0.039, 0.900, 0.095) 

### 3D Manipulation Waypoints:
    [MOVE_Z] 0.150
    [MOVE_X] -0.039
    [MOVE_Y] 0.600
    [MOVE_Z] 0.095
    [PUSH] -0.039 0.900 0.095
""",
]
