minitap-mobile-use 2.8.0__tar.gz → 2.8.1__tar.gz

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.

Potentially problematic release.


This version of minitap-mobile-use might be problematic. Click here for more details.

Files changed (103) hide show
  1. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/PKG-INFO +1 -1
  2. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/servers/device_screen_api.py +15 -1
  3. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/pyproject.toml +1 -1
  4. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/LICENSE +0 -0
  5. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/README.md +0 -0
  6. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/__init__.py +0 -0
  7. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/contextor/contextor.py +0 -0
  8. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/cortex/cortex.md +0 -0
  9. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/cortex/cortex.py +0 -0
  10. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/cortex/types.py +0 -0
  11. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/executor/executor.md +0 -0
  12. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/executor/executor.py +0 -0
  13. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/executor/tool_node.py +0 -0
  14. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/executor/utils.py +0 -0
  15. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/hopper/hopper.md +0 -0
  16. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/hopper/hopper.py +0 -0
  17. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/orchestrator/human.md +0 -0
  18. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/orchestrator/orchestrator.md +0 -0
  19. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/orchestrator/orchestrator.py +0 -0
  20. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/orchestrator/types.py +0 -0
  21. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/outputter/human.md +0 -0
  22. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/outputter/outputter.py +0 -0
  23. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/outputter/test_outputter.py +0 -0
  24. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/planner/human.md +0 -0
  25. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/planner/planner.md +0 -0
  26. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/planner/planner.py +0 -0
  27. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/planner/types.py +0 -0
  28. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/planner/utils.py +0 -0
  29. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/screen_analyzer/human.md +0 -0
  30. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/screen_analyzer/screen_analyzer.py +0 -0
  31. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/agents/summarizer/summarizer.py +0 -0
  32. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/clients/device_hardware_client.py +0 -0
  33. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/clients/ios_client.py +0 -0
  34. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/clients/screen_api_client.py +0 -0
  35. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/config.py +0 -0
  36. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/constants.py +0 -0
  37. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/context.py +0 -0
  38. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/controllers/__init__.py +0 -0
  39. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/controllers/mobile_command_controller.py +0 -0
  40. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/controllers/platform_specific_commands_controller.py +0 -0
  41. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/controllers/types.py +0 -0
  42. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/graph/graph.py +0 -0
  43. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/graph/state.py +0 -0
  44. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/main.py +0 -0
  45. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/__init__.py +0 -0
  46. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/agent.py +0 -0
  47. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/builders/__init__.py +0 -0
  48. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/builders/agent_config_builder.py +0 -0
  49. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/builders/index.py +0 -0
  50. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/builders/task_request_builder.py +0 -0
  51. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/constants.py +0 -0
  52. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/examples/README.md +0 -0
  53. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/examples/__init__.py +0 -0
  54. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/examples/platform_manual_task_example.py +0 -0
  55. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/examples/platform_minimal_example.py +0 -0
  56. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/examples/simple_photo_organizer.py +0 -0
  57. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/examples/smart_notification_assistant.py +0 -0
  58. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/services/cloud_mobile.py +0 -0
  59. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/services/platform.py +0 -0
  60. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/types/__init__.py +0 -0
  61. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/types/agent.py +0 -0
  62. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/types/exceptions.py +0 -0
  63. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/types/platform.py +0 -0
  64. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/types/task.py +0 -0
  65. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/sdk/utils.py +0 -0
  66. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/servers/config.py +0 -0
  67. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/servers/device_hardware_bridge.py +0 -0
  68. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/servers/start_servers.py +0 -0
  69. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/servers/stop_servers.py +0 -0
  70. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/servers/utils.py +0 -0
  71. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/services/accessibility.py +0 -0
  72. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/services/llm.py +0 -0
  73. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/tools/index.py +0 -0
  74. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/tools/mobile/back.py +0 -0
  75. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/tools/mobile/erase_one_char.py +0 -0
  76. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/tools/mobile/focus_and_clear_text.py +0 -0
  77. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/tools/mobile/focus_and_input_text.py +0 -0
  78. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/tools/mobile/launch_app.py +0 -0
  79. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/tools/mobile/long_press_on.py +0 -0
  80. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/tools/mobile/open_link.py +0 -0
  81. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/tools/mobile/press_key.py +0 -0
  82. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/tools/mobile/stop_app.py +0 -0
  83. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/tools/mobile/swipe.py +0 -0
  84. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/tools/mobile/tap.py +0 -0
  85. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/tools/mobile/wait_for_delay.py +0 -0
  86. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/tools/test_utils.py +0 -0
  87. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/tools/tool_wrapper.py +0 -0
  88. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/tools/types.py +0 -0
  89. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/tools/utils.py +0 -0
  90. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/utils/cli_helpers.py +0 -0
  91. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/utils/cli_selection.py +0 -0
  92. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/utils/conversations.py +0 -0
  93. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/utils/decorators.py +0 -0
  94. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/utils/errors.py +0 -0
  95. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/utils/file.py +0 -0
  96. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/utils/logger.py +0 -0
  97. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/utils/media.py +0 -0
  98. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/utils/recorder.py +0 -0
  99. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/utils/requests_utils.py +0 -0
  100. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/utils/shell_utils.py +0 -0
  101. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/utils/test_ui_hierarchy.py +0 -0
  102. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/utils/time.py +0 -0
  103. {minitap_mobile_use-2.8.0 → minitap_mobile_use-2.8.1}/minitap/mobile_use/utils/ui_hierarchy.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: minitap-mobile-use
3
- Version: 2.8.0
3
+ Version: 2.8.1
4
4
  Summary: AI-powered multi-agent system that automates real Android and iOS devices through low-level control using LangGraph.
5
5
  Author: Pierre-Louis Favreau, Jean-Pierre Lo, Nicolas Dehandschoewercker
6
6
  License: MIT License
@@ -1,8 +1,10 @@
1
+ import asyncio
1
2
  import base64
2
3
  import json
3
4
  import threading
4
5
  import time
5
6
  from contextlib import asynccontextmanager
7
+ from datetime import UTC, datetime
6
8
 
7
9
  import requests
8
10
  import uvicorn
@@ -16,16 +18,19 @@ from minitap.mobile_use.servers.utils import is_port_in_use
16
18
  DEVICE_HARDWARE_BRIDGE_BASE_URL = server_settings.DEVICE_HARDWARE_BRIDGE_BASE_URL
17
19
  DEVICE_HARDWARE_BRIDGE_API_URL = f"{DEVICE_HARDWARE_BRIDGE_BASE_URL}/api"
18
20
 
21
+ MAX_WAIT_TIME = 1
22
+
19
23
  _latest_screen_data = None
20
24
  _is_streaming_connected = False
21
25
 
22
26
  _data_lock = threading.Lock()
23
27
  _stream_thread = None
24
28
  _stop_event = threading.Event()
29
+ _latest_screen_ts = None
25
30
 
26
31
 
27
32
  def _stream_worker():
28
- global _latest_screen_data, _is_streaming_connected
33
+ global _latest_screen_data, _is_streaming_connected, _latest_screen_ts
29
34
  sse_url = f"{DEVICE_HARDWARE_BRIDGE_API_URL}/device-screen/sse"
30
35
  headers = {"Accept": "text/event-stream"}
31
36
 
@@ -63,6 +68,7 @@ def _stream_worker():
63
68
  "height": height,
64
69
  "platform": platform,
65
70
  }
71
+ _latest_screen_ts = datetime.now(UTC)
66
72
 
67
73
  except Exception as e:
68
74
  print(f"Connection error in stream worker: {e}. Retrying in 2 seconds...")
@@ -122,6 +128,14 @@ def get_latest_data():
122
128
 
123
129
  @app.get("/screen-info")
124
130
  async def get_screen_info():
131
+ now = datetime.now(UTC)
132
+ waited_for_seconds = 0
133
+ while not _latest_screen_ts or _latest_screen_ts < now:
134
+ wait_for_seconds = 0.05
135
+ await asyncio.sleep(wait_for_seconds)
136
+ waited_for_seconds += wait_for_seconds
137
+ if waited_for_seconds >= MAX_WAIT_TIME:
138
+ break
125
139
  data = get_latest_data()
126
140
  return JSONResponse(content=data)
127
141
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "minitap-mobile-use"
3
- version = "2.8.0"
3
+ version = "2.8.1"
4
4
  description = "AI-powered multi-agent system that automates real Android and iOS devices through low-level control using LangGraph."
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }