devicely 1.0.5

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 (54) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +243 -0
  3. package/bin/devicely.js +3 -0
  4. package/config/apps_presets.conf +271 -0
  5. package/config/devices.conf +20 -0
  6. package/lib/aiProviders.js +518 -0
  7. package/lib/aiProviders.js.backup +301 -0
  8. package/lib/aiProvidersConfig.js +176 -0
  9. package/lib/aiProviders_new.js +70 -0
  10. package/lib/androidDeviceDetection.js +2 -0
  11. package/lib/appMappings.js +1 -0
  12. package/lib/deviceDetection.js +2 -0
  13. package/lib/devices.conf +20 -0
  14. package/lib/devices.js +1 -0
  15. package/lib/doctor.js +1 -0
  16. package/lib/executor.js +1 -0
  17. package/lib/fix_logs.sh +18 -0
  18. package/lib/frontend/asset-manifest.json +13 -0
  19. package/lib/frontend/index.html +1 -0
  20. package/lib/frontend/static/css/main.23bd35c0.css +2 -0
  21. package/lib/frontend/static/css/main.23bd35c0.css.map +1 -0
  22. package/lib/frontend/static/js/main.3f13aeaf.js +1 -0
  23. package/lib/frontend/static/js/main.3f13aeaf.js.LICENSE.txt +48 -0
  24. package/lib/frontend/static/js/main.3f13aeaf.js.map +1 -0
  25. package/lib/frontend/voice-test.html +156 -0
  26. package/lib/index.js +1 -0
  27. package/lib/package-lock.json +1678 -0
  28. package/lib/package.json +30 -0
  29. package/lib/server.js +1 -0
  30. package/lib/server.js.bak +3380 -0
  31. package/package.json +78 -0
  32. package/scripts/postinstall.js +110 -0
  33. package/scripts/shell/android_device_control +0 -0
  34. package/scripts/shell/connect_android_usb +0 -0
  35. package/scripts/shell/connect_android_usb_multi_final +0 -0
  36. package/scripts/shell/connect_android_wireless +0 -0
  37. package/scripts/shell/connect_android_wireless_multi_final +0 -0
  38. package/scripts/shell/connect_ios_usb +0 -0
  39. package/scripts/shell/connect_ios_usb_multi_final +0 -0
  40. package/scripts/shell/connect_ios_wireless_multi_final +0 -0
  41. package/scripts/shell/find_element_coordinates +0 -0
  42. package/scripts/shell/find_wda +0 -0
  43. package/scripts/shell/install_uiautomator2 +0 -0
  44. package/scripts/shell/ios_device_control +0 -0
  45. package/scripts/shell/setup +0 -0
  46. package/scripts/shell/setup_android +0 -0
  47. package/scripts/shell/start +0 -0
  48. package/scripts/shell/test_android_locators +0 -0
  49. package/scripts/shell/test_connect +0 -0
  50. package/scripts/shell/test_device_detection +0 -0
  51. package/scripts/shell/test_fixes +0 -0
  52. package/scripts/shell/test_getlocators_fix +0 -0
  53. package/scripts/shell/test_recording_feature +0 -0
  54. package/scripts/shell/verify_distribution +0 -0
package/package.json ADDED
@@ -0,0 +1,78 @@
1
+ {
2
+ "name": "devicely",
3
+ "version": "1.0.5",
4
+ "description": "Devicely - One Command, All Devices. AI Powered Mobile Automation for iOS and Android",
5
+ "main": "lib/index.js",
6
+ "bin": {
7
+ "devicely": "./bin/devicely.js"
8
+ },
9
+ "scripts": {
10
+ "test": "echo \"Error: no test specified\" && exit 1",
11
+ "postinstall": "node scripts/postinstall.js"
12
+ },
13
+ "keywords": [
14
+ "ios",
15
+ "android",
16
+ "automation",
17
+ "testing",
18
+ "webdriveragent",
19
+ "appium",
20
+ "uiautomator2",
21
+ "mobile",
22
+ "device-control",
23
+ "iphone",
24
+ "ipad",
25
+ "ui-testing",
26
+ "qa",
27
+ "testing-tools",
28
+ "ai",
29
+ "natural-language",
30
+ "device-pool"
31
+ ],
32
+ "author": "Suresh Kumar M <devicelyai@gmail.com>",
33
+ "license": "UNLICENSED",
34
+ "private": false,
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "https://github.com/sureshkumarm8/Devicely.git"
38
+ },
39
+ "bugs": {
40
+ "url": "https://github.com/sureshkumarm8/Devicely/issues"
41
+ },
42
+ "homepage": "https://devicely-ai.vercel.app",
43
+ "engines": {
44
+ "node": ">=16.0.0",
45
+ "npm": ">=8.0.0"
46
+ },
47
+ "os": [
48
+ "darwin",
49
+ "linux"
50
+ ],
51
+ "dependencies": {
52
+ "@anthropic-ai/sdk": "^0.71.2",
53
+ "@google/generative-ai": "^0.24.1",
54
+ "axios": "^1.13.4",
55
+ "chalk": "^4.1.2",
56
+ "commander": "^11.1.0",
57
+ "cors": "^2.8.5",
58
+ "dotenv": "^16.3.1",
59
+ "express": "^4.18.2",
60
+ "node-fetch": "^2.7.0",
61
+ "open": "^8.4.2",
62
+ "openai": "^4.20.0",
63
+ "ora": "^5.4.1",
64
+ "ws": "^8.14.2"
65
+ },
66
+ "files": [
67
+ "bin/",
68
+ "lib/",
69
+ "scripts/",
70
+ "config/",
71
+ "README.md",
72
+ "LICENSE"
73
+ ],
74
+ "preferGlobal": true,
75
+ "publishConfig": {
76
+ "access": "public"
77
+ }
78
+ }
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Devicely - Post Install Script
3
+ * Runs after npm install to setup environment
4
+ */
5
+
6
+ const chalk = require('chalk');
7
+ const fs = require('fs');
8
+ const path = require('path');
9
+ const os = require('os');
10
+
11
+ console.log('');
12
+ console.log(chalk.cyan.bold('🎉 Devicely installed successfully!'));
13
+ console.log(chalk.gray(' One Command, All Devices. AI Powered Mobile Automation'));
14
+ console.log(chalk.gray('━'.repeat(50)));
15
+ console.log('');
16
+
17
+ // Create config directory in .devicely
18
+ const configDir = path.join(os.homedir(), '.devicely');
19
+ try {
20
+ if (!fs.existsSync(configDir)) {
21
+ fs.mkdirSync(configDir, { recursive: true });
22
+ console.log(chalk.green('✅ Created config directory'));
23
+ console.log(chalk.gray(` ${configDir}`));
24
+ }
25
+ } catch (error) {
26
+ // Silent fail - directory might already exist
27
+ }
28
+
29
+ // Copy default configs if they don't exist
30
+ const defaultConfigs = [
31
+ { name: 'devices.conf', content: `# Device Configuration
32
+ # Format: device_name,udid,ip_address
33
+ # Example:
34
+ # iPhone15Pro,00008110-001C24361E41801C,192.168.1.100
35
+
36
+ ` },
37
+ { name: 'apps_presets.conf', content: `# App Presets Configuration
38
+ # iOS Apps
39
+ Safari,com.apple.mobilesafari
40
+ Settings,com.apple.Preferences
41
+ Messages,com.apple.MobileSMS
42
+ Camera,com.apple.camera
43
+ Photos,com.apple.mobileslideshow
44
+ Notes,com.apple.mobilenotes
45
+ Maps,com.apple.Maps
46
+ AppStore,com.apple.AppStore
47
+
48
+ # Android Apps
49
+ Chrome,com.android.chrome
50
+ Settings,com.android.settings
51
+ Camera,com.android.camera2
52
+ Gallery,com.google.android.apps.photos
53
+ Messages,com.google.android.apps.messaging
54
+ ` }
55
+ ];
56
+
57
+ defaultConfigs.forEach(config => {
58
+ const configPath = path.join(configDir, config.name);
59
+ if (!fs.existsSync(configPath)) {
60
+ try {
61
+ fs.writeFileSync(configPath, config.content);
62
+ console.log(chalk.green(`✅ Created ${config.name}`));
63
+ } catch (error) {
64
+ // Silent fail
65
+ }
66
+ }
67
+ });
68
+
69
+ // Create .env template
70
+ const envPath = path.join(configDir, '.env');
71
+ if (!fs.existsSync(envPath)) {
72
+ const envContent = `# Devicely Configuration
73
+ # Add your AI Provider API keys here
74
+
75
+ # OpenAI Configuration
76
+ OPENAI_API_KEY=
77
+
78
+ # Google Gemini Configuration
79
+ GOOGLE_API_KEY=
80
+
81
+ # Anthropic Claude Configuration
82
+ ANTHROPIC_API_KEY=
83
+
84
+ # Default AI Provider (openai, gemini, or anthropic)
85
+ AI_PROVIDER=gemini
86
+ `;
87
+ try {
88
+ fs.writeFileSync(envPath, envContent);
89
+ console.log(chalk.green('✅ Created .env template'));
90
+ } catch (error) {
91
+ // Silent fail
92
+ }
93
+ }
94
+
95
+ console.log('');
96
+ console.log(chalk.cyan.bold('🚀 Getting Started:'));
97
+ console.log('');
98
+ console.log(chalk.white(' 1. Connect your iOS or Android device'));
99
+ console.log(chalk.white(' 2. Run: ') + chalk.yellow.bold('devicely start'));
100
+ console.log(chalk.white(' 3. Browser opens at: ') + chalk.cyan('https://devicely-ai.vercel.app'));
101
+ console.log(chalk.white(' 4. Control your devices with AI!'));
102
+ console.log('');
103
+ console.log(chalk.cyan('📖 More commands:'));
104
+ console.log(chalk.gray(' devicely list ') + chalk.white('- List connected devices'));
105
+ console.log(chalk.gray(' devicely --help ') + chalk.white('- Show all commands'));
106
+ console.log('');
107
+ console.log(chalk.gray('━'.repeat(50)));
108
+ console.log(chalk.gray('📖 Documentation: https://github.com/sureshkumarm8/Devicely'));
109
+ console.log(chalk.gray('🌐 Frontend: https://devicely-ai.vercel.app'));
110
+ console.log('');
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file