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


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

button_press_demo_prompt = [
    f"""
### Task Instruction: 
    Button Press

### Object Kinematic Knowledge:
    <hand pos="0.006 0.400 0.195"/>
    <joint pos="0.058 0.876 0.115" type="slide" axis="0 -1 0" stiffness="0.5" range="-0.06 0" damping="1"/>
    <button pos="0.058 0.0.682 0.115"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Align with button's x position (0.058)
    2. Align with button's z position (0.115)
    3. Approach button's y position (0.682)
    4. Now push the button toward front direction (0.058, 0.982, 0.115)

### 3D Manipulation Waypoints:
    [MOVE_X] 0.058
    [MOVE_Z] 0.115
    [MOVE_Y] 0.682
    [PUSH] 0.058 0.982 0.115
""",
    f"""
### Task Instruction: 
    Button Press

### Object Kinematic Knowledge:
    <hand pos="0.006 0.400 0.195"/>
    <joint pos="0.038 0.885 0.115" type="slide" axis="0 -1 0" stiffness="0.5" range="-0.06 0" damping="1"/>
    <button pos="0.038 0.691 0.115"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Align with button's x position (0.038)
    2. Align with button's z position (0.115)
    3. Approach button's y position (0.691)
    4. Now push the button toward front direction (0.038, 0.991, 0.115)

### 3D Manipulation Waypoints:
    [MOVE_X] 0.038
    [MOVE_Z] 0.115
    [MOVE_Y] 0.691
    [PUSH] 0.038 0.991 0.115
""",
    f"""
### Task Instruction: 
    Button Press

### Object Kinematic Knowledge:
    <hand pos="0.006 0.400 0.195"/>
    <joint pos="0.050 0.869 0.115" type="slide" axis="0 -1 0" stiffness="0.5" range="-0.06 0" damping="1"/>
    <button pos="0.050 0.676 0.115"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Align with button's x position (0.050)
    2. Align with button's z position (0.115)
    3. Approach button's y position (0.676)
    4. Now push the button toward front direction (0.050, 0.976, 0.115)

### 3D Manipulation Waypoints:
    [MOVE_X] 0.050
    [MOVE_Z] 0.115
    [MOVE_Y] 0.676
    [PUSH] 0.050 0.976 0.115
""",
    f"""
### Task Instruction: 
    Button Press

### Object Kinematic Knowledge:
    <hand pos="0.006 0.400 0.195"/>
    <joint pos="0.059 0.893 0.115" type="slide" axis="0 -1 0" stiffness="0.5" range="-0.06 0" damping="1"/>
    <button pos="0.059 0.699 0.115"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Align with button's x position (0.059)
    2. Align with button's z position (0.115)
    3. Approach button's y position (0.699)
    4. Now push the button toward front direction (0.059, 0.999, 0.115)

### 3D Manipulation Waypoints:
    [MOVE_X] 0.059
    [MOVE_Z] 0.115
    [MOVE_Y] 0.699
    [PUSH] 0.059 0.999 0.115
""",
    f"""
### Task Instruction: 
    Button Press

### Object Kinematic Knowledge:
    <hand pos="0.006 0.400 0.195"/>
    <joint pos="0.086 0.897 0.115" type="slide" axis="0 -1 0" stiffness="0.5" range="-0.06 0" damping="1"/>
    <button pos="0.086 0.703 0.115"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Align with button's x position (0.086)
    2. Align with button's z position (0.115)
    3. Approach button's y position (0.703)
    4. Now push the button toward front direction (0.086, 1.000, 0.115)

### 3D Manipulation Waypoints:
    [MOVE_X] 0.086
    [MOVE_Z] 0.115
    [MOVE_Y] 0.703
    [PUSH] 0.086 1.000 0.115
""",
    f"""
### Task Instruction: 
    Button Press

### Object Kinematic Knowledge:
    <hand pos="0.006 0.400 0.195"/>
    <joint pos="0.100 0.892 0.115" type="slide" axis="0 -1 0" stiffness="0.5" range="-0.06 0" damping="1"/>
    <button pos="0.100 0.698 0.115"/>

{guidance_prompt}

{action_prompt}

### Abstract Manipulation Sequence:
    1. Align with button's x position (0.100)
    2. Align with button's z position (0.115)
    3. Approach button's y position (0.698)
    4. Now push the button toward front direction (0.100, 0.998, 0.115)

### 3D Manipulation Waypoints:
    [MOVE_X] 0.100
    [MOVE_Z] 0.115
    [MOVE_Y] 0.698
    [PUSH] 0.100 0.998 0.115
""",
]
