SYMBOL INDEX (253 symbols across 28 files) FILE: examples/basic_usage.py function example_basic_task (line 15) | def example_basic_task(lang: str = "cn"): function example_with_callbacks (line 44) | def example_with_callbacks(lang: str = "cn"): function example_step_by_step (line 73) | def example_step_by_step(lang: str = "cn"): function example_multiple_tasks (line 93) | def example_multiple_tasks(lang: str = "cn"): function example_remote_device (line 118) | def example_remote_device(lang: str = "cn"): FILE: examples/demo_thinking.py function main (line 15) | def main(lang: str = "cn"): FILE: ios.py function check_system_requirements (line 31) | def check_system_requirements(wda_url: str = "http://localhost:8100") ->... function check_model_api (line 162) | def check_model_api(base_url: str, api_key: str, model_name: str) -> bool: function parse_args (line 250) | def parse_args() -> argparse.Namespace: function handle_device_commands (line 371) | def handle_device_commands(args) -> bool: function main (line 446) | def main(): FILE: main.py function check_system_requirements (line 37) | def check_system_requirements( function check_model_api (line 272) | def check_model_api(base_url: str, model_name: str, api_key: str = "EMPT... function parse_args (line 355) | def parse_args() -> argparse.Namespace: function handle_ios_device_commands (line 527) | def handle_ios_device_commands(args) -> bool: function handle_device_commands (line 602) | def handle_device_commands(args) -> bool: function main (line 684) | def main(): FILE: phone_agent/actions/handler.py class ActionResult (line 15) | class ActionResult: class ActionHandler (line 24) | class ActionHandler: method __init__ (line 35) | def __init__( method execute (line 45) | def execute( method _get_handler (line 90) | def _get_handler(self, action_name: str) -> Callable | None: method _convert_relative_to_absolute (line 110) | def _convert_relative_to_absolute( method _handle_launch (line 118) | def _handle_launch(self, action: dict, width: int, height: int) -> Act... method _handle_tap (line 130) | def _handle_tap(self, action: dict, width: int, height: int) -> Action... method _handle_type (line 151) | def _handle_type(self, action: dict, width: int, height: int) -> Actio... method _handle_swipe (line 175) | def _handle_swipe(self, action: dict, width: int, height: int) -> Acti... method _handle_back (line 190) | def _handle_back(self, action: dict, width: int, height: int) -> Actio... method _handle_home (line 196) | def _handle_home(self, action: dict, width: int, height: int) -> Actio... method _handle_double_tap (line 202) | def _handle_double_tap(self, action: dict, width: int, height: int) ->... method _handle_long_press (line 213) | def _handle_long_press(self, action: dict, width: int, height: int) ->... method _handle_wait (line 224) | def _handle_wait(self, action: dict, width: int, height: int) -> Actio... method _handle_takeover (line 235) | def _handle_takeover(self, action: dict, width: int, height: int) -> A... method _handle_note (line 241) | def _handle_note(self, action: dict, width: int, height: int) -> Actio... method _handle_call_api (line 247) | def _handle_call_api(self, action: dict, width: int, height: int) -> A... method _handle_interact (line 253) | def _handle_interact(self, action: dict, width: int, height: int) -> A... method _send_keyevent (line 258) | def _send_keyevent(self, keycode: str) -> None: method _default_confirmation (line 321) | def _default_confirmation(message: str) -> bool: method _default_takeover (line 327) | def _default_takeover(message: str) -> None: function parse_action (line 332) | def parse_action(response: str) -> dict[str, Any]: function do (line 390) | def do(**kwargs) -> dict[str, Any]: function finish (line 396) | def finish(**kwargs) -> dict[str, Any]: FILE: phone_agent/actions/handler_ios.py class ActionResult (line 20) | class ActionResult: class IOSActionHandler (line 29) | class IOSActionHandler: method __init__ (line 41) | def __init__( method execute (line 53) | def execute( method _get_handler (line 98) | def _get_handler(self, action_name: str) -> Callable | None: method _convert_relative_to_absolute (line 118) | def _convert_relative_to_absolute( method _handle_launch (line 126) | def _handle_launch(self, action: dict, width: int, height: int) -> Act... method _handle_tap (line 139) | def _handle_tap(self, action: dict, width: int, height: int) -> Action... method _handle_type (line 161) | def _handle_type(self, action: dict, width: int, height: int) -> Actio... method _handle_swipe (line 178) | def _handle_swipe(self, action: dict, width: int, height: int) -> Acti... method _handle_back (line 201) | def _handle_back(self, action: dict, width: int, height: int) -> Actio... method _handle_home (line 206) | def _handle_home(self, action: dict, width: int, height: int) -> Actio... method _handle_double_tap (line 211) | def _handle_double_tap(self, action: dict, width: int, height: int) ->... method _handle_long_press (line 221) | def _handle_long_press(self, action: dict, width: int, height: int) ->... method _handle_wait (line 237) | def _handle_wait(self, action: dict, width: int, height: int) -> Actio... method _handle_takeover (line 248) | def _handle_takeover(self, action: dict, width: int, height: int) -> A... method _handle_note (line 254) | def _handle_note(self, action: dict, width: int, height: int) -> Actio... method _handle_call_api (line 260) | def _handle_call_api(self, action: dict, width: int, height: int) -> A... method _handle_interact (line 266) | def _handle_interact(self, action: dict, width: int, height: int) -> A... method _default_confirmation (line 272) | def _default_confirmation(message: str) -> bool: method _default_takeover (line 278) | def _default_takeover(message: str) -> None: FILE: phone_agent/adb/connection.py class ConnectionType (line 12) | class ConnectionType(Enum): class DeviceInfo (line 21) | class DeviceInfo: class ADBConnection (line 31) | class ADBConnection: method __init__ (line 47) | def __init__(self, adb_path: str = "adb"): method connect (line 56) | def connect(self, address: str, timeout: int = 10) -> tuple[bool, str]: method disconnect (line 97) | def disconnect(self, address: str | None = None) -> tuple[bool, str]: method list_devices (line 120) | def list_devices(self) -> list[DeviceInfo]: method get_device_info (line 175) | def get_device_info(self, device_id: str | None = None) -> DeviceInfo ... method is_connected (line 199) | def is_connected(self, device_id: str | None = None) -> bool: method enable_tcpip (line 219) | def enable_tcpip( method get_device_ip (line 257) | def get_device_ip(self, device_id: str | None = None) -> str | None: method restart_server (line 305) | def restart_server(self) -> tuple[bool, str]: function quick_connect (line 331) | def quick_connect(address: str) -> tuple[bool, str]: function list_devices (line 345) | def list_devices() -> list[DeviceInfo]: FILE: phone_agent/adb/device.py function get_current_app (line 12) | def get_current_app(device_id: str | None = None) -> str: function tap (line 41) | def tap( function double_tap (line 64) | def double_tap( function long_press (line 91) | def long_press( function swipe (line 121) | def swipe( function back (line 170) | def back(device_id: str | None = None, delay: float | None = None) -> None: function home (line 189) | def home(device_id: str | None = None, delay: float | None = None) -> None: function launch_app (line 208) | def launch_app( function _get_adb_prefix (line 248) | def _get_adb_prefix(device_id: str | None) -> list: FILE: phone_agent/adb/input.py function type_text (line 8) | def type_text(text: str, device_id: str | None = None) -> None: function clear_text (line 40) | def clear_text(device_id: str | None = None) -> None: function detect_and_set_adb_keyboard (line 56) | def detect_and_set_adb_keyboard(device_id: str | None = None) -> str: function restore_keyboard (line 90) | def restore_keyboard(ime: str, device_id: str | None = None) -> None: function _get_adb_prefix (line 105) | def _get_adb_prefix(device_id: str | None) -> list: FILE: phone_agent/adb/screenshot.py class Screenshot (line 16) | class Screenshot: function get_screenshot (line 25) | def get_screenshot(device_id: str | None = None, timeout: int = 10) -> S... function _get_adb_prefix (line 88) | def _get_adb_prefix(device_id: str | None) -> list: function _create_fallback_screenshot (line 95) | def _create_fallback_screenshot(is_sensitive: bool) -> Screenshot: FILE: phone_agent/agent.py class AgentConfig (line 17) | class AgentConfig: method __post_init__ (line 26) | def __post_init__(self): class StepResult (line 32) | class StepResult: class PhoneAgent (line 42) | class PhoneAgent: method __init__ (line 64) | def __init__( method run (line 84) | def run(self, task: str) -> str: method step (line 112) | def step(self, task: str | None = None) -> StepResult: method reset (line 131) | def reset(self) -> None: method _execute_step (line 136) | def _execute_step( method context (line 246) | def context(self) -> list[dict[str, Any]]: method step_count (line 251) | def step_count(self) -> int: FILE: phone_agent/agent_ios.py class IOSAgentConfig (line 17) | class IOSAgentConfig: method __post_init__ (line 28) | def __post_init__(self): class StepResult (line 34) | class StepResult: class IOSPhoneAgent (line 44) | class IOSPhoneAgent: method __init__ (line 67) | def __init__( method run (line 102) | def run(self, task: str) -> str: method step (line 130) | def step(self, task: str | None = None) -> StepResult: method reset (line 149) | def reset(self) -> None: method _execute_step (line 154) | def _execute_step( method context (line 270) | def context(self) -> list[dict[str, Any]]: method step_count (line 275) | def step_count(self) -> int: FILE: phone_agent/config/__init__.py function get_system_prompt (line 19) | def get_system_prompt(lang: str = "cn") -> str: FILE: phone_agent/config/apps.py function get_package_name (line 191) | def get_package_name(app_name: str) -> str | None: function get_app_name (line 204) | def get_app_name(package_name: str) -> str | None: function list_supported_apps (line 220) | def list_supported_apps() -> list[str]: FILE: phone_agent/config/apps_harmonyos.py function get_package_name (line 230) | def get_package_name(app_name: str) -> str | None: function get_app_name (line 243) | def get_app_name(package_name: str) -> str | None: function list_supported_apps (line 259) | def list_supported_apps() -> list[str]: FILE: phone_agent/config/apps_ios.py function get_bundle_id (line 204) | def get_bundle_id(app_name: str) -> str | None: function get_app_name (line 217) | def get_app_name(bundle_id: str) -> str | None: function list_supported_apps (line 233) | def list_supported_apps() -> list[str]: function check_app_installed (line 243) | def check_app_installed(app_name: str, wda_url: str = "http://localhost:... function get_app_info_from_itunes (line 282) | def get_app_info_from_itunes(bundle_id: str) -> dict | None: function get_app_info_by_id (line 312) | def get_app_info_by_id(app_store_id: str) -> dict | None: FILE: phone_agent/config/i18n.py function get_messages (line 54) | def get_messages(lang: str = "cn") -> dict: function get_message (line 69) | def get_message(key: str, lang: str = "cn") -> str: FILE: phone_agent/config/timing.py class ActionTimingConfig (line 12) | class ActionTimingConfig: method __post_init__ (line 21) | def __post_init__(self): class DeviceTimingConfig (line 38) | class DeviceTimingConfig: method __post_init__ (line 51) | def __post_init__(self): class ConnectionTimingConfig (line 80) | class ConnectionTimingConfig: method __post_init__ (line 89) | def __post_init__(self): class TimingConfig (line 100) | class TimingConfig: method __init__ (line 107) | def __init__(self): function get_timing_config (line 119) | def get_timing_config() -> TimingConfig: function update_timing_config (line 129) | def update_timing_config( FILE: phone_agent/device_factory.py class DeviceType (line 7) | class DeviceType(Enum): class DeviceFactory (line 15) | class DeviceFactory: method __init__ (line 22) | def __init__(self, device_type: DeviceType = DeviceType.ADB): method module (line 33) | def module(self): method get_screenshot (line 48) | def get_screenshot(self, device_id: str | None = None, timeout: int = ... method get_current_app (line 52) | def get_current_app(self, device_id: str | None = None) -> str: method tap (line 56) | def tap( method double_tap (line 62) | def double_tap( method long_press (line 68) | def long_press( method swipe (line 79) | def swipe( method back (line 94) | def back(self, device_id: str | None = None, delay: float | None = None): method home (line 98) | def home(self, device_id: str | None = None, delay: float | None = None): method launch_app (line 102) | def launch_app( method type_text (line 108) | def type_text(self, text: str, device_id: str | None = None): method clear_text (line 112) | def clear_text(self, device_id: str | None = None): method detect_and_set_adb_keyboard (line 116) | def detect_and_set_adb_keyboard(self, device_id: str | None = None) ->... method restore_keyboard (line 120) | def restore_keyboard(self, ime: str, device_id: str | None = None): method list_devices (line 124) | def list_devices(self): method get_connection_class (line 128) | def get_connection_class(self): function set_device_type (line 146) | def set_device_type(device_type: DeviceType): function get_device_factory (line 157) | def get_device_factory() -> DeviceFactory: FILE: phone_agent/hdc/connection.py function _run_hdc_command (line 17) | def _run_hdc_command(cmd: list, **kwargs) -> subprocess.CompletedProcess: function set_hdc_verbose (line 41) | def set_hdc_verbose(verbose: bool): class ConnectionType (line 47) | class ConnectionType(Enum): class DeviceInfo (line 56) | class DeviceInfo: class HDCConnection (line 66) | class HDCConnection: method __init__ (line 82) | def __init__(self, hdc_path: str = "hdc"): method connect (line 91) | def connect(self, address: str, timeout: int = 10) -> tuple[bool, str]: method disconnect (line 131) | def disconnect(self, address: str | None = None) -> tuple[bool, str]: method list_devices (line 165) | def list_devices(self) -> list[DeviceInfo]: method get_device_info (line 212) | def get_device_info(self, device_id: str | None = None) -> DeviceInfo ... method is_connected (line 236) | def is_connected(self, device_id: str | None = None) -> bool: method enable_tcpip (line 256) | def enable_tcpip( method get_device_ip (line 294) | def get_device_ip(self, device_id: str | None = None) -> str | None: method restart_server (line 333) | def restart_server(self) -> tuple[bool, str]: function quick_connect (line 359) | def quick_connect(address: str) -> tuple[bool, str]: function list_devices (line 373) | def list_devices() -> list[DeviceInfo]: FILE: phone_agent/hdc/device.py function get_current_app (line 13) | def get_current_app(device_id: str | None = None) -> str: function tap (line 80) | def tap( function double_tap (line 105) | def double_tap( function long_press (line 130) | def long_press( function swipe (line 161) | def swipe( function back (line 213) | def back(device_id: str | None = None, delay: float | None = None) -> None: function home (line 234) | def home(device_id: str | None = None, delay: float | None = None) -> None: function launch_app (line 255) | def launch_app( function _get_hdc_prefix (line 303) | def _get_hdc_prefix(device_id: str | None) -> list: FILE: phone_agent/hdc/input.py function type_text (line 10) | def type_text(text: str, device_id: str | None = None) -> None: function clear_text (line 66) | def clear_text(device_id: str | None = None) -> None: function detect_and_set_adb_keyboard (line 92) | def detect_and_set_adb_keyboard(device_id: str | None = None) -> str: function restore_keyboard (line 124) | def restore_keyboard(ime: str, device_id: str | None = None) -> None: function _get_hdc_prefix (line 145) | def _get_hdc_prefix(device_id: str | None) -> list: FILE: phone_agent/hdc/screenshot.py class Screenshot (line 17) | class Screenshot: function get_screenshot (line 26) | def get_screenshot(device_id: str | None = None, timeout: int = 10) -> S... function _get_hdc_prefix (line 104) | def _get_hdc_prefix(device_id: str | None) -> list: function _create_fallback_screenshot (line 111) | def _create_fallback_screenshot(is_sensitive: bool) -> Screenshot: FILE: phone_agent/model/client.py class ModelConfig (line 14) | class ModelConfig: class ModelResponse (line 29) | class ModelResponse: class ModelClient (line 41) | class ModelClient: method __init__ (line 49) | def __init__(self, config: ModelConfig | None = None): method request (line 53) | def request(self, messages: list[dict[str, Any]]) -> ModelResponse: method _parse_response (line 176) | def _parse_response(self, content: str) -> tuple[str, str]: class MessageBuilder (line 219) | class MessageBuilder: method create_system_message (line 223) | def create_system_message(content: str) -> dict[str, Any]: method create_user_message (line 228) | def create_user_message( method create_assistant_message (line 256) | def create_assistant_message(content: str) -> dict[str, Any]: method remove_images_from_message (line 261) | def remove_images_from_message(message: dict[str, Any]) -> dict[str, A... method build_screen_info (line 278) | def build_screen_info(current_app: str, **extra_info) -> str: FILE: phone_agent/xctest/connection.py class ConnectionType (line 9) | class ConnectionType(Enum): class DeviceInfo (line 17) | class DeviceInfo: class XCTestConnection (line 28) | class XCTestConnection: method __init__ (line 47) | def __init__(self, wda_url: str = "http://localhost:8100"): method list_devices (line 57) | def list_devices(self) -> list[DeviceInfo]: method _get_device_details (line 115) | def _get_device_details(self, udid: str) -> dict[str, str]: method get_device_info (line 152) | def get_device_info(self, device_id: str | None = None) -> DeviceInfo ... method is_connected (line 176) | def is_connected(self, device_id: str | None = None) -> bool: method is_wda_ready (line 196) | def is_wda_ready(self, timeout: int = 2) -> bool: method start_wda_session (line 221) | def start_wda_session(self) -> tuple[bool, str]: method get_wda_status (line 255) | def get_wda_status(self) -> dict | None: method pair_device (line 274) | def pair_device(self, device_id: str | None = None) -> tuple[bool, str]: method get_device_name (line 307) | def get_device_name(self, device_id: str | None = None) -> str | None: method restart_wda (line 331) | def restart_wda(self) -> tuple[bool, str]: function quick_connect (line 351) | def quick_connect(wda_url: str = "http://localhost:8100") -> tuple[bool,... function list_devices (line 374) | def list_devices() -> list[DeviceInfo]: FILE: phone_agent/xctest/device.py function _get_wda_session_url (line 11) | def _get_wda_session_url(wda_url: str, session_id: str | None, endpoint:... function get_current_app (line 31) | def get_current_app( function tap (line 75) | def tap( function double_tap (line 124) | def double_tap( function long_press (line 177) | def long_press( function swipe (line 231) | def swipe( function back (line 284) | def back( function home (line 325) | def home( function launch_app (line 353) | def launch_app( function get_screen_size (line 395) | def get_screen_size( function press_button (line 431) | def press_button( FILE: phone_agent/xctest/input.py function _get_wda_session_url (line 6) | def _get_wda_session_url(wda_url: str, session_id: str | None, endpoint:... function type_text (line 26) | def type_text( function clear_text (line 64) | def clear_text( function _clear_with_backspace (line 106) | def _clear_with_backspace( function send_keys (line 137) | def send_keys( function press_enter (line 167) | def press_enter( function hide_keyboard (line 184) | def hide_keyboard( function is_keyboard_shown (line 208) | def is_keyboard_shown( function set_pasteboard (line 241) | def set_pasteboard( function get_pasteboard (line 271) | def get_pasteboard( FILE: phone_agent/xctest/screenshot.py class Screenshot (line 15) | class Screenshot: function get_screenshot (line 24) | def get_screenshot( function _get_screenshot_wda (line 60) | def _get_screenshot_wda( function _get_screenshot_idevice (line 106) | def _get_screenshot_idevice( function _create_fallback_screenshot (line 159) | def _create_fallback_screenshot(is_sensitive: bool) -> Screenshot: function save_screenshot (line 185) | def save_screenshot( function get_screenshot_png (line 209) | def get_screenshot_png(