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


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

door_open_demo_prompt = [
    f"""
### Task Instruction: 
    Door Open

### Object Kinematic Knowledge:
    <hand pos="0.006 0.600 0.194"/>
    <joint pos="-0.121 0.801 0.150" type="hinge" axis="0 0 1" range="-2 0"/>
    <handle pos="0.274 0.681 0.150"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Move up so later hand can be descended between handle and door (0.270) 
    2. Align with handle's x position (0.274)
    3. Align with handle's y position (0.681)
    6. Descend hand between handle and the door (0.170)
    4. Now pull the handle toward right-back direction to open the door (-0.026, 0.481, 0.170)

### 3D Manipulation Waypoints:
    [MOVE_Z] 0.270
    [MOVE_X] 0.274
    [MOVE_Y] 0.681
    [MOVE_Z] 0.170
    [PULL] -0.026 0.481 0.170
""",
    f"""
### Task Instruction: 
    Door Open

### Object Kinematic Knowledge:
    <hand pos="0.006 0.600 0.194"/>
    <joint pos="-0.154 0.827 0.150" type="hinge" axis="0 0 1" range="-2 0"/>
    <handle pos="0.241 0.707 0.150"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Move up so later hand can be descended between handle and door (0.270) 
    2. Align with handle's x position (0.241)
    3. Align with handle's y position (0.707)
    6. Descend hand between handle and the door (0.170)
    4. Now pull the handle toward right-back direction to open the door (-0.059, 0.507, 0.170)

### 3D Manipulation Waypoints:
    [MOVE_Z] 0.270
    [MOVE_X] 0.241
    [MOVE_Y] 0.707
    [MOVE_Z] 0.170
    [PULL] -0.059 0.507 0.170
""",
    f"""
### Task Instruction: 
    Door Open

### Object Kinematic Knowledge:
    <hand pos="0.006 0.600 0.194"/>
    <joint pos="-0.152 0.824 0.150" type="hinge" axis="0 0 1" range="-2 0"/>
    <handle pos="0.243 0.704 0.150"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Move up so later hand can be descended between handle and door (0.270) 
    2. Align with handle's x position (0.243)
    3. Align with handle's y position (0.704)
    6. Descend hand between handle and the door (0.170)
    4. Now pull the handle toward right-back direction to open the door (-0.057, 0.504, 0.170)

### 3D Manipulation Waypoints:
    [MOVE_Z] 0.270
    [MOVE_X] 0.243
    [MOVE_Y] 0.704
    [MOVE_Z] 0.170
    [PULL] -0.057 0.504 0.170
""",
    f"""
### Task Instruction: 
    Door Open

### Object Kinematic Knowledge:
    <hand pos="0.006 0.600 0.194"/>
    <joint pos="-0.105 0.844 0.150" type="hinge" axis="0 0 1" range="-2 0"/>
    <handle pos="0.290 0.724 0.150"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Move up so later hand can be descended between handle and door (0.270) 
    2. Align with handle's x position (0.290)
    3. Align with handle's y position (0.724)
    6. Descend hand between handle and the door (0.170)
    4. Now pull the handle toward right-back direction to open the door (-0.010, 0.524, 0.170)

### 3D Manipulation Waypoints:
    [MOVE_Z] 0.270
    [MOVE_X] 0.290
    [MOVE_Y] 0.724
    [MOVE_Z] 0.170
    [PULL] -0.010 0.524 0.170
""",
    f"""
### Task Instruction: 
    Door Open

### Object Kinematic Knowledge:
    <hand pos="0.006 0.600 0.194"/>
    <joint pos="-0.164 0.832 0.150" type="hinge" axis="0 0 1" range="-2 0"/>
    <handle pos="0.231 0.712 0.150"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Move up so later hand can be descended between handle and door (0.270) 
    2. Align with handle's x position (0.231)
    3. Align with handle's y position (0.712)
    6. Descend hand between handle and the door (0.170)
    4. Now pull the handle toward right-back direction to open the door (-0.069, 0.512, 0.170)

### 3D Manipulation Waypoints:
    [MOVE_Z] 0.270
    [MOVE_X] 0.231
    [MOVE_Y] 0.712
    [MOVE_Z] 0.170
    [PULL] -0.069 0.512 0.170
""",
    f"""
### Task Instruction: 
    Door Open

### Object Kinematic Knowledge:
    <hand pos="0.006 0.600 0.194"/>
    <joint pos="-0.169 0.801 0.150" type="hinge" axis="0 0 1" range="-2 0"/>
    <handle pos="0.226 0.681 0.150"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Move up so later hand can be descended between handle and door (0.270) 
    2. Align with handle's x position (0.226)
    3. Align with handle's y position (0.681)
    6. Descend hand between handle and the door (0.170)
    4. Now pull the handle toward right-back direction to open the door (-0.074, 0.481, 0.170)

### 3D Manipulation Waypoints:
    [MOVE_Z] 0.270
    [MOVE_X] 0.226
    [MOVE_Y] 0.681
    [MOVE_Z] 0.170
    [PULL] -0.074 0.481 0.170
""",
]
