autoglm-gui 1.5.0__py3-none-any.whl → 1.5.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- AutoGLM_GUI/agents/glm/agent.py +6 -1
- AutoGLM_GUI/agents/mai/agent.py +3 -0
- AutoGLM_GUI/agents/stream_runner.py +7 -2
- AutoGLM_GUI/api/agents.py +26 -1
- AutoGLM_GUI/api/history.py +27 -1
- AutoGLM_GUI/models/history.py +45 -1
- AutoGLM_GUI/scheduler_manager.py +52 -6
- AutoGLM_GUI/schemas.py +12 -0
- AutoGLM_GUI/static/assets/{about-BQm96DAl.js → about-CfwX1Cmc.js} +1 -1
- AutoGLM_GUI/static/assets/{alert-dialog-B42XxGPR.js → alert-dialog-CtGlN2IJ.js} +1 -1
- AutoGLM_GUI/static/assets/chat-BYa-foUI.js +129 -0
- AutoGLM_GUI/static/assets/{circle-alert-D4rSJh37.js → circle-alert-t08bEMPO.js} +1 -1
- AutoGLM_GUI/static/assets/{dialog-DZ78cEcj.js → dialog-FNwZJFwk.js} +1 -1
- AutoGLM_GUI/static/assets/eye-D0UPWCWC.js +1 -0
- AutoGLM_GUI/static/assets/history-CRo95B7i.js +1 -0
- AutoGLM_GUI/static/assets/{index-CmZSnDqc.js → index-BaLMSqd3.js} +1 -1
- AutoGLM_GUI/static/assets/{index-CssG-3TH.js → index-CTHbFvKl.js} +5 -5
- AutoGLM_GUI/static/assets/index-CV7jGxGm.css +1 -0
- AutoGLM_GUI/static/assets/{label-BCUzE_nm.js → label-DJFevVmr.js} +1 -1
- AutoGLM_GUI/static/assets/{logs-eoFxn5of.js → logs-RW09DyYY.js} +1 -1
- AutoGLM_GUI/static/assets/{popover-DLsuV5Sx.js → popover--JTJrE5v.js} +1 -1
- AutoGLM_GUI/static/assets/{scheduled-tasks-MyqGJvy_.js → scheduled-tasks-DTRKsQXF.js} +1 -1
- AutoGLM_GUI/static/assets/{square-pen-zGWYrdfj.js → square-pen-CPK_K680.js} +1 -1
- AutoGLM_GUI/static/assets/{textarea-BX6y7uM5.js → textarea-PRmVnWq5.js} +1 -1
- AutoGLM_GUI/static/assets/{workflows-CYFs6ssC.js → workflows-CdcsAoaT.js} +1 -1
- AutoGLM_GUI/static/index.html +2 -2
- {autoglm_gui-1.5.0.dist-info → autoglm_gui-1.5.1.dist-info}/METADATA +49 -7
- {autoglm_gui-1.5.0.dist-info → autoglm_gui-1.5.1.dist-info}/RECORD +31 -70
- AutoGLM_GUI/device_adapter.py +0 -263
- AutoGLM_GUI/static/assets/chat-C0L2gQYG.js +0 -129
- AutoGLM_GUI/static/assets/history-DFBv7TGc.js +0 -1
- AutoGLM_GUI/static/assets/index-Bzyv2yQ2.css +0 -1
- mai_agent/base.py +0 -137
- mai_agent/mai_grounding_agent.py +0 -263
- mai_agent/mai_naivigation_agent.py +0 -526
- mai_agent/prompt.py +0 -148
- mai_agent/unified_memory.py +0 -67
- mai_agent/utils.py +0 -73
- phone_agent/__init__.py +0 -12
- phone_agent/actions/__init__.py +0 -5
- phone_agent/actions/handler.py +0 -400
- phone_agent/actions/handler_ios.py +0 -278
- phone_agent/adb/__init__.py +0 -51
- phone_agent/adb/connection.py +0 -358
- phone_agent/adb/device.py +0 -253
- phone_agent/adb/input.py +0 -108
- phone_agent/adb/screenshot.py +0 -108
- phone_agent/agent.py +0 -253
- phone_agent/agent_ios.py +0 -277
- phone_agent/config/__init__.py +0 -53
- phone_agent/config/apps.py +0 -227
- phone_agent/config/apps_harmonyos.py +0 -256
- phone_agent/config/apps_ios.py +0 -339
- phone_agent/config/i18n.py +0 -81
- phone_agent/config/prompts.py +0 -80
- phone_agent/config/prompts_en.py +0 -79
- phone_agent/config/prompts_zh.py +0 -82
- phone_agent/config/timing.py +0 -167
- phone_agent/device_factory.py +0 -166
- phone_agent/hdc/__init__.py +0 -53
- phone_agent/hdc/connection.py +0 -384
- phone_agent/hdc/device.py +0 -269
- phone_agent/hdc/input.py +0 -145
- phone_agent/hdc/screenshot.py +0 -127
- phone_agent/model/__init__.py +0 -5
- phone_agent/model/client.py +0 -290
- phone_agent/xctest/__init__.py +0 -47
- phone_agent/xctest/connection.py +0 -379
- phone_agent/xctest/device.py +0 -472
- phone_agent/xctest/input.py +0 -311
- phone_agent/xctest/screenshot.py +0 -226
- {autoglm_gui-1.5.0.dist-info → autoglm_gui-1.5.1.dist-info}/WHEEL +0 -0
- {autoglm_gui-1.5.0.dist-info → autoglm_gui-1.5.1.dist-info}/entry_points.txt +0 -0
- {autoglm_gui-1.5.0.dist-info → autoglm_gui-1.5.1.dist-info}/licenses/LICENSE +0 -0
phone_agent/config/timing.py
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
"""Timing configuration for Phone Agent.
|
|
2
|
-
|
|
3
|
-
This module defines all configurable waiting times used throughout the application.
|
|
4
|
-
Users can customize these values by modifying this file or by setting environment variables.
|
|
5
|
-
"""
|
|
6
|
-
|
|
7
|
-
import os
|
|
8
|
-
from dataclasses import dataclass
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
@dataclass
|
|
12
|
-
class ActionTimingConfig:
|
|
13
|
-
"""Configuration for action handler timing delays."""
|
|
14
|
-
|
|
15
|
-
# Text input related delays (in seconds)
|
|
16
|
-
keyboard_switch_delay: float = 1.0 # Delay after switching to ADB keyboard
|
|
17
|
-
text_clear_delay: float = 1.0 # Delay after clearing text
|
|
18
|
-
text_input_delay: float = 1.0 # Delay after typing text
|
|
19
|
-
keyboard_restore_delay: float = 1.0 # Delay after restoring original keyboard
|
|
20
|
-
|
|
21
|
-
def __post_init__(self):
|
|
22
|
-
"""Load values from environment variables if present."""
|
|
23
|
-
self.keyboard_switch_delay = float(
|
|
24
|
-
os.getenv("PHONE_AGENT_KEYBOARD_SWITCH_DELAY", self.keyboard_switch_delay)
|
|
25
|
-
)
|
|
26
|
-
self.text_clear_delay = float(
|
|
27
|
-
os.getenv("PHONE_AGENT_TEXT_CLEAR_DELAY", self.text_clear_delay)
|
|
28
|
-
)
|
|
29
|
-
self.text_input_delay = float(
|
|
30
|
-
os.getenv("PHONE_AGENT_TEXT_INPUT_DELAY", self.text_input_delay)
|
|
31
|
-
)
|
|
32
|
-
self.keyboard_restore_delay = float(
|
|
33
|
-
os.getenv("PHONE_AGENT_KEYBOARD_RESTORE_DELAY", self.keyboard_restore_delay)
|
|
34
|
-
)
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
@dataclass
|
|
38
|
-
class DeviceTimingConfig:
|
|
39
|
-
"""Configuration for device operation timing delays."""
|
|
40
|
-
|
|
41
|
-
# Default delays for various device operations (in seconds)
|
|
42
|
-
default_tap_delay: float = 1.0 # Default delay after tap
|
|
43
|
-
default_double_tap_delay: float = 1.0 # Default delay after double tap
|
|
44
|
-
double_tap_interval: float = 0.1 # Interval between two taps in double tap
|
|
45
|
-
default_long_press_delay: float = 1.0 # Default delay after long press
|
|
46
|
-
default_swipe_delay: float = 1.0 # Default delay after swipe
|
|
47
|
-
default_back_delay: float = 1.0 # Default delay after back button
|
|
48
|
-
default_home_delay: float = 1.0 # Default delay after home button
|
|
49
|
-
default_launch_delay: float = 1.0 # Default delay after launching app
|
|
50
|
-
|
|
51
|
-
def __post_init__(self):
|
|
52
|
-
"""Load values from environment variables if present."""
|
|
53
|
-
self.default_tap_delay = float(
|
|
54
|
-
os.getenv("PHONE_AGENT_TAP_DELAY", self.default_tap_delay)
|
|
55
|
-
)
|
|
56
|
-
self.default_double_tap_delay = float(
|
|
57
|
-
os.getenv("PHONE_AGENT_DOUBLE_TAP_DELAY", self.default_double_tap_delay)
|
|
58
|
-
)
|
|
59
|
-
self.double_tap_interval = float(
|
|
60
|
-
os.getenv("PHONE_AGENT_DOUBLE_TAP_INTERVAL", self.double_tap_interval)
|
|
61
|
-
)
|
|
62
|
-
self.default_long_press_delay = float(
|
|
63
|
-
os.getenv("PHONE_AGENT_LONG_PRESS_DELAY", self.default_long_press_delay)
|
|
64
|
-
)
|
|
65
|
-
self.default_swipe_delay = float(
|
|
66
|
-
os.getenv("PHONE_AGENT_SWIPE_DELAY", self.default_swipe_delay)
|
|
67
|
-
)
|
|
68
|
-
self.default_back_delay = float(
|
|
69
|
-
os.getenv("PHONE_AGENT_BACK_DELAY", self.default_back_delay)
|
|
70
|
-
)
|
|
71
|
-
self.default_home_delay = float(
|
|
72
|
-
os.getenv("PHONE_AGENT_HOME_DELAY", self.default_home_delay)
|
|
73
|
-
)
|
|
74
|
-
self.default_launch_delay = float(
|
|
75
|
-
os.getenv("PHONE_AGENT_LAUNCH_DELAY", self.default_launch_delay)
|
|
76
|
-
)
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
@dataclass
|
|
80
|
-
class ConnectionTimingConfig:
|
|
81
|
-
"""Configuration for ADB connection timing delays."""
|
|
82
|
-
|
|
83
|
-
# ADB server and connection delays (in seconds)
|
|
84
|
-
adb_restart_delay: float = 2.0 # Wait time after enabling TCP/IP mode
|
|
85
|
-
server_restart_delay: float = (
|
|
86
|
-
1.0 # Wait time between killing and starting ADB server
|
|
87
|
-
)
|
|
88
|
-
|
|
89
|
-
def __post_init__(self):
|
|
90
|
-
"""Load values from environment variables if present."""
|
|
91
|
-
self.adb_restart_delay = float(
|
|
92
|
-
os.getenv("PHONE_AGENT_ADB_RESTART_DELAY", self.adb_restart_delay)
|
|
93
|
-
)
|
|
94
|
-
self.server_restart_delay = float(
|
|
95
|
-
os.getenv("PHONE_AGENT_SERVER_RESTART_DELAY", self.server_restart_delay)
|
|
96
|
-
)
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
@dataclass
|
|
100
|
-
class TimingConfig:
|
|
101
|
-
"""Master timing configuration combining all timing settings."""
|
|
102
|
-
|
|
103
|
-
action: ActionTimingConfig
|
|
104
|
-
device: DeviceTimingConfig
|
|
105
|
-
connection: ConnectionTimingConfig
|
|
106
|
-
|
|
107
|
-
def __init__(self):
|
|
108
|
-
"""Initialize all timing configurations."""
|
|
109
|
-
self.action = ActionTimingConfig()
|
|
110
|
-
self.device = DeviceTimingConfig()
|
|
111
|
-
self.connection = ConnectionTimingConfig()
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
# Global timing configuration instance
|
|
115
|
-
# Users can modify these values at runtime or through environment variables
|
|
116
|
-
TIMING_CONFIG = TimingConfig()
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
def get_timing_config() -> TimingConfig:
|
|
120
|
-
"""
|
|
121
|
-
Get the global timing configuration.
|
|
122
|
-
|
|
123
|
-
Returns:
|
|
124
|
-
The global TimingConfig instance.
|
|
125
|
-
"""
|
|
126
|
-
return TIMING_CONFIG
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
def update_timing_config(
|
|
130
|
-
action: ActionTimingConfig | None = None,
|
|
131
|
-
device: DeviceTimingConfig | None = None,
|
|
132
|
-
connection: ConnectionTimingConfig | None = None,
|
|
133
|
-
) -> None:
|
|
134
|
-
"""
|
|
135
|
-
Update the global timing configuration.
|
|
136
|
-
|
|
137
|
-
Args:
|
|
138
|
-
action: New action timing configuration.
|
|
139
|
-
device: New device timing configuration.
|
|
140
|
-
connection: New connection timing configuration.
|
|
141
|
-
|
|
142
|
-
Example:
|
|
143
|
-
>>> from phone_agent.config.timing import update_timing_config, ActionTimingConfig
|
|
144
|
-
>>> custom_action = ActionTimingConfig(
|
|
145
|
-
... keyboard_switch_delay=0.5,
|
|
146
|
-
... text_input_delay=0.5
|
|
147
|
-
... )
|
|
148
|
-
>>> update_timing_config(action=custom_action)
|
|
149
|
-
"""
|
|
150
|
-
global TIMING_CONFIG
|
|
151
|
-
if action is not None:
|
|
152
|
-
TIMING_CONFIG.action = action
|
|
153
|
-
if device is not None:
|
|
154
|
-
TIMING_CONFIG.device = device
|
|
155
|
-
if connection is not None:
|
|
156
|
-
TIMING_CONFIG.connection = connection
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
__all__ = [
|
|
160
|
-
"ActionTimingConfig",
|
|
161
|
-
"DeviceTimingConfig",
|
|
162
|
-
"ConnectionTimingConfig",
|
|
163
|
-
"TimingConfig",
|
|
164
|
-
"TIMING_CONFIG",
|
|
165
|
-
"get_timing_config",
|
|
166
|
-
"update_timing_config",
|
|
167
|
-
]
|
phone_agent/device_factory.py
DELETED
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
"""Device factory for selecting ADB or HDC based on device type."""
|
|
2
|
-
|
|
3
|
-
from enum import Enum
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class DeviceType(Enum):
|
|
7
|
-
"""Type of device connection tool."""
|
|
8
|
-
|
|
9
|
-
ADB = "adb"
|
|
10
|
-
HDC = "hdc"
|
|
11
|
-
IOS = "ios"
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class DeviceFactory:
|
|
15
|
-
"""
|
|
16
|
-
Factory class for getting device-specific implementations.
|
|
17
|
-
|
|
18
|
-
This allows the system to work with both Android (ADB) and HarmonyOS (HDC) devices.
|
|
19
|
-
"""
|
|
20
|
-
|
|
21
|
-
def __init__(self, device_type: DeviceType = DeviceType.ADB):
|
|
22
|
-
"""
|
|
23
|
-
Initialize the device factory.
|
|
24
|
-
|
|
25
|
-
Args:
|
|
26
|
-
device_type: The type of device to use (ADB or HDC).
|
|
27
|
-
"""
|
|
28
|
-
self.device_type = device_type
|
|
29
|
-
self._module = None
|
|
30
|
-
|
|
31
|
-
@property
|
|
32
|
-
def module(self):
|
|
33
|
-
"""Get the appropriate device module (adb or hdc)."""
|
|
34
|
-
if self._module is None:
|
|
35
|
-
if self.device_type == DeviceType.ADB:
|
|
36
|
-
from phone_agent import adb
|
|
37
|
-
|
|
38
|
-
self._module = adb
|
|
39
|
-
elif self.device_type == DeviceType.HDC:
|
|
40
|
-
from phone_agent import hdc
|
|
41
|
-
|
|
42
|
-
self._module = hdc
|
|
43
|
-
else:
|
|
44
|
-
raise ValueError(f"Unknown device type: {self.device_type}")
|
|
45
|
-
return self._module
|
|
46
|
-
|
|
47
|
-
def get_screenshot(self, device_id: str | None = None, timeout: int = 10):
|
|
48
|
-
"""Get screenshot from device."""
|
|
49
|
-
return self.module.get_screenshot(device_id, timeout)
|
|
50
|
-
|
|
51
|
-
def get_current_app(self, device_id: str | None = None) -> str:
|
|
52
|
-
"""Get current app name."""
|
|
53
|
-
return self.module.get_current_app(device_id)
|
|
54
|
-
|
|
55
|
-
def tap(
|
|
56
|
-
self, x: int, y: int, device_id: str | None = None, delay: float | None = None
|
|
57
|
-
):
|
|
58
|
-
"""Tap at coordinates."""
|
|
59
|
-
return self.module.tap(x, y, device_id, delay)
|
|
60
|
-
|
|
61
|
-
def double_tap(
|
|
62
|
-
self, x: int, y: int, device_id: str | None = None, delay: float | None = None
|
|
63
|
-
):
|
|
64
|
-
"""Double tap at coordinates."""
|
|
65
|
-
return self.module.double_tap(x, y, device_id, delay)
|
|
66
|
-
|
|
67
|
-
def long_press(
|
|
68
|
-
self,
|
|
69
|
-
x: int,
|
|
70
|
-
y: int,
|
|
71
|
-
duration_ms: int = 3000,
|
|
72
|
-
device_id: str | None = None,
|
|
73
|
-
delay: float | None = None,
|
|
74
|
-
):
|
|
75
|
-
"""Long press at coordinates."""
|
|
76
|
-
return self.module.long_press(x, y, duration_ms, device_id, delay)
|
|
77
|
-
|
|
78
|
-
def swipe(
|
|
79
|
-
self,
|
|
80
|
-
start_x: int,
|
|
81
|
-
start_y: int,
|
|
82
|
-
end_x: int,
|
|
83
|
-
end_y: int,
|
|
84
|
-
duration_ms: int | None = None,
|
|
85
|
-
device_id: str | None = None,
|
|
86
|
-
delay: float | None = None,
|
|
87
|
-
):
|
|
88
|
-
"""Swipe from start to end."""
|
|
89
|
-
return self.module.swipe(
|
|
90
|
-
start_x, start_y, end_x, end_y, duration_ms, device_id, delay
|
|
91
|
-
)
|
|
92
|
-
|
|
93
|
-
def back(self, device_id: str | None = None, delay: float | None = None):
|
|
94
|
-
"""Press back button."""
|
|
95
|
-
return self.module.back(device_id, delay)
|
|
96
|
-
|
|
97
|
-
def home(self, device_id: str | None = None, delay: float | None = None):
|
|
98
|
-
"""Press home button."""
|
|
99
|
-
return self.module.home(device_id, delay)
|
|
100
|
-
|
|
101
|
-
def launch_app(
|
|
102
|
-
self, app_name: str, device_id: str | None = None, delay: float | None = None
|
|
103
|
-
) -> bool:
|
|
104
|
-
"""Launch an app."""
|
|
105
|
-
return self.module.launch_app(app_name, device_id, delay)
|
|
106
|
-
|
|
107
|
-
def type_text(self, text: str, device_id: str | None = None):
|
|
108
|
-
"""Type text."""
|
|
109
|
-
return self.module.type_text(text, device_id)
|
|
110
|
-
|
|
111
|
-
def clear_text(self, device_id: str | None = None):
|
|
112
|
-
"""Clear text."""
|
|
113
|
-
return self.module.clear_text(device_id)
|
|
114
|
-
|
|
115
|
-
def detect_and_set_adb_keyboard(self, device_id: str | None = None) -> str:
|
|
116
|
-
"""Detect and set keyboard."""
|
|
117
|
-
return self.module.detect_and_set_adb_keyboard(device_id)
|
|
118
|
-
|
|
119
|
-
def restore_keyboard(self, ime: str, device_id: str | None = None):
|
|
120
|
-
"""Restore keyboard."""
|
|
121
|
-
return self.module.restore_keyboard(ime, device_id)
|
|
122
|
-
|
|
123
|
-
def list_devices(self):
|
|
124
|
-
"""List connected devices."""
|
|
125
|
-
return self.module.list_devices()
|
|
126
|
-
|
|
127
|
-
def get_connection_class(self):
|
|
128
|
-
"""Get the connection class (ADBConnection or HDCConnection)."""
|
|
129
|
-
if self.device_type == DeviceType.ADB:
|
|
130
|
-
from phone_agent.adb import ADBConnection
|
|
131
|
-
|
|
132
|
-
return ADBConnection
|
|
133
|
-
elif self.device_type == DeviceType.HDC:
|
|
134
|
-
from phone_agent.hdc import HDCConnection
|
|
135
|
-
|
|
136
|
-
return HDCConnection
|
|
137
|
-
else:
|
|
138
|
-
raise ValueError(f"Unknown device type: {self.device_type}")
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
# Global device factory instance
|
|
142
|
-
_device_factory: DeviceFactory | None = None
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
def set_device_type(device_type: DeviceType):
|
|
146
|
-
"""
|
|
147
|
-
Set the global device type.
|
|
148
|
-
|
|
149
|
-
Args:
|
|
150
|
-
device_type: The device type to use (ADB or HDC).
|
|
151
|
-
"""
|
|
152
|
-
global _device_factory
|
|
153
|
-
_device_factory = DeviceFactory(device_type)
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
def get_device_factory() -> DeviceFactory:
|
|
157
|
-
"""
|
|
158
|
-
Get the global device factory instance.
|
|
159
|
-
|
|
160
|
-
Returns:
|
|
161
|
-
The device factory instance.
|
|
162
|
-
"""
|
|
163
|
-
global _device_factory
|
|
164
|
-
if _device_factory is None:
|
|
165
|
-
_device_factory = DeviceFactory(DeviceType.ADB) # Default to ADB
|
|
166
|
-
return _device_factory
|
phone_agent/hdc/__init__.py
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"""HDC utilities for HarmonyOS device interaction."""
|
|
2
|
-
|
|
3
|
-
from phone_agent.hdc.connection import (
|
|
4
|
-
HDCConnection,
|
|
5
|
-
ConnectionType,
|
|
6
|
-
DeviceInfo,
|
|
7
|
-
list_devices,
|
|
8
|
-
quick_connect,
|
|
9
|
-
set_hdc_verbose,
|
|
10
|
-
)
|
|
11
|
-
from phone_agent.hdc.device import (
|
|
12
|
-
back,
|
|
13
|
-
double_tap,
|
|
14
|
-
get_current_app,
|
|
15
|
-
home,
|
|
16
|
-
launch_app,
|
|
17
|
-
long_press,
|
|
18
|
-
swipe,
|
|
19
|
-
tap,
|
|
20
|
-
)
|
|
21
|
-
from phone_agent.hdc.input import (
|
|
22
|
-
clear_text,
|
|
23
|
-
detect_and_set_adb_keyboard,
|
|
24
|
-
restore_keyboard,
|
|
25
|
-
type_text,
|
|
26
|
-
)
|
|
27
|
-
from phone_agent.hdc.screenshot import get_screenshot
|
|
28
|
-
|
|
29
|
-
__all__ = [
|
|
30
|
-
# Screenshot
|
|
31
|
-
"get_screenshot",
|
|
32
|
-
# Input
|
|
33
|
-
"type_text",
|
|
34
|
-
"clear_text",
|
|
35
|
-
"detect_and_set_adb_keyboard",
|
|
36
|
-
"restore_keyboard",
|
|
37
|
-
# Device control
|
|
38
|
-
"get_current_app",
|
|
39
|
-
"tap",
|
|
40
|
-
"swipe",
|
|
41
|
-
"back",
|
|
42
|
-
"home",
|
|
43
|
-
"double_tap",
|
|
44
|
-
"long_press",
|
|
45
|
-
"launch_app",
|
|
46
|
-
# Connection management
|
|
47
|
-
"HDCConnection",
|
|
48
|
-
"DeviceInfo",
|
|
49
|
-
"ConnectionType",
|
|
50
|
-
"quick_connect",
|
|
51
|
-
"list_devices",
|
|
52
|
-
"set_hdc_verbose",
|
|
53
|
-
]
|