mobileboost-cli 0.1.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 (50) hide show
  1. package/.output/nitro.json +15 -0
  2. package/.output/public/assets/index-DcK8FECE.css +1 -0
  3. package/.output/public/assets/index-Deils465.js +444 -0
  4. package/.output/public/assets/main-5WzLXT-A.js +51 -0
  5. package/.output/public/assets/roboto-cyrillic-ext-wght-normal-3VVPul60.woff2 +0 -0
  6. package/.output/public/assets/roboto-cyrillic-wght-normal-B1tIhOr4.woff2 +0 -0
  7. package/.output/public/assets/roboto-greek-ext-wght-normal-DnPa8eh0.woff2 +0 -0
  8. package/.output/public/assets/roboto-greek-wght-normal-iaUSDqqS.woff2 +0 -0
  9. package/.output/public/assets/roboto-latin-ext-wght-normal-Dqr_DJ6L.woff2 +0 -0
  10. package/.output/public/assets/roboto-latin-wght-normal-CHnqiQTt.woff2 +0 -0
  11. package/.output/public/assets/roboto-math-wght-normal-CBNGtO38.woff2 +0 -0
  12. package/.output/public/assets/roboto-symbols-wght-normal-Bm5C9Z0M.woff2 +0 -0
  13. package/.output/public/assets/roboto-vietnamese-wght-normal-24ctNiOc.woff2 +0 -0
  14. package/.output/server/chunks/_/_tanstack-start-manifest_v-Chz34YFq.mjs +1 -0
  15. package/.output/server/chunks/_/actions-2SMY1JO3.mjs +1 -0
  16. package/.output/server/chunks/_/adb-CsX2v8FE.mjs +1 -0
  17. package/.output/server/chunks/_/adb-client-DwefjXbe.mjs +2 -0
  18. package/.output/server/chunks/_/agent-CeaBVldB.mjs +1 -0
  19. package/.output/server/chunks/_/ai-client-BtI1TeHN.mjs +1 -0
  20. package/.output/server/chunks/_/appium-BbkeYpmk.mjs +1 -0
  21. package/.output/server/chunks/_/appium-client-D-NjeB35.mjs +1 -0
  22. package/.output/server/chunks/_/cache-C5L90tGD.mjs +1 -0
  23. package/.output/server/chunks/_/client-CzCEo8ab.mjs +1 -0
  24. package/.output/server/chunks/_/describe-NXd8kuzS.mjs +1 -0
  25. package/.output/server/chunks/_/device-8ONaG49P.mjs +1 -0
  26. package/.output/server/chunks/_/files-CIdgnUJn.mjs +1 -0
  27. package/.output/server/chunks/_/hierarchy-Q35yGKlr.mjs +1 -0
  28. package/.output/server/chunks/_/hierarchy-helpers-DF8QSYE6.mjs +1 -0
  29. package/.output/server/chunks/_/index-BPmuBr-n.mjs +426 -0
  30. package/.output/server/chunks/_/ios-client-1xTZzFD8.mjs +1 -0
  31. package/.output/server/chunks/_/list-Dq_Nh07i.mjs +1 -0
  32. package/.output/server/chunks/_/router-vxnEMbKX.mjs +1 -0
  33. package/.output/server/chunks/_/screenshot-BD59si87.mjs +1 -0
  34. package/.output/server/chunks/_/server.mjs +3 -0
  35. package/.output/server/chunks/_/start-BClswEUm.mjs +1 -0
  36. package/.output/server/chunks/_/step-CEQtT3SD.mjs +1 -0
  37. package/.output/server/chunks/_/stores-C1dCcTeV.mjs +1 -0
  38. package/.output/server/index.mjs +7 -0
  39. package/.output/server/package.json +233 -0
  40. package/README.md +85 -0
  41. package/bin/mobileboost +2 -0
  42. package/dist/cli.js +28 -0
  43. package/dist/cli.js.map +1 -0
  44. package/dist/commands/doctor.js +77 -0
  45. package/dist/commands/doctor.js.map +1 -0
  46. package/dist/commands/init.js +44 -0
  47. package/dist/commands/init.js.map +1 -0
  48. package/dist/commands/studio.js +89 -0
  49. package/dist/commands/studio.js.map +1 -0
  50. package/package.json +101 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ import chalk from 'chalk';
4
+ import inquirer from 'inquirer';
5
+ export async function init() {
6
+ console.log(chalk.blue('Initializing MobileBoost...'));
7
+ const configPath = path.join(process.cwd(), 'mobileboost.config.json');
8
+ const testsDir = path.join(process.cwd(), 'tests');
9
+ if (fs.existsSync(configPath)) {
10
+ const { overwrite } = await inquirer.prompt([{
11
+ type: 'confirm',
12
+ name: 'overwrite',
13
+ message: 'mobileboost.config.json already exists. Overwrite?',
14
+ default: false
15
+ }]);
16
+ if (!overwrite) {
17
+ console.log(chalk.yellow('Skipping initialization.'));
18
+ return;
19
+ }
20
+ }
21
+ const { apiKey } = await inquirer.prompt([{
22
+ type: 'input',
23
+ name: 'apiKey',
24
+ message: 'Enter your MobileBoost API Key (Org ID):',
25
+ validate: (input) => input.length > 0 ? true : 'API Key is required'
26
+ }]);
27
+ const defaultConfig = {
28
+ apiKey,
29
+ testDir: './tests',
30
+ driver: 'appium',
31
+ port: 8877
32
+ };
33
+ try {
34
+ await fs.writeJSON(configPath, defaultConfig, { spaces: 2 });
35
+ console.log(chalk.green(`Created ${configPath}`));
36
+ await fs.ensureDir(testsDir);
37
+ console.log(chalk.green(`Created ${testsDir} directory`));
38
+ console.log(chalk.bold('Initialization complete!'));
39
+ }
40
+ catch (err) {
41
+ console.error(chalk.red('Error initializing project:'), err);
42
+ }
43
+ }
44
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,CAAC,KAAK,UAAU,IAAI;IACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IAEvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,yBAAyB,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;IAEnD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,oDAAoD;gBAC7D,OAAO,EAAE,KAAK;aACjB,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;YACtD,OAAO;QACX,CAAC;IACL,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,0CAA0C;YACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,qBAAqB;SACvE,CAAC,CAAC,CAAC;IAEJ,MAAM,aAAa,GAAG;QAClB,MAAM;QACN,OAAO,EAAE,SAAS;QAClB,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,IAAI;KACb,CAAC;IAEF,IAAI,CAAC;QACD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC,CAAC;QAElD,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,QAAQ,YAAY,CAAC,CAAC,CAAC;QAE1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;IACxD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,EAAE,GAAG,CAAC,CAAC;IACjE,CAAC;AACL,CAAC"}
@@ -0,0 +1,89 @@
1
+ import chalk from 'chalk';
2
+ import path from 'path';
3
+ import fs from 'fs';
4
+ import { spawn } from 'child_process';
5
+ import net from 'net';
6
+ // Helper to check if port is in use
7
+ function isPortInUse(port) {
8
+ return new Promise((resolve) => {
9
+ const server = net.createServer();
10
+ server.once('error', (err) => {
11
+ if (err.code === 'EADDRINUSE') {
12
+ resolve(true);
13
+ }
14
+ else {
15
+ resolve(false);
16
+ }
17
+ });
18
+ server.once('listening', () => {
19
+ server.close();
20
+ resolve(false);
21
+ });
22
+ server.listen(port);
23
+ });
24
+ }
25
+ // Start the TanStack Start SSR server from the build output if available.
26
+ // Fallback to the previous static server + tRPC if the build output is missing.
27
+ export async function studio() {
28
+ const defaultPort = 8877;
29
+ const port = Number(process.env.PORT || process.env.MB_STUDIO_PORT || defaultPort);
30
+ // Check and start Appium
31
+ const appiumPort = 4723;
32
+ if (await isPortInUse(appiumPort)) {
33
+ console.log(chalk.green(`Appium is already running on port ${appiumPort}.`));
34
+ }
35
+ else {
36
+ console.log(chalk.blue(`Starting Appium on port ${appiumPort}...`));
37
+ try {
38
+ const appium = spawn('appium', [], {
39
+ stdio: 'ignore', // Run in background, don't clutter output? Or inherit? User might want logs.
40
+ // Let's use ignore and detach if we want it to survive?
41
+ // But usually we want it to die with studio?
42
+ // Let's use inherit for now but maybe prefixed?
43
+ detached: false,
44
+ shell: true
45
+ });
46
+ console.log(chalk.green('Appium started.'));
47
+ appium.on('error', (err) => {
48
+ console.error(chalk.red('Failed to start Appium:'), err);
49
+ });
50
+ // Kill appium when process exits
51
+ process.on('SIGINT', () => appium.kill());
52
+ process.on('SIGTERM', () => appium.kill());
53
+ }
54
+ catch (e) {
55
+ console.error(chalk.red('Could not start Appium. Make sure it is installed (npm install -g appium).'));
56
+ }
57
+ }
58
+ const serverEntry = path.resolve(process.cwd(), '.output/server/index.mjs');
59
+ if (fs.existsSync(serverEntry)) {
60
+ console.log(chalk.green('Detected TanStack Start build output.'));
61
+ console.log(chalk.gray(`Starting SSR server from ${serverEntry}`));
62
+ const child = spawn(process.execPath, [serverEntry], {
63
+ env: { ...process.env, PORT: String(port) },
64
+ stdio: 'inherit',
65
+ });
66
+ const stop = (signal) => {
67
+ console.log(chalk.yellow(`\nReceived ${signal}. Shutting down SSR server...`));
68
+ child.kill(signal);
69
+ };
70
+ process.on('SIGINT', stop);
71
+ process.on('SIGTERM', stop);
72
+ child.on('close', (code, signal) => {
73
+ if (signal) {
74
+ console.log(chalk.yellow(`SSR server stopped by signal: ${signal}`));
75
+ }
76
+ else {
77
+ console.log(chalk.gray(`SSR server exited with code ${code}`));
78
+ }
79
+ });
80
+ child.on('error', (err) => {
81
+ console.error(chalk.red('Failed to start SSR server:'), err);
82
+ });
83
+ console.log(chalk.green(`\nMobileBoost Studio (SSR) is running at:`));
84
+ console.log(chalk.cyan(`➜ http://localhost:${port}`));
85
+ console.log(chalk.gray('\nPress Ctrl+C to stop.'));
86
+ return;
87
+ }
88
+ }
89
+ //# sourceMappingURL=studio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"studio.js","sourceRoot":"","sources":["../../src/commands/studio.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,101 @@
1
+ {
2
+ "name": "mobileboost-cli",
3
+ "version": "0.1.0",
4
+ "description": "CLI for agentic mobile testing",
5
+ "sideEffects": false,
6
+ "type": "module",
7
+ "main": "dist/cli.js",
8
+ "bin": {
9
+ "mobileboost": "./bin/mobileboost"
10
+ },
11
+ "scripts": {
12
+ "dev": "vite dev",
13
+ "build": "vite build && npm run build:cli",
14
+ "build:cli": "tsc -p tsconfig.cli.json",
15
+ "preview": "vite preview",
16
+ "start": "node .output/server/index.mjs",
17
+ "start:cli": "node dist/cli.js",
18
+ "dev:cli": "ts-node src/cli.ts",
19
+ "prepublishOnly": "npm run build",
20
+ "postinstall": "cd .output/server && npm install --production"
21
+ },
22
+ "files": [
23
+ "bin",
24
+ "dist",
25
+ ".output/public",
26
+ ".output/server/index.mjs",
27
+ ".output/server/chunks",
28
+ ".output/server/package.json",
29
+ ".output/nitro.json"
30
+ ],
31
+ "keywords": [
32
+ "cli",
33
+ "mobile",
34
+ "testing",
35
+ "appium",
36
+ "agentic",
37
+ "automation",
38
+ "ai",
39
+ "gptdriver",
40
+ "mobileboost"
41
+ ],
42
+ "author": "",
43
+ "license": "ISC",
44
+ "dependencies": {
45
+ "@anthropic-ai/sdk": "^0.71.2",
46
+ "@emotion/cache": "^11.14.0",
47
+ "@emotion/react": "^11.14.0",
48
+ "@emotion/styled": "^11.14.0",
49
+ "@fontsource-variable/roboto": "^5.2.9",
50
+ "@google/generative-ai": "^0.24.1",
51
+ "@hello-pangea/dnd": "18.0.1",
52
+ "@mui/icons-material": "^7.3.6",
53
+ "@mui/material": "^7.3.6",
54
+ "@tanstack/eslint-config": "^0.3.4",
55
+ "@tanstack/react-devtools": "^0.8.4",
56
+ "@tanstack/react-form": "^1.27.3",
57
+ "@tanstack/react-form-devtools": "^0.2.6",
58
+ "@tanstack/react-query": "^5.90.0",
59
+ "@tanstack/react-query-devtools": "^5.90.0",
60
+ "@tanstack/react-router": "^1.140.1",
61
+ "@tanstack/react-router-devtools": "^1.140.1",
62
+ "@tanstack/react-router-ssr-query": "^1.140.1",
63
+ "@tanstack/react-start": "^1.140.3",
64
+ "@tanstack/react-store": "^0.8.0",
65
+ "chalk": "^5.6.2",
66
+ "commander": "^11.1.0",
67
+ "cors": "^2.8.5",
68
+ "execa": "^5.1.1",
69
+ "express": "^4.18.2",
70
+ "fs-extra": "^11.1.1",
71
+ "inquirer": "^8.2.5",
72
+ "nitro": "^3.0.1-alpha.1",
73
+ "open": "^11.0.0",
74
+ "ora": "^5.4.1",
75
+ "react": "^19.0.0",
76
+ "react-dom": "^19.0.0",
77
+ "redaxios": "^0.5.1",
78
+ "sharp": "^0.34.5",
79
+ "webdriverio": "^9.21.0",
80
+ "xml2js": "^0.6.2",
81
+ "zod": "^4.1.13"
82
+ },
83
+ "devDependencies": {
84
+ "@tanstack/devtools-vite": "^0.3.12",
85
+ "@types/cors": "^2.8.19",
86
+ "@types/express": "^4.17.21",
87
+ "@types/fs-extra": "^11.0.4",
88
+ "@types/inquirer": "^9.0.7",
89
+ "@types/node": "^22.5.4",
90
+ "@types/open": "^6.1.0",
91
+ "@types/react": "^19.0.8",
92
+ "@types/react-dom": "^19.0.3",
93
+ "@types/xml2js": "^0.4.14",
94
+ "@vitejs/plugin-react": "^4.3.4",
95
+ "postcss": "^8.5.1",
96
+ "ts-node": "^10.9.1",
97
+ "typescript": "^5.7.2",
98
+ "vite": "^7.1.7",
99
+ "vite-tsconfig-paths": "^5.1.4"
100
+ }
101
+ }