instruction
In the Spck Editor app, add new file with the name java
previous_actions
active_application
Sublime Text
screen_description
windows {
  bounds_in_screen {
    right: 1080
    bottom: 136
  }
  layer: 1
  window_type: TYPE_SYSTEM
  tree {
    nodes {
      bounds_in_screen {
        right: 1080
        bottom: 136
      }
      class_name: "android.widget.FrameLayout"
    }
    nodes {
      bounds_in_screen {
        right: 1080
        bottom: 136
      }
      class_name: "android.widget.FrameLayout"
      depth: 1
    }
    nodes {
      bounds_in_screen {
        right: 1080
        bottom: 136
      }
      class_name: "android.widget.FrameLayout"
      depth: 1
    }
    nodes {
      bounds_in_screen {
        right: 1080
        bottom: 136
      }
      class_name: "android.widget.FrameLayout"
      depth: 1
    }
    nodes {
      bounds_in_screen {
        right: 1080
        bottom: 136
      }
      class_name: "android.widget.FrameLayout"
      depth: 2
    }
    nodes {
      bounds_in_screen {
        left: 145
        right: 1027
        bottom: 136
      }
      class_name: "android.widget.LinearLayout"
      depth: 3
    }
    nodes {
      bounds_in_screen {
        left: 145
        top: 1
        right: 575
        bottom: 136
      }
      class_name: "android.widget.FrameLayout"
      depth: 4
    }
    nodes {
      bounds_in_screen {
        left: 575
        top: 1
        right: 1006
        bottom: 136
      }
      class_name: "android.widget.FrameLayout"
      depth: 4
    }
    nodes {
      bounds_in_screen {
        left: 145
        top: 1
        right: 513
        bottom: 136
      }
      class_name: "android.widget.FrameLayout"
      depth: 5
    }
    nodes {
      bounds_in_screen {
        left: 970
        top: 1
        right: 1006
        bottom: 136
      }
      class_name: "android.widget.LinearLayout"
      depth: 5
    }
    nodes {
      bounds_in_screen {
        left: 145
        top: 1
        right: 513
        bottom: 136
      }
      class_name: "android.widget.LinearLayout"
      depth: 6
    }
    nodes {
      bounds_in_screen {
        left: 970
        top: 1
        right: 1006
        bottom: 136
      }
      class_name: "android.widget.LinearLayout"
      depth: 6
    }
    nodes {
      bounds_in_screen {
        left: 145
        top: 1
        right: 223
        bottom: 136
      }
      class_name: "android.widget.TextView"
      content_description: "1:39 PM"
      text: "1:39"
      depth: 7
    }
    nodes {
      bounds_in_screen {
        left: 223
        top: 1
        right: 513
        bottom: 136
      }
      class_name: "android.widget.FrameLayout"
      depth: 7
    }
    nodes {
      bounds_in_screen {
        left: 970
        top: 1
        right: 986
        bottom: 136
      }
      class_name: "android.widget.LinearLayout"
      depth: 7
    }
    nodes {
      bounds_in_screen {
        left: 986
        top: 1
        right: 1006
        bottom: 136
      }
      class_name: "android.widget.LinearLayout"
      content_description: "Battery charging, 100 percent."
      depth: 7
    }
    nodes {
      bounds_in_screen {
        left: 223
        top: 1
        right: 513
        bottom: 136
      }
      class_name: "android.view.ViewGroup"
      depth: 8
    }
    nodes {
      bounds_in_screen {
        left: 986
        top: 51
        right: 1006
        bottom: 85
      }
      class_name: "android.widget.ImageView"
      depth: 8
    }
    nodes {
      bounds_in_screen {
        left: 223
        top: 1
        right: 281
        bottom: 136
      }
      class_name: "android.widget.ImageView"
      content_description: "Weather notification: 35°"
      depth: 9
    }
    nodes {
      bounds_in_screen {
        left: 281
        top: 1
        right: 339
        bottom: 136
      }
      class_name: "android.widget.ImageView"
      content_description: "MakeMyTrip notification: Thankyou For the Visit"
      depth: 9
    }
    nodes {
      bounds_in_screen {
        left: 339
        top: 1
        right: 397
        bottom: 136
      }
      class_name: "android.widget.ImageView"
      content_description: "ixigo trains notification: Travel ka phal meetha hota hai💰"
      depth: 9
    }
    nodes {
      bounds_in_screen {
        left: 397
        top: 1
        right: 455
        bottom: 136
      }
      class_name: "android.widget.ImageView"
      content_description: "Android System notification: Wi‑Fi will turn on automatically"
      depth: 9
    }
    nodes {
      bounds_in_screen {
        left: 455
        top: 1
        right: 513
        bottom: 136
      }
      class_name: "android.widget.ImageView"
      content_description: "Photos notification: New! Hide sensitive photos & videos"
      depth: 9
    }
    nodes {
      bounds_in_screen {
        left: 473
        top: 1
        right: 513
        bottom: 136
      }
      class_name: "android.widget.ImageView"
      content_description: "Google notification: 28° in Bandhwari"
      depth: 9
    }
  }
}
windows {
  bounds_in_screen {
    right: 1080
    bottom: 2400
  }
  id: 903
  title: "Sublime Text"
  window_type: TYPE_APPLICATION
  is_active: true
  is_focused: true
  tree {
    nodes {
      bounds_in_screen {
        right: 1080
        bottom: 2400
      }
      class_name: "android.widget.FrameLayout"
    }
    nodes {
      bounds_in_screen {
        right: 1080
        bottom: 2337
      }
      class_name: "android.widget.LinearLayout"
      depth: 1
    }
    nodes {
      bounds_in_screen {
        right: 1080
        bottom: 136
      }
      class_name: "android.view.View"
      depth: 1
    }
    nodes {
      bounds_in_screen {
        top: 2337
        right: 1080
        bottom: 2400
      }
      class_name: "android.view.View"
      depth: 1
    }
    nodes {
      bounds_in_screen {
        top: 136
        right: 1080
        bottom: 2337
      }
      class_name: "android.widget.FrameLayout"
      depth: 2
    }
    nodes {
      bounds_in_screen {
        top: 136
        right: 1080
        bottom: 2337
      }
      class_name: "android.widget.FrameLayout"
      depth: 3
    }
    nodes {
      bounds_in_screen {
        top: 136
        right: 1080
        bottom: 2337
      }
      class_name: "android.widget.FrameLayout"
      depth: 4
    }
    nodes {
      bounds_in_screen {
        top: 136
        right: 1080
        bottom: 2337
      }
      class_name: "android.widget.LinearLayout"
      depth: 5
    }
    nodes {
      bounds_in_screen {
        top: 136
        right: 1080
        bottom: 2206
      }
      class_name: "androidx.drawerlayout.widget.DrawerLayout"
      depth: 6
    }
    nodes {
      bounds_in_screen {
        top: 2206
        right: 1080
        bottom: 2337
      }
      class_name: "android.widget.FrameLayout"
      depth: 6
    }
    nodes {
      bounds_in_screen {
        top: 136
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.LinearLayout"
      depth: 7
    }
    nodes {
      bounds_in_screen {
        top: 2206
        right: 1080
        bottom: 2337
      }
      class_name: "android.widget.RelativeLayout"
      depth: 7
    }
    nodes {
      bounds_in_screen {
        top: 136
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.LinearLayout"
      depth: 8
    }
    nodes {
      bounds_in_screen {
        top: 2206
        right: 1080
        bottom: 2337
      }
      class_name: "android.view.View"
      depth: 8
    }
    nodes {
      bounds_in_screen {
        left: 120
        top: 2206
        right: 960
        bottom: 2337
      }
      class_name: "android.widget.RelativeLayout"
      depth: 8
    }
    nodes {
      bounds_in_screen {
        top: 136
        right: 1080
        bottom: 283
      }
      class_name: "android.view.ViewGroup"
      depth: 9
    }
    nodes {
      bounds_in_screen {
        top: 283
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.FrameLayout"
      depth: 9
    }
    nodes {
      bounds_in_screen {
        left: 120
        top: 2206
        right: 960
        bottom: 2337
      }
      class_name: "android.webkit.WebView"
      depth: 9
    }
    nodes {
      bounds_in_screen {
        top: 136
        right: 147
        bottom: 283
      }
      class_name: "android.widget.ImageButton"
      content_description: "Sublime Text"
      is_clickable: true
      is_focusable: true
      depth: 10
    }
    nodes {
      bounds_in_screen {
        left: 157
        top: 174
        right: 348
        bottom: 245
      }
      class_name: "android.widget.TextView"
      text: "New file"
      depth: 10
    }
    nodes {
      bounds_in_screen {
        left: 594
        top: 136
        right: 1080
        bottom: 283
      }
      class_name: "androidx.appcompat.widget.LinearLayoutCompat"
      depth: 10
    }
    nodes {
      bounds_in_screen {
        top: 283
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.ScrollView"
      is_focusable: true
      depth: 10
    }
    nodes {
      bounds_in_screen {
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.HorizontalScrollView"
      is_focusable: true
      is_scrollable: true
      depth: 10
    }
    nodes {
      bounds_in_screen {
        left: 120
        top: 2206
        right: 960
        bottom: 2338
      }
      class_name: "android.webkit.WebView"
      is_focusable: true
      is_focused: true
      is_scrollable: true
      depth: 10
    }
    nodes {
      bounds_in_screen {
        left: 594
        top: 146
        right: 721
        bottom: 272
      }
      class_name: "android.widget.TextView"
      content_description: "Save"
      is_clickable: true
      is_focusable: true
      is_long_clickable: true
      depth: 11
      tooltip_text: "Save"
    }
    nodes {
      bounds_in_screen {
        left: 721
        top: 146
        right: 848
        bottom: 272
      }
      class_name: "android.widget.TextView"
      content_description: "Find"
      is_clickable: true
      is_focusable: true
      depth: 11
      tooltip_text: "Find"
    }
    nodes {
      bounds_in_screen {
        left: 848
        top: 146
        right: 975
        bottom: 272
      }
      class_name: "android.widget.TextView"
      content_description: "Share"
      is_clickable: true
      is_focusable: true
      depth: 11
      tooltip_text: "Share"
    }
    nodes {
      bounds_in_screen {
        left: 975
        top: 146
        right: 1080
        bottom: 272
      }
      class_name: "android.widget.ImageView"
      content_description: "More options"
      is_clickable: true
      is_focusable: true
      is_long_clickable: true
      depth: 11
      tooltip_text: "More options"
    }
    nodes {
      bounds_in_screen {
        top: 283
        right: 1080
        bottom: 2075
      }
      class_name: "android.widget.EditText"
      is_clickable: true
      is_editable: true
      is_focusable: true
      is_long_clickable: true
      depth: 11
    }
    nodes {
      bounds_in_screen {
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.LinearLayout"
      depth: 11
    }
    nodes {
      bounds_in_screen {
        left: 120
        top: 2206
        right: 960
        bottom: 2338
      }
      class_name: "android.view.View"
      depth: 11
    }
    nodes {
      bounds_in_screen {
        top: 2075
        right: 131
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "<"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 131
        top: 2075
        right: 262
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: ">"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 262
        top: 2075
        right: 393
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "!"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 393
        top: 2075
        right: 524
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "/"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 524
        top: 2075
        right: 655
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "."
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 655
        top: 2075
        right: 786
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: ";"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 786
        top: 2075
        right: 917
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "="
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 917
        top: 2075
        right: 1048
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "\""
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 1048
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "{"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 1179
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "}"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 1310
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "["
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 1441
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "]"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 1572
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "("
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 1703
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: ")"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 1834
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "&"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 1965
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "|"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 2096
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "#"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 2227
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "*"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 2358
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "+"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 2489
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "-"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 2620
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: ":"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 2751
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "%"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 2882
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: ","
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 3013
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "_"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 3144
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "@"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 3275
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "?"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 3406
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "^"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 3537
        top: 2075
        right: 1080
        bottom: 2206
      }
      class_name: "android.widget.Button"
      text: "\'"
      is_clickable: true
      is_focusable: true
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 120
        top: 2206
        right: 960
        bottom: 2338
      }
      class_name: "android.view.View"
      content_description: "Rapido - India’s Largest Bike Taxi Booking App"
      is_clickable: true
      is_focusable: true
      clickable_spans {
        text: "Rapido - India’s Largest Bike Taxi Booking App"
        source: CONTENT_DESCRIPTION
        node_id: 48
      }
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 120
        top: 2347
        right: 125
        bottom: 2338
      }
      class_name: "android.widget.Image"
      text: "com.rapido.passenger?c=UA+-+Android+-+WorldCup-Festive&af_c_id=28802&af_adset=&af_adset_id=35920&af_ad=Cricket_320x50&af_ad_id=6771636&af_ad_type=IMAGE&af_siteid=com.csgroup"
      depth: 12
    }
    nodes {
      bounds_in_screen {
        left: 120
        top: 2206
        right: 960
        bottom: 2338
      }
      class_name: "android.widget.Image"
      text: "Rapido - India’s Largest Bike Taxi Booking App"
      depth: 13
    }
  }
}

assistant
!FUNCTIONCALL{"name": "open_app", "parameters": {"app_name": "Spck Editor"}}
[{"type": "function", "function": {"name": "click", "description": "Click on a specific location on the screen", "parameters": {"type": "object", "properties": {"x": {"type": "integer", "description": "Coordinate on the x axis to click."}, "y": {"type": "integer", "description": "Coordinate on the y axis to click."}}, "required": ["x", "y"]}}}, {"type": "function", "function": {"name": "long_press", "description": "Long press on a specific location on the screen.", "parameters": {"type": "object", "properties": {"x": {"type": "integer", "description": "Coordinate on the x axis to long press."}, "y": {"type": "integer", "description": "Coordinate on the y axis to long press."}}, "required": ["x", "y"]}}}, {"type": "function", "function": {"name": "input_text", "description": "Write text inside of an already selected text field, typically this is preceeded by a 'click' action that selects a field on the screen to type into.", "parameters": {"type": "object", "properties": {"text": {"type": "string", "description": "The text to input in the field."}}, "required": ["text"]}}}, {"type": "function", "function": {"name": "scroll", "description": "Scroll a fixed amount in a specific direction.", "parameters": {"type": "object", "properties": {"direction": {"type": "string", "enum": ["up", "down", "left", "right"], "description": "The direction to scroll in."}}, "required": ["direction"]}}}, {"type": "function", "function": {"name": "navigate_home", "description": "Navigate to the home screen from the current screen you are on.", "parameters": {"type": "object", "properties": {}}}}, {"type": "function", "function": {"name": "navigate_back", "description": "Navigate back to the previous page.", "parameters": {"type": "object", "properties": {}}}}, {"type": "function", "function": {"name": "open_app", "description": "Open an application.", "parameters": {"type": "object", "properties": {"app_name": {"type": "string", "description": "The name of the application to open."}}, "required": ["app_name"]}}}, {"type": "function", "function": {"name": "wait", "description": "Wait for a fixed amount of time. This is useful when you need to 'await' the results of a page that is still loading.", "parameters": {"type": "object", "properties": {}}}}, {"type": "function", "function": {"name": "status", "description": "Once you have completed the work required to fulfill an instruction, report your status by calling this function with 'successful'. If you find that a task is impossible to complete,  call this with 'infeasible' after finding that information.", "parameters": {"type": "object", "properties": {"goal_status": {"type": "string", "enum": ["successful", "infeasible"], "description": "The status of the completion of a instruction, either 'successful' or 'infeasible', called to conclude an episode."}}, "required": ["goal_status"]}}}]