devicely 2.2.20 → 2.3.0

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.
Files changed (53) hide show
  1. package/README.md +24 -84
  2. package/bin/devicely.js +1 -1
  3. package/config/devices.conf +1 -6
  4. package/lib/aiProviders.js +592 -1
  5. package/lib/aiProvidersConfig.js +171 -1
  6. package/lib/aiProviders_new.js +70 -0
  7. package/lib/androidDeviceDetection.js +1 -1
  8. package/lib/appMappings.js +1 -1
  9. package/lib/cognitiveLocator.js +1 -0
  10. package/lib/commanderService.js +1 -1
  11. package/lib/deviceDetection.js +1 -1
  12. package/lib/devices.js +1 -1
  13. package/lib/doctor.js +1 -1
  14. package/lib/encryption.js +1 -1
  15. package/lib/executor.js +1 -1
  16. package/lib/frontend/asset-manifest.json +3 -5
  17. package/lib/frontend/index.html +1 -1
  18. package/lib/frontend/static/css/main.ed39ba12.css +2 -0
  19. package/lib/frontend/static/js/main.310a0af8.js +3 -0
  20. package/lib/frontend/static/js/main.310a0af8.js.LICENSE.txt +59 -0
  21. package/lib/locatorStrategy.js +1 -1
  22. package/lib/logger.js +1 -1
  23. package/lib/package.json +6 -7
  24. package/lib/public/asset-manifest.json +3 -3
  25. package/lib/public/index.html +1 -1
  26. package/lib/scriptLoader.js +1 -1
  27. package/lib/server.js +1 -1
  28. package/package.json +3 -4
  29. package/scripts/shell/android_device_control.enc +1 -1
  30. package/scripts/shell/connect_ios_usb_multi_final.enc +1 -1
  31. package/scripts/shell/connect_ios_wireless_multi_final.enc +1 -1
  32. package/lib/advanced-logger.js +0 -1
  33. package/lib/aiProviders.js.strategic-backup +0 -657
  34. package/lib/aiProvidersConfig.js.backup +0 -218
  35. package/lib/commanderService.js.backup +0 -5552
  36. package/lib/devices.js.strategic-backup +0 -57
  37. package/lib/encryption.js.strategic-backup +0 -61
  38. package/lib/executor.js.strategic-backup +0 -107
  39. package/lib/hybridAI.js +0 -1
  40. package/lib/intelligentLocatorService.js +0 -1
  41. package/lib/lightweightAI.js +0 -1
  42. package/lib/localBuiltInAI.js +0 -1
  43. package/lib/localBuiltInAI_backup.js +0 -1
  44. package/lib/localBuiltInAI_simple.js +0 -1
  45. package/lib/logger-demo.js +0 -2
  46. package/lib/logger-integration-examples.js +0 -102
  47. package/lib/public/static/css/main.ed39ba12.css.map +0 -1
  48. package/lib/quick-start-logger.js +0 -2
  49. package/lib/server.js.strategic-backup +0 -6298
  50. package/lib/tensorflowAI.js +0 -1
  51. package/lib/tensorflowAI.js.strategic-backup +0 -717
  52. package/lib/tinyAI.js +0 -1
  53. package/lib/universalSessionManager.js +0 -1
package/README.md CHANGED
@@ -14,8 +14,8 @@ devicely start
14
14
  ```
15
15
  **Visit [https://devicely-ai.vercel.app/](https://devicely-ai.vercel.app/) and see what happens when devices work together.**
16
16
 
17
- [![NPM Version](https://img.shields.io/badge/npm-v2.2.13-CB3837?style=for-the-badge)](https://www.npmjs.com/package/devicely)
18
- [![License](https://img.shields.io/badge/license-Proprietary-blue?style=for-the-badge)](LICENSE)
17
+ [![NPM Version](https://img.shields.io/badge/npm-v2.3.0-CB3837?style=for-the-badge)](https://www.npmjs.com/package/devicely)
18
+ [![License](https://img.shields.io/badge/license-MIT-green?style=for-the-badge)](LICENSE)
19
19
  [![Platform](https://img.shields.io/badge/platform-iOS%20%7C%20Android-lightgrey?style=for-the-badge)](https://devicely-ai.vercel.app)
20
20
 
21
21
  [🚀 Quick Start](#-quick-start) • [✨ Key Features](#-the-devicely-advantage) • [🌌 Infinite Possibilities](#-glimpse-of-the-infinite) • [📟 CLI Reference](#-cli-reference)
@@ -46,12 +46,23 @@ Instead of manually testing the same flow across multiple devices, what if you c
46
46
  * Touch the leader's screen → all followers mirror the action
47
47
  * Switch leaders with a simple dropdown
48
48
  * Watch it all happen on your web dashboard
49
+ * **[NEW in v2.3.0]** Enhanced WDA API for iOS device control
50
+ * **[NEW in v2.3.0]** Element caching for faster command execution
51
+
52
+ ### 📱 **QR-Based Device Enrollment** - *Connect devices in seconds, not minutes*
53
+ * **[NEW in v2.3.0]** Scan QR code to enroll iOS or Android devices
54
+ * **[NEW in v2.3.0]** Automatic IP address detection and configuration
55
+ * **[NEW in v2.3.0]** Works with both USB and wireless connections
56
+ * iOS: WebDriverAgent auto-detection
57
+ * Android: Automatic ADB setup with privacy controls
58
+ * No more manual IP configuration or device.conf editing
49
59
 
50
60
  ### 🔄 **Live Sync** - *What if all your devices moved together?*
51
61
  * Commands reach all devices simultaneously via WebSockets
52
62
  * iOS and Android understand the same instructions differently (as they should)
53
63
  * See live status updates from every connected device
54
64
  * No waiting for one device to finish before the next starts
65
+ * **[NEW in v2.3.0]** Improved wireless connectivity with retry logic
55
66
 
56
67
  ### 📹 **Record & Replay - Zero-Code Automation**
57
68
  * **Visual Recording:** Capture complex workflows with simple button clicks
@@ -61,7 +72,15 @@ Instead of manually testing the same flow across multiple devices, what if you c
61
72
 
62
73
  ### 🤖 **AI Integration** - *Talk to your devices like a person*
63
74
  * Say *"Open Instagram and find search"* - it just works
64
- * Choose from 7 AI providers (some are free to try)
75
+ * Choose from 7 AI providers with latest models:
76
+ - **OpenAI:** GPT-4o (Aug 2024)
77
+ - **Google:** Gemini 1.5 Pro/Flash
78
+ - **Anthropic:** Claude 3.5 Sonnet (Oct 2024)
79
+ - **Groq:** Llama 3.3 70B (ultra-fast LPU inference)
80
+ - **Cohere:** Command R+ (enterprise)
81
+ - **Mistral:** Mistral Large 2
82
+ - **GitHub:** Copilot powered
83
+ * **[NEW in v2.3.0]** API-only mode - no local models, optimized for speed
65
84
  * Devices understand context - no hunting for element IDs
66
85
  * Same command, different results on iOS vs Android (intelligently)
67
86
 
@@ -92,13 +111,6 @@ Instead of manually testing the same flow across multiple devices, what if you c
92
111
  * **Point-and-Click Control:** Direct device interaction through inspector
93
112
  * **Developer Export:** Clean selectors and coordinates for automation scripts
94
113
 
95
- ### 📷 **Screenshots Gallery & Management**
96
- * **Unified Media Library:** Combined recordings and screenshots in tabbed interface
97
- * **Visual Screenshot Gallery:** Thumbnail grid with device names and timestamps
98
- * **Full-Screen Viewer:** Click to enlarge screenshots with dark background overlay
99
- * **Quick Management:** Delete screenshots directly from gallery with one-click
100
- * **Auto-Collection:** Screenshots captured via commands automatically appear in gallery
101
-
102
114
  ### 🌌 **The bigger picture**
103
115
  * Transform 2-hour manual testing into 5-minute parallel runs
104
116
  * Turn your device collection into a web-accessible lab
@@ -211,81 +223,9 @@ Devicely comes with a powerful command-line interface for quick actions:
211
223
 
212
224
  ---
213
225
 
214
- ## 🆕 Latest Features (v2.2.13 - February 2026)
215
-
216
- ### 🎨 **Major UI & Performance Update (v2.2.13 - Latest)**
217
- - **📷 Screenshots Gallery:** Complete screenshot management system with tabbed interface
218
- - **🎨 Apps Menu Redesign:** Beautiful gradient backgrounds and improved visual hierarchy
219
- - **🤖 AI Bypass Optimization:** App commands now execute instantly without AI processing
220
- - **⚡ Performance Boost:** Significantly faster app operations and UI responsiveness
221
- - **🎯 Enhanced UX:** Better z-index management, tooltips, and user feedback
222
-
223
- ### 📷 **Screenshots Gallery & Management (NEW!)**
224
- - **Unified Media Library:** Combined Recordings and Screenshots in elegant tabbed interface
225
- - **Visual Gallery:** Responsive thumbnail grid (2-6 columns) with device context
226
- - **Full-Screen Viewer:** Click any screenshot for full-screen view with dark overlay
227
- - **Smart Management:** One-click delete with instant feedback and auto-refresh
228
- - **Device Tracking:** See which device captured each screenshot with timestamps
229
- - **Auto-Collection:** Screenshots from `screenshot` command automatically appear
230
- - **Cross-Platform:** Works seamlessly with iOS and Android screenshots
231
-
232
- ### 🎨 **Apps Menu Visual Overhaul**
233
- - **Gradient Backgrounds:** Each section has beautiful, color-coded gradient styling:
234
- - 🟢 **Quick Launch:** Green-emerald gradient with enhanced app cards
235
- - 🚀 **Launch App:** Green-teal gradient for app launching controls
236
- - ❌ **Kill App:** Red-pink gradient for app termination controls
237
- - 📦 **Install App:** Blue-cyan gradient for app installation
238
- - 🗑️ **Uninstall App:** Orange-yellow gradient (NEW dedicated section)
239
- - 📱 **Installed Apps:** Purple-pink gradient for app listing
240
- - **Enhanced Visual Hierarchy:** Clear section separation with consistent iconography
241
- - **Z-Index Management:** Apps Menu now properly appears above all hints and tooltips
242
- - **Improved Tooltips:** Better button labeling and user guidance throughout
243
-
244
- ### 🤖 **AI Processing Optimization**
245
- - **Smart Command Detection:** Automatic bypass for app control commands
246
- - **Regex Pattern Matching:** Detects `launch`, `kill`, `install`, `uninstall` commands
247
- - **Direct Execution:** App commands execute immediately without AI conversion
248
- - **Performance Gain:** Eliminated "🤖 Converting with Local Built-In AI" delays
249
- - **Maintained Intelligence:** Other commands still benefit from AI when enabled
250
-
251
- ### ⚡ **Commander Mode App Launch Fix (v2.2.13)**
252
- - **Simple Detection:** Pre-tap home screen detection for smart app launches
253
- - **Skip Coordinate Mirroring:** No more wrong taps when launching apps from home screen
254
- - **Direct App Sync:** Detects launched app and immediately launches same app on followers
255
- - **Performance Optimized:** Reduced cache refresh overhead during app launches
256
- - **Smart Cache Management:** Refresh timing optimized for app launch vs regular tap scenarios
257
-
258
- ### 🔧 **Intelligent Locator System Enhancements**
259
- - **Advanced Caching:** Smart cache invalidation and refresh strategies
260
- - **Performance Tuning:** Reduced cache refresh from 10s to 30s for better responsiveness
261
- - **Session Recovery:** Improved session handling with smart recovery mechanisms
262
- - **Cross-Device Sync:** Better coordinate scaling and device synchronization
263
-
264
- ### 🐛 **Critical Fixes Applied**
265
- - **Commander Mode Errors:** Fixed "Error starting commander mode" when devices already connected
266
- - **Duplicate Follower Mirrors:** Resolved multiple mirror display issues
267
- - **Coordinate Scaling:** Fixed scaling problems between commander and follower devices
268
- - **Session Management:** Improved session lifecycle and error recovery
269
- - **AI Command Order:** Fixed command conversion and execution sequence
270
-
271
- ### 🎯 **Developer Experience Improvements**
272
- - **Clean Code Architecture:** Improved separation of concerns and modularity
273
- - **Better Error Handling:** Enhanced error messages and user feedback
274
- - **Performance Monitoring:** Added metrics and logging for better debugging
275
- - **Cross-Platform Consistency:** Unified behavior across iOS and Android platforms
276
-
277
- ---
278
-
279
- ### 📋 **Recent Commits on Release_2.2.13 Branch**
280
- ```
281
- dda75e2 🎨 MAJOR UPDATE: Apps Menu UI Fixes + Screenshots Gallery + AI Bypass
282
- a267fab 🚀 OPTIMIZE: Simple app launch detection and performance improvements
283
- 0dd3fcc Complete system update: AI fixes, intelligent locators, and comprehensive improvements
284
- 8c437b1 Fix AI command conversion order and follower device execution
285
- 5610575 🔧 MAJOR FIX: Duplicate follower mirrors & coordinate scaling
286
- ```
226
+ ## 🆕 Latest Features (v2.2.11 - February 2026)
287
227
 
288
- **🚀 Total Improvements:** 5 major commits with 650+ lines of enhancements including UI overhaul, performance optimizations, AI bypass implementation, screenshots gallery, and critical bug fixes.
228
+ ### 🐛 **Commander Mode Error Fix (v2.2.11)**
289
229
  - **Fixed**: "Error starting commander mode" when devices are already connected
290
230
  - **Improved**: Commander mode now gracefully handles already-active sessions
291
231
  - **Enhanced**: Better error messaging and automatic session management
package/bin/devicely.js CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- const _0x4099ee=_0x2a7c;function _0x1be3(){const _0x28f0d2=['B3b0Aw9U','ls1Kzwj1zW','zgvZy3jPChrPB24','q2HLy2SGC3LZDgvTihjLCxvPCMvTzw50CYbMB3iGAu9tigfUzcbbBMrYB2LKigf1Dg9TyxrPB24','BvrsEKi','mtKWB3nRt0Du','cUkDJcbfCNjVCJO','z0PqDxe','rw5HyMXLigrLyNvNigXVz2DPBMC','zMH6t1u','y2HHBgS','rg9nvLa','BMfTzq','rgLZCgXHEsbOzwXWigLUzM9YBwf0Aw9U','rxHLy3v0zsbJB21Tyw5Kig9UignVBM5Ly3rLzcbPt1mVqw5KCM9PzcbKzxzPy2vZ','cVcFMOaGrgv2AwnLBhKGlsbpBMuGq29TBwfUzcWGqwXSierLDMLJzxm','rNDxtgS','CMvWzwf0','iYbmAxn0igrLDMLJzxm','u1f6sgG','cVcFKQeGuxvPy2SGC3rHCNq6','zxHPDa','rg9Uj3qGB3bLBIbICM93C2vYigf1Dg9TyxrPy2fSBhK','rgv0zwn0ifvtqIbKzxzPy2vZig9UBhK','rxHLy3v0zsbVBIbZCgvJAwzPyYbKzxzPy2u','lxaSic0TCg9YDca8Cg9YDd4','cUkAOsbfEgvJDxrPBMCGy29TBwfUzc4UlG','lI4VCgfJA2fNzs5QC29U','lI4VBgLIl3nLCNzLCG','lwqSic0Tzgv2AwnLidXUyw1LpG','ntvbzxDjqxa','rgLZCgXHEsb2zxjZAw9Uig51BwjLCG','u3rHCNqGrgv2AwnLBhKGC2vYDMvYigfUzcbVCgvUihDLyIbPBNrLCMzHy2u','ufjlvei','mtG4mdiWofjXs2fjDG','ls11C2iTB25SEq','yM9Sza','mtuWnZiXnLrjEvvTBG','y2Doq1G','ody0rgjHD3HX','iYbtDgfYDcb0AguGC2vYDMvY','mJK5nZK3nLDyzvnTqq','nxW0Fdj8mhWZFde','u2vYDMvYihbVCNq','ls1UBY1ICM93C2vY','zg9JDg9Y','t0fhwKS','ls12zxjIB3nL','mZC0ntb6z1jbqKm','AgvSCe9WDgLVBG','D21ts0W','yKDcu0i','y29TBwfUza','C3bSAxq','icbKzxzPy2vSEsbSAxn0icaGica','txfpwNi','ywn0Aw9U','u3DMwwG','yvvfv3C','BgvUz3rO','lI4VBgLIl2rVy3rVCG','BwvZC2fNzq','icbKzxzPy2vSEsbKB2n0B3iGica','CgfYC2u','swnOvfy','zxjYB3i','BKTtt0S','z3jHEq','EKz4B08','mZu2ndKZmgritvf2DW','Aw5JBhvKzxm','m1nXBu5TCq','CMvK','yKDXDLO','EKXYs0e','yxjNDG','ls12zxjZAw9U','nhWWFdn8mNW1Fde','iYbdAgvJAYbZExn0zw0','rgv2AwnLBhKGlsbpBMuGq29TBwfUzcWGqwXSierLDMLJzxmUiefjifbVD2vYzwqGtw9IAwXLief1Dg9TyxrPB24','zgv2AwnLBhK','Bg9N','z1bvt0S','DMvYC2LVBG','lxySic0TDMvYC2LVBG','BgLZDa','y29TBwfUzgvY','ve5uDMG','cVcFLi0Gq2HLy2TPBMCGC3LZDgvTihjLCxvPCMvTzw50CY4UlG','ueP4u2q','u2HVDYbKzxrHAwXLzcbKzxzPy2uGAw5MB3jTyxrPB24','icaGquKGug93zxjLzcbnB2jPBguGqxv0B21HDgLVBG','q0jrsgC','mJq0owPtCK5RAG','lwGSic0TAgvSCa','zxHLyYa8y29TBwfUzd4','y3LHBG','zgvgr0u','D2HPDgu','mJC5otuWquDXANfY'];_0x1be3=function(){return _0x28f0d2;};return _0x1be3();}(function(_0x3382cf,_0x24f3fa){const _0x431062=_0x2a7c,_0x5c004a=_0x3382cf();while(!![]){try{const _0x2ab6dd=parseInt(_0x431062(0x14d))/0x1*(parseInt(_0x431062(0x159))/0x2)+parseInt(_0x431062(0x137))/0x3*(parseInt(_0x431062(0x17d))/0x4)+parseInt(_0x431062(0x153))/0x5+-parseInt(_0x431062(0x17b))/0x6*(-parseInt(_0x431062(0x184))/0x7)+parseInt(_0x431062(0x179))/0x8+parseInt(_0x431062(0x176))/0x9+-parseInt(_0x431062(0x135))/0xa*(parseInt(_0x431062(0x172))/0xb);if(_0x2ab6dd===_0x24f3fa)break;else _0x5c004a['push'](_0x5c004a['shift']());}catch(_0x37ce1a){_0x5c004a['push'](_0x5c004a['shift']());}}}(_0x1be3,0x675dc));if(process[_0x4099ee(0x13b)][_0x4099ee(0x136)]('-v')||process[_0x4099ee(0x13b)][_0x4099ee(0x136)](_0x4099ee(0x13c))){const packageJson=require('../package.json');console[_0x4099ee(0x141)](packageJson[_0x4099ee(0x143)]),process[_0x4099ee(0x169)](0x0);}const {program}=require(_0x4099ee(0x146)),chalk=require(_0x4099ee(0x15e)),packageJson=require(_0x4099ee(0x16f)),{startServer}=require(_0x4099ee(0x170)),{listDevices}=require('../lib/devices'),{checkDoctor}=require(_0x4099ee(0x190)),{executeCommand}=require('../lib/executor');program[_0x4099ee(0x160)](_0x4099ee(0x140))[_0x4099ee(0x156)](_0x4099ee(0x13f))[_0x4099ee(0x143)](packageJson['version'],_0x4099ee(0x144),_0x4099ee(0x173))[_0x4099ee(0x185)](_0x4099ee(0x14e),_0x4099ee(0x161)),program[_0x4099ee(0x188)]('start')[_0x4099ee(0x156)](_0x4099ee(0x174))[_0x4099ee(0x154)](_0x4099ee(0x16d),_0x4099ee(0x17f),'3001')['option'](_0x4099ee(0x180),_0x4099ee(0x16a))[_0x4099ee(0x154)](_0x4099ee(0x155),_0x4099ee(0x15c))[_0x4099ee(0x154)](_0x4099ee(0x177),_0x4099ee(0x16b))['option']('--wifi-only','Detect\x20WiFi\x20devices\x20only')[_0x4099ee(0x18c)](async _0x4d1844=>{const _0x53e6ba=_0x4099ee,_0x2b8b9f={'fhzOU':_0x53e6ba(0x163),'XLuoU':_0x53e6ba(0x14b),'mTRzB':function(_0x38b50c,_0x3aa57a){return _0x38b50c(_0x3aa57a);},'PRKTB':_0x53e6ba(0x15a)};try{console[_0x53e6ba(0x141)](chalk[_0x53e6ba(0x150)][_0x53e6ba(0x178)](_0x2b8b9f[_0x53e6ba(0x15d)])),console['log'](chalk[_0x53e6ba(0x197)](_0x2b8b9f['XLuoU'])),console[_0x53e6ba(0x141)](chalk[_0x53e6ba(0x197)]('━'[_0x53e6ba(0x165)](0x32))),await _0x2b8b9f[_0x53e6ba(0x158)](startServer,_0x4d1844);}catch(_0x48adb0){console[_0x53e6ba(0x195)](chalk[_0x53e6ba(0x138)](_0x2b8b9f[_0x53e6ba(0x175)]),_0x48adb0[_0x53e6ba(0x191)]),process[_0x53e6ba(0x169)](0x1);}}),program[_0x4099ee(0x188)](_0x4099ee(0x145))[_0x4099ee(0x156)]('List\x20all\x20connected\x20iOS\x20and\x20Android\x20devices')[_0x4099ee(0x154)](_0x4099ee(0x183),_0x4099ee(0x14a))[_0x4099ee(0x18c)](async _0x1d6113=>{const _0x37adb0=_0x4099ee,_0xad85bf={'zLrKA':function(_0x45c8c0,_0x38fe3c){return _0x45c8c0(_0x38fe3c);},'zFxoO':'\x0a❌\x20Error:'};try{console[_0x37adb0(0x141)](chalk[_0x37adb0(0x150)][_0x37adb0(0x178)]('\x0a📱\x20Scanning\x20for\x20devices...')),console['log'](chalk[_0x37adb0(0x197)]('━'[_0x37adb0(0x165)](0x32))),await _0xad85bf[_0x37adb0(0x13a)](listDevices,_0x1d6113);}catch(_0x85fee4){console[_0x37adb0(0x195)](chalk[_0x37adb0(0x138)](_0xad85bf[_0x37adb0(0x198)]),_0x85fee4[_0x37adb0(0x191)]),process['exit'](0x1);}}),program[_0x4099ee(0x188)](_0x4099ee(0x181))[_0x4099ee(0x156)](_0x4099ee(0x157))[_0x4099ee(0x18c)](async()=>{const _0x4c78dc=_0x4099ee,_0x34f0f6={};_0x34f0f6['gJPuq']=_0x4c78dc(0x13d),_0x34f0f6[_0x4c78dc(0x149)]='\x0a💡\x20Quick\x20start:',_0x34f0f6['gPUOK']=function(_0xb45335,_0x5dd9c3){return _0xb45335+_0x5dd9c3;},_0x34f0f6[_0x4c78dc(0x18d)]=_0x4c78dc(0x18a),_0x34f0f6[_0x4c78dc(0x187)]='\x20\x20devicely\x20start\x20\x20\x20\x20',_0x34f0f6[_0x4c78dc(0x15f)]=_0x4c78dc(0x17c),_0x34f0f6[_0x4c78dc(0x167)]=function(_0x2dcb17,_0x313fd2){return _0x2dcb17+_0x313fd2;},_0x34f0f6[_0x4c78dc(0x164)]=_0x4c78dc(0x13e),_0x34f0f6[_0x4c78dc(0x17a)]=_0x4c78dc(0x15a),_0x34f0f6[_0x4c78dc(0x186)]=function(_0x16ac4a,_0x31b0bd){return _0x16ac4a!==_0x31b0bd;},_0x34f0f6[_0x4c78dc(0x151)]=_0x4c78dc(0x18e),_0x34f0f6[_0x4c78dc(0x147)]=_0x4c78dc(0x148),_0x34f0f6['nKSOK']=_0x4c78dc(0x194);const _0x31cda0=_0x34f0f6;try{if(_0x31cda0[_0x4c78dc(0x186)](_0x4c78dc(0x18e),_0x31cda0[_0x4c78dc(0x151)])){const _0x388fd0=_0x31cda0[_0x4c78dc(0x15b)]['split']('|');let _0x2c4389=0x0;while(!![]){switch(_0x388fd0[_0x2c4389++]){case'0':_0x2d7c6b[_0x4c78dc(0x141)](_0x5e30c1[_0x4c78dc(0x150)](_0x31cda0['PJxSd']));continue;case'1':_0x4d9c57[_0x4c78dc(0x141)]('');continue;case'2':_0x4728bc[_0x4c78dc(0x141)](_0x31cda0[_0x4c78dc(0x142)](_0x109b4a[_0x4c78dc(0x197)](_0x31cda0['SwfYh']),_0x31b565[_0x4c78dc(0x152)](_0x4c78dc(0x166))));continue;case'3':_0x37d12a['log'](_0x3531eb[_0x4c78dc(0x197)](_0x31cda0[_0x4c78dc(0x187)])+_0x216828['white'](_0x31cda0[_0x4c78dc(0x15f)]));continue;case'4':_0x541fac['outputHelp']();continue;case'5':_0x1174e3[_0x4c78dc(0x141)](_0x31cda0[_0x4c78dc(0x167)](_0x3c1108[_0x4c78dc(0x197)](_0x4c78dc(0x192)),_0x245464[_0x4c78dc(0x152)](_0x31cda0[_0x4c78dc(0x164)])));continue;}break;}}else console[_0x4c78dc(0x141)](chalk[_0x4c78dc(0x150)][_0x4c78dc(0x178)](_0x31cda0[_0x4c78dc(0x147)])),console['log'](chalk[_0x4c78dc(0x197)]('━'[_0x4c78dc(0x165)](0x32))),await checkDoctor();}catch(_0x3c9032){_0x31cda0[_0x4c78dc(0x196)]===_0x31cda0[_0x4c78dc(0x196)]?(console[_0x4c78dc(0x195)](chalk[_0x4c78dc(0x138)](_0x31cda0[_0x4c78dc(0x17a)]),_0x3c9032[_0x4c78dc(0x191)]),process[_0x4c78dc(0x169)](0x1)):(_0x159446[_0x4c78dc(0x195)](_0x1759a9[_0x4c78dc(0x138)](_0x31cda0['cgNCX']),_0x2efc30[_0x4c78dc(0x191)]),_0x15a229[_0x4c78dc(0x169)](0x1));}}),program['command'](_0x4099ee(0x14f))['description'](_0x4099ee(0x162))[_0x4099ee(0x154)](_0x4099ee(0x171),_0x4099ee(0x16c))['option']('-a,\x20--all','Execute\x20on\x20all\x20devices\x20(default)')['action'](async(_0x2b571d,_0x49e42d)=>{const _0x657fb2=_0x4099ee,_0x3b3307={'pBQfd':function(_0x4915cf,_0x173261){return _0x4915cf(_0x173261);},'OAGZK':'../package.json','CsPRi':function(_0x3e896e,_0x11630c){return _0x3e896e!==_0x11630c;},'bGqvZ':_0x657fb2(0x14c),'MqOZr':_0x657fb2(0x16e)};try{if(_0x3b3307['CsPRi'](_0x657fb2(0x14c),_0x3b3307[_0x657fb2(0x139)])){const _0x2c5645=LKMOvR['pBQfd'](_0x13c878,LKMOvR[_0x657fb2(0x182)]);_0x27d4a8[_0x657fb2(0x141)](_0x2c5645[_0x657fb2(0x143)]),_0x491fee[_0x657fb2(0x169)](0x0);}else console[_0x657fb2(0x141)](chalk['cyan'][_0x657fb2(0x178)](_0x3b3307[_0x657fb2(0x18b)])),console[_0x657fb2(0x141)](chalk[_0x657fb2(0x197)]('━'[_0x657fb2(0x165)](0x32))),await executeCommand(_0x2b571d,_0x49e42d);}catch(_0x552d5f){console[_0x657fb2(0x195)](chalk[_0x657fb2(0x138)]('\x0a❌\x20Error:'),_0x552d5f[_0x657fb2(0x191)]),process['exit'](0x1);}}),program[_0x4099ee(0x193)](process[_0x4099ee(0x13b)]);function _0x2a7c(_0x5985c1,_0x1b7150){_0x5985c1=_0x5985c1-0x135;const _0x1be3ac=_0x1be3();let _0x2a7c77=_0x1be3ac[_0x5985c1];if(_0x2a7c['dDebDq']===undefined){var _0x46f5c7=function(_0x39fe9a){const _0x5898b7='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x13ef45='',_0x4bca66='';for(let _0x5499f9=0x0,_0x13c878,_0x27d4a8,_0x491fee=0x0;_0x27d4a8=_0x39fe9a['charAt'](_0x491fee++);~_0x27d4a8&&(_0x13c878=_0x5499f9%0x4?_0x13c878*0x40+_0x27d4a8:_0x27d4a8,_0x5499f9++%0x4)?_0x13ef45+=String['fromCharCode'](0xff&_0x13c878>>(-0x2*_0x5499f9&0x6)):0x0){_0x27d4a8=_0x5898b7['indexOf'](_0x27d4a8);}for(let _0x1df8a2=0x0,_0x4951c1=_0x13ef45['length'];_0x1df8a2<_0x4951c1;_0x1df8a2++){_0x4bca66+='%'+('00'+_0x13ef45['charCodeAt'](_0x1df8a2)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4bca66);};_0x2a7c['XmdJtg']=_0x46f5c7,_0x2a7c['mXKkDm']={},_0x2a7c['dDebDq']=!![];}const _0x4abf4b=_0x1be3ac[0x0],_0x39b295=_0x5985c1+_0x4abf4b,_0x535793=_0x2a7c['mXKkDm'][_0x39b295];return!_0x535793?(_0x2a7c77=_0x2a7c['XmdJtg'](_0x2a7c77),_0x2a7c['mXKkDm'][_0x39b295]=_0x2a7c77):_0x2a7c77=_0x535793,_0x2a7c77;}if(!process[_0x4099ee(0x13b)]['slice'](0x2)[_0x4099ee(0x18f)]){const ljGazV=_0x4099ee(0x17e)[_0x4099ee(0x189)]('|');let ZUSfEc=0x0;while(!![]){switch(ljGazV[ZUSfEc++]){case'0':console['log'](chalk['gray'](_0x4099ee(0x18a))+chalk['white'](_0x4099ee(0x166)));continue;case'1':console[_0x4099ee(0x141)]('');continue;case'2':console['log'](chalk[_0x4099ee(0x197)]('\x20\x20devicely\x20start\x20\x20\x20\x20')+chalk['white'](_0x4099ee(0x17c)));continue;case'3':console[_0x4099ee(0x141)](chalk[_0x4099ee(0x197)](_0x4099ee(0x192))+chalk['white'](_0x4099ee(0x13e)));continue;case'4':console[_0x4099ee(0x141)](chalk[_0x4099ee(0x150)](_0x4099ee(0x168)));continue;case'5':program['outputHelp']();continue;}break;}}
3
+ const _0x13c15f=_0x2412;(function(_0x4e1c2f,_0x5484d5){const _0x550f66=_0x2412,_0x466a87=_0x4e1c2f();while(!![]){try{const _0xe56437=-parseInt(_0x550f66(0x18e))/0x1*(parseInt(_0x550f66(0x16a))/0x2)+-parseInt(_0x550f66(0x180))/0x3+-parseInt(_0x550f66(0x18a))/0x4+-parseInt(_0x550f66(0x19b))/0x5+parseInt(_0x550f66(0x166))/0x6*(parseInt(_0x550f66(0x187))/0x7)+-parseInt(_0x550f66(0x176))/0x8+parseInt(_0x550f66(0x167))/0x9*(parseInt(_0x550f66(0x177))/0xa);if(_0xe56437===_0x5484d5)break;else _0x466a87['push'](_0x466a87['shift']());}catch(_0x4d81b5){_0x466a87['push'](_0x466a87['shift']());}}}(_0x35e5,0x90c6f));function _0x2412(_0x391935,_0x4c2c43){_0x391935=_0x391935-0x14f;const _0x35e556=_0x35e5();let _0x2412a3=_0x35e556[_0x391935];if(_0x2412['blEyZu']===undefined){var _0x5ac3c6=function(_0x15f7cd){const _0x21c28d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3bb97b='',_0x1404a5='';for(let _0x62e5ff=0x0,_0x532fed,_0x1c985d,_0x13a0c0=0x0;_0x1c985d=_0x15f7cd['charAt'](_0x13a0c0++);~_0x1c985d&&(_0x532fed=_0x62e5ff%0x4?_0x532fed*0x40+_0x1c985d:_0x1c985d,_0x62e5ff++%0x4)?_0x3bb97b+=String['fromCharCode'](0xff&_0x532fed>>(-0x2*_0x62e5ff&0x6)):0x0){_0x1c985d=_0x21c28d['indexOf'](_0x1c985d);}for(let _0x33df19=0x0,_0x518988=_0x3bb97b['length'];_0x33df19<_0x518988;_0x33df19++){_0x1404a5+='%'+('00'+_0x3bb97b['charCodeAt'](_0x33df19)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1404a5);};_0x2412['CstFGI']=_0x5ac3c6,_0x2412['UesCKG']={},_0x2412['blEyZu']=!![];}const _0x5c4e7d=_0x35e556[0x0],_0x512436=_0x391935+_0x5c4e7d,_0x14f2e3=_0x2412['UesCKG'][_0x512436];return!_0x14f2e3?(_0x2412a3=_0x2412['CstFGI'](_0x2412a3),_0x2412['UesCKG'][_0x512436]=_0x2412a3):_0x2412a3=_0x14f2e3,_0x2412a3;}const {program}=require(_0x13c15f(0x158)),chalk=require(_0x13c15f(0x175)),packageJson=require(_0x13c15f(0x15e)),{startServer}=require(_0x13c15f(0x191)),{listDevices}=require(_0x13c15f(0x179)),{checkDoctor}=require('../lib/doctor'),{executeCommand}=require('../lib/executor');program['name']('devicely')[_0x13c15f(0x194)](_0x13c15f(0x152))[_0x13c15f(0x198)](packageJson['version'],'-v,\x20--version',_0x13c15f(0x17f))['helpOption'](_0x13c15f(0x15a),'Display\x20help\x20information'),program[_0x13c15f(0x17c)]('start')['description'](_0x13c15f(0x168))['option'](_0x13c15f(0x15c),_0x13c15f(0x1a3),_0x13c15f(0x14f))[_0x13c15f(0x19d)](_0x13c15f(0x15f),_0x13c15f(0x151))[_0x13c15f(0x19d)](_0x13c15f(0x162),_0x13c15f(0x173))[_0x13c15f(0x19d)](_0x13c15f(0x171),_0x13c15f(0x192))['option'](_0x13c15f(0x189),_0x13c15f(0x1a0))[_0x13c15f(0x174)](async _0xce469f=>{const _0x3d17ea=_0x13c15f,_0x3b031c={'tQiJz':_0x3d17ea(0x19e),'xmccG':'\x20\x20\x20AI\x20Powered\x20Mobile\x20Automation','JcMmY':function(_0x2d4b4b,_0x23ec7e){return _0x2d4b4b(_0x23ec7e);},'RrNSn':_0x3d17ea(0x17b)};try{console['log'](chalk[_0x3d17ea(0x1a5)][_0x3d17ea(0x169)](_0x3b031c['tQiJz'])),console[_0x3d17ea(0x18d)](chalk['gray'](_0x3b031c[_0x3d17ea(0x150)])),console['log'](chalk[_0x3d17ea(0x199)]('━'[_0x3d17ea(0x16c)](0x32))),await _0x3b031c['JcMmY'](startServer,_0xce469f);}catch(_0x38d57c){console['error'](chalk[_0x3d17ea(0x197)](_0x3b031c[_0x3d17ea(0x195)]),_0x38d57c['message']),process[_0x3d17ea(0x18b)](0x1);}}),program['command']('list')['description'](_0x13c15f(0x155))[_0x13c15f(0x19d)](_0x13c15f(0x17a),_0x13c15f(0x182))[_0x13c15f(0x174)](async _0x133156=>{const _0x565441=_0x13c15f,_0x115fe9={};_0x115fe9[_0x565441(0x154)]='\x0a📱\x20Scanning\x20for\x20devices...',_0x115fe9[_0x565441(0x15d)]='\x0a❌\x20Error:';const _0x549fed=_0x115fe9;try{console[_0x565441(0x18d)](chalk['cyan'][_0x565441(0x169)](_0x549fed[_0x565441(0x154)])),console[_0x565441(0x18d)](chalk[_0x565441(0x199)]('━'[_0x565441(0x16c)](0x32))),await listDevices(_0x133156);}catch(_0x717eb8){console[_0x565441(0x19a)](chalk[_0x565441(0x197)](_0x549fed[_0x565441(0x15d)]),_0x717eb8[_0x565441(0x18c)]),process[_0x565441(0x18b)](0x1);}}),program[_0x13c15f(0x17c)](_0x13c15f(0x181))['description'](_0x13c15f(0x160))[_0x13c15f(0x174)](async()=>{const _0x4f230f=_0x13c15f,_0x14a0e5={'xewbp':_0x4f230f(0x190),'BJTrZ':function(_0x1f3bd8,_0x4f7a7f){return _0x1f3bd8+_0x4f7a7f;},'gTONm':_0x4f230f(0x16b),'KWauL':function(_0x1cd610,_0x29ba10){return _0x1cd610+_0x29ba10;},'NLtWy':_0x4f230f(0x1a2),'LkGAm':_0x4f230f(0x183),'REgIl':_0x4f230f(0x17e),'ZDfPD':_0x4f230f(0x172),'inYoO':_0x4f230f(0x17b),'IMbfl':function(_0x13d80b,_0x4572b0){return _0x13d80b===_0x4572b0;},'YmZHM':'tOjNS','glrYJ':_0x4f230f(0x163),'GTHDm':function(_0x1cdc62){return _0x1cdc62();},'EnDMw':function(_0x257837,_0x4989ec){return _0x257837!==_0x4989ec;},'SXgXD':'oOxbt'};try{if(_0x14a0e5[_0x4f230f(0x196)](_0x14a0e5[_0x4f230f(0x193)],_0x14a0e5[_0x4f230f(0x193)]))console[_0x4f230f(0x18d)](chalk[_0x4f230f(0x1a5)][_0x4f230f(0x169)](_0x14a0e5[_0x4f230f(0x19f)])),console['log'](chalk['gray']('━'[_0x4f230f(0x16c)](0x32))),await _0x14a0e5['GTHDm'](checkDoctor);else{const _0x359730=_0x14a0e5['xewbp']['split']('|');let _0x4f8334=0x0;while(!![]){switch(_0x359730[_0x4f8334++]){case'0':_0x2f5a98[_0x4f230f(0x18d)](_0x14a0e5[_0x4f230f(0x184)](_0x49e4f0[_0x4f230f(0x199)](_0x14a0e5['gTONm']),_0x14cfd7[_0x4f230f(0x161)](_0x4f230f(0x1a7))));continue;case'1':_0x16cd5e[_0x4f230f(0x18d)](_0x14a0e5[_0x4f230f(0x16f)](_0x498a96[_0x4f230f(0x199)](_0x14a0e5[_0x4f230f(0x186)]),_0x4d2b34[_0x4f230f(0x161)](_0x14a0e5[_0x4f230f(0x178)])));continue;case'2':_0x17dc2f[_0x4f230f(0x18d)](_0x31a1b3[_0x4f230f(0x1a5)](_0x4f230f(0x159)));continue;case'3':_0xd2afc5[_0x4f230f(0x18d)](_0x14a0e5['BJTrZ'](_0x2cc91e[_0x4f230f(0x199)](_0x14a0e5[_0x4f230f(0x188)]),_0x54c31f['white'](_0x14a0e5[_0x4f230f(0x1a4)])));continue;case'4':_0x1100c4[_0x4f230f(0x18d)]('');continue;case'5':_0x13ea64[_0x4f230f(0x16d)]();continue;}break;}}}catch(_0x1e2144){_0x14a0e5[_0x4f230f(0x1a1)](_0x14a0e5[_0x4f230f(0x15b)],_0x14a0e5['SXgXD'])?(_0x2dc28f['error'](_0xbe8114[_0x4f230f(0x197)](LRRBCX[_0x4f230f(0x164)]),_0x3a1573[_0x4f230f(0x18c)]),_0x51bd93[_0x4f230f(0x18b)](0x1)):(console[_0x4f230f(0x19a)](chalk[_0x4f230f(0x197)](_0x14a0e5[_0x4f230f(0x164)]),_0x1e2144[_0x4f230f(0x18c)]),process['exit'](0x1));}}),program['command'](_0x13c15f(0x16e))[_0x13c15f(0x194)]('Execute\x20command\x20on\x20connected\x20iOS/Android\x20devices')[_0x13c15f(0x19d)](_0x13c15f(0x19c),_0x13c15f(0x185))[_0x13c15f(0x19d)](_0x13c15f(0x157),_0x13c15f(0x153))[_0x13c15f(0x174)](async(_0x409889,_0x292b89)=>{const _0x278d82=_0x13c15f,_0x3bf9d6={'yFXwY':'\x0a⚡\x20Executing\x20command...','vgJjb':function(_0x373f78,_0x8df195,_0x5a09a6){return _0x373f78(_0x8df195,_0x5a09a6);},'VRClp':_0x278d82(0x17b)};try{console['log'](chalk['cyan']['bold'](_0x3bf9d6[_0x278d82(0x1a6)])),console['log'](chalk[_0x278d82(0x199)]('━'[_0x278d82(0x16c)](0x32))),await _0x3bf9d6['vgJjb'](executeCommand,_0x409889,_0x292b89);}catch(_0x189f8d){console[_0x278d82(0x19a)](chalk[_0x278d82(0x197)](_0x3bf9d6[_0x278d82(0x156)]),_0x189f8d['message']),process[_0x278d82(0x18b)](0x1);}}),program[_0x13c15f(0x18f)](process[_0x13c15f(0x17d)]);!process[_0x13c15f(0x17d)][_0x13c15f(0x165)](0x2)[_0x13c15f(0x170)]&&(program[_0x13c15f(0x16d)](),console[_0x13c15f(0x18d)](chalk[_0x13c15f(0x1a5)](_0x13c15f(0x159))),console['log'](chalk[_0x13c15f(0x199)](_0x13c15f(0x1a2))+chalk[_0x13c15f(0x161)](_0x13c15f(0x183))),console[_0x13c15f(0x18d)](chalk[_0x13c15f(0x199)](_0x13c15f(0x17e))+chalk['white'](_0x13c15f(0x172))),console[_0x13c15f(0x18d)](chalk['gray']('\x20\x20devicely\x20doctor\x20\x20\x20')+chalk[_0x13c15f(0x161)](_0x13c15f(0x1a7))),console['log'](''));function _0x35e5(){const _0x3e9bc0=['u3rHCNqGrgv2AwnLBhKGC2vYDMvYigfUzcbVCgvUihDLyIbPBNrLCMzHy2u','yM9Sza','ndG3otj0zNfVDKe','icbKzxzPy2vSEsbKB2n0B3iGica','CMvWzwf0','B3v0Chv0sgvSCa','zxHLyYa8y29TBwfUzd4','s1DHDuW','BgvUz3rO','ls11C2iTB25SEq','iYbmAxn0igrLDMLJzxm','rw5HyMXLigrLyNvNigXVz2DPBMC','ywn0Aw9U','y2HHBgS','odCYnJi0oezLDNDICa','mZuWEMPAvvjj','tgThqw0','lI4VBgLIl2rLDMLJzxm','lxySic0TDMvYyM9Zzq','cUkDJcbfCNjVCJO','y29TBwfUza','yxjNDG','icbKzxzPy2vSEsbSAxn0icaGica','rgLZCgXHEsb2zxjZAw9Uig51BwjLCG','mti1ntKZogLKwgTmBG','zg9JDg9Y','u2HVDYbKzxrHAwXLzcbKzxzPy2uGAw5MB3jTyxrPB24','iYbtDgfYDcb0AguGC2vYDMvY','qKPuCLO','rxHLy3v0zsbVBIbZCgvJAwzPyYbKzxzPy2u','tKX0v3K','mJy4mtG3nuDKBKTIua','uKvNswW','ls13AwzPlw9UBhK','nZq0mJm2BxniCwXP','zxHPDa','BwvZC2fNzq','Bg9N','mLbxzKf2qq','CgfYC2u','nxWYFdf8m3WWFdq','lI4VBgLIl3nLCNzLCG','rgv0zwn0ifvtqIbKzxzPy2vZig9UBhK','ww1Ase0','zgvZy3jPChrPB24','uNjou24','su1IzMW','CMvK','DMvYC2LVBG','z3jHEq','zxjYB3i','mte2mJe1mezfB3rsqq','lwqSic0Tzgv2AwnLidXUyw1LpG','B3b0Aw9U','cVcFMOaGrgv2AwnLBhKGlsbpBMuGq29TBwfUzcWGqwXSierLDMLJzxm','z2XYwuO','rgv0zwn0ifDPrMKGzgv2AwnLCYbVBMX5','rw5etxC','icbKzxzPy2vSEsbZDgfYDcaGica','u2vYDMvYihbVCNq','wKrMueq','y3LHBG','EuzyD1K','iYbdAgvJAYbZExn0zw0','mZaWmq','Eg1Jy0C','rg9Uj3qGB3bLBIbICM93C2vYigf1Dg9TyxrPy2fSBhK','rgv2AwnLBhKGlsbpBMuGq29TBwfUzcWGqwXSierLDMLJzxmUiefjifbVD2vYzwqGtw9IAwXLief1Dg9TyxrPB24','rxHLy3v0zsbVBIbHBgWGzgv2AwnLCYaOzgvMyxvSDcK','y3HczKK','tgLZDcbHBgWGy29UBMvJDgvKigLpuYbHBMqGqw5KCM9PzcbKzxzPy2vZ','vLjdBha','lweSic0TywXS','y29TBwfUzgvY','cVcFKQeGuxvPy2SGC3rHCNq6','lwGSic0TAgvSCa','u1HNweq','lxaSic0TCg9YDca8Cg9YDd4','CuHIEK8','lI4VCgfJA2fNzs5QC29U','ls1UBY1ICM93C2vY','q2HLy2SGC3LZDgvTihjLCxvPCMvTzw50CYbMB3iGAu9tigfUzcbbBMrYB2LKigf1Dg9TyxrPB24','D2HPDgu','ls1Kzwj1zW','cVcFLi0Gq2HLy2TPBMCGC3LZDgvTihjLCxvPCMvTzw50CY4UlG','Aw5zB08','C2XPy2u','nNzZuuTwAq','ntyYmJy2s0TSsxf1'];_0x35e5=function(){return _0x3e9bc0;};return _0x35e5();}
@@ -16,9 +16,4 @@
16
16
  # iPhone17,00008130-001945C63ED3401E,,ios,usb (iOS USB - auto-detected)
17
17
  # iPhone16P,00008140-001C24361E41801C,10.173.221.204,ios,wireless (iOS Wireless)
18
18
  # Pixel8,1A2B3C4D5E6F,,android,usb (Android USB - auto-detected)
19
- # GalaxyS23,ABCD1234,192.168.1.150,android,wireless (Android Wireless)
20
-
21
- iPhone17,00008150-001058D13478401C,,ios,usb
22
- iPhone16Plus,00008140-001C24361E41801C,,ios,usb
23
- sdk gphone64 arm64,emulator-5554,,android,usb
24
- iPadProSuresh,00008132-000A24C022FB801C,,ios,usb
19
+ # GalaxyS23,ABCD1234,192.168.1.150,android,wireless (Android Wireless)