@tapflowio/ios-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.
Binary file
@@ -0,0 +1,44 @@
1
+ import type { AudioFrame } from '@tapflowio/agent-core';
2
+ /**
3
+ * Read the simulator's current media volume (`sim_volume`, 0–100) from its audiosettings.plist and
4
+ * return it as a 0–1 gain. The Core Audio process tap captures audio *before* the simulator applies
5
+ * its volume, so the agent multiplies it back in. The plist updates live as the user changes the
6
+ * simulator volume. Returns 1 (full) when unreadable — a volume-read failure must never mute audio.
7
+ */
8
+ export declare function readSimVolume(udid: string): number;
9
+ export declare function parseAudioFrames(buf: Buffer): {
10
+ frames: Buffer[];
11
+ rest: Buffer;
12
+ };
13
+ export declare function applyGain(buf: Buffer, gain: number): void;
14
+ /**
15
+ * Per-session loopback server the audiotap-helper connects back to. The helper process-taps the
16
+ * simulator app's audio on the host (no device routing, no injection) and streams length-prefixed
17
+ * frames here.
18
+ *
19
+ * Transport is 127.0.0.1 TCP: the OS assigns an ephemeral port (per-session isolation) which we hand
20
+ * to the helper as a launch arg. The helper reconnects per launch; the server outlives reconnects.
21
+ */
22
+ export declare class AudioCaptureStreamer {
23
+ private server;
24
+ private controller;
25
+ private buf;
26
+ private port;
27
+ private activeSock;
28
+ private pendingPids;
29
+ /** Binds 127.0.0.1:<ephemeral> and resolves the assigned port (pass it to the dylib). */
30
+ listen(): Promise<number>;
31
+ private onConnection;
32
+ /**
33
+ * Push a new tap set to the running helper over the same loopback socket (the agent→helper
34
+ * direction). Wire: [u32 BE count][pid:u32 BE × count] — mirrors the helper's read loop. The helper
35
+ * tears down the old tap and rebuilds it for these pids, keeping the socket and frame stream alive.
36
+ * If the helper hasn't connected yet, the latest set is buffered and flushed on connect.
37
+ */
38
+ updatePids(pids: number[]): void;
39
+ private writePids;
40
+ /** The frame stream. Call after listen() and before the app connects. */
41
+ frames(): ReadableStream<AudioFrame>;
42
+ stop(): void;
43
+ }
44
+ //# sourceMappingURL=AudioCaptureStreamer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioCaptureStreamer.d.ts","sourceRoot":"","sources":["../src/AudioCaptureStreamer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AASvD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASlD;AAKD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAShF;AAID,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAKzD;AAED;;;;;;;GAOG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,UAAU,CAA2D;IAC7E,OAAO,CAAC,GAAG,CAA0B;IACrC,OAAO,CAAC,IAAI,CAAI;IAChB,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,WAAW,CAAwB;IAE3C,yFAAyF;IACzF,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAazB,OAAO,CAAC,YAAY;IAiBpB;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAKhC,OAAO,CAAC,SAAS;IAOjB,yEAAyE;IACzE,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC;IAOpC,IAAI,IAAI,IAAI;CAOb"}
@@ -0,0 +1,142 @@
1
+ import net from 'node:net';
2
+ import os from 'node:os';
3
+ import { execFileSync } from 'node:child_process';
4
+ import { join } from 'node:path';
5
+ import { createLogger } from '@tapflowio/agent-core';
6
+ const logger = createLogger('ios-agent:audio');
7
+ // The shared macOS process-tap helper (build/launch/permission) lives in @tapflowio/audiotap-helper.
8
+ // This file is the iOS-only capture/stream side: it reads the helper's PCM off a loopback socket,
9
+ // reflects the simulator volume, and exposes the frame stream.
10
+ /**
11
+ * Read the simulator's current media volume (`sim_volume`, 0–100) from its audiosettings.plist and
12
+ * return it as a 0–1 gain. The Core Audio process tap captures audio *before* the simulator applies
13
+ * its volume, so the agent multiplies it back in. The plist updates live as the user changes the
14
+ * simulator volume. Returns 1 (full) when unreadable — a volume-read failure must never mute audio.
15
+ */
16
+ export function readSimVolume(udid) {
17
+ const plist = join(os.homedir(), 'Library', 'Developer', 'CoreSimulator', 'Devices', udid, 'data', 'var', 'run', 'simulatoraudio', 'audiosettings.plist');
18
+ try {
19
+ const json = execFileSync('plutil', ['-convert', 'json', '-o', '-', plist], { encoding: 'utf8' });
20
+ const v = JSON.parse(json).sim_volume;
21
+ if (typeof v === 'number' && v >= 0)
22
+ return Math.min(1, v / 100);
23
+ }
24
+ catch { /* plist missing / not yet created → full volume */ }
25
+ return 1;
26
+ }
27
+ // Wire format from the audiotap-helper: length-prefixed PCM frames — [u32 BE len][PCM bytes], where
28
+ // PCM is normalized S16LE / 44100 / Stereo. Mirrors the video helper's length-prefix framing
29
+ // (parseStreamFrames); the source is a localhost TCP socket the helper connects to.
30
+ export function parseAudioFrames(buf) {
31
+ const frames = [];
32
+ while (buf.length >= 4) {
33
+ const len = buf.readUInt32BE(0);
34
+ if (buf.length < 4 + len)
35
+ break;
36
+ frames.push(buf.subarray(4, 4 + len));
37
+ buf = buf.subarray(4 + len);
38
+ }
39
+ return { frames, rest: buf };
40
+ }
41
+ // Apply a 0–1 gain to interleaved S16LE PCM in place. The process tap captures audio before the
42
+ // simulator's own volume is applied, so the agent multiplies sim_volume back in. Clamps to S16 range.
43
+ export function applyGain(buf, gain) {
44
+ for (let i = 0; i + 1 < buf.length; i += 2) {
45
+ const s = Math.round(buf.readInt16LE(i) * gain);
46
+ buf.writeInt16LE(s > 32767 ? 32767 : s < -32768 ? -32768 : s, i);
47
+ }
48
+ }
49
+ /**
50
+ * Per-session loopback server the audiotap-helper connects back to. The helper process-taps the
51
+ * simulator app's audio on the host (no device routing, no injection) and streams length-prefixed
52
+ * frames here.
53
+ *
54
+ * Transport is 127.0.0.1 TCP: the OS assigns an ephemeral port (per-session isolation) which we hand
55
+ * to the helper as a launch arg. The helper reconnects per launch; the server outlives reconnects.
56
+ */
57
+ export class AudioCaptureStreamer {
58
+ server = null;
59
+ controller = null;
60
+ buf = Buffer.alloc(0);
61
+ port = 0;
62
+ activeSock = null;
63
+ pendingPids = null;
64
+ /** Binds 127.0.0.1:<ephemeral> and resolves the assigned port (pass it to the dylib). */
65
+ listen() {
66
+ return new Promise((resolve, reject) => {
67
+ const server = net.createServer((sock) => this.onConnection(sock));
68
+ server.once('error', reject);
69
+ server.listen(0, '127.0.0.1', () => {
70
+ const addr = server.address();
71
+ this.port = typeof addr === 'object' && addr ? addr.port : 0;
72
+ this.server = server;
73
+ resolve(this.port);
74
+ });
75
+ });
76
+ }
77
+ onConnection(sock) {
78
+ // Drop a stale helper's socket so two overlapping instances can't interleave frames into buf.
79
+ if (this.activeSock && this.activeSock !== sock)
80
+ this.activeSock.destroy();
81
+ this.buf = Buffer.alloc(0); // fresh per connection (the app relaunch reconnects)
82
+ this.activeSock = sock;
83
+ if (this.pendingPids) {
84
+ this.writePids(sock, this.pendingPids);
85
+ this.pendingPids = null;
86
+ }
87
+ sock.on('data', (chunk) => {
88
+ this.buf = this.buf.length ? Buffer.concat([this.buf, chunk]) : chunk;
89
+ const { frames, rest } = parseAudioFrames(this.buf);
90
+ this.buf = rest;
91
+ // timestamp: stamp on arrival (epoch µs). Loose A/V sync is acceptable for manual QA.
92
+ for (const payload of frames)
93
+ this.controller?.enqueue({ payload, timestamp: Date.now() * 1000 });
94
+ });
95
+ sock.on('close', () => { if (this.activeSock === sock)
96
+ this.activeSock = null; });
97
+ sock.on('error', () => { });
98
+ }
99
+ /**
100
+ * Push a new tap set to the running helper over the same loopback socket (the agent→helper
101
+ * direction). Wire: [u32 BE count][pid:u32 BE × count] — mirrors the helper's read loop. The helper
102
+ * tears down the old tap and rebuilds it for these pids, keeping the socket and frame stream alive.
103
+ * If the helper hasn't connected yet, the latest set is buffered and flushed on connect.
104
+ */
105
+ updatePids(pids) {
106
+ if (this.activeSock)
107
+ this.writePids(this.activeSock, pids);
108
+ else
109
+ this.pendingPids = pids;
110
+ }
111
+ writePids(sock, pids) {
112
+ const buf = Buffer.allocUnsafe(4 + pids.length * 4);
113
+ buf.writeUInt32BE(pids.length, 0);
114
+ pids.forEach((p, i) => buf.writeUInt32BE(p >>> 0, 4 + i * 4));
115
+ sock.write(buf);
116
+ }
117
+ /** The frame stream. Call after listen() and before the app connects. */
118
+ frames() {
119
+ return new ReadableStream({
120
+ start: (c) => { this.controller = c; },
121
+ cancel: () => this.stop(),
122
+ });
123
+ }
124
+ stop() {
125
+ try {
126
+ this.controller?.close();
127
+ }
128
+ catch { /* already closed/errored — fine */ } // end the frame stream so pumpAudio's reader unblocks
129
+ this.controller = null;
130
+ this.pendingPids = null;
131
+ if (this.activeSock) {
132
+ this.activeSock.destroy();
133
+ this.activeSock = null;
134
+ }
135
+ if (this.server) {
136
+ this.server.close();
137
+ this.server = null;
138
+ logger.debug('audio capture server closed');
139
+ }
140
+ }
141
+ }
142
+ //# sourceMappingURL=AudioCaptureStreamer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AudioCaptureStreamer.js","sourceRoot":"","sources":["../src/AudioCaptureStreamer.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,11 @@ export declare class IOSAgent implements DeviceAgent {
58
58
  shutdown(deviceId: string): Promise<void>;
59
59
  installApp(appPath: string): Promise<void>;
60
60
  launchApp(bundleId: string): Promise<void>;
61
+ private audioEnabled;
62
+ private startAudioCapture;
63
+ private launchWholeSimTap;
64
+ private refreshAudioPids;
65
+ private pumpAudio;
61
66
  screenshot(): Promise<Buffer>;
62
67
  stream(): ReadableStream<Buffer>;
63
68
  touchStart(x: number, y: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"IOSAgent.d.ts","sourceRoot":"","sources":["../src/IOSAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IOSAgent.d.ts","sourceRoot":"","sources":["../src/IOSAgent.ts"],"names":[],"mappings":"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"}
package/dist/IOSAgent.js CHANGED
@@ -7,13 +7,20 @@ import { spawnSync } from 'child_process';
7
7
  import { WebSocket } from 'ws';
8
8
  import { createLogger, PlatformError, ValidationError } from '@tapflowio/agent-core';
9
9
  const logger = createLogger('ios-agent');
10
- import { createResourceSampler, registerStreamWs, disableNagle, createKeyframeAwareSender, pickMaxSize, createRateLimitedDropWarn, createThroughputSampler, createSleepBlocker, getMachineId, isLocalhostWss, DEFAULT_BACKPRESSURE_BYTES, writeEnvelopeHeader, rewriteLowLatencySpsInFrame, CODEC_JPEG, CODEC_H264, } from '@tapflowio/agent-core/utils';
10
+ import { createResourceSampler, registerStreamWs, disableNagle, createKeyframeAwareSender, pickMaxSize, createRateLimitedDropWarn, createThroughputSampler, createSleepBlocker, getMachineId, isLocalhostWss, DEFAULT_BACKPRESSURE_BYTES, writeEnvelopeHeader, rewriteLowLatencySpsInFrame, CODEC_JPEG, CODEC_H264, CODEC_AUDIO, sendAudioYieldingToVideo, } from '@tapflowio/agent-core/utils';
11
11
  import { SimctlWrapper, isDeviceMissingError } from './SimctlWrapper.js';
12
12
  import { ScreenCaptureStreamer } from './ScreenCaptureStreamer.js';
13
+ import { AudioCaptureStreamer, readSimVolume, applyGain } from './AudioCaptureStreamer.js';
14
+ import { ensureHelperApp, launchAudioHelper, isAudioSupported } from '@tapflowio/audiotap-helper';
15
+ import { enumerateSimPids } from './SimProcessTree.js';
13
16
  import { MjpegStreamer } from './MjpegStreamer.js';
14
17
  import { TouchHelper } from './TouchHelper.js';
15
18
  import { DeviceChromeLoader } from './DeviceChromeLoader.js';
16
19
  import { KEY_CODE_MAP } from './KeyCodeMap.js';
20
+ // whole-sim audio: how often to re-enumerate the simulator's process tree for new audio-producing
21
+ // processes (launched apps, WebKit WebContent). Short enough that a tab's audio starts promptly,
22
+ // long enough to keep `ps` overhead negligible.
23
+ const AUDIO_POLL_MS = 1500;
17
24
  export class IOSAgent {
18
25
  simctl;
19
26
  fps;
@@ -159,6 +166,11 @@ export class IOSAgent {
159
166
  acceptH264: false,
160
167
  secureContext: false,
161
168
  external: false,
169
+ audioStreamer: null,
170
+ audioPort: 0,
171
+ audioPoll: null,
172
+ audioPids: null,
173
+ audioVolume: 1,
162
174
  });
163
175
  });
164
176
  }
@@ -234,6 +246,14 @@ export class IOSAgent {
234
246
  void state.streamReader?.cancel();
235
247
  state.streamReader = null;
236
248
  state.captureStreamer = null; // reader.cancel() kills the helper proc; drop the ref so a stale requestKeyframe() no-ops
249
+ if (state.audioPoll) {
250
+ clearInterval(state.audioPoll);
251
+ state.audioPoll = null;
252
+ }
253
+ state.audioStreamer?.stop(); // closes the loopback server → the helper sees EOF and exits
254
+ state.audioStreamer = null;
255
+ state.audioPort = 0;
256
+ state.audioPids = null;
237
257
  state.touchHelper?.stop();
238
258
  state.touchHelper = null;
239
259
  state.streamWs?.close();
@@ -399,6 +419,10 @@ export class IOSAgent {
399
419
  return;
400
420
  }
401
421
  this.startBinaryStream(state, streamWs);
422
+ // Opt-in audio output: stand up the loopback server and start the whole-sim tap now. Best-effort
423
+ // — never blocks/affects the video path.
424
+ if (this.audioEnabled())
425
+ this.startAudioCapture(state, streamWs, deviceId);
402
426
  this.ws?.send(JSON.stringify({ type: 'device:ready', sessionId, payload: { deviceId } }));
403
427
  // Sync AppleKeyboards after ready — fire-and-forget so streaming isn't delayed.
404
428
  // hw=Automatic lets the hardware layout follow the active input source on LANG1/CapsLock.
@@ -485,7 +509,11 @@ export class IOSAgent {
485
509
  const { bundleId } = msg.payload;
486
510
  const sessionId = msg.sessionId;
487
511
  this.simctl.launchApp(bundleId)
488
- .then(() => this.ws?.send(JSON.stringify({ type: 'app:launch-done', sessionId })))
512
+ .then(() => {
513
+ // Audio: the whole-sim tap's poll picks up the launched app process within one interval;
514
+ // no per-launch helper needed.
515
+ this.ws?.send(JSON.stringify({ type: 'app:launch-done', sessionId }));
516
+ })
489
517
  .catch((e) => {
490
518
  const message = e instanceof Error ? e.message : String(e);
491
519
  this.ws?.send(JSON.stringify({ type: 'app:launch-error', sessionId, message }));
@@ -682,7 +710,98 @@ export class IOSAgent {
682
710
  boot(deviceId) { return this.simctl.boot(deviceId); }
683
711
  shutdown(deviceId) { return this.simctl.shutdown(deviceId); }
684
712
  installApp(appPath) { return this.simctl.installApp(appPath); }
685
- launchApp(bundleId) { return this.simctl.launchApp(bundleId); }
713
+ async launchApp(bundleId) { await this.simctl.launchApp(bundleId); }
714
+ // ── Audio output (opt-in, macOS 14.2+ Core Audio process taps) ───────────────────────────────
715
+ // Simulator apps are host processes, so a process tap on the launched app's PID captures its audio
716
+ // with no device routing, no injection, and no host-output hijack. The capture runs in a separate
717
+ // signed .app (audiotap-helper) launched via LaunchServices so it holds its own audio-recording TCC
718
+ // grant; it streams PCM back over loopback TCP. See AudioCaptureStreamer.
719
+ // Audio output is ON by default (macOS 14.2+); opt out with TAPFLOW_AUDIO=off. The tap is .muted, so
720
+ // the sim's audio goes only to the browser and the host (agent Mac) stays silent. The grant is
721
+ // primed at `tapflow agent start`; see contributing/simulator-audio.md.
722
+ audioEnabled() {
723
+ return process.env.TAPFLOW_AUDIO !== 'off' && isAudioSupported();
724
+ }
725
+ // Stand up the per-session loopback server the audiotap-helper streams to, pump its frames to the
726
+ // relay, and start the whole-sim tap: launch the helper for the simulator's current process tree,
727
+ // then poll for new processes (apps, WebKit WebContent) and push deltas over the same socket.
728
+ startAudioCapture(state, streamWs, udid) {
729
+ const seq = state.bootSeq;
730
+ const streamer = new AudioCaptureStreamer();
731
+ streamer.listen()
732
+ .then((port) => {
733
+ // A reboot/shutdown/disconnect may have superseded this boot while listen() was binding —
734
+ // discard so we don't leave an orphan helper/poll/server behind the current lifecycle.
735
+ if (seq !== state.bootSeq || streamWs.readyState !== WebSocket.OPEN) {
736
+ streamer.stop();
737
+ return;
738
+ }
739
+ state.audioStreamer = streamer;
740
+ state.audioPort = port;
741
+ state.audioVolume = readSimVolume(udid);
742
+ void this.pumpAudio(streamWs, streamer.frames(), state);
743
+ this.launchWholeSimTap(state, udid);
744
+ state.audioPoll = setInterval(() => {
745
+ this.refreshAudioPids(state, udid);
746
+ state.audioVolume = readSimVolume(udid); // track live sim-volume changes
747
+ }, AUDIO_POLL_MS);
748
+ })
749
+ .catch((e) => logger.warn(`audio capture server failed to start: ${e instanceof Error ? e.message : String(e)}`));
750
+ }
751
+ // Launch the tap helper for the simulator's whole process tree. Swallows errors — audio must never
752
+ // break the launch/video path (e.g. helper build fails, or the user hasn't granted the audio
753
+ // permission). The helper holds the socket open; refreshAudioPids() pushes later updates to it.
754
+ launchWholeSimTap(state, udid) {
755
+ const pids = enumerateSimPids(udid);
756
+ if (!pids.length) {
757
+ logger.warn('no simulator processes to tap (audio idle until first poll)');
758
+ return;
759
+ }
760
+ state.audioPids = new Set(pids);
761
+ try {
762
+ launchAudioHelper(ensureHelperApp(), state.audioPort, pids);
763
+ }
764
+ catch (e) {
765
+ logger.warn(`audiotap-helper launch failed (audio disabled): ${e instanceof Error ? e.message : String(e)}`);
766
+ }
767
+ }
768
+ // Re-enumerate the sim's process tree and, only when a NEW process appeared (a launched app or a
769
+ // freshly spawned WebKit WebContent), push the updated set so the helper rebuilds its tap. Dead pids
770
+ // need no rebuild — they resolve to no audio object, so the helper just stops mixing them; we still
771
+ // refresh the baseline so a later reappearance is detected. Rebuilding only on additions keeps
772
+ // short-lived daemon churn from causing constant tap teardown (audio glitches).
773
+ refreshAudioPids(state, udid) {
774
+ if (!state.audioStreamer)
775
+ return;
776
+ const pids = enumerateSimPids(udid);
777
+ if (!pids.length)
778
+ return;
779
+ const prev = state.audioPids;
780
+ const hasNew = !prev || pids.some((p) => !prev.has(p));
781
+ state.audioPids = new Set(pids);
782
+ if (hasNew)
783
+ state.audioStreamer.updatePids(pids);
784
+ }
785
+ // Forward captured PCM to the relay on the shared stream socket via the yielding sender (audio must
786
+ // never inflate the socket buffer enough to trip video's backpressure). Mirrors android-agent.
787
+ async pumpAudio(streamWs, frames, state) {
788
+ const warnDrop = createRateLimitedDropWarn(logger, 'ios audio');
789
+ const reader = frames.getReader();
790
+ try {
791
+ for (;;) {
792
+ const { value, done } = await reader.read();
793
+ if (done || streamWs.readyState !== WebSocket.OPEN)
794
+ break;
795
+ if (state.audioVolume < 0.999)
796
+ applyGain(value.payload, state.audioVolume); // reflect sim volume (tap is pre-volume)
797
+ const frame = writeEnvelopeHeader(value.payload, Date.now(), { codec: CODEC_AUDIO });
798
+ sendAudioYieldingToVideo(streamWs, frame, warnDrop);
799
+ }
800
+ }
801
+ catch {
802
+ // stream cancelled or ws closed — expected on teardown/restart
803
+ }
804
+ }
686
805
  screenshot() { return this.simctl.screenshot(); }
687
806
  stream() {
688
807
  const first = this.deviceStates.values().next().value;
@@ -1 +1 @@
1
- {"version":3,"file":"IOSAgent.js","sourceRoot":"","sources":["../src/IOSAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IOSAgent.js","sourceRoot":"","sources":["../src/IOSAgent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function enumerateSimPids(udid: string, psOutput?: string): number[];
2
+ //# sourceMappingURL=SimProcessTree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimProcessTree.d.ts","sourceRoot":"","sources":["../src/SimProcessTree.ts"],"names":[],"mappings":"AAOA,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CA2B1E"}
@@ -0,0 +1,38 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ // Enumerate every host PID belonging to a booted simulator. A simulator's processes are all
3
+ // descendants of one `launchd_sim` whose command line embeds the device UDID (e.g.
4
+ // .../Devices/<UDID>/data/var/run/launchd_bootstrap.plist). We find that root and walk its tree —
5
+ // those are the processes a whole-sim audio tap must cover (the app + WebKit WebContent + system
6
+ // sounds), which a single-app tap misses. `psOutput` is injectable for tests.
7
+ export function enumerateSimPids(udid, psOutput) {
8
+ const out = psOutput ?? execFileSync('ps', ['-axo', 'pid=,ppid=,command='], { maxBuffer: 16 * 1024 * 1024 }).toString();
9
+ const children = new Map();
10
+ let root = 0;
11
+ for (const line of out.split('\n')) {
12
+ const m = line.match(/^\s*(\d+)\s+(\d+)\s+(.*)$/);
13
+ if (!m)
14
+ continue;
15
+ const pid = Number(m[1]);
16
+ const ppid = Number(m[2]);
17
+ const command = m[3];
18
+ if (!children.has(ppid))
19
+ children.set(ppid, []);
20
+ children.get(ppid).push(pid);
21
+ if (command.includes('launchd_sim') && command.includes(udid))
22
+ root = pid;
23
+ }
24
+ if (!root)
25
+ return [];
26
+ // walk descendants (the root launchd_sim itself never emits audio, so it's excluded)
27
+ const pids = [];
28
+ const stack = [root];
29
+ while (stack.length) {
30
+ const p = stack.pop();
31
+ for (const c of children.get(p) ?? []) {
32
+ pids.push(c);
33
+ stack.push(c);
34
+ }
35
+ }
36
+ return pids;
37
+ }
38
+ //# sourceMappingURL=SimProcessTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimProcessTree.js","sourceRoot":"","sources":["../src/SimProcessTree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,4FAA4F;AAC5F,mFAAmF;AACnF,kGAAkG;AAClG,iGAAiG;AACjG,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,QAAiB;IAC9D,MAAM,GAAG,GAAG,QAAQ,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;IACvH,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAA;IAC5C,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAA;QACjD,IAAI,CAAC,CAAC;YAAE,SAAQ;QAChB,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACpB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAC/C,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7B,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,IAAI,GAAG,GAAG,CAAA;IAC3E,CAAC;IACD,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IAEpB,qFAAqF;IACrF,MAAM,IAAI,GAAa,EAAE,CAAA;IACzB,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAA;IACpB,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,EAAG,CAAA;QACtB,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACZ,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -11,7 +11,7 @@ export declare class SimctlWrapper {
11
11
  erase(deviceId: string): Promise<void>;
12
12
  uninstallApp(bundleId: string): Promise<void>;
13
13
  installApp(appPath: string): Promise<void>;
14
- launchApp(bundleId: string): Promise<void>;
14
+ launchApp(bundleId: string): Promise<number | null>;
15
15
  openUrl(deviceId: string, url: string): Promise<void>;
16
16
  screenshot(format?: 'png' | 'jpeg'): Promise<Buffer>;
17
17
  syncKeyboardsFromLanguages(udid: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"SimctlWrapper.d.ts","sourceRoot":"","sources":["../src/SimctlWrapper.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AA+B9D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAK1D;AAED,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;gBAEpB,MAAM,GAAE,YAA4B;IAE3D,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAuBhC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,UAAU,CAAC,MAAM,GAAE,KAAK,GAAG,MAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAe3D,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BvD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,GAAG,eAAe,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxH,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,kBAAkB,IAAI,IAAI;CAG3B"}
1
+ {"version":3,"file":"SimctlWrapper.d.ts","sourceRoot":"","sources":["../src/SimctlWrapper.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AA+B9D,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAK1D;AAED,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA6B;gBAEpB,MAAM,GAAE,YAA4B;IAE3D,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAuBhC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1C,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMnD,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,UAAU,CAAC,MAAM,GAAE,KAAK,GAAG,MAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAe3D,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BvD,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,GAAG,eAAe,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxH,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,kBAAkB,IAAI,IAAI;CAG3B"}
@@ -107,8 +107,12 @@ export class SimctlWrapper {
107
107
  async installApp(appPath) {
108
108
  await this.runner.exec('install', 'booted', appPath);
109
109
  }
110
+ // Returns the launched app's host PID (`simctl launch` prints "<bundleId>: <pid>"), or null if it
111
+ // can't be parsed. The audiotap-helper taps this PID; non-audio callers ignore it.
110
112
  async launchApp(bundleId) {
111
- await this.runner.exec('launch', 'booted', bundleId);
113
+ const out = await this.runner.exec('launch', 'booted', bundleId);
114
+ const m = out.match(/:\s*(\d+)\s*$/);
115
+ return m ? Number(m[1]) : null;
112
116
  }
113
117
  async openUrl(deviceId, url) {
114
118
  await this.runner.exec('openurl', deviceId, url);
@@ -1 +1 @@
1
- {"version":3,"file":"SimctlWrapper.js","sourceRoot":"","sources":["../src/SimctlWrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SimctlWrapper.js","sourceRoot":"","sources":["../src/SimctlWrapper.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,4 +3,5 @@ export type { IOSAgentOptions } from './IOSAgent.js';
3
3
  export { SimctlWrapper } from './SimctlWrapper.js';
4
4
  export { MjpegStreamer } from './MjpegStreamer.js';
5
5
  export { KEY_CODE_MAP, MODIFIER_BITS } from './KeyCodeMap.js';
6
+ export { requestAudioPermission, isAudioSupported } from '@tapflowio/audiotap-helper';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAG7D,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA"}
package/dist/index.js CHANGED
@@ -4,6 +4,9 @@ export { IOSAgent } from './IOSAgent.js';
4
4
  export { SimctlWrapper } from './SimctlWrapper.js';
5
5
  export { MjpegStreamer } from './MjpegStreamer.js';
6
6
  export { KEY_CODE_MAP, MODIFIER_BITS } from './KeyCodeMap.js';
7
+ // Audio-capture TCC priming for `tapflow setup ios` (grant up front, not at first boot).
8
+ // Re-exported from the shared helper package so existing importers (cli) keep working.
9
+ export { requestAudioPermission, isAudioSupported } from '@tapflowio/audiotap-helper';
7
10
  AgentRegistry.register('ios', IOSAgent, {
8
11
  canRun: () => process.platform === 'darwin',
9
12
  connect: async (relayUrl, opts) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE7D,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE;IACtC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ;IAC3C,OAAO,EAAE,KAAK,EAAE,QAAgB,EAAE,IAAuB,EAAE,EAAE;QAC3D,6EAA6E;QAC7E,gFAAgF;QAChF,uCAAuC;QACvC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACpF,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC7B,OAAO,KAAK,CAAA;IACd,CAAC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAErD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC7D,yFAAyF;AACzF,uFAAuF;AACvF,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAErF,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE;IACtC,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ;IAC3C,OAAO,EAAE,KAAK,EAAE,QAAgB,EAAE,IAAuB,EAAE,EAAE;QAC3D,6EAA6E;QAC7E,gFAAgF;QAChF,uCAAuC;QACvC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;QACpF,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC7B,OAAO,KAAK,CAAA;IACd,CAAC;CACF,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tapflowio/ios-agent",
3
- "version": "0.9.2",
3
+ "version": "0.11.0",
4
4
  "description": "iOS simulator agent for tapflow — xcrun simctl control and screen streaming",
5
5
  "keywords": [
6
6
  "tapflow",
@@ -28,7 +28,7 @@
28
28
  "types": "dist/index.d.ts",
29
29
  "exports": {
30
30
  ".": {
31
- "types": "./src/index.ts",
31
+ "types": "./dist/index.d.ts",
32
32
  "source": "./src/index.ts",
33
33
  "tsx": "./src/index.ts",
34
34
  "import": "./dist/index.js",
@@ -49,19 +49,20 @@
49
49
  },
50
50
  "dependencies": {
51
51
  "ws": "^8.21.0",
52
- "@tapflowio/agent-core": "0.9.2"
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.9.2"
60
+ "@tapflowio/relay": "0.11.0"
60
61
  },
61
62
  "scripts": {
62
63
  "postinstall": "node -e \"if (process.platform === 'darwin') { require('fs').readdirSync('bin').forEach(f => require('fs').chmodSync('bin/' + f, 0o755)) }\"",
63
- "build": "tsc",
64
- "typecheck": "tsc --noEmit",
64
+ "build": "tsc -b",
65
+ "typecheck": "tsc -b",
65
66
  "test": "vitest run",
66
67
  "lint": "eslint src"
67
68
  }