test-genie-mcp 2.0.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 (102) hide show
  1. package/README.md +219 -0
  2. package/dist/analyzers/astAnalyzer.d.ts +108 -0
  3. package/dist/analyzers/astAnalyzer.d.ts.map +1 -0
  4. package/dist/analyzers/astAnalyzer.js +800 -0
  5. package/dist/analyzers/astAnalyzer.js.map +1 -0
  6. package/dist/analyzers/performanceAnalyzer.d.ts +90 -0
  7. package/dist/analyzers/performanceAnalyzer.d.ts.map +1 -0
  8. package/dist/analyzers/performanceAnalyzer.js +647 -0
  9. package/dist/analyzers/performanceAnalyzer.js.map +1 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +683 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/platforms/android/index.d.ts +90 -0
  15. package/dist/platforms/android/index.d.ts.map +1 -0
  16. package/dist/platforms/android/index.js +519 -0
  17. package/dist/platforms/android/index.js.map +1 -0
  18. package/dist/platforms/flutter/index.d.ts +105 -0
  19. package/dist/platforms/flutter/index.d.ts.map +1 -0
  20. package/dist/platforms/flutter/index.js +533 -0
  21. package/dist/platforms/flutter/index.js.map +1 -0
  22. package/dist/platforms/ios/index.d.ts +79 -0
  23. package/dist/platforms/ios/index.d.ts.map +1 -0
  24. package/dist/platforms/ios/index.js +393 -0
  25. package/dist/platforms/ios/index.js.map +1 -0
  26. package/dist/platforms/react-native/index.d.ts +160 -0
  27. package/dist/platforms/react-native/index.d.ts.map +1 -0
  28. package/dist/platforms/react-native/index.js +602 -0
  29. package/dist/platforms/react-native/index.js.map +1 -0
  30. package/dist/platforms/web/index.d.ts +177 -0
  31. package/dist/platforms/web/index.d.ts.map +1 -0
  32. package/dist/platforms/web/index.js +637 -0
  33. package/dist/platforms/web/index.js.map +1 -0
  34. package/dist/storage/index.d.ts +35 -0
  35. package/dist/storage/index.d.ts.map +1 -0
  36. package/dist/storage/index.js +351 -0
  37. package/dist/storage/index.js.map +1 -0
  38. package/dist/tools/analysis/analyzeAppStructure.d.ts +9 -0
  39. package/dist/tools/analysis/analyzeAppStructure.d.ts.map +1 -0
  40. package/dist/tools/analysis/analyzeAppStructure.js +289 -0
  41. package/dist/tools/analysis/analyzeAppStructure.js.map +1 -0
  42. package/dist/tools/analysis/createTestPlan.d.ts +21 -0
  43. package/dist/tools/analysis/createTestPlan.d.ts.map +1 -0
  44. package/dist/tools/analysis/createTestPlan.js +214 -0
  45. package/dist/tools/analysis/createTestPlan.js.map +1 -0
  46. package/dist/tools/analysis/generateScenarios.d.ts +21 -0
  47. package/dist/tools/analysis/generateScenarios.d.ts.map +1 -0
  48. package/dist/tools/analysis/generateScenarios.js +567 -0
  49. package/dist/tools/analysis/generateScenarios.js.map +1 -0
  50. package/dist/tools/automation/cicdIntegration.d.ts +41 -0
  51. package/dist/tools/automation/cicdIntegration.d.ts.map +1 -0
  52. package/dist/tools/automation/cicdIntegration.js +825 -0
  53. package/dist/tools/automation/cicdIntegration.js.map +1 -0
  54. package/dist/tools/automation/generateReport.d.ts +16 -0
  55. package/dist/tools/automation/generateReport.d.ts.map +1 -0
  56. package/dist/tools/automation/generateReport.js +406 -0
  57. package/dist/tools/automation/generateReport.js.map +1 -0
  58. package/dist/tools/automation/runFullAutomation.d.ts +25 -0
  59. package/dist/tools/automation/runFullAutomation.d.ts.map +1 -0
  60. package/dist/tools/automation/runFullAutomation.js +296 -0
  61. package/dist/tools/automation/runFullAutomation.js.map +1 -0
  62. package/dist/tools/detection/detectLogicErrors.d.ts +18 -0
  63. package/dist/tools/detection/detectLogicErrors.d.ts.map +1 -0
  64. package/dist/tools/detection/detectLogicErrors.js +470 -0
  65. package/dist/tools/detection/detectLogicErrors.js.map +1 -0
  66. package/dist/tools/detection/detectMemoryLeaks.d.ts +23 -0
  67. package/dist/tools/detection/detectMemoryLeaks.d.ts.map +1 -0
  68. package/dist/tools/detection/detectMemoryLeaks.js +453 -0
  69. package/dist/tools/detection/detectMemoryLeaks.js.map +1 -0
  70. package/dist/tools/execution/runScenarioTest.d.ts +34 -0
  71. package/dist/tools/execution/runScenarioTest.d.ts.map +1 -0
  72. package/dist/tools/execution/runScenarioTest.js +334 -0
  73. package/dist/tools/execution/runScenarioTest.js.map +1 -0
  74. package/dist/tools/execution/runSimulation.d.ts +17 -0
  75. package/dist/tools/execution/runSimulation.d.ts.map +1 -0
  76. package/dist/tools/execution/runSimulation.js +250 -0
  77. package/dist/tools/execution/runSimulation.js.map +1 -0
  78. package/dist/tools/execution/runStressTest.d.ts +52 -0
  79. package/dist/tools/execution/runStressTest.d.ts.map +1 -0
  80. package/dist/tools/execution/runStressTest.js +176 -0
  81. package/dist/tools/execution/runStressTest.js.map +1 -0
  82. package/dist/tools/fixing/applyFix.d.ts +44 -0
  83. package/dist/tools/fixing/applyFix.d.ts.map +1 -0
  84. package/dist/tools/fixing/applyFix.js +399 -0
  85. package/dist/tools/fixing/applyFix.js.map +1 -0
  86. package/dist/tools/fixing/confirmFix.d.ts +31 -0
  87. package/dist/tools/fixing/confirmFix.d.ts.map +1 -0
  88. package/dist/tools/fixing/confirmFix.js +136 -0
  89. package/dist/tools/fixing/confirmFix.js.map +1 -0
  90. package/dist/tools/fixing/suggestFixes.d.ts +23 -0
  91. package/dist/tools/fixing/suggestFixes.d.ts.map +1 -0
  92. package/dist/tools/fixing/suggestFixes.js +349 -0
  93. package/dist/tools/fixing/suggestFixes.js.map +1 -0
  94. package/dist/types.d.ts +322 -0
  95. package/dist/types.d.ts.map +1 -0
  96. package/dist/types.js +6 -0
  97. package/dist/types.js.map +1 -0
  98. package/dist/utils/codeParser.d.ts +12 -0
  99. package/dist/utils/codeParser.d.ts.map +1 -0
  100. package/dist/utils/codeParser.js +487 -0
  101. package/dist/utils/codeParser.js.map +1 -0
  102. package/package.json +68 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ export interface AndroidDevice {
2
+ id: string;
3
+ name: string;
4
+ type: 'emulator' | 'device';
5
+ state: 'online' | 'offline' | 'unauthorized';
6
+ apiLevel: number;
7
+ }
8
+ export interface AndroidTestConfig {
9
+ projectPath: string;
10
+ module?: string;
11
+ testClass?: string;
12
+ testMethod?: string;
13
+ device?: string;
14
+ timeout?: number;
15
+ }
16
+ export declare function listDevices(): Promise<AndroidDevice[]>;
17
+ export declare function listEmulators(): Promise<string[]>;
18
+ export declare function startEmulator(avdName: string): Promise<boolean>;
19
+ export declare function stopEmulator(deviceId: string): Promise<boolean>;
20
+ export declare function runGradleTests(config: AndroidTestConfig): Promise<{
21
+ success: boolean;
22
+ output: string;
23
+ tests: {
24
+ name: string;
25
+ passed: boolean;
26
+ duration: number;
27
+ }[];
28
+ coverage?: number;
29
+ }>;
30
+ export declare function runEspressoTests(config: AndroidTestConfig): Promise<{
31
+ success: boolean;
32
+ output: string;
33
+ tests: {
34
+ name: string;
35
+ passed: boolean;
36
+ duration: number;
37
+ }[];
38
+ screenshots: string[];
39
+ }>;
40
+ export declare function runUIAutomator(device: string, testPackage: string, testClass?: string): Promise<{
41
+ success: boolean;
42
+ output: string;
43
+ }>;
44
+ export interface ProfilerConfig {
45
+ type: 'cpu' | 'memory' | 'network' | 'energy';
46
+ duration: number;
47
+ packageName: string;
48
+ device: string;
49
+ }
50
+ export declare function runProfiler(config: ProfilerConfig): Promise<{
51
+ success: boolean;
52
+ metrics: Record<string, number>;
53
+ tracePath?: string;
54
+ }>;
55
+ export declare function checkLeakCanaryResults(device: string, packageName: string): Promise<{
56
+ hasLeaks: boolean;
57
+ leaks: Array<{
58
+ className: string;
59
+ leakTrace: string;
60
+ }>;
61
+ }>;
62
+ export declare function installApk(device: string, apkPath: string): Promise<boolean>;
63
+ export declare function uninstallApp(device: string, packageName: string): Promise<boolean>;
64
+ export declare function launchApp(device: string, packageName: string, activity?: string): Promise<boolean>;
65
+ export declare function forceStopApp(device: string, packageName: string): Promise<boolean>;
66
+ export declare function clearAppData(device: string, packageName: string): Promise<boolean>;
67
+ export declare function takeScreenshot(device: string, outputPath: string): Promise<boolean>;
68
+ export declare function startRecording(device: string, outputPath: string, maxDuration?: number): Promise<{
69
+ stop: () => Promise<void>;
70
+ }>;
71
+ declare const _default: {
72
+ listDevices: typeof listDevices;
73
+ listEmulators: typeof listEmulators;
74
+ startEmulator: typeof startEmulator;
75
+ stopEmulator: typeof stopEmulator;
76
+ runGradleTests: typeof runGradleTests;
77
+ runEspressoTests: typeof runEspressoTests;
78
+ runUIAutomator: typeof runUIAutomator;
79
+ runProfiler: typeof runProfiler;
80
+ checkLeakCanaryResults: typeof checkLeakCanaryResults;
81
+ installApk: typeof installApk;
82
+ uninstallApp: typeof uninstallApp;
83
+ launchApp: typeof launchApp;
84
+ forceStopApp: typeof forceStopApp;
85
+ clearAppData: typeof clearAppData;
86
+ takeScreenshot: typeof takeScreenshot;
87
+ startRecording: typeof startRecording;
88
+ };
89
+ export default _default;
90
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platforms/android/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,519 @@
1
+ "use strict";
2
+ // ============================================
3
+ // Android Test Platform Integration
4
+ // Espresso, UI Automator, Android Profiler
5
+ // ============================================
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.listDevices = listDevices;
41
+ exports.listEmulators = listEmulators;
42
+ exports.startEmulator = startEmulator;
43
+ exports.stopEmulator = stopEmulator;
44
+ exports.runGradleTests = runGradleTests;
45
+ exports.runEspressoTests = runEspressoTests;
46
+ exports.runUIAutomator = runUIAutomator;
47
+ exports.runProfiler = runProfiler;
48
+ exports.checkLeakCanaryResults = checkLeakCanaryResults;
49
+ exports.installApk = installApk;
50
+ exports.uninstallApp = uninstallApp;
51
+ exports.launchApp = launchApp;
52
+ exports.forceStopApp = forceStopApp;
53
+ exports.clearAppData = clearAppData;
54
+ exports.takeScreenshot = takeScreenshot;
55
+ exports.startRecording = startRecording;
56
+ const child_process_1 = require("child_process");
57
+ const util_1 = require("util");
58
+ const fs = __importStar(require("fs"));
59
+ const path = __importStar(require("path"));
60
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
61
+ // ============================================
62
+ // Device Management
63
+ // ============================================
64
+ async function listDevices() {
65
+ try {
66
+ const { stdout } = await execAsync('adb devices -l');
67
+ const lines = stdout.split('\n').slice(1); // Skip header
68
+ const devices = [];
69
+ for (const line of lines) {
70
+ if (!line.trim())
71
+ continue;
72
+ const parts = line.split(/\s+/);
73
+ const id = parts[0];
74
+ const state = parts[1];
75
+ if (!id || !state)
76
+ continue;
77
+ // Get device details
78
+ const isEmulator = id.startsWith('emulator');
79
+ let name = 'Unknown';
80
+ let apiLevel = 0;
81
+ try {
82
+ const { stdout: model } = await execAsync(`adb -s ${id} shell getprop ro.product.model`);
83
+ name = model.trim() || 'Unknown';
84
+ const { stdout: sdk } = await execAsync(`adb -s ${id} shell getprop ro.build.version.sdk`);
85
+ apiLevel = parseInt(sdk.trim()) || 0;
86
+ }
87
+ catch {
88
+ // Device may not be accessible
89
+ }
90
+ devices.push({
91
+ id,
92
+ name,
93
+ type: isEmulator ? 'emulator' : 'device',
94
+ state: state,
95
+ apiLevel,
96
+ });
97
+ }
98
+ return devices;
99
+ }
100
+ catch (error) {
101
+ console.error('Failed to list devices:', error);
102
+ return [];
103
+ }
104
+ }
105
+ async function listEmulators() {
106
+ try {
107
+ const { stdout } = await execAsync('emulator -list-avds');
108
+ return stdout.split('\n').filter(line => line.trim());
109
+ }
110
+ catch {
111
+ return [];
112
+ }
113
+ }
114
+ async function startEmulator(avdName) {
115
+ try {
116
+ // Start emulator in background
117
+ (0, child_process_1.spawn)('emulator', ['-avd', avdName, '-no-snapshot-load'], {
118
+ detached: true,
119
+ stdio: 'ignore',
120
+ }).unref();
121
+ // Wait for device to be ready
122
+ await execAsync('adb wait-for-device', { timeout: 120000 });
123
+ await execAsync('adb shell getprop sys.boot_completed', { timeout: 60000 });
124
+ return true;
125
+ }
126
+ catch {
127
+ return false;
128
+ }
129
+ }
130
+ async function stopEmulator(deviceId) {
131
+ try {
132
+ await execAsync(`adb -s ${deviceId} emu kill`);
133
+ return true;
134
+ }
135
+ catch {
136
+ return false;
137
+ }
138
+ }
139
+ // ============================================
140
+ // Gradle Test Integration
141
+ // ============================================
142
+ async function runGradleTests(config) {
143
+ const { projectPath, module = 'app', testClass, testMethod, device, timeout = 600000 } = config;
144
+ let testArg = '';
145
+ if (testClass && testMethod) {
146
+ testArg = `--tests "${testClass}.${testMethod}"`;
147
+ }
148
+ else if (testClass) {
149
+ testArg = `--tests "${testClass}"`;
150
+ }
151
+ const deviceArg = device ? `-Pandroid.testInstrumentationRunnerArguments.device=${device}` : '';
152
+ const gradlew = path.join(projectPath, 'gradlew');
153
+ const command = `cd "${projectPath}" && chmod +x gradlew && ./gradlew :${module}:testDebugUnitTest ${testArg} ${deviceArg} --info 2>&1`;
154
+ try {
155
+ const { stdout } = await execAsync(command, { timeout, maxBuffer: 50 * 1024 * 1024 });
156
+ const tests = parseGradleTestOutput(stdout);
157
+ const allPassed = tests.every(t => t.passed);
158
+ // Get coverage from JaCoCo if available
159
+ const coverage = await getJacocoCoverage(projectPath, module);
160
+ return {
161
+ success: allPassed,
162
+ output: stdout,
163
+ tests,
164
+ coverage,
165
+ };
166
+ }
167
+ catch (error) {
168
+ return {
169
+ success: false,
170
+ output: error.stdout || error.message,
171
+ tests: [],
172
+ };
173
+ }
174
+ }
175
+ function parseGradleTestOutput(output) {
176
+ const tests = [];
177
+ // Parse Gradle test output
178
+ const testRegex = /(\S+) > (\S+)\s+(PASSED|FAILED)\s*(?:\((\d+)s\))?/g;
179
+ let match;
180
+ while ((match = testRegex.exec(output)) !== null) {
181
+ tests.push({
182
+ name: `${match[1]}.${match[2]}`,
183
+ passed: match[3] === 'PASSED',
184
+ duration: (parseInt(match[4] || '0') || 0) * 1000,
185
+ });
186
+ }
187
+ return tests;
188
+ }
189
+ async function getJacocoCoverage(projectPath, module) {
190
+ const reportPath = path.join(projectPath, module, 'build', 'reports', 'jacoco', 'testDebugUnitTestCoverage', 'html', 'index.html');
191
+ if (!fs.existsSync(reportPath)) {
192
+ return undefined;
193
+ }
194
+ try {
195
+ const content = fs.readFileSync(reportPath, 'utf-8');
196
+ const coverageMatch = content.match(/Total.*?(\d+)%/);
197
+ return coverageMatch ? parseInt(coverageMatch[1] || '0') : undefined;
198
+ }
199
+ catch {
200
+ return undefined;
201
+ }
202
+ }
203
+ // ============================================
204
+ // Espresso (Instrumented Tests)
205
+ // ============================================
206
+ async function runEspressoTests(config) {
207
+ const { projectPath, module = 'app', testClass, testMethod, device, timeout = 600000 } = config;
208
+ let testArg = '';
209
+ if (testClass && testMethod) {
210
+ testArg = `-Pandroid.testInstrumentationRunnerArguments.class=${testClass}#${testMethod}`;
211
+ }
212
+ else if (testClass) {
213
+ testArg = `-Pandroid.testInstrumentationRunnerArguments.class=${testClass}`;
214
+ }
215
+ const command = `cd "${projectPath}" && ./gradlew :${module}:connectedDebugAndroidTest ${testArg} --info 2>&1`;
216
+ try {
217
+ const { stdout } = await execAsync(command, { timeout, maxBuffer: 50 * 1024 * 1024 });
218
+ const tests = parseGradleTestOutput(stdout);
219
+ const screenshots = await pullScreenshots(device || 'default');
220
+ return {
221
+ success: !stdout.includes('FAILED'),
222
+ output: stdout,
223
+ tests,
224
+ screenshots,
225
+ };
226
+ }
227
+ catch (error) {
228
+ return {
229
+ success: false,
230
+ output: error.stdout || error.message,
231
+ tests: [],
232
+ screenshots: [],
233
+ };
234
+ }
235
+ }
236
+ async function pullScreenshots(device) {
237
+ const screenshots = [];
238
+ const localDir = `/tmp/android-screenshots-${Date.now()}`;
239
+ fs.mkdirSync(localDir, { recursive: true });
240
+ try {
241
+ // Pull screenshots from device
242
+ await execAsync(`adb -s ${device} pull /sdcard/Pictures/Screenshots ${localDir} 2>/dev/null || true`);
243
+ if (fs.existsSync(localDir)) {
244
+ const files = fs.readdirSync(localDir);
245
+ for (const file of files) {
246
+ if (file.endsWith('.png') || file.endsWith('.jpg')) {
247
+ screenshots.push(path.join(localDir, file));
248
+ }
249
+ }
250
+ }
251
+ }
252
+ catch {
253
+ // No screenshots
254
+ }
255
+ return screenshots;
256
+ }
257
+ // ============================================
258
+ // UI Automator
259
+ // ============================================
260
+ async function runUIAutomator(device, testPackage, testClass) {
261
+ const testArg = testClass ? `-e class ${testClass}` : '';
262
+ const command = `adb -s ${device} shell am instrument -w ${testArg} ${testPackage}/androidx.test.runner.AndroidJUnitRunner 2>&1`;
263
+ try {
264
+ const { stdout } = await execAsync(command, { timeout: 300000 });
265
+ return {
266
+ success: stdout.includes('OK') && !stdout.includes('FAILURES'),
267
+ output: stdout,
268
+ };
269
+ }
270
+ catch (error) {
271
+ return {
272
+ success: false,
273
+ output: error.message,
274
+ };
275
+ }
276
+ }
277
+ async function runProfiler(config) {
278
+ const { type, duration, packageName, device } = config;
279
+ const tracePath = `/tmp/android-profile-${Date.now()}.trace`;
280
+ switch (type) {
281
+ case 'cpu':
282
+ return await profileCPU(device, packageName, duration, tracePath);
283
+ case 'memory':
284
+ return await profileMemory(device, packageName, duration);
285
+ case 'network':
286
+ return await profileNetwork(device, packageName, duration);
287
+ case 'energy':
288
+ return await profileEnergy(device, packageName, duration);
289
+ default:
290
+ return { success: false, metrics: {} };
291
+ }
292
+ }
293
+ async function profileCPU(device, packageName, duration, tracePath) {
294
+ try {
295
+ // Start profiling
296
+ await execAsync(`adb -s ${device} shell am profile start ${packageName} /data/local/tmp/cpu.trace`);
297
+ // Wait for duration
298
+ await new Promise(resolve => setTimeout(resolve, duration * 1000));
299
+ // Stop profiling
300
+ await execAsync(`adb -s ${device} shell am profile stop ${packageName}`);
301
+ // Pull trace
302
+ await execAsync(`adb -s ${device} pull /data/local/tmp/cpu.trace ${tracePath}`);
303
+ // Parse metrics (simplified)
304
+ const metrics = {
305
+ cpuUsagePercent: 0,
306
+ threadCount: 0,
307
+ };
308
+ // Get CPU usage
309
+ const { stdout: cpuInfo } = await execAsync(`adb -s ${device} shell top -n 1 | grep ${packageName}`);
310
+ const cpuMatch = cpuInfo.match(/(\d+)%/);
311
+ if (cpuMatch) {
312
+ metrics['cpuUsagePercent'] = parseInt(cpuMatch[1] || '0');
313
+ }
314
+ return {
315
+ success: true,
316
+ metrics,
317
+ tracePath,
318
+ };
319
+ }
320
+ catch (error) {
321
+ return { success: false, metrics: {} };
322
+ }
323
+ }
324
+ async function profileMemory(device, packageName, duration) {
325
+ const samples = [];
326
+ const interval = 1000; // 1 second
327
+ const iterations = Math.floor((duration * 1000) / interval);
328
+ try {
329
+ for (let i = 0; i < iterations; i++) {
330
+ const { stdout } = await execAsync(`adb -s ${device} shell dumpsys meminfo ${packageName} | grep "TOTAL PSS"`);
331
+ const match = stdout.match(/TOTAL PSS:\s+(\d+)/);
332
+ if (match) {
333
+ samples.push(parseInt(match[1] || '0') / 1024); // Convert to MB
334
+ }
335
+ await new Promise(resolve => setTimeout(resolve, interval));
336
+ }
337
+ const avgMemory = samples.reduce((a, b) => a + b, 0) / samples.length;
338
+ const peakMemory = Math.max(...samples);
339
+ const minMemory = Math.min(...samples);
340
+ return {
341
+ success: true,
342
+ metrics: {
343
+ averageMemoryMB: Math.round(avgMemory),
344
+ peakMemoryMB: Math.round(peakMemory),
345
+ minMemoryMB: Math.round(minMemory),
346
+ memoryGrowthMB: Math.round(peakMemory - minMemory),
347
+ },
348
+ };
349
+ }
350
+ catch (error) {
351
+ return { success: false, metrics: {} };
352
+ }
353
+ }
354
+ async function profileNetwork(device, packageName, duration) {
355
+ try {
356
+ // Get UID for package
357
+ const { stdout: uidInfo } = await execAsync(`adb -s ${device} shell dumpsys package ${packageName} | grep userId=`);
358
+ const uidMatch = uidInfo.match(/userId=(\d+)/);
359
+ const uid = uidMatch ? uidMatch[1] : null;
360
+ if (!uid) {
361
+ return { success: false, metrics: {} };
362
+ }
363
+ // Get initial network stats
364
+ const { stdout: initialStats } = await execAsync(`adb -s ${device} shell cat /proc/uid_stat/${uid}/tcp_rcv /proc/uid_stat/${uid}/tcp_snd 2>/dev/null || echo "0 0"`);
365
+ const [initialRx, initialTx] = initialStats.trim().split('\n').map(s => parseInt(s) || 0);
366
+ await new Promise(resolve => setTimeout(resolve, duration * 1000));
367
+ // Get final network stats
368
+ const { stdout: finalStats } = await execAsync(`adb -s ${device} shell cat /proc/uid_stat/${uid}/tcp_rcv /proc/uid_stat/${uid}/tcp_snd 2>/dev/null || echo "0 0"`);
369
+ const [finalRx, finalTx] = finalStats.trim().split('\n').map(s => parseInt(s) || 0);
370
+ return {
371
+ success: true,
372
+ metrics: {
373
+ receivedKB: Math.round(((finalRx || 0) - (initialRx || 0)) / 1024),
374
+ sentKB: Math.round(((finalTx || 0) - (initialTx || 0)) / 1024),
375
+ totalKB: Math.round((((finalRx || 0) - (initialRx || 0)) + ((finalTx || 0) - (initialTx || 0))) / 1024),
376
+ },
377
+ };
378
+ }
379
+ catch (error) {
380
+ return { success: false, metrics: {} };
381
+ }
382
+ }
383
+ async function profileEnergy(device, packageName, duration) {
384
+ try {
385
+ // Reset battery stats
386
+ await execAsync(`adb -s ${device} shell dumpsys batterystats --reset`);
387
+ await new Promise(resolve => setTimeout(resolve, duration * 1000));
388
+ // Get battery stats
389
+ const { stdout } = await execAsync(`adb -s ${device} shell dumpsys batterystats ${packageName}`);
390
+ // Parse power consumption (simplified)
391
+ const powerMatch = stdout.match(/Estimated power use \(mAh\):\s*([\d.]+)/);
392
+ const wakelocksMatch = stdout.match(/Total wake lock time:\s*(\d+)/);
393
+ return {
394
+ success: true,
395
+ metrics: {
396
+ powerConsumptionmAh: powerMatch ? parseFloat(powerMatch[1] || '0') : 0,
397
+ wakelockTimeMs: wakelocksMatch ? parseInt(wakelocksMatch[1] || '0') : 0,
398
+ },
399
+ };
400
+ }
401
+ catch (error) {
402
+ return { success: false, metrics: {} };
403
+ }
404
+ }
405
+ // ============================================
406
+ // LeakCanary Integration
407
+ // ============================================
408
+ async function checkLeakCanaryResults(device, packageName) {
409
+ try {
410
+ // Pull LeakCanary database
411
+ const dbPath = `/tmp/leakcanary-${Date.now()}.db`;
412
+ await execAsync(`adb -s ${device} pull /data/data/${packageName}/databases/leaks.db ${dbPath} 2>/dev/null || true`);
413
+ // Parse leaks (simplified - actual implementation would use SQLite)
414
+ const leaks = [];
415
+ return {
416
+ hasLeaks: leaks.length > 0,
417
+ leaks,
418
+ };
419
+ }
420
+ catch {
421
+ return { hasLeaks: false, leaks: [] };
422
+ }
423
+ }
424
+ // ============================================
425
+ // App Management
426
+ // ============================================
427
+ async function installApk(device, apkPath) {
428
+ try {
429
+ await execAsync(`adb -s ${device} install -r "${apkPath}"`);
430
+ return true;
431
+ }
432
+ catch {
433
+ return false;
434
+ }
435
+ }
436
+ async function uninstallApp(device, packageName) {
437
+ try {
438
+ await execAsync(`adb -s ${device} uninstall ${packageName}`);
439
+ return true;
440
+ }
441
+ catch {
442
+ return false;
443
+ }
444
+ }
445
+ async function launchApp(device, packageName, activity) {
446
+ try {
447
+ const activityArg = activity || `${packageName}.MainActivity`;
448
+ await execAsync(`adb -s ${device} shell am start -n ${packageName}/${activityArg}`);
449
+ return true;
450
+ }
451
+ catch {
452
+ return false;
453
+ }
454
+ }
455
+ async function forceStopApp(device, packageName) {
456
+ try {
457
+ await execAsync(`adb -s ${device} shell am force-stop ${packageName}`);
458
+ return true;
459
+ }
460
+ catch {
461
+ return false;
462
+ }
463
+ }
464
+ async function clearAppData(device, packageName) {
465
+ try {
466
+ await execAsync(`adb -s ${device} shell pm clear ${packageName}`);
467
+ return true;
468
+ }
469
+ catch {
470
+ return false;
471
+ }
472
+ }
473
+ // ============================================
474
+ // Screenshot & Recording
475
+ // ============================================
476
+ async function takeScreenshot(device, outputPath) {
477
+ try {
478
+ await execAsync(`adb -s ${device} exec-out screencap -p > "${outputPath}"`);
479
+ return true;
480
+ }
481
+ catch {
482
+ return false;
483
+ }
484
+ }
485
+ async function startRecording(device, outputPath, maxDuration = 180) {
486
+ const remoteFile = '/sdcard/screenrecord.mp4';
487
+ // Start recording in background
488
+ (0, child_process_1.exec)(`adb -s ${device} shell screenrecord --time-limit ${maxDuration} ${remoteFile}`);
489
+ return {
490
+ stop: async () => {
491
+ // Stop recording by sending SIGINT
492
+ await execAsync(`adb -s ${device} shell pkill -INT screenrecord`).catch(() => { });
493
+ await new Promise(resolve => setTimeout(resolve, 1000));
494
+ // Pull the recording
495
+ await execAsync(`adb -s ${device} pull ${remoteFile} "${outputPath}"`).catch(() => { });
496
+ // Clean up
497
+ await execAsync(`adb -s ${device} shell rm ${remoteFile}`).catch(() => { });
498
+ },
499
+ };
500
+ }
501
+ exports.default = {
502
+ listDevices,
503
+ listEmulators,
504
+ startEmulator,
505
+ stopEmulator,
506
+ runGradleTests,
507
+ runEspressoTests,
508
+ runUIAutomator,
509
+ runProfiler,
510
+ checkLeakCanaryResults,
511
+ installApk,
512
+ uninstallApp,
513
+ launchApp,
514
+ forceStopApp,
515
+ clearAppData,
516
+ takeScreenshot,
517
+ startRecording,
518
+ };
519
+ //# sourceMappingURL=index.js.map