@tapflowio/android-agent 0.9.2 → 0.11.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.
- package/dist/AndroidAgent.d.ts +6 -1
- package/dist/AndroidAgent.d.ts.map +1 -1
- package/dist/AndroidAgent.js +125 -13
- package/dist/AndroidAgent.js.map +1 -1
- package/dist/EmulatorLauncher.d.ts +13 -1
- package/dist/EmulatorLauncher.d.ts.map +1 -1
- package/dist/EmulatorLauncher.js +31 -5
- package/dist/EmulatorLauncher.js.map +1 -1
- package/dist/emulator/EmulatorGrpcClient.d.ts +27 -0
- package/dist/emulator/EmulatorGrpcClient.d.ts.map +1 -1
- package/dist/emulator/EmulatorGrpcClient.js +19 -0
- package/dist/emulator/EmulatorGrpcClient.js.map +1 -1
- package/dist/emulator/discovery.d.ts +15 -0
- package/dist/emulator/discovery.d.ts.map +1 -0
- package/dist/emulator/discovery.js +70 -0
- package/dist/emulator/discovery.js.map +1 -0
- package/package.json +7 -6
package/dist/AndroidAgent.d.ts
CHANGED
|
@@ -47,10 +47,15 @@ export declare class AndroidAgent implements DeviceAgent {
|
|
|
47
47
|
private useGrpc;
|
|
48
48
|
private pointerControl;
|
|
49
49
|
private fire;
|
|
50
|
-
private
|
|
50
|
+
private pendingGrpcPorts;
|
|
51
|
+
private pickFreeGrpcPort;
|
|
52
|
+
private audioEnabled;
|
|
51
53
|
private startVideoStream;
|
|
52
54
|
private pumpVideo;
|
|
53
55
|
private startGrpcVideoStream;
|
|
56
|
+
private startHostMute;
|
|
57
|
+
private stopHostMute;
|
|
58
|
+
private pumpAudio;
|
|
54
59
|
private restartVideoStream;
|
|
55
60
|
private wsClientOptions;
|
|
56
61
|
private openStreamWs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AndroidAgent.d.ts","sourceRoot":"","sources":["../src/AndroidAgent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,MAAM,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAE/E,OAAO,EASL,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"AndroidAgent.d.ts","sourceRoot":"","sources":["../src/AndroidAgent.ts"],"names":[],"mappings":"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"}
|
package/dist/AndroidAgent.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import os from 'os';
|
|
2
2
|
import { WebSocket } from 'ws';
|
|
3
3
|
import { createLogger, PlatformError, ValidationError } from '@tapflowio/agent-core';
|
|
4
|
-
import { createResourceSampler, registerStreamWs, disableNagle, createKeyframeAwareSender, pickMaxSize, createRateLimitedDropWarn, createThroughputSampler, createSleepBlocker, getMachineId, isLocalhostWss, DEFAULT_BACKPRESSURE_BYTES, writeEnvelopeHeader, rewriteLowLatencySpsInFrame, CODEC_H264, } from '@tapflowio/agent-core/utils';
|
|
4
|
+
import { createResourceSampler, registerStreamWs, disableNagle, createKeyframeAwareSender, pickMaxSize, createRateLimitedDropWarn, createThroughputSampler, createSleepBlocker, getMachineId, isLocalhostWss, DEFAULT_BACKPRESSURE_BYTES, writeEnvelopeHeader, rewriteLowLatencySpsInFrame, CODEC_H264, CODEC_AUDIO, sendAudioYieldingToVideo, } from '@tapflowio/agent-core/utils';
|
|
5
|
+
import { execFileSync } from 'child_process';
|
|
5
6
|
import { AdbWrapper } from './AdbWrapper.js';
|
|
6
|
-
import { EmulatorLauncher } from './EmulatorLauncher.js';
|
|
7
|
+
import { EmulatorLauncher, findEmulatorPid } from './EmulatorLauncher.js';
|
|
8
|
+
import { ensureHelperApp, launchMuteOnlyTap, isAudioSupported } from '@tapflowio/audiotap-helper';
|
|
7
9
|
import { AndroidTouchHelper } from './AndroidTouchHelper.js';
|
|
8
10
|
import { ScrcpySession } from './scrcpy/ScrcpySession.js';
|
|
9
11
|
import { EmulatorGrpcClient } from './emulator/EmulatorGrpcClient.js';
|
|
12
|
+
import { discoverGrpcPort, isTcpPortFree } from './emulator/discovery.js';
|
|
10
13
|
import { EmulatorVideo } from './emulator/EmulatorVideo.js';
|
|
11
14
|
const logger = createLogger('android-agent');
|
|
12
15
|
// Parse H.264 SPS NAL unit to extract frame dimensions.
|
|
@@ -250,6 +253,9 @@ export class AndroidAgent {
|
|
|
250
253
|
streamWs: null,
|
|
251
254
|
scrcpySession: null,
|
|
252
255
|
emulatorVideo: null,
|
|
256
|
+
emulatorAudio: null,
|
|
257
|
+
audioMuteQemuPid: null,
|
|
258
|
+
grpcPort: null,
|
|
253
259
|
grpcClient: null,
|
|
254
260
|
cornerRadius: 0,
|
|
255
261
|
secureContext: false,
|
|
@@ -339,6 +345,9 @@ export class AndroidAgent {
|
|
|
339
345
|
state.scrcpySession = null;
|
|
340
346
|
state.emulatorVideo?.stop();
|
|
341
347
|
state.emulatorVideo = null;
|
|
348
|
+
state.emulatorAudio?.cancel();
|
|
349
|
+
state.emulatorAudio = null;
|
|
350
|
+
this.stopHostMute(state);
|
|
342
351
|
state.grpcClient?.close();
|
|
343
352
|
state.grpcClient = null;
|
|
344
353
|
state.cornerRadius = 0;
|
|
@@ -383,8 +392,37 @@ export class AndroidAgent {
|
|
|
383
392
|
// is unsecured; without it the emulator opens its DEFAULT gRPC port with token auth, which our
|
|
384
393
|
// unauthenticated client can't use. Launches are always AVDs (emulators), so default to gRPC
|
|
385
394
|
// unless explicitly forced to scrcpy. undefined = don't open gRPC.
|
|
386
|
-
|
|
387
|
-
|
|
395
|
+
// Ports reserved between pick() and the emulator actually binding them — avoids two concurrent
|
|
396
|
+
// boots racing onto the same port before either emulator has claimed it.
|
|
397
|
+
pendingGrpcPorts = new Set();
|
|
398
|
+
// A FREE gRPC port for a new emulator. Each emulator must get its own port — a shared fixed 8554
|
|
399
|
+
// makes a second emulator collide and every session ends up streaming the first emulator (#stream-bleed).
|
|
400
|
+
async pickFreeGrpcPort() {
|
|
401
|
+
const base = Number(process.env.TAPFLOW_ANDROID_GRPC_PORT) || 8554;
|
|
402
|
+
for (let p = base; p < base + 200; p += 2) { // emulators conventionally use even ports
|
|
403
|
+
if (this.pendingGrpcPorts.has(p))
|
|
404
|
+
continue;
|
|
405
|
+
// Reserve before the async probe so two concurrent boots can't both claim the same port.
|
|
406
|
+
this.pendingGrpcPorts.add(p);
|
|
407
|
+
let free = false;
|
|
408
|
+
try {
|
|
409
|
+
free = await isTcpPortFree(p);
|
|
410
|
+
if (free)
|
|
411
|
+
return p;
|
|
412
|
+
}
|
|
413
|
+
finally {
|
|
414
|
+
if (!free)
|
|
415
|
+
this.pendingGrpcPorts.delete(p);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
throw new PlatformError('No free gRPC port available for the emulator');
|
|
419
|
+
}
|
|
420
|
+
// Audio output is ON by default; opt out with TAPFLOW_AUDIO=off. Gates both emulator launch
|
|
421
|
+
// (`-no-audio` removal) and the gRPC streamAudio pump — both must read the same flag so the audio
|
|
422
|
+
// backend matches the stream. Unlike iOS, the emulator also plays to the host (agent Mac) — it has
|
|
423
|
+
// no host-output-only mute, so use the Mac's own volume; see contributing/simulator-audio.md (#341).
|
|
424
|
+
audioEnabled() {
|
|
425
|
+
return process.env.TAPFLOW_AUDIO !== 'off';
|
|
388
426
|
}
|
|
389
427
|
async startVideoStream(state, streamWs) {
|
|
390
428
|
const serial = this.adb.getSerial(state.deviceId);
|
|
@@ -494,7 +532,9 @@ export class AndroidAgent {
|
|
|
494
532
|
// the shared pump. Input is routed to the gRPC client in handleRelayMessage. No auto-restart —
|
|
495
533
|
// the backend is torn down with the device state.
|
|
496
534
|
async startGrpcVideoStream(state, streamWs, serial) {
|
|
497
|
-
|
|
535
|
+
// Connect to THIS emulator's port: the one we launched it with, else the port it advertises in
|
|
536
|
+
// its discovery .ini (covers externally-booted emulators), else the legacy default.
|
|
537
|
+
const port = state.grpcPort ?? discoverGrpcPort(serial) ?? 8554;
|
|
498
538
|
// Downscale box (longest side), server-side resize. Per-session tier from the viewer context
|
|
499
539
|
// (secure→native / LAN-HTTP→1280 / external→1000); TAPFLOW_ANDROID_MAX_SIZE | TAPFLOW_MAX_SIZE
|
|
500
540
|
// is a hard override.
|
|
@@ -533,6 +573,66 @@ export class AndroidAgent {
|
|
|
533
573
|
void this.restartVideoStream(state);
|
|
534
574
|
}
|
|
535
575
|
});
|
|
576
|
+
// Opt-in audio output, on the SAME gRPC client + stream socket as video. Best-effort: if it
|
|
577
|
+
// ends or errors it does NOT trigger a video restart — video owns the session lifecycle.
|
|
578
|
+
if (this.audioEnabled()) {
|
|
579
|
+
const audio = client.streamAudio();
|
|
580
|
+
state.emulatorAudio = audio;
|
|
581
|
+
void this.pumpAudio(state, streamWs, audio);
|
|
582
|
+
this.startHostMute(state); // #341: silence the emulator's host (agent Mac) output — iOS parity
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
// #341: the emulator also plays to the agent Mac's speakers (its `-audio` backend has no
|
|
586
|
+
// host-output-only mute). On macOS 14.2+ we hold a mute-only Core Audio process tap on the
|
|
587
|
+
// emulator's qemu pid so its host output is silenced while gRPC keeps capturing for the browser —
|
|
588
|
+
// matching iOS's muteBehavior=.muted. Below 14.2 / non-macOS: no-op (fall back to the Mac's volume).
|
|
589
|
+
startHostMute(state) {
|
|
590
|
+
if (!isAudioSupported())
|
|
591
|
+
return;
|
|
592
|
+
if (state.audioMuteQemuPid != null)
|
|
593
|
+
return; // already muting this session (e.g. a stream restart)
|
|
594
|
+
const avdName = state.deviceId.replace(/^avd:/, '');
|
|
595
|
+
const qemuPid = findEmulatorPid(avdName);
|
|
596
|
+
if (!qemuPid) {
|
|
597
|
+
logger.debug(`host-mute: no qemu pid for ${avdName}`);
|
|
598
|
+
return;
|
|
599
|
+
}
|
|
600
|
+
try {
|
|
601
|
+
launchMuteOnlyTap(ensureHelperApp(), [qemuPid]);
|
|
602
|
+
state.audioMuteQemuPid = qemuPid;
|
|
603
|
+
logger.info(`host-mute: silencing emulator host output on the agent Mac (qemu ${qemuPid})`);
|
|
604
|
+
}
|
|
605
|
+
catch (e) {
|
|
606
|
+
logger.warn(`host-mute: failed to launch mute tap: ${e instanceof Error ? e.message : String(e)}`);
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
// Stop muting on teardown so the emulator is audible again if the operator uses it directly. The
|
|
610
|
+
// mute helper also self-exits when qemu dies, so this only matters when the emulator outlives us.
|
|
611
|
+
stopHostMute(state) {
|
|
612
|
+
if (state.audioMuteQemuPid == null)
|
|
613
|
+
return;
|
|
614
|
+
try {
|
|
615
|
+
execFileSync('pkill', ['-f', `audiotap-helper.*--mute-only ${state.audioMuteQemuPid}$`], { stdio: 'ignore' });
|
|
616
|
+
}
|
|
617
|
+
catch { /* already gone */ }
|
|
618
|
+
state.audioMuteQemuPid = null;
|
|
619
|
+
}
|
|
620
|
+
// Forward raw-PCM audio frames to the relay on the shared stream socket. Uses the yielding sender,
|
|
621
|
+
// never the keyframe-aware video sender: audio must never inflate the socket buffer enough to make
|
|
622
|
+
// video's backpressure misfire. A dropped audio frame is a brief glitch; a stalled video isn't.
|
|
623
|
+
async pumpAudio(state, streamWs, audio) {
|
|
624
|
+
const warnDrop = createRateLimitedDropWarn(logger, `${state.deviceId} audio`);
|
|
625
|
+
try {
|
|
626
|
+
for await (const f of audio.frames) {
|
|
627
|
+
if (streamWs.readyState !== WebSocket.OPEN)
|
|
628
|
+
break;
|
|
629
|
+
const frame = writeEnvelopeHeader(f.audio, Date.now(), { codec: CODEC_AUDIO });
|
|
630
|
+
sendAudioYieldingToVideo(streamWs, frame, warnDrop);
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
catch {
|
|
634
|
+
// stream cancelled or ws closed — expected on teardown/restart
|
|
635
|
+
}
|
|
536
636
|
}
|
|
537
637
|
async restartVideoStream(state) {
|
|
538
638
|
const serial = this.adb.getSerial(state.deviceId);
|
|
@@ -544,6 +644,8 @@ export class AndroidAgent {
|
|
|
544
644
|
state.scrcpySession = null;
|
|
545
645
|
state.emulatorVideo?.stop();
|
|
546
646
|
state.emulatorVideo = null;
|
|
647
|
+
state.emulatorAudio?.cancel();
|
|
648
|
+
state.emulatorAudio = null;
|
|
547
649
|
state.grpcClient?.close();
|
|
548
650
|
state.grpcClient = null;
|
|
549
651
|
state.touchHelper?.stop();
|
|
@@ -610,14 +712,24 @@ export class AndroidAgent {
|
|
|
610
712
|
if (!target)
|
|
611
713
|
throw new PlatformError(`Device not found: ${avdId}`);
|
|
612
714
|
if (target.status !== 'booted') {
|
|
613
|
-
|
|
614
|
-
const
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
715
|
+
// One unique gRPC port per emulator (undefined when forced to scrcpy → no `-grpc`).
|
|
716
|
+
const grpcPort = this.forceScrcpy() ? undefined : await this.pickFreeGrpcPort();
|
|
717
|
+
state.grpcPort = grpcPort ?? null;
|
|
718
|
+
try {
|
|
719
|
+
this.launcher.launch(avdName, grpcPort, { audio: this.audioEnabled() });
|
|
720
|
+
const serial = await this.launcher.findSerial(avdName);
|
|
721
|
+
if (seq !== state.bootSeq)
|
|
722
|
+
return;
|
|
723
|
+
await this.launcher.waitForBoot(serial);
|
|
724
|
+
if (seq !== state.bootSeq)
|
|
725
|
+
return;
|
|
726
|
+
this.adb.setSerial(avdId, serial);
|
|
727
|
+
}
|
|
728
|
+
finally {
|
|
729
|
+
// The emulator now holds the port (or boot failed) — drop the reservation either way.
|
|
730
|
+
if (grpcPort !== undefined)
|
|
731
|
+
this.pendingGrpcPorts.delete(grpcPort);
|
|
732
|
+
}
|
|
621
733
|
}
|
|
622
734
|
const refreshed = await this.adb.listDevices();
|
|
623
735
|
if (seq !== state.bootSeq)
|
package/dist/AndroidAgent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AndroidAgent.js","sourceRoot":"","sources":["../src/AndroidAgent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AndroidAgent.js","sourceRoot":"","sources":["../src/AndroidAgent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
|
+
export interface EmulatorLaunchOpts {
|
|
2
|
+
audio?: boolean;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Find the running emulator's qemu PID by AVD name — the qemu process embeds `-avd <name>` in its
|
|
6
|
+
* command line. Used to point the macOS mute-only audio tap at the emulator's host process so its
|
|
7
|
+
* audio doesn't leak to the agent Mac's speakers (#341). Returns null when not found (not running yet,
|
|
8
|
+
* or `pgrep` unavailable / exits 1 with no match). macOS only in practice; harmless elsewhere.
|
|
9
|
+
*/
|
|
10
|
+
export declare function findEmulatorPid(avdName: string): number | null;
|
|
11
|
+
/** Build the emulator CLI args. Pure + exported so the `-no-audio` gating is unit-testable. */
|
|
12
|
+
export declare function buildEmulatorArgs(avdName: string, grpcPort?: number, opts?: EmulatorLaunchOpts): string[];
|
|
1
13
|
export declare class EmulatorLauncher {
|
|
2
14
|
/** `grpcPort`, when set, opens the emulator's unprotected localhost gRPC endpoint
|
|
3
15
|
* (`-grpc <port>`) for host-side screen capture + input — the same trust boundary as
|
|
4
16
|
* scrcpy's localhost ADB. Verified to work under `-no-window` headless. */
|
|
5
|
-
launch(avdName: string, grpcPort?: number): void;
|
|
17
|
+
launch(avdName: string, grpcPort?: number, opts?: EmulatorLaunchOpts): void;
|
|
6
18
|
findSerial(avdName: string, timeoutMs?: number): Promise<string>;
|
|
7
19
|
waitForBoot(serial: string, timeoutMs?: number): Promise<void>;
|
|
8
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmulatorLauncher.d.ts","sourceRoot":"","sources":["../src/EmulatorLauncher.ts"],"names":[],"mappings":"AAyBA,qBAAa,gBAAgB;IAC3B;;gFAE4E;IAC5E,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"EmulatorLauncher.d.ts","sourceRoot":"","sources":["../src/EmulatorLauncher.ts"],"names":[],"mappings":"AAyBA,MAAM,WAAW,kBAAkB;IAEjC,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ9D;AAED,+FAA+F;AAC/F,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAMzG;AAED,qBAAa,gBAAgB;IAC3B;;gFAE4E;IAC5E,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAUrE,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BhE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAmBtE"}
|
package/dist/EmulatorLauncher.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { execFile, spawn } from 'child_process';
|
|
1
|
+
import { execFile, execFileSync, spawn } from 'child_process';
|
|
2
2
|
import { promisify } from 'util';
|
|
3
3
|
import { createLogger, PlatformError, ValidationError } from '@tapflowio/agent-core';
|
|
4
4
|
const execFileAsync = promisify(execFile);
|
|
@@ -19,14 +19,40 @@ function getEmulatorPath() {
|
|
|
19
19
|
}
|
|
20
20
|
return `${androidHome}/emulator/emulator`;
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Find the running emulator's qemu PID by AVD name — the qemu process embeds `-avd <name>` in its
|
|
24
|
+
* command line. Used to point the macOS mute-only audio tap at the emulator's host process so its
|
|
25
|
+
* audio doesn't leak to the agent Mac's speakers (#341). Returns null when not found (not running yet,
|
|
26
|
+
* or `pgrep` unavailable / exits 1 with no match). macOS only in practice; harmless elsewhere.
|
|
27
|
+
*/
|
|
28
|
+
export function findEmulatorPid(avdName) {
|
|
29
|
+
try {
|
|
30
|
+
// Escape regex metacharacters so an AVD name like "Pixel.7" can't alter the pgrep -f pattern.
|
|
31
|
+
const esc = avdName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
32
|
+
const out = execFileSync('pgrep', ['-f', `qemu-system.*-avd ${esc}`], { encoding: 'utf8' });
|
|
33
|
+
const pid = parseInt(out.trim().split('\n')[0] ?? '', 10);
|
|
34
|
+
return Number.isFinite(pid) ? pid : null;
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/** Build the emulator CLI args. Pure + exported so the `-no-audio` gating is unit-testable. */
|
|
41
|
+
export function buildEmulatorArgs(avdName, grpcPort, opts) {
|
|
42
|
+
const args = ['-avd', avdName];
|
|
43
|
+
if (!opts?.audio)
|
|
44
|
+
args.push('-no-audio');
|
|
45
|
+
args.push('-no-snapshot', '-no-window', '-gpu', 'host');
|
|
46
|
+
if (grpcPort !== undefined)
|
|
47
|
+
args.push('-grpc', String(grpcPort));
|
|
48
|
+
return args;
|
|
49
|
+
}
|
|
22
50
|
export class EmulatorLauncher {
|
|
23
51
|
/** `grpcPort`, when set, opens the emulator's unprotected localhost gRPC endpoint
|
|
24
52
|
* (`-grpc <port>`) for host-side screen capture + input — the same trust boundary as
|
|
25
53
|
* scrcpy's localhost ADB. Verified to work under `-no-window` headless. */
|
|
26
|
-
launch(avdName, grpcPort) {
|
|
27
|
-
const args =
|
|
28
|
-
if (grpcPort !== undefined)
|
|
29
|
-
args.push('-grpc', String(grpcPort));
|
|
54
|
+
launch(avdName, grpcPort, opts) {
|
|
55
|
+
const args = buildEmulatorArgs(avdName, grpcPort, opts);
|
|
30
56
|
const proc = spawn(getEmulatorPath(), args, {
|
|
31
57
|
detached: true,
|
|
32
58
|
stdio: 'ignore',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmulatorLauncher.js","sourceRoot":"","sources":["../src/EmulatorLauncher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"EmulatorLauncher.js","sourceRoot":"","sources":["../src/EmulatorLauncher.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,15 @@ export interface ScreenshotStream {
|
|
|
13
13
|
frames: AsyncIterable<EmulatorFrame>;
|
|
14
14
|
cancel(): void;
|
|
15
15
|
}
|
|
16
|
+
/** One raw-PCM audio packet from the emulator's gRPC stream (S16LE / 44100 / Stereo). */
|
|
17
|
+
export interface EmulatorAudioFrame {
|
|
18
|
+
audio: Buffer;
|
|
19
|
+
timestamp: number;
|
|
20
|
+
}
|
|
21
|
+
export interface AudioStream {
|
|
22
|
+
frames: AsyncIterable<EmulatorAudioFrame>;
|
|
23
|
+
cancel(): void;
|
|
24
|
+
}
|
|
16
25
|
interface ImageFormatMsg {
|
|
17
26
|
format: string;
|
|
18
27
|
width: number;
|
|
@@ -30,6 +39,17 @@ interface ImageMsg {
|
|
|
30
39
|
height: number;
|
|
31
40
|
};
|
|
32
41
|
}
|
|
42
|
+
interface AudioFormatMsg {
|
|
43
|
+
samplingRate: number;
|
|
44
|
+
channels: string;
|
|
45
|
+
format: string;
|
|
46
|
+
mode: string;
|
|
47
|
+
}
|
|
48
|
+
interface AudioPacketMsg {
|
|
49
|
+
format: AudioFormatMsg;
|
|
50
|
+
timestamp: string;
|
|
51
|
+
audio: Buffer;
|
|
52
|
+
}
|
|
33
53
|
interface TouchMsg {
|
|
34
54
|
x: number;
|
|
35
55
|
y: number;
|
|
@@ -62,6 +82,7 @@ type UnaryCb = (err: Error | null) => void;
|
|
|
62
82
|
/** The subset of the generated EmulatorController stub we use. Injectable for tests. */
|
|
63
83
|
export interface RawEmulatorController {
|
|
64
84
|
streamScreenshot(format: ImageFormatMsg): ClientReadableStream<ImageMsg>;
|
|
85
|
+
streamAudio(format: AudioFormatMsg): ClientReadableStream<AudioPacketMsg>;
|
|
65
86
|
sendTouch(event: TouchEventMsg, cb: UnaryCb): void;
|
|
66
87
|
sendKey(event: KeyboardEventMsg, cb: UnaryCb): void;
|
|
67
88
|
sendMouse(event: MouseEventMsg, cb: UnaryCb): void;
|
|
@@ -85,6 +106,12 @@ export declare class EmulatorGrpcClient {
|
|
|
85
106
|
height?: number;
|
|
86
107
|
display?: number;
|
|
87
108
|
}): ScreenshotStream;
|
|
109
|
+
/** Server-side streaming of raw PCM (S16LE / 44100 / Stereo). MODE_REAL_TIME so the
|
|
110
|
+
* emulator overwrites stale audio if we fall behind — the freshest packet wins, never
|
|
111
|
+
* blocking the emulator (matches the drop-old policy; audio must never backpressure video). */
|
|
112
|
+
streamAudio(opts?: {
|
|
113
|
+
samplingRate?: number;
|
|
114
|
+
}): AudioStream;
|
|
88
115
|
private touch;
|
|
89
116
|
touchDown(pointerId: number, x: number, y: number): Promise<void>;
|
|
90
117
|
touchMove(pointerId: number, x: number, y: number): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmulatorGrpcClient.d.ts","sourceRoot":"","sources":["../../src/emulator/EmulatorGrpcClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAU7F,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,WAAW,GAAG,kBAAkB,GAAG,mBAAmB,CAAA;AAE9F;uEACuE;AACvE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,YAAY,CAAA;IACtB,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;IACpC,MAAM,IAAI,IAAI,CAAA;CACf;AAGD,UAAU,cAAc;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AAC3F,UAAU,QAAQ;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE;QAAE,QAAQ,EAAE;YAAE,QAAQ,EAAE,YAAY,CAAA;SAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAChF;
|
|
1
|
+
{"version":3,"file":"EmulatorGrpcClient.d.ts","sourceRoot":"","sources":["../../src/emulator/EmulatorGrpcClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,6 +53,25 @@ export class EmulatorGrpcClient {
|
|
|
53
53
|
}
|
|
54
54
|
return { frames: mapped(), cancel: () => call.cancel() };
|
|
55
55
|
}
|
|
56
|
+
/** Server-side streaming of raw PCM (S16LE / 44100 / Stereo). MODE_REAL_TIME so the
|
|
57
|
+
* emulator overwrites stale audio if we fall behind — the freshest packet wins, never
|
|
58
|
+
* blocking the emulator (matches the drop-old policy; audio must never backpressure video). */
|
|
59
|
+
streamAudio(opts = {}) {
|
|
60
|
+
const call = this.raw.streamAudio({
|
|
61
|
+
samplingRate: opts.samplingRate ?? 44100,
|
|
62
|
+
channels: 'Stereo',
|
|
63
|
+
format: 'AUD_FMT_S16',
|
|
64
|
+
mode: 'MODE_REAL_TIME',
|
|
65
|
+
});
|
|
66
|
+
async function* mapped() {
|
|
67
|
+
for await (const msg of call) {
|
|
68
|
+
if (!msg.audio || msg.audio.length === 0)
|
|
69
|
+
continue;
|
|
70
|
+
yield { audio: msg.audio, timestamp: Number(msg.timestamp) };
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return { frames: mapped(), cancel: () => call.cancel() };
|
|
74
|
+
}
|
|
56
75
|
// --- input (coords are display-resolution px, top-left origin; pressure 0 = up) ---
|
|
57
76
|
touch(touches, display = 0) {
|
|
58
77
|
return new Promise((resolve, reject) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmulatorGrpcClient.js","sourceRoot":"","sources":["../../src/emulator/EmulatorGrpcClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAA6B,MAAM,eAAe,CAAA;AAC7F,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,6FAA6F;AAC7F,oEAAoE;AACpE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,2BAA2B,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"EmulatorGrpcClient.js","sourceRoot":"","sources":["../../src/emulator/EmulatorGrpcClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAA6B,MAAM,eAAe,CAAA;AAC7F,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,6FAA6F;AAC7F,oEAAoE;AACpE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,2BAA2B,CAAC,CAAA;AAoE5H,IAAI,SAAS,GAAkC,IAAI,CAAA;AACnD,SAAS,cAAc;IACrB,IAAI,SAAS;QAAE,OAAO,SAAS,CAAA;IAC/B,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAChH,MAAM,GAAG,GAAG,qBAAqB,CAAC,GAAG,CAEpC,CAAA;IACD,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAA;IAC5D,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IACZ,GAAG,CAAuB;IAE3C,yEAAyE;IACzE,YAAY,IAAY,EAAE,GAA2B;QACnD,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,cAAc,EAAE,EAAE;YAC3E,yEAAyE;YACzE,iCAAiC,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;SACpD,CAAC,CAAA;IACJ,CAAC;IAED;wFACoF;IACpF,gBAAgB,CAAC,OAA8D,EAAE;QAC/E,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACrC,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;YACtB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC;YACxB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,CAAC;SAC3B,CAAC,CAAA;QACF,KAAK,SAAS,CAAC,CAAC,MAAM;YACpB,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAA+B,EAAE,CAAC;gBACxD,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAQ;gBAClD,MAAM;oBACJ,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK;oBACvB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM;oBACzB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ;oBACtC,GAAG,EAAE,GAAG,CAAC,GAAG;iBACb,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAA;IAC1D,CAAC;IAED;;oGAEgG;IAChG,WAAW,CAAC,OAAkC,EAAE;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;YAChC,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,KAAK;YACxC,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,gBAAgB;SACvB,CAAC,CAAA;QACF,KAAK,SAAS,CAAC,CAAC,MAAM;YACpB,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,IAAqC,EAAE,CAAC;gBAC9D,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;oBAAE,SAAQ;gBAClD,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAA;YAC9D,CAAC;QACH,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAA;IAC1D,CAAC;IAED,qFAAqF;IAE7E,KAAK,CAAC,OAAmB,EAAE,OAAO,GAAG,CAAC;QAC5C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QACpF,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,CAAC,SAAiB,EAAE,CAAS,EAAE,CAAS;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACnE,CAAC;IAED,SAAS,CAAC,SAAiB,EAAE,CAAS,EAAE,CAAS;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACnE,CAAC;IAED,OAAO,CAAC,SAAiB,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACnE,CAAC;IAED,UAAU,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;YAC5C,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;SAC7C,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAE,EAAU;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;YAC5C,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;SAC7C,CAAC,CAAA;IACJ,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;YAC1C,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;SAC3C,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,CAAC,KAA+F;QACrG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,GAAG,CAAC,OAAO,CACd,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,UAAU,EAAE,GAAG,KAAK,EAAE,EACzF,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CACzC,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,SAAS,CAAC,EAAU,EAAE,EAAU,EAAE,OAAO,GAAG,CAAC;QAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;QACnF,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK;QACH,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare function runningDir(): string;
|
|
2
|
+
export interface RunningEmulator {
|
|
3
|
+
consolePort: number | null;
|
|
4
|
+
grpcPort: number | null;
|
|
5
|
+
avdId: string | null;
|
|
6
|
+
}
|
|
7
|
+
/** Parse one emulator discovery .ini. Pure — unit-testable without the filesystem. */
|
|
8
|
+
export declare function parseDiscoveryIni(text: string): RunningEmulator;
|
|
9
|
+
/** The console port encoded in an emulator serial (`emulator-5554` → 5554), or null if not an emulator. */
|
|
10
|
+
export declare function consolePortFromSerial(serial: string): number | null;
|
|
11
|
+
/** The gRPC port a running emulator advertises for the given serial, or null if not discoverable. */
|
|
12
|
+
export declare function discoverGrpcPort(serial: string, dir?: string): number | null;
|
|
13
|
+
/** True if a TCP port can be bound on all interfaces (i.e. no emulator/process holds it yet). */
|
|
14
|
+
export declare function isTcpPortFree(port: number): Promise<boolean>;
|
|
15
|
+
//# sourceMappingURL=discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/emulator/discovery.ts"],"names":[],"mappings":"AAWA,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAgB/D;AAED,2GAA2G;AAC3G,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGnE;AAED,qGAAqG;AACrG,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,MAAqB,GAAG,MAAM,GAAG,IAAI,CAkB1F;AAED,iGAAiG;AACjG,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO5D"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
import net from 'node:net';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
// Each running emulator writes a discovery .ini that maps its console port (the ADB serial) to its
|
|
6
|
+
// gRPC port. We read it to learn an emulator's actual gRPC port instead of assuming a fixed 8554 —
|
|
7
|
+
// the bug that made concurrent emulators on one Mac all collide on 8554 and share one stream.
|
|
8
|
+
// macOS path; overridable for tests / non-default emulator homes.
|
|
9
|
+
const DEFAULT_RUNNING_DIR = path.join(os.homedir(), 'Library', 'Caches', 'TemporaryItems', 'avd', 'running');
|
|
10
|
+
export function runningDir() {
|
|
11
|
+
return process.env.TAPFLOW_EMULATOR_RUNNING_DIR || DEFAULT_RUNNING_DIR;
|
|
12
|
+
}
|
|
13
|
+
/** Parse one emulator discovery .ini. Pure — unit-testable without the filesystem. */
|
|
14
|
+
export function parseDiscoveryIni(text) {
|
|
15
|
+
const get = (key) => {
|
|
16
|
+
const re = new RegExp(`^${key.replace(/\./g, '\\.')}=(.*)$`, 'm');
|
|
17
|
+
const m = text.match(re);
|
|
18
|
+
return m ? m[1].trim() : null;
|
|
19
|
+
};
|
|
20
|
+
const num = (s) => {
|
|
21
|
+
if (s == null)
|
|
22
|
+
return null;
|
|
23
|
+
const n = Number(s);
|
|
24
|
+
return Number.isInteger(n) ? n : null;
|
|
25
|
+
};
|
|
26
|
+
return {
|
|
27
|
+
consolePort: num(get('port.serial')),
|
|
28
|
+
grpcPort: num(get('grpc.port')),
|
|
29
|
+
avdId: get('avd.id'),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
/** The console port encoded in an emulator serial (`emulator-5554` → 5554), or null if not an emulator. */
|
|
33
|
+
export function consolePortFromSerial(serial) {
|
|
34
|
+
const m = serial.match(/^emulator-(\d+)$/);
|
|
35
|
+
return m ? Number(m[1]) : null;
|
|
36
|
+
}
|
|
37
|
+
/** The gRPC port a running emulator advertises for the given serial, or null if not discoverable. */
|
|
38
|
+
export function discoverGrpcPort(serial, dir = runningDir()) {
|
|
39
|
+
const consolePort = consolePortFromSerial(serial);
|
|
40
|
+
if (consolePort == null)
|
|
41
|
+
return null;
|
|
42
|
+
let files;
|
|
43
|
+
try {
|
|
44
|
+
files = fs.readdirSync(dir).filter((f) => f.startsWith('pid_') && f.endsWith('.ini'));
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return null; // dir absent (no running emulators / non-default home)
|
|
48
|
+
}
|
|
49
|
+
for (const f of files) {
|
|
50
|
+
try {
|
|
51
|
+
const info = parseDiscoveryIni(fs.readFileSync(path.join(dir, f), 'utf8'));
|
|
52
|
+
if (info.consolePort === consolePort && info.grpcPort != null)
|
|
53
|
+
return info.grpcPort;
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
/* skip unreadable/partial ini */
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
/** True if a TCP port can be bound on all interfaces (i.e. no emulator/process holds it yet). */
|
|
62
|
+
export function isTcpPortFree(port) {
|
|
63
|
+
return new Promise((resolve) => {
|
|
64
|
+
const srv = net.createServer();
|
|
65
|
+
srv.once('error', () => resolve(false));
|
|
66
|
+
srv.once('listening', () => srv.close(() => resolve(true)));
|
|
67
|
+
srv.listen(port); // no host → all interfaces, matching how the emulator binds `*:<grpc>`
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/emulator/discovery.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tapflowio/android-agent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Android emulator agent for tapflow — ADB control and scrcpy H.264 streaming",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"tapflow",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"types": "dist/index.d.ts",
|
|
26
26
|
"exports": {
|
|
27
27
|
".": {
|
|
28
|
-
"types": "./
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
29
|
"source": "./src/index.ts",
|
|
30
30
|
"tsx": "./src/index.ts",
|
|
31
31
|
"import": "./dist/index.js",
|
|
@@ -49,18 +49,19 @@
|
|
|
49
49
|
"@grpc/grpc-js": "^1.14.4",
|
|
50
50
|
"@grpc/proto-loader": "^0.8.1",
|
|
51
51
|
"ws": "^8.21.0",
|
|
52
|
-
"@tapflowio/agent-core": "0.
|
|
52
|
+
"@tapflowio/agent-core": "0.11.0",
|
|
53
|
+
"@tapflowio/audiotap-helper": "0.2.0"
|
|
53
54
|
},
|
|
54
55
|
"devDependencies": {
|
|
55
56
|
"@types/node": "^20.19.43",
|
|
56
57
|
"@types/ws": "^8.0.0",
|
|
57
58
|
"typescript": "^5.0.0",
|
|
58
59
|
"vitest": "^4.1.9",
|
|
59
|
-
"@tapflowio/relay": "0.
|
|
60
|
+
"@tapflowio/relay": "0.11.0"
|
|
60
61
|
},
|
|
61
62
|
"scripts": {
|
|
62
|
-
"build": "tsc",
|
|
63
|
-
"typecheck": "tsc
|
|
63
|
+
"build": "tsc -b",
|
|
64
|
+
"typecheck": "tsc -b",
|
|
64
65
|
"test": "vitest run",
|
|
65
66
|
"lint": "eslint src",
|
|
66
67
|
"download-scrcpy-server": "node scripts/download-scrcpy-server.mjs"
|