@tapflowio/ios-agent 0.16.0 → 0.17.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.
@@ -50,6 +50,13 @@ export declare class IOSAgent implements DeviceAgent {
50
50
  private handleDeviceBoot;
51
51
  private bootWithZombieRecovery;
52
52
  private handleDeviceShutdown;
53
+ private ensureTouchHelper;
54
+ private readonly clipboardQueue;
55
+ private readonly parkedSentinels;
56
+ private markSentinel;
57
+ private sentinelParked;
58
+ private ackInput;
59
+ private isBooted;
53
60
  private handleRelayMessage;
54
61
  private readUITree;
55
62
  /**
@@ -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,6 +7,8 @@ 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
+ // Typed so a typo cannot ship silently — the viewer gates the whole clipboard bridge on this.
11
+ const AGENT_CAPABILITIES = ['clipboard'];
10
12
  // Cross-platform button name → iOS device-chrome button name. Chrome uses
11
13
  // hyphens and "power" (not "lock"); MCP's vocabulary uses underscores. Names
12
14
  // not listed here (incl. the raw chrome names the dashboard sends) pass through.
@@ -16,7 +18,8 @@ export const IOS_BUTTON_ALIASES = {
16
18
  volume_down: 'volume-down',
17
19
  };
18
20
  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';
19
- import { SimctlWrapper, isDeviceMissingError } from './SimctlWrapper.js';
21
+ import { SimctlWrapper, isDeviceMissingError, ClipboardTooLargeError } from './SimctlWrapper.js';
22
+ import { MAX_CLIPBOARD_BYTES, clipboardByteLength, CLIPBOARD_SENTINEL_PREFIX as SENTINEL_PREFIX, isClipboardSentinel as isSentinel, CLIPBOARD_COPY_DEADLINE_MS, CLIPBOARD_WRITE_DEADLINE_MS, CLIPBOARD_RESTORE_DEADLINE_MS, CLIPBOARD_POLL_MS, createKeyedSerialQueue, } from '@tapflowio/agent-core';
20
23
  import { ScreenCaptureStreamer } from './ScreenCaptureStreamer.js';
21
24
  import { AudioCaptureStreamer, readSimVolume, applyGain } from './AudioCaptureStreamer.js';
22
25
  import { ensureHelperApp, launchAudioHelper, isAudioSupported } from '@tapflowio/audiotap-helper';
@@ -103,6 +106,9 @@ export class IOSAgent {
103
106
  ws.send(JSON.stringify({
104
107
  type: 'agent:register',
105
108
  platform: 'ios',
109
+ // Lets a viewer tell a clipboard-capable agent from one that predates the
110
+ // feature, instead of inferring it from silence. See agent-core AgentCapability.
111
+ capabilities: AGENT_CAPABILITIES,
106
112
  agentId: getMachineId(),
107
113
  agentName: os.hostname(),
108
114
  devices: devices.map((d) => ({
@@ -172,6 +178,7 @@ export class IOSAgent {
172
178
  sessionId,
173
179
  deviceId,
174
180
  touchHelper: null,
181
+ booted: false,
175
182
  streamWs: null,
176
183
  streamReader: null,
177
184
  captureStreamer: null,
@@ -273,6 +280,7 @@ export class IOSAgent {
273
280
  state.audioPids = null;
274
281
  state.touchHelper?.stop();
275
282
  state.touchHelper = null;
283
+ state.booted = false;
276
284
  state.streamWs?.close();
277
285
  state.streamWs = null;
278
286
  }
@@ -405,6 +413,7 @@ export class IOSAgent {
405
413
  state.captureStreamer = null; // reader.cancel() kills the helper proc; drop the ref so a stale requestKeyframe() no-ops
406
414
  state.touchHelper?.stop();
407
415
  state.touchHelper = null;
416
+ state.booted = false;
408
417
  state.streamWs?.close();
409
418
  state.streamWs = null;
410
419
  this.ws.send(JSON.stringify({ type: 'device:booting', sessionId }));
@@ -440,6 +449,7 @@ export class IOSAgent {
440
449
  // — never blocks/affects the video path.
441
450
  if (this.audioEnabled())
442
451
  this.startAudioCapture(state, streamWs, deviceId);
452
+ state.booted = true;
443
453
  this.ws?.send(JSON.stringify({ type: 'device:ready', sessionId, payload: { deviceId } }));
444
454
  // Sync AppleKeyboards after ready — fire-and-forget so streaming isn't delayed.
445
455
  // hw=Automatic lets the hardware layout follow the active input source on LANG1/CapsLock.
@@ -480,6 +490,7 @@ export class IOSAgent {
480
490
  state.captureStreamer = null; // reader.cancel() kills the helper proc; drop the ref so a stale requestKeyframe() no-ops
481
491
  state.touchHelper?.stop();
482
492
  state.touchHelper = null;
493
+ state.booted = false;
483
494
  state.streamWs?.close();
484
495
  state.streamWs = null;
485
496
  this.lastBundleIds.delete(deviceId);
@@ -499,6 +510,51 @@ export class IOSAgent {
499
510
  logger.error('shutdown failed:', message);
500
511
  }
501
512
  }
513
+ // Lazily set up the touch channel: a reconnect re-issues the session with touchHelper=null while the sim stays booted, so input self-heals without a fresh device:boot. Sync so a tap's start+end stay paired (async would drop touchEnd → stuck finger).
514
+ ensureTouchHelper(state) {
515
+ if (state.touchHelper)
516
+ return;
517
+ state.touchHelper = new TouchHelper(state.deviceId);
518
+ state.touchHelper.start();
519
+ }
520
+ // Clipboard work parks a sentinel on the device while it waits, so two operations on the same
521
+ // device must not interleave — each would read the other's marker instead of the real
522
+ // clipboard. Keyed by device, not session: several sessions (and MCP) can address one device.
523
+ clipboardQueue = createKeyedSerialQueue();
524
+ // Device-scoped, not operation-scoped. Several sessions (and MCP) can address one simulator,
525
+ // so an operation that fails before parking anything may still be answering while ANOTHER
526
+ // holds a marker down. The viewer decides from this whether pressing the plain chord is safe,
527
+ // and that chord travels as `input:key` — outside this queue — so the answer has to describe
528
+ // the device rather than the caller.
529
+ parkedSentinels = new Map();
530
+ markSentinel(deviceId, delta) {
531
+ const n = (this.parkedSentinels.get(deviceId) ?? 0) + delta;
532
+ if (n > 0)
533
+ this.parkedSentinels.set(deviceId, n);
534
+ else
535
+ this.parkedSentinels.delete(deviceId);
536
+ }
537
+ sentinelParked(deviceId) {
538
+ return (this.parkedSentinels.get(deviceId) ?? 0) > 0;
539
+ }
540
+ // Ack a terminal input: input:done = dispatched to a booted device (not a landing guarantee — HID is fire-and-forget); input:error = no live channel / not booted. Off the sync inject path, so start/end pairing is unaffected.
541
+ async ackInput(state, dispatched) {
542
+ const booted = dispatched && (state.booted || (await this.isBooted(state.deviceId)));
543
+ if (booted)
544
+ state.booted = true; // cache the post-reconnect verify so later inputs skip simctl
545
+ this.ws?.send(JSON.stringify(booted
546
+ ? { type: 'input:done', sessionId: state.sessionId }
547
+ : { type: 'input:error', sessionId: state.sessionId, message: dispatched ? 'device not booted' : 'input channel not ready' }));
548
+ }
549
+ async isBooted(deviceId) {
550
+ try {
551
+ const devices = await this.simctl.listDevices();
552
+ return devices.find((d) => d.id === deviceId)?.status === 'booted';
553
+ }
554
+ catch {
555
+ return false;
556
+ }
557
+ }
502
558
  handleRelayMessage(msg) {
503
559
  switch (msg.type) {
504
560
  case 'device:boot': {
@@ -547,12 +603,11 @@ export class IOSAgent {
547
603
  }
548
604
  case 'input:touch:start': {
549
605
  const state = this.deviceStates.get(msg.sessionId);
550
- if (!state?.touchHelper) {
551
- logger.error('touch:start — touchHelper not ready');
606
+ if (!state)
552
607
  break;
553
- }
608
+ this.ensureTouchHelper(state);
554
609
  const { x, y } = msg.payload;
555
- state.touchHelper.touchStart(x, y);
610
+ state.touchHelper?.touchStart(x, y);
556
611
  break;
557
612
  }
558
613
  case 'input:touch:move': {
@@ -565,15 +620,19 @@ export class IOSAgent {
565
620
  }
566
621
  case 'input:touch:end': {
567
622
  const state = this.deviceStates.get(msg.sessionId);
568
- state?.touchHelper?.touchEnd();
623
+ if (!state)
624
+ break;
625
+ state.touchHelper?.touchEnd();
626
+ void this.ackInput(state, state.touchHelper !== null); // terminal of a tap/swipe → ack the gesture
569
627
  break;
570
628
  }
571
629
  case 'input:pinch:start': {
572
630
  const state = this.deviceStates.get(msg.sessionId);
573
- if (!state?.touchHelper)
631
+ if (!state)
574
632
  break;
633
+ this.ensureTouchHelper(state);
575
634
  const { f0, f1 } = msg.payload;
576
- state.touchHelper.pinchStart(f0.x, f0.y, f1.x, f1.y);
635
+ state.touchHelper?.pinchStart(f0.x, f0.y, f1.x, f1.y);
577
636
  break;
578
637
  }
579
638
  case 'input:pinch:move': {
@@ -586,9 +645,10 @@ export class IOSAgent {
586
645
  }
587
646
  case 'input:pinch:end': {
588
647
  const state = this.deviceStates.get(msg.sessionId);
589
- if (!state?.touchHelper)
648
+ if (!state)
590
649
  break;
591
- state.touchHelper.pinchEnd();
650
+ state.touchHelper?.pinchEnd();
651
+ void this.ackInput(state, state.touchHelper !== null);
592
652
  break;
593
653
  }
594
654
  case 'input:rotate': {
@@ -628,6 +688,8 @@ export class IOSAgent {
628
688
  case 'input:type': {
629
689
  const sessionId = msg.sessionId;
630
690
  const state = this.deviceStates.get(sessionId);
691
+ if (state)
692
+ this.ensureTouchHelper(state);
631
693
  const { text } = (msg.payload ?? {});
632
694
  if (!state?.touchHelper) {
633
695
  this.ws?.send(JSON.stringify({ type: 'input:type-error', sessionId, message: 'No booted device' }));
@@ -651,7 +713,9 @@ export class IOSAgent {
651
713
  };
652
714
  // Ack on completion so a following input step (e.g. pressKey Enter) is
653
715
  // only sent after the paste has actually landed.
654
- doType()
716
+ // Shares the clipboard queue: this writes the pasteboard, so running it alongside a
717
+ // clipboard:read would overwrite that read's sentinel and be returned as "copied".
718
+ this.clipboardQueue(state.deviceId, doType)
655
719
  .then(() => this.ws?.send(JSON.stringify({ type: 'input:type-done', sessionId })))
656
720
  .catch((e) => {
657
721
  const message = e instanceof Error ? e.message : String(e);
@@ -662,12 +726,15 @@ export class IOSAgent {
662
726
  }
663
727
  case 'input:key': {
664
728
  const state = this.deviceStates.get(msg.sessionId);
665
- if (!state?.touchHelper)
729
+ if (!state)
666
730
  break;
731
+ this.ensureTouchHelper(state);
667
732
  const { code, modifiers } = msg.payload;
668
733
  const usage = KEY_CODE_MAP[code];
669
- if (usage === undefined)
734
+ if (usage === undefined) {
735
+ this.ws?.send(JSON.stringify({ type: 'input:error', sessionId: msg.sessionId, message: `unknown key code: ${code}` }));
670
736
  break;
737
+ }
671
738
  if (state.softKeyboardVisible) {
672
739
  // Hide the SW keyboard first so iOS re-initialises the HW keyboard
673
740
  // context. Skipping this causes input-source desync (qks / ㅂㅏㄴ symptoms).
@@ -680,14 +747,16 @@ export class IOSAgent {
680
747
  });
681
748
  }
682
749
  else {
683
- state.touchHelper.sendKey(usage, modifiers ?? 0);
750
+ state.touchHelper?.sendKey(usage, modifiers ?? 0);
684
751
  }
752
+ void this.ackInput(state, state.touchHelper !== null);
685
753
  break;
686
754
  }
687
755
  case 'input:button': {
688
756
  const state = this.deviceStates.get(msg.sessionId);
689
- if (!state?.touchHelper)
757
+ if (!state)
690
758
  break;
759
+ this.ensureTouchHelper(state);
691
760
  const { name, phase } = msg.payload;
692
761
  // Map the cross-platform button vocabulary (used by MCP) onto this
693
762
  // device's actual chrome button names. Dashboard already sends the raw
@@ -697,19 +766,20 @@ export class IOSAgent {
697
766
  // Home has no HID down/up split — always a single legacy press. Send once on release
698
767
  // (or on a phase-less legacy message) so a down+up pair doesn't fire it twice.
699
768
  if (phase !== 'down')
700
- state.touchHelper.pressLegacyButton(0);
769
+ state.touchHelper?.pressLegacyButton(0);
701
770
  }
702
771
  else {
703
772
  const btn = state.loadedChrome?.buttons.find((b) => b.name === chromeName);
704
773
  if (btn && btn.usagePage > 0 && btn.usage > 0) {
705
774
  if (phase === 'down')
706
- state.touchHelper.pressButtonDown(btn.usagePage, btn.usage);
775
+ state.touchHelper?.pressButtonDown(btn.usagePage, btn.usage);
707
776
  else if (phase === 'up')
708
- state.touchHelper.pressButtonUp(btn.usagePage, btn.usage);
777
+ state.touchHelper?.pressButtonUp(btn.usagePage, btn.usage);
709
778
  else
710
- state.touchHelper.pressButton(btn.usagePage, btn.usage);
779
+ state.touchHelper?.pressButton(btn.usagePage, btn.usage);
711
780
  }
712
781
  }
782
+ void this.ackInput(state, state.touchHelper !== null);
713
783
  break;
714
784
  }
715
785
  case 'open-url': {
@@ -762,6 +832,194 @@ export class IOSAgent {
762
832
  });
763
833
  break;
764
834
  }
835
+ // Clipboard bridge. The chord is pressed HERE rather than by the viewer: the browser
836
+ // cannot know when the key actually lands (a visible software keyboard makes this path
837
+ // await hideSoftwareKeyboard first), and reading too early returns the PREVIOUS
838
+ // pasteboard — a stale value the user would never notice.
839
+ case 'clipboard:read': {
840
+ const { requestId } = msg;
841
+ const sessionId = msg.sessionId;
842
+ const state = this.deviceStates.get(sessionId);
843
+ if (!state) {
844
+ this.ws?.send(JSON.stringify({
845
+ type: 'clipboard:error', sessionId, requestId, message: 'No booted device',
846
+ payload: { sentinelParked: false },
847
+ }));
848
+ break;
849
+ }
850
+ const { press } = (msg.payload ?? {});
851
+ // Answering is separate from cleaning up. The restore below runs in a `finally`, which
852
+ // executes AFTER this — so the viewer hears back as soon as the outcome is known and
853
+ // does not wait out the restore window. The queue is still held until the restore
854
+ // finishes, which is what actually matters: the next operation must not see a sentinel.
855
+ const respond = (body) => this.ws?.send(JSON.stringify({ sessionId, requestId, ...body }));
856
+ const read = async () => {
857
+ if (!press) {
858
+ respond({ type: 'clipboard:data', payload: { text: await this.simctl.getPasteboard(state.deviceId) } });
859
+ return;
860
+ }
861
+ this.ensureTouchHelper(state);
862
+ if (!state.touchHelper)
863
+ throw new PlatformError('Cannot press copy — no input channel to the device');
864
+ if (state.softKeyboardVisible) {
865
+ state.softKeyboardVisible = false;
866
+ await this.simctl.hideSoftwareKeyboard(state.deviceId).catch(() => { });
867
+ }
868
+ // Overwrite the pasteboard with a value only we could have written, then press the
869
+ // chord and wait for it to change. Without this there is no way to tell "the app
870
+ // copied" from "the app has not copied yet" — a fixed delay guesses, and guessing
871
+ // wrong hands the PREVIOUS clipboard to the user with no error. The sentinel also
872
+ // covers re-copying the identical text, where a plain value-change watch never fires.
873
+ // Read the original first. If we cannot (a hung simctl, or a pasteboard past
874
+ // maxBuffer), do NOT continue: parking a sentinel we are unable to undo would
875
+ // destroy whatever the user had on the device clipboard.
876
+ const raw = await this.simctl.getPasteboard(state.deviceId);
877
+ // Never restore someone else's marker as if it were the user's text.
878
+ const before = isSentinel(raw) ? '' : raw;
879
+ const sentinel = `${SENTINEL_PREFIX}${randomUUID()}`;
880
+ let copied = null;
881
+ // Counted before the call: setPasteboard can reject after the device took the value,
882
+ // so anything from here until the restore has to be treated as parked.
883
+ this.markSentinel(state.deviceId, 1);
884
+ try {
885
+ // Inside the try: if this rejects *after* the device applied it, the restore below
886
+ // still runs. Outside, a leaked sentinel would sit on the device permanently.
887
+ await this.simctl.setPasteboard(state.deviceId, sentinel);
888
+ // `pbcopy` exiting means the write was accepted, not that the pasteboard shows it
889
+ // yet. Pressing before it does lets the first poll read the PRE-sentinel value,
890
+ // decide it is not a sentinel, and return it as "what the app copied" — the exact
891
+ // staleness this whole mechanism exists to prevent. Mirrors the Android read path.
892
+ const applied = Date.now() + CLIPBOARD_WRITE_DEADLINE_MS;
893
+ while ((await this.simctl.getPasteboard(state.deviceId)) !== sentinel) {
894
+ if (Date.now() >= applied)
895
+ throw new PlatformError('The device clipboard did not respond');
896
+ await new Promise((r) => setTimeout(r, CLIPBOARD_POLL_MS));
897
+ }
898
+ state.touchHelper.sendKey(KEY_CODE_MAP[press === 'cut' ? 'KeyX' : 'KeyC'], MODIFIER_BITS['MetaLeft']);
899
+ const deadline = Date.now() + CLIPBOARD_COPY_DEADLINE_MS;
900
+ do {
901
+ let now;
902
+ try {
903
+ now = await this.simctl.getPasteboard(state.deviceId);
904
+ }
905
+ catch (e) {
906
+ // ONLY the size ceiling means the app copied — we just cannot carry it — so the
907
+ // restore below must be skipped or it would overwrite the very text the user
908
+ // copied. Every other failure here (a hung or timed-out pbpaste) says nothing
909
+ // about the device, and skipping the restore for those left the sentinel parked
910
+ // for good: the user's clipboard destroyed, and a zero-width marker pasted into
911
+ // the app under test. Android reaches the same two states, by assigning `copied`
912
+ // before it throws for the over-sized case and not otherwise.
913
+ if (e instanceof ClipboardTooLargeError)
914
+ copied = '';
915
+ throw e;
916
+ }
917
+ // A sentinel is never a copy result — ours means "not yet", any other means a
918
+ // concurrent operation slipped in and its marker must not be handed to the user.
919
+ if (!isSentinel(now)) {
920
+ copied = now;
921
+ respond({ type: 'clipboard:data', payload: { text: now } });
922
+ return;
923
+ }
924
+ await new Promise((r) => setTimeout(r, CLIPBOARD_POLL_MS));
925
+ } while (Date.now() < deadline);
926
+ throw new PlatformError('The device did not copy anything — is something selected?');
927
+ }
928
+ catch (e) {
929
+ // Reply here rather than letting this propagate: a rejection would surface only
930
+ // after `finally` had finished restoring, putting that window inside the round trip.
931
+ respond({
932
+ type: 'clipboard:error', message: e instanceof Error ? e.message : String(e),
933
+ // A sentinel may be on the device: setPasteboard can reject after the device took
934
+ // it. The viewer must not press the chord — the restore would overwrite the copy.
935
+ payload: { sentinelParked: this.sentinelParked(state.deviceId) },
936
+ });
937
+ }
938
+ finally {
939
+ // Only restore when the copy never happened; otherwise this would overwrite the
940
+ // value we just captured. A leaked sentinel would be worse than the original bug.
941
+ // Wait for the restore to be visible, not merely accepted: releasing the queue early
942
+ // lets the next operation read the sentinel as "the original", which then becomes ''
943
+ // and wipes the user's device clipboard. Mirrors the Android read path.
944
+ if (copied === null) {
945
+ await this.simctl.setPasteboard(state.deviceId, before).catch(() => { });
946
+ const restored = Date.now() + CLIPBOARD_RESTORE_DEADLINE_MS;
947
+ while ((await this.simctl.getPasteboard(state.deviceId).catch(() => before)) !== before) {
948
+ if (Date.now() >= restored)
949
+ break; // best effort; the error is already going out
950
+ await new Promise((r) => setTimeout(r, CLIPBOARD_POLL_MS));
951
+ }
952
+ }
953
+ this.markSentinel(state.deviceId, -1);
954
+ }
955
+ };
956
+ // `read` answers for itself once the sentinel is in play. This catches only what can
957
+ // throw BEFORE that — the press-less branch, a missing input channel, and the failed
958
+ // read of the original — so nothing is parked and the viewer's chord fallback is safe.
959
+ this.clipboardQueue(state.deviceId, read).catch((e) => {
960
+ respond({
961
+ type: 'clipboard:error', message: e instanceof Error ? e.message : String(e),
962
+ payload: { sentinelParked: this.sentinelParked(state.deviceId) },
963
+ });
964
+ });
965
+ break;
966
+ }
967
+ case 'clipboard:write': {
968
+ const { requestId } = msg;
969
+ const sessionId = msg.sessionId;
970
+ const state = this.deviceStates.get(sessionId);
971
+ if (!state) {
972
+ this.ws?.send(JSON.stringify({
973
+ type: 'clipboard:error', sessionId, requestId, message: 'No booted device',
974
+ payload: { sentinelParked: false },
975
+ }));
976
+ break;
977
+ }
978
+ const { text, pasteAfter } = (msg.payload ?? {});
979
+ if (clipboardByteLength(text ?? '') > MAX_CLIPBOARD_BYTES) {
980
+ this.ws?.send(JSON.stringify({
981
+ type: 'clipboard:error', sessionId, requestId,
982
+ message: `Clipboard is too large (max ${Math.floor(MAX_CLIPBOARD_BYTES / 1024)} KB)`,
983
+ payload: { sentinelParked: this.sentinelParked(state.deviceId) },
984
+ }));
985
+ break;
986
+ }
987
+ const write = async () => {
988
+ const wanted = text ?? '';
989
+ await this.simctl.setPasteboard(state.deviceId, wanted);
990
+ if (!pasteAfter)
991
+ return;
992
+ this.ensureTouchHelper(state);
993
+ if (!state.touchHelper)
994
+ throw new PlatformError('Cannot press paste — no input channel to the device');
995
+ // Confirm the pasteboard really holds it before pressing paste; otherwise the device
996
+ // could paste whatever was there before. (On Android the same call is documented as
997
+ // asynchronous, so this is not iOS paranoia — it is the same failure on both sides.)
998
+ const deadline = Date.now() + CLIPBOARD_WRITE_DEADLINE_MS;
999
+ while ((await this.simctl.getPasteboard(state.deviceId).catch(() => null)) !== wanted) {
1000
+ if (Date.now() >= deadline)
1001
+ throw new PlatformError('The device clipboard did not accept the text');
1002
+ await new Promise((r) => setTimeout(r, CLIPBOARD_POLL_MS));
1003
+ }
1004
+ // Same guard as input:key — skipping it desyncs the hardware keyboard context.
1005
+ if (state.softKeyboardVisible) {
1006
+ state.softKeyboardVisible = false;
1007
+ await this.simctl.hideSoftwareKeyboard(state.deviceId).catch(() => { });
1008
+ }
1009
+ state.touchHelper.sendKey(KEY_CODE_MAP['KeyV'], MODIFIER_BITS['MetaLeft']);
1010
+ };
1011
+ // Ack only once the write (and the paste, when asked for) actually landed.
1012
+ this.clipboardQueue(state.deviceId, write)
1013
+ .then(() => this.ws?.send(JSON.stringify({ type: 'clipboard:write-done', sessionId, requestId })))
1014
+ .catch((e) => {
1015
+ const message = e instanceof Error ? e.message : String(e);
1016
+ this.ws?.send(JSON.stringify({
1017
+ type: 'clipboard:error', sessionId, requestId, message,
1018
+ payload: { sentinelParked: this.sentinelParked(state.deviceId) },
1019
+ }));
1020
+ });
1021
+ break;
1022
+ }
765
1023
  case 'ui:tree:request': {
766
1024
  const raw = msg;
767
1025
  const { requestId } = raw;
@@ -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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"}
@@ -1,6 +1,11 @@
1
+ import { PlatformError } from '@tapflowio/agent-core';
1
2
  import type { Device } from '@tapflowio/agent-core';
2
3
  import { type SimctlRunner } from './simctl.js';
3
4
  export declare function isDeviceMissingError(err: unknown): boolean;
5
+ /** The device clipboard held more than `MAX_CLIPBOARD_BYTES`. The app did copy — we just cannot
6
+ * carry it — so a caller mid-handshake must NOT restore over it. */
7
+ export declare class ClipboardTooLargeError extends PlatformError {
8
+ }
4
9
  export declare class SimctlWrapper {
5
10
  private readonly runner;
6
11
  private readonly kbd;
@@ -15,6 +20,7 @@ export declare class SimctlWrapper {
15
20
  launchApp(bundleId: string): Promise<number | null>;
16
21
  openUrl(deviceId: string, url: string): Promise<void>;
17
22
  setPasteboard(deviceId: string, text: string): Promise<void>;
23
+ getPasteboard(deviceId: string): Promise<string>;
18
24
  screenshot(format?: 'png' | 'jpeg'): Promise<Buffer>;
19
25
  syncKeyboardsFromLanguages(udid: string): Promise<void>;
20
26
  rotate(udid: string, orientation: 'portrait' | 'landscapeLeft' | 'landscapeRight' | 'portraitUpsideDown'): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"SimctlWrapper.d.ts","sourceRoot":"","sources":["../src/SimctlWrapper.ts"],"names":[],"mappings":"AAiCA,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;IAO7C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc7C,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;IAQrD,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5D,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":"AAMA,OAAO,EAAE,aAAa,EAAuB,MAAM,uBAAuB,CAAA;AA0C1E,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,uBAAuB,CAAA;AACjE,OAAO,EAAsC,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AA+BnF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAK1D;AAED;qEACqE;AACrE,qBAAa,sBAAuB,SAAQ,aAAa;CAAG;AAE5D,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;IAO7C,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAc7C,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,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB5D,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAchD,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,10 +1,10 @@
1
1
  import { randomUUID } from 'crypto';
2
- import { execFile, spawn } from 'child_process';
2
+ import { execFile } from 'child_process';
3
3
  import { promisify } from 'util';
4
4
  import { promises as fs } from 'fs';
5
5
  import { tmpdir } from 'os';
6
6
  import { join } from 'path';
7
- import { PlatformError } from '@tapflowio/agent-core';
7
+ import { PlatformError, MAX_CLIPBOARD_BYTES } from '@tapflowio/agent-core';
8
8
  const execFileAsync = promisify(execFile);
9
9
  const ROTATION_HELPER = join(import.meta.dirname, '..', 'bin', 'rotation-helper');
10
10
  // Language code → iOS AppleKeyboards entry string with hw=Automatic.
@@ -28,7 +28,19 @@ function langToKeyboard(lang) {
28
28
  const code = lang.split('-')[0].toLowerCase();
29
29
  return LANG_KEYBOARD_MAP[code] ?? 'en_US@sw=QWERTY;hw=Automatic';
30
30
  }
31
- import { defaultRunner } from './simctl.js';
31
+ // A hung pasteboard call must not strand the caller: the read path holds a sentinel on the
32
+ // device until it finishes, so "never returns" would leave the device clipboard destroyed.
33
+ const CLIPBOARD_CMD_TIMEOUT_MS = 5_000;
34
+ // simctl failures reach a user-facing toast. Node's first line is "Command failed: <argv>",
35
+ // which says nothing and echoes the device UDID, so prefer any other line. When there is none
36
+ // (e.g. the timeout path, where stderr is empty) fall back to a plain description rather than
37
+ // the argv line this exists to drop.
38
+ function firstLine(e) {
39
+ const msg = e instanceof Error ? e.message : String(e);
40
+ const lines = msg.split('\n').map((l) => l.trim()).filter(Boolean);
41
+ return lines.find((l) => !l.startsWith('Command failed:')) ?? 'the simulator did not respond';
42
+ }
43
+ import { defaultRunner, OutputTooLargeError } from './simctl.js';
32
44
  import { KeyboardHelperDaemon } from './KeyboardHelperDaemon.js';
33
45
  function toDeviceStatus(state) {
34
46
  if (state === 'Booted')
@@ -54,6 +66,10 @@ export function isDeviceMissingError(err) {
54
66
  const text = [e.message, e.stderr].filter((s) => typeof s === 'string').join(' ');
55
67
  return /cannot be located on disk|data is no longer present/i.test(text);
56
68
  }
69
+ /** The device clipboard held more than `MAX_CLIPBOARD_BYTES`. The app did copy — we just cannot
70
+ * carry it — so a caller mid-handshake must NOT restore over it. */
71
+ export class ClipboardTooLargeError extends PlatformError {
72
+ }
57
73
  export class SimctlWrapper {
58
74
  runner;
59
75
  kbd = new KeyboardHelperDaemon();
@@ -134,21 +150,30 @@ export class SimctlWrapper {
134
150
  async openUrl(deviceId, url) {
135
151
  await this.runner.exec('openurl', deviceId, url);
136
152
  }
137
- // Set the device pasteboard from stdin. Not routed through SimctlRunner
138
- // because pbcopy reads text from stdin, which the exec(...args) contract
139
- // doesn't carry — same exception as the osascript call in boot(). Used by
140
- // IOSAgent for input:type (pbcopy → Cmd+V paste).
141
153
  async setPasteboard(deviceId, text) {
142
- await new Promise((resolve, reject) => {
143
- const proc = spawn('xcrun', ['simctl', 'pbcopy', deviceId]);
144
- proc.on('error', reject);
145
- // stdin can emit its own 'error' if the spawn fails mid-write — an
146
- // unhandled stream 'error' would crash the agent, so reject instead.
147
- proc.stdin.on('error', reject);
148
- proc.on('close', (code) => (code === 0 ? resolve() : reject(new Error(`simctl pbcopy exited ${code}`))));
149
- proc.stdin.write(text);
150
- proc.stdin.end();
151
- });
154
+ try {
155
+ await this.runner.execWithOpts({ input: text, timeoutMs: CLIPBOARD_CMD_TIMEOUT_MS }, 'pbcopy', deviceId);
156
+ }
157
+ catch (e) {
158
+ // This reaches a user-facing toast, and the raw text is multi-line and echoes the argv.
159
+ throw new PlatformError(`Could not write the device clipboard: ${firstLine(e)}`);
160
+ }
161
+ }
162
+ // Read the device pasteboard. Returned verbatim — no trim, since a trailing newline can be
163
+ // part of the copied text. `maxBuffer` is where the clipboard size ceiling is actually
164
+ // enforced for iOS: exceeding it rejects rather than buffering unboundedly, so callers do
165
+ // not re-check the length (a second check there would be unreachable). simctl's own failures are noisy multi-line
166
+ // strings that end up in a user-facing toast, so they are condensed here.
167
+ async getPasteboard(deviceId) {
168
+ try {
169
+ // `maxBuffer` is where the clipboard size ceiling is actually enforced for iOS: exceeding
170
+ // it rejects rather than buffering without bound, so callers do not re-check the length.
171
+ return await this.runner.execWithOpts({ timeoutMs: CLIPBOARD_CMD_TIMEOUT_MS, maxBuffer: MAX_CLIPBOARD_BYTES }, 'pbpaste', deviceId);
172
+ }
173
+ catch (e) {
174
+ const message = `Could not read the device clipboard: ${firstLine(e)}`;
175
+ throw e instanceof OutputTooLargeError ? new ClipboardTooLargeError(message) : new PlatformError(message);
176
+ }
152
177
  }
153
178
  async screenshot(format = 'png') {
154
179
  const ext = format === 'jpeg' ? 'jpg' : 'png';
@@ -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/simctl.d.ts CHANGED
@@ -1,6 +1,24 @@
1
+ /** Options for calls the plain `exec(...args)` shape cannot express. */
2
+ export interface SimctlExecOpts {
3
+ /** Text to write to stdin — `pbcopy` takes its payload that way, not as an argument. */
4
+ input?: string;
5
+ /** Kill the command after this long. Deliberately per-call: a blanket timeout would break
6
+ * legitimately slow calls like `install`. */
7
+ timeoutMs?: number;
8
+ /** Ceiling on stdout. Exceeding it rejects rather than buffering without bound. */
9
+ maxBuffer?: number;
10
+ }
11
+ /** Thrown when a call blows its `maxBuffer`. Distinguishable on purpose: for the clipboard, an
12
+ * over-sized read means the app DID copy and the text simply cannot be carried, whereas a
13
+ * timeout means nothing is known — and the two need opposite recovery. */
14
+ export declare class OutputTooLargeError extends Error {
15
+ }
1
16
  export interface SimctlRunner {
2
17
  exec(...args: string[]): Promise<string>;
3
18
  execBinary(...args: string[]): Promise<Buffer>;
19
+ /** Same CoreSimulatorService recovery as `exec`, for calls that need stdin or bounds.
20
+ * Kept separate so the two shapes above stay untouched for their many callers. */
21
+ execWithOpts(opts: SimctlExecOpts, ...args: string[]): Promise<string>;
4
22
  }
5
23
  export declare const defaultRunner: SimctlRunner;
6
24
  //# sourceMappingURL=simctl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"simctl.d.ts","sourceRoot":"","sources":["../src/simctl.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACxC,UAAU,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CAC/C;AAaD,eAAO,MAAM,aAAa,EAAE,YAiC3B,CAAA"}
1
+ {"version":3,"file":"simctl.d.ts","sourceRoot":"","sources":["../src/simctl.ts"],"names":[],"mappings":"AAwBA,wEAAwE;AACxE,MAAM,WAAW,cAAc;IAC7B,wFAAwF;IACxF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;kDAC8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mFAAmF;IACnF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;2EAE2E;AAC3E,qBAAa,mBAAoB,SAAQ,KAAK;CAAG;AAEjD,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACxC,UAAU,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9C;uFACmF;IACnF,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;CACvE;AA+ED,eAAO,MAAM,aAAa,EAAE,YA6D3B,CAAA"}
package/dist/simctl.js CHANGED
@@ -1,8 +1,10 @@
1
- import { execFile } from 'child_process';
1
+ import { execFile, spawn } from 'child_process';
2
2
  import { promisify } from 'util';
3
3
  import { createLogger } from '@tapflowio/agent-core';
4
4
  const logger = createLogger('ios-agent:simctl');
5
5
  const execFileAsync = promisify(execFile);
6
+ // stderr is only ever read to build an error message, so a runaway one is pure waste.
7
+ const MAX_STDERR_BYTES = 64 * 1024;
6
8
  function isCoreSimulatorVersionMismatch(err) {
7
9
  const msg = err.stderr
8
10
  ?? err.message ?? '';
@@ -14,6 +16,11 @@ async function restartCoreSimulatorService() {
14
16
  await execFileAsync('killall', ['-9', 'com.apple.CoreSimulator.CoreSimulatorService']).catch(() => { });
15
17
  await new Promise((r) => setTimeout(r, 3000));
16
18
  }
19
+ /** Thrown when a call blows its `maxBuffer`. Distinguishable on purpose: for the clipboard, an
20
+ * over-sized read means the app DID copy and the text simply cannot be carried, whereas a
21
+ * timeout means nothing is known — and the two need opposite recovery. */
22
+ export class OutputTooLargeError extends Error {
23
+ }
17
24
  const CORE_SIM_DOCS_URL = 'https://tapflow.dev/guide/troubleshooting#ios-simulator-service-version-mismatch';
18
25
  function coreSimServiceError() {
19
26
  return new Error('CoreSimulatorService version mismatch — the service could not be recovered automatically.\n' +
@@ -21,6 +28,73 @@ function coreSimServiceError() {
21
28
  ' killall -9 com.apple.CoreSimulator.CoreSimulatorService\n\n' +
22
29
  `See ${CORE_SIM_DOCS_URL}`);
23
30
  }
31
+ // `input` rules out execFile (it has no stdin channel), so this spawns and pumps stdin itself.
32
+ // Everything else — timeout, stdout ceiling, exit-code handling — is reproduced here rather
33
+ // than inherited, which is the price of `pbcopy` not being expressible as arguments.
34
+ function runWithOpts(opts, args) {
35
+ return new Promise((resolve, reject) => {
36
+ const proc = spawn('xcrun', ['simctl', ...args]);
37
+ // Accumulate BYTES and decode once at the end. Decoding each chunk as it arrives splits
38
+ // multi-byte characters at pipe boundaries and turns them into U+FFFD — execFile avoided
39
+ // that by running stdout through a StringDecoder, and this path has to reproduce it.
40
+ // Keeping bytes also makes the maxBuffer accounting exact instead of measuring a string
41
+ // that may already contain replacement characters.
42
+ const chunks = [];
43
+ let bytes = 0;
44
+ const stderrChunks = [];
45
+ let stderrBytes = 0;
46
+ let over = false;
47
+ let settled = false;
48
+ let timer;
49
+ const finish = (err, out) => {
50
+ if (settled)
51
+ return;
52
+ settled = true;
53
+ clearTimeout(timer);
54
+ if (err)
55
+ reject(err);
56
+ else
57
+ resolve(out ?? '');
58
+ };
59
+ proc.stdout?.on('data', (d) => {
60
+ chunks.push(d);
61
+ bytes += d.length;
62
+ if (opts.maxBuffer && bytes > opts.maxBuffer) {
63
+ over = true;
64
+ proc.kill('SIGKILL');
65
+ finish(new OutputTooLargeError('stdout maxBuffer length exceeded'));
66
+ }
67
+ });
68
+ // Same treatment as stdout: keep bytes, decode once. Bounded like execFile bounded it.
69
+ proc.stderr?.on('data', (d) => {
70
+ if (stderrBytes >= MAX_STDERR_BYTES)
71
+ return;
72
+ // Slice to the remaining budget: testing before pushing the WHOLE chunk let a single
73
+ // `data` event carry the total past the ceiling the constant names.
74
+ const room = MAX_STDERR_BYTES - stderrBytes;
75
+ const slice = d.length > room ? d.subarray(0, room) : d;
76
+ stderrChunks.push(slice);
77
+ stderrBytes += slice.length;
78
+ });
79
+ proc.on('error', (e) => finish(e));
80
+ proc.on('close', (code) => {
81
+ if (over)
82
+ return;
83
+ const stdout = Buffer.concat(chunks).toString('utf8');
84
+ const stderr = Buffer.concat(stderrChunks).toString('utf8');
85
+ finish(code === 0 ? undefined : new Error(stderr.trim() || `simctl ${args[0]} exited ${code}`), stdout);
86
+ });
87
+ if (opts.timeoutMs) {
88
+ timer = setTimeout(() => { proc.kill('SIGKILL'); finish(new Error(`simctl ${args[0]} timed out`)); }, opts.timeoutMs);
89
+ }
90
+ if (opts.input !== undefined) {
91
+ // An unhandled stream 'error' would take the process down, so route it to the promise.
92
+ proc.stdin.on('error', (e) => finish(e));
93
+ proc.stdin.write(opts.input);
94
+ proc.stdin.end();
95
+ }
96
+ });
97
+ }
24
98
  export const defaultRunner = {
25
99
  async exec(...args) {
26
100
  try {
@@ -36,8 +110,35 @@ export const defaultRunner = {
36
110
  const { stdout } = await execFileAsync('xcrun', ['simctl', ...args]);
37
111
  return stdout;
38
112
  }
39
- catch {
40
- throw coreSimServiceError();
113
+ catch (retryErr) {
114
+ // Only claim the version mismatch if that is still what failed. Reporting it for an
115
+ // unrelated failure hides the real cause — and erases `OutputTooLargeError`, which
116
+ // `getPasteboard` needs to distinguish "the app copied something too big to carry"
117
+ // from "the read failed", the two having opposite recovery.
118
+ throw isCoreSimulatorVersionMismatch(retryErr) ? coreSimServiceError() : retryErr;
119
+ }
120
+ }
121
+ },
122
+ async execWithOpts(opts, ...args) {
123
+ try {
124
+ return await runWithOpts(opts, args);
125
+ }
126
+ catch (err) {
127
+ // Same self-healing every other simctl call gets. Before this existed the clipboard was
128
+ // the one path that could not recover from a service version mismatch.
129
+ if (!isCoreSimulatorVersionMismatch(err))
130
+ throw err;
131
+ logger.warn('CoreSimulatorService version mismatch — restarting service and retrying');
132
+ await restartCoreSimulatorService();
133
+ try {
134
+ return await runWithOpts(opts, args);
135
+ }
136
+ catch (retryErr) {
137
+ // Only claim the version mismatch if that is still what failed. Reporting it for an
138
+ // unrelated failure hides the real cause — and erases `OutputTooLargeError`, which
139
+ // `getPasteboard` needs to distinguish "the app copied something too big to carry"
140
+ // from "the read failed", the two having opposite recovery.
141
+ throw isCoreSimulatorVersionMismatch(retryErr) ? coreSimServiceError() : retryErr;
41
142
  }
42
143
  }
43
144
  },
@@ -55,8 +156,12 @@ export const defaultRunner = {
55
156
  const { stdout } = await execFileAsync('xcrun', ['simctl', ...args], { encoding: 'buffer' });
56
157
  return stdout;
57
158
  }
58
- catch {
59
- throw coreSimServiceError();
159
+ catch (retryErr) {
160
+ // Only claim the version mismatch if that is still what failed. Reporting it for an
161
+ // unrelated failure hides the real cause — and erases `OutputTooLargeError`, which
162
+ // `getPasteboard` needs to distinguish "the app copied something too big to carry"
163
+ // from "the read failed", the two having opposite recovery.
164
+ throw isCoreSimulatorVersionMismatch(retryErr) ? coreSimServiceError() : retryErr;
60
165
  }
61
166
  }
62
167
  },
@@ -1 +1 @@
1
- {"version":3,"file":"simctl.js","sourceRoot":"","sources":["../src/simctl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simctl.js","sourceRoot":"","sources":["../src/simctl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEpD,MAAM,MAAM,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAA;AAE/C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;AAEzC,sFAAsF;AACtF,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAA;AAElC,SAAS,8BAA8B,CAAC,GAAY;IAClD,MAAM,GAAG,GAAI,GAA6C,CAAC,MAAM;WAC3D,GAA4B,CAAC,OAAO,IAAI,EAAE,CAAA;IAChD,OAAO,GAAG,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QACxD,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,yCAAyC,CAAC,CAAA;AAC9F,CAAC;AAED,KAAK,UAAU,2BAA2B;IACxC,sEAAsE;IACtE,MAAM,aAAa,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,8CAA8C,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IACtG,MAAM,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;AACrD,CAAC;AAaD;;2EAE2E;AAC3E,MAAM,OAAO,mBAAoB,SAAQ,KAAK;CAAG;AAUjD,MAAM,iBAAiB,GAAG,kFAAkF,CAAA;AAE5G,SAAS,mBAAmB;IAC1B,OAAO,IAAI,KAAK,CACd,6FAA6F;QAC7F,8CAA8C;QAC9C,+DAA+D;QAC/D,OAAO,iBAAiB,EAAE,CAC3B,CAAA;AACH,CAAC;AAED,+FAA+F;AAC/F,4FAA4F;AAC5F,qFAAqF;AACrF,SAAS,WAAW,CAAC,IAAoB,EAAE,IAAc;IACvD,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;QAChD,wFAAwF;QACxF,yFAAyF;QACzF,qFAAqF;QACrF,wFAAwF;QACxF,mDAAmD;QACnD,MAAM,MAAM,GAAa,EAAE,CAAA;QAC3B,IAAI,KAAK,GAAG,CAAC,CAAA;QACb,MAAM,YAAY,GAAa,EAAE,CAAA;QACjC,IAAI,WAAW,GAAG,CAAC,CAAA;QACnB,IAAI,IAAI,GAAG,KAAK,CAAA;QAChB,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,IAAI,KAAgD,CAAA;QACpD,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,GAAY,EAAE,EAAE;YAC3C,IAAI,OAAO;gBAAE,OAAM;YACnB,OAAO,GAAG,IAAI,CAAA;YACd,YAAY,CAAC,KAAK,CAAC,CAAA;YACnB,IAAI,GAAG;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAA;;gBACf,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC,CAAA;QACzB,CAAC,CAAA;QAED,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;YACpC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YACd,KAAK,IAAI,CAAC,CAAC,MAAM,CAAA;YACjB,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAC7C,IAAI,GAAG,IAAI,CAAA;gBACX,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;gBACpB,MAAM,CAAC,IAAI,mBAAmB,CAAC,kCAAkC,CAAC,CAAC,CAAA;YACrE,CAAC;QACH,CAAC,CAAC,CAAA;QACF,uFAAuF;QACvF,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE;YACpC,IAAI,WAAW,IAAI,gBAAgB;gBAAE,OAAM;YAC3C,qFAAqF;YACrF,oEAAoE;YACpE,MAAM,IAAI,GAAG,gBAAgB,GAAG,WAAW,CAAA;YAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACvD,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACxB,WAAW,IAAI,KAAK,CAAC,MAAM,CAAA;QAC7B,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAClC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,IAAI,IAAI;gBAAE,OAAM;YAChB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YACrD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YAC3D,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,UAAU,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAA;QACzG,CAAC,CAAC,CAAA;QAEF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAA,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QACtH,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,uFAAuF;YACvF,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;YACxC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;QAClB,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAc;QAC1B,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;YACpE,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAA;YACnD,MAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAA;YACtF,MAAM,2BAA2B,EAAE,CAAA;YACnC,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAA;gBACpE,OAAO,MAAM,CAAA;YACf,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,oFAAoF;gBACpF,mFAAmF;gBACnF,mFAAmF;gBACnF,4DAA4D;gBAC5D,MAAM,8BAA8B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;YACnF,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,IAAoB,EAAE,GAAG,IAAc;QACxD,IAAI,CAAC;YACH,OAAO,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,wFAAwF;YACxF,uEAAuE;YACvE,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAA;YACnD,MAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAA;YACtF,MAAM,2BAA2B,EAAE,CAAA;YACnC,IAAI,CAAC;gBACH,OAAO,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACtC,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,oFAAoF;gBACpF,mFAAmF;gBACnF,mFAAmF;gBACnF,4DAA4D;gBAC5D,MAAM,8BAA8B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;YACnF,CAAC;QACH,CAAC;IACH,CAAC;IACD,KAAK,CAAC,UAAU,CAAC,GAAG,IAAc;QAChC,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;YAC5F,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAA;YACnD,MAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAA;YACtF,MAAM,2BAA2B,EAAE,CAAA;YACnC,IAAI,CAAC;gBACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAA;gBAC5F,OAAO,MAAM,CAAA;YACf,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,oFAAoF;gBACpF,mFAAmF;gBACnF,mFAAmF;gBACnF,4DAA4D;gBAC5D,MAAM,8BAA8B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAA;YACnF,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tapflowio/ios-agent",
3
- "version": "0.16.0",
3
+ "version": "0.17.0",
4
4
  "description": "iOS simulator agent for tapflow — xcrun simctl control and screen streaming",
5
5
  "keywords": [
6
6
  "tapflow",
@@ -53,15 +53,15 @@
53
53
  },
54
54
  "dependencies": {
55
55
  "ws": "^8.21.1",
56
- "@tapflowio/agent-core": "0.16.0",
57
- "@tapflowio/audiotap-helper": "0.2.6"
56
+ "@tapflowio/agent-core": "0.17.0",
57
+ "@tapflowio/audiotap-helper": "0.2.7"
58
58
  },
59
59
  "devDependencies": {
60
60
  "@types/node": "^20.19.43",
61
61
  "@types/ws": "^8.0.0",
62
62
  "typescript": "^5.0.0",
63
63
  "vitest": "^4.1.10",
64
- "@tapflowio/relay": "0.16.0"
64
+ "@tapflowio/relay": "0.17.0"
65
65
  },
66
66
  "scripts": {
67
67
  "postinstall": "node -e \"if (process.platform === 'darwin') { require('fs').readdirSync('bin').forEach(f => require('fs').chmodSync('bin/' + f, 0o755)) }\"",