stim 1.26.0 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/dist/{acquire-artifact-DVsvSwf7.mjs → acquire-artifact-BKN2Yuhg.mjs} +2 -2
  2. package/dist/{act-C-BqJEpu.mjs → act-ROviTF_t.mjs} +297 -122
  3. package/dist/{activity-Lnb_EoRY.mjs → activity-Cd-ysFes.mjs} +6 -6
  4. package/dist/{agent-device-usage-output-DbXy5tg8.mjs → agent-device-usage-output-C5nCKWp9.mjs} +5 -5
  5. package/dist/{android-CSbLRD53.mjs → android--HBgpvpW.mjs} +5 -5
  6. package/dist/{android-CiNQw3kq.mjs → android-Cd6w7_qw.mjs} +96 -43
  7. package/dist/{android-B5P81yI-.mjs → android-Deb9X3_Y.mjs} +37 -15
  8. package/dist/{android-DTAcRwBC.mjs → android-DriNoAVy.mjs} +23 -18
  9. package/dist/{android-cas-BTVhZ0Qs.mjs → android-cas-D5e6ecUg.mjs} +4 -4
  10. package/dist/android-cas-compiler.mjs +1 -1
  11. package/dist/api.d.mts +13 -3
  12. package/dist/api.mjs +39 -29
  13. package/dist/{apk-signed-tail-B46U9hXc.mjs → apk-signed-tail-BHQHx3Rm.mjs} +2 -2
  14. package/dist/{artifact-BxREhAaV.mjs → artifact-0AGJYB9O.mjs} +18 -23
  15. package/dist/{artifact-CsAP6AGK.mjs → artifact-faemIZv5.mjs} +19 -24
  16. package/dist/{artifact-platform-CMRc0M_r.mjs → artifact-platform-BO2Uvk_A.mjs} +1 -1
  17. package/dist/auto-placement-z-H5pJza.mjs +350 -0
  18. package/dist/{browser-web-rYPyqhTf.mjs → browser-web-slD8AvLp.mjs} +16 -16
  19. package/dist/{build-cache-DrXNCy3T.mjs → build-cache-gBJ-WKzA.mjs} +43 -21
  20. package/dist/{build-DPhApsjV.mjs → build-hS0QyFlQ.mjs} +35 -31
  21. package/dist/{build-plan-DrMMdayj.mjs → build-plan-CBqYbzYM.mjs} +7 -6
  22. package/dist/{cache-manifest-BEZ9Bpl1.mjs → cache-manifest-DEjqGGat.mjs} +1 -1
  23. package/dist/cache-manifest.mjs +1 -1
  24. package/dist/{budget-k2mZGvvk.mjs → ccache-BWTze1Ls.mjs} +560 -1603
  25. package/dist/{cdp-BG3FJCCx.mjs → cdp-C3svvXiE.mjs} +1 -1
  26. package/dist/{chrome-BvV8ssI3.mjs → chrome-DyDWurWG.mjs} +1 -1
  27. package/dist/{cli-BBKFGOFl.mjs → cli-ftXDLto1.mjs} +24 -23
  28. package/dist/cli.mjs +1 -1
  29. package/dist/{client-D9CaRks-.mjs → client-xsdxrhWA.mjs} +48 -62
  30. package/dist/collector-run.d.mts +10 -9
  31. package/dist/collector-run.mjs +42 -27
  32. package/dist/{command-output-BF5AR2dL.mjs → command-output-Dj-WT4BP.mjs} +1 -1
  33. package/dist/{config-BktkY_zC.mjs → config-Cn94Jc0g.mjs} +23 -4
  34. package/dist/{dependencies-Dw6wfQdv.mjs → dependencies-BGokZ-Ng.mjs} +108 -60
  35. package/dist/{dependency-state-DFB41vfr.mjs → dependency-state-C3OtgG94.mjs} +14 -7
  36. package/dist/{detached-entry-KmieOKgN.mjs → detached-entry-BPlSaCwC.mjs} +1 -1
  37. package/dist/{dev-client-DXR_tPVY.mjs → dev-client-BMca82xo.mjs} +2 -2
  38. package/dist/{device-BcYeHSFu.mjs → device-BJm0irrq.mjs} +16 -16
  39. package/dist/{device-capacity-DCSvUF0l.mjs → device-capacity-6LP7QsaA.mjs} +101 -16
  40. package/dist/device-host-worker.mjs +19 -19
  41. package/dist/{device-ios-BLGfXQeK.mjs → device-ios-534c14fz.mjs} +251 -23
  42. package/dist/{device-lease-run-BmvIl7bI.mjs → device-lease-run-DwsGfjUN.mjs} +5 -5
  43. package/dist/{device-pool-Dluix4H3.mjs → device-pool-BnQqvs6o.mjs} +3 -3
  44. package/dist/{device-BK-zwyd_.mjs → device-tM41-TUq.mjs} +25 -24
  45. package/dist/{doctor-Cp-BhzTS.mjs → doctor-Dbx1ZpD2.mjs} +1 -1
  46. package/dist/{doctor-Bhg1ii70.mjs → doctor-DyqE9n1J.mjs} +28 -16
  47. package/dist/{doctor-OnwP94ne.mjs → doctor-F-3VUUyN.mjs} +76 -32
  48. package/dist/{doctor-fingerprint-D3a04Mhu.mjs → doctor-fingerprint-o7ZI9YLn.mjs} +1 -1
  49. package/dist/doctor-fingerprint.mjs +1 -1
  50. package/dist/{doctor-watchman-BStK05nt.mjs → doctor-watchman-CxDbyrrt.mjs} +5 -5
  51. package/dist/{eas-build-Dsj93iM9.mjs → eas-build-CjNSWmjo.mjs} +4 -4
  52. package/dist/eas-fallback-9fqb46kW.mjs +87 -0
  53. package/dist/{eas-session-ledger-B5vygTiD.mjs → eas-session-ledger-DrP4OuuM.mjs} +6 -6
  54. package/dist/{error-diagnostics-BOOm9Db7.mjs → error-diagnostics-snej9k4j.mjs} +51 -25
  55. package/dist/{exec-VFRpu1iA.mjs → exec-aULwtNly.mjs} +57 -6
  56. package/dist/{gc-C_79zvz4.mjs → gc-BRwAY3qT.mjs} +2 -2
  57. package/dist/{gc-ldgr-hXU.mjs → gc-CGZ1Yg88.mjs} +160 -45
  58. package/dist/{guide-D7K0X6KG.mjs → guide-_rfEh_zM.mjs} +580 -183
  59. package/dist/{hosted-android-Bk54ej6n.mjs → hosted-android-BMKzUNnY.mjs} +4 -4
  60. package/dist/{hosted-client-fHO8yqzc.mjs → hosted-client-D7Pk_Oo1.mjs} +12 -8
  61. package/dist/{hosted-logs-BfbmDM4M.mjs → hosted-logs-B1gqQuva.mjs} +8 -8
  62. package/dist/{hosted-logs-sync-B0pvmOk-.mjs → hosted-logs-sync-Dg3qrZmV.mjs} +5 -5
  63. package/dist/{hosted-macos-CPl0OZ9h.mjs → hosted-macos-B9w4H8hc.mjs} +6 -6
  64. package/dist/{hosted-native-CpDB3-PO.mjs → hosted-native-CdgaiuyP.mjs} +17 -16
  65. package/dist/{idle-shutdown-FfxL1KdG.mjs → idle-shutdown-Cbvo5KEh.mjs} +7 -8
  66. package/dist/{ios-ftxdQbJS.mjs → ios-B5HlVMhQ.mjs} +92 -37
  67. package/dist/{ios-B7-lToDu.mjs → ios-Bk4mWbtS.mjs} +8 -8
  68. package/dist/{ios-ENC4sRPA.mjs → ios-CsRVik64.mjs} +7 -1
  69. package/dist/{ios-WxpDJ5T1.mjs → ios-E26qSpkb.mjs} +27 -11
  70. package/dist/{ios-device-CsyryvpT.mjs → ios-device-C_QkIf1Z.mjs} +3 -3
  71. package/dist/{ios-device-B6HK951C.mjs → ios-device-CiBA-er9.mjs} +1 -1
  72. package/dist/{ios-project-Ty5pHl9O.mjs → ios-project-D8Jcy_br.mjs} +22 -9
  73. package/dist/{ios-signing-4c_qXvQm.mjs → ios-signing-BJzvDPfU.mjs} +2 -2
  74. package/dist/{ios-state-Cw7-WQf2.mjs → ios-state-BZ03NFgF.mjs} +1 -1
  75. package/dist/{js-swap-BMhXYVDS.mjs → js-swap-Dg2a945i.mjs} +8 -7
  76. package/dist/{launch-DOp8RjDz.mjs → launch-CRyBeNsA.mjs} +42 -38
  77. package/dist/lightened-BCsdAGj_.mjs +171 -0
  78. package/dist/{logs-dQDki6Tt.mjs → logs-CC_-ZzEE.mjs} +7 -7
  79. package/dist/{logs-s1dRIG1E.mjs → logs-aJQb-RDg.mjs} +46 -21
  80. package/dist/{macos-B0VEV3Gf.mjs → macos-BGmTpnv9.mjs} +1 -1
  81. package/dist/{macos-DBBPNnIA.mjs → macos-DlCBhMw5.mjs} +73 -38
  82. package/dist/macos-run.mjs +1 -1
  83. package/dist/maintenance-run.mjs +7 -7
  84. package/dist/{metro-CjC10t6E.mjs → metro-CvyD-xwe.mjs} +4 -4
  85. package/dist/{metro-gateway-B6_PgD0L.mjs → metro-gateway-BnHdqMO_.mjs} +3 -3
  86. package/dist/{named-ports-BG0j1X4g.mjs → named-ports-BCyMWA6b.mjs} +3 -3
  87. package/dist/{native-android-CL2NGiik.mjs → native-android-DlpxCyOP.mjs} +17 -18
  88. package/dist/{native-gradle-artifact-inputs-btSUulme.mjs → native-gradle-artifact-inputs-C13qT7R_.mjs} +5 -5
  89. package/dist/{native-runtime-Dq3RBcON.mjs → native-runtime-DqaIBO5w.mjs} +9 -8
  90. package/dist/{native-source-D-4Dh4JU.mjs → native-source-D1AzWiuP.mjs} +1 -1
  91. package/dist/{native-xcode-inputs-BW7H8JGu.mjs → native-xcode-inputs-B1W8SrxB.mjs} +3 -3
  92. package/dist/{native-xcode-ios-CBXJAxfC.mjs → native-xcode-ios-QPP0Rm68.mjs} +17 -17
  93. package/dist/{ndjson-CgE_o3Dl.mjs → ndjson-Dy2W4vRa.mjs} +2 -2
  94. package/dist/offload-worker.mjs +23 -24
  95. package/dist/{operation-exec-CUZifp6Z.mjs → operation-exec-Dp4FuIGR.mjs} +1 -1
  96. package/dist/{ownership-BjYvMNX_.mjs → ownership-Bx-0cku-.mjs} +3 -3
  97. package/dist/{page-CzEA_-5_.mjs → page-CQJlcj3x.mjs} +2 -2
  98. package/dist/{phone-reverses-lmj6kcPm.mjs → phone-reverses-C9yAaKEv.mjs} +18 -4
  99. package/dist/{placement-log-DIFPQAXp.mjs → placement-log-BXUbiZM6.mjs} +3 -3
  100. package/dist/{plan-placement-IiiSQhtz.mjs → plan-placement-UxnQjv5Z.mjs} +36 -10
  101. package/dist/{ports-C2_w1Z0Z.mjs → ports-uUrghqWN.mjs} +3 -3
  102. package/dist/{prebuild-gmouvmJZ.mjs → prebuild-BDpToDgR.mjs} +16 -17
  103. package/dist/{project-BUu6Is4k.mjs → project-DYj-HVx6.mjs} +17 -17
  104. package/dist/{pull-request-CbNlkFok.mjs → pull-request-BzLmzAIQ.mjs} +2 -2
  105. package/dist/pull-requests.mjs +1 -1
  106. package/dist/{react-native-android-Cgg99REN.mjs → react-native-android-DDBccgJw.mjs} +32 -26
  107. package/dist/{react-native-build-oNwqF5Wb.mjs → react-native-build-DaK2IFyP.mjs} +9 -9
  108. package/dist/{react-native-doctor-BhA3KUte.mjs → react-native-doctor-B-Mw6DcR.mjs} +6 -6
  109. package/dist/{react-native-ios-B-nf4rjN.mjs → react-native-ios-DjYwUF9U.mjs} +23 -17
  110. package/dist/{recordings-BldzVKq0.mjs → recordings-C20iUZfp.mjs} +1 -1
  111. package/dist/{registration-CN6nlhcD.mjs → registration-BwCe64PH.mjs} +1 -1
  112. package/dist/{reload-C9OduiNc.mjs → reload-DJBeF_rC.mjs} +1 -1
  113. package/dist/{reload-CCR7KC_l.mjs → reload-fUdkH2_p.mjs} +16 -16
  114. package/dist/{remote-C8S7FlPF.mjs → remote-y6n99WMW.mjs} +22 -9
  115. package/dist/{result-7F5hEwQJ.mjs → result-CTqBw2Te.mjs} +32 -21
  116. package/dist/{run-BqB0v3pt.mjs → run-DaCeNKRm.mjs} +3 -3
  117. package/dist/{selection-BNPBZ6T5.mjs → selection-Bs8phwhN.mjs} +37 -29
  118. package/dist/{server-bare-A75rDIdD.mjs → server-bare-BOh-iZEj.mjs} +2 -2
  119. package/dist/{server-command-CssKFOD7.mjs → server-command-8CuA51Cv.mjs} +6 -6
  120. package/dist/{server-expo-eQfOdydb.mjs → server-expo-ABQs2XFA.mjs} +4 -4
  121. package/dist/server-expo-Ba_Y21vB.mjs +2 -0
  122. package/dist/{settings-CosW5X-S.mjs → settings-BDVI8Ivc.mjs} +331 -62
  123. package/dist/{settings-OaGQF-ri.mjs → settings-CMHhQNwI.mjs} +24 -3
  124. package/dist/settings-payload-cm60Zhib.mjs +257 -0
  125. package/dist/settings-write-BdNRLlBn.mjs +185 -0
  126. package/dist/settings.schema.json +51 -33
  127. package/dist/{simslim-Bax1qcxu.mjs → simslim-DCQwzoPy.mjs} +2 -2
  128. package/dist/{slot-launch-CYCEhfBY.mjs → slot-launch-0l7RqSpr.mjs} +6 -6
  129. package/dist/{stage-jKQ7CP_B.mjs → stage-F4cAfJGi.mjs} +2 -2
  130. package/dist/{start-C_wefNKB.mjs → start-DcqnF9p8.mjs} +1 -1
  131. package/dist/{start-_BdJ32cZ.mjs → start-DrPwER_2.mjs} +27 -22
  132. package/dist/{state-C1i2nMOP.mjs → state-BX1y5syV.mjs} +4 -4
  133. package/dist/{state-C4OdpOTF.mjs → state-CZxLyetD.mjs} +2 -2
  134. package/dist/{stats-tEpEEH-u.mjs → stats-GxuCbles.mjs} +5 -5
  135. package/dist/{stats-report-n2U5plhk.mjs → stats-report-B86Cv7Uc.mjs} +1 -1
  136. package/dist/{status-CRXz-Gtj.mjs → status-7ULDEJ1e.mjs} +1 -1
  137. package/dist/{status-DQrqodLj.mjs → status-BfnK9pUd.mjs} +25 -25
  138. package/dist/{status-B9M7x4CZ.mjs → status-Bj7ZYvvc.mjs} +1 -1
  139. package/dist/{status-watch-B5wDIH_o.mjs → status-watch-BfabQn03.mjs} +5 -5
  140. package/dist/status-worker.mjs +1 -1
  141. package/dist/{stim-desktop-6Dqp-gjX.mjs → stim-desktop-CbWo21kb.mjs} +2 -2
  142. package/dist/{stop-ySNQHXMG.mjs → stop-CH79S3IZ.mjs} +5 -5
  143. package/dist/{stop-DRqQVqDJ.mjs → stop-D-EAr25B.mjs} +21 -20
  144. package/dist/{stop-CmdNhGlC.mjs → stop-x1Yu3He4.mjs} +2 -2
  145. package/dist/supervisor-run.mjs +17 -17
  146. package/dist/{support-CVOCp0Ft.mjs → support-Be0UeVZU.mjs} +10 -10
  147. package/dist/{support-BGSCBoib.mjs → support-CNg_YsOk.mjs} +6 -6
  148. package/dist/{swiftpm-artifact-inputs-CfUzt_0Z.mjs → swiftpm-artifact-inputs-uPqYvGBv.mjs} +4 -4
  149. package/dist/{swiftpm-macos-x6HPpl_2.mjs → swiftpm-macos-Ch4YjY_A.mjs} +11 -12
  150. package/dist/{toolchain-J4J8MrAr.mjs → toolchain-CbCG6C5Z.mjs} +321 -15
  151. package/dist/{toolchain-DoavrvIA.mjs → toolchain-JYAOquPg.mjs} +1 -1
  152. package/dist/{trigger-KVaWWNyn.mjs → trigger-DMou-X7j.mjs} +2 -2
  153. package/dist/trigger-qp2ji5wE.mjs +2 -0
  154. package/dist/{warm-progress-DvhTX_eu.mjs → warm-progress-C0RsbngN.mjs} +731 -727
  155. package/dist/{web-Bihbf7-u.mjs → web-Cq_AQ4DK.mjs} +9 -9
  156. package/dist/web-Je6abcpz.mjs +2 -0
  157. package/dist/web-run.mjs +9 -9
  158. package/dist/windows-report.mjs +1 -1
  159. package/dist/{workspace-state-pUg3_RRA.mjs → workspace-state-BjqdjnJR.mjs} +3 -3
  160. package/dist/{workspaces-g2lhdBXF.mjs → workspaces-DFbj07jp.mjs} +1795 -70
  161. package/dist/{worktree-BKuklFh_.mjs → worktree-COAJ3-OD.mjs} +934 -514
  162. package/dist/{worktree-Bm4cb-nU.mjs → worktree-JGUd_53L.mjs} +1 -1
  163. package/package.json +7 -7
  164. package/dist/ccache-Bx5TbxwG.mjs +0 -143
  165. package/dist/eas-fallback-FwkeqqGi.mjs +0 -381
  166. package/dist/hosted-ios-D55QhYaD.mjs +0 -15
  167. package/dist/native-run-BfIDFKLH.mjs +0 -275
  168. package/dist/server-expo-wvcj5tiZ.mjs +0 -2
  169. package/dist/settings-write-QjYfSrjF.mjs +0 -360
  170. package/dist/trigger-DzJu208Q.mjs +0 -2
  171. package/dist/web-BFLueSh-.mjs +0 -2
@@ -1,7 +1,7 @@
1
- import { c as throwIfCancelled } from "./exec-VFRpu1iA.mjs";
2
- import { c as call, l as connectHost } from "./hosted-client-fHO8yqzc.mjs";
3
- import { i as requestHostedMetro } from "./metro-gateway-B6_PgD0L.mjs";
4
- import { a as stopHostedNative, i as prepareHostedNative, r as placeHostedNative } from "./hosted-native-CpDB3-PO.mjs";
1
+ import { c as throwIfCancelled } from "./exec-aULwtNly.mjs";
2
+ import { c as call, l as connectHost } from "./hosted-client-D7Pk_Oo1.mjs";
3
+ import { i as requestHostedMetro } from "./metro-gateway-BnHdqMO_.mjs";
4
+ import { a as stopHostedNative, i as prepareHostedNative, r as placeHostedNative } from "./hosted-native-CdgaiuyP.mjs";
5
5
  //#region src/device-host/hosted-android.ts
6
6
  async function prepareHostedAndroid(machine, selectors, recorded, mode) {
7
7
  return await prepareHostedNative(machine, selectors, recorded, "android", false, mode);
@@ -1,7 +1,7 @@
1
- import { c as throwIfCancelled, o as cancellableSleep } from "./exec-VFRpu1iA.mjs";
2
- import { at as resolveEndpoint } from "./config-BktkY_zC.mjs";
3
- import { t as BuildConnection } from "./client-D9CaRks-.mjs";
4
- import { m as configuredMachines } from "./selection-BNPBZ6T5.mjs";
1
+ import { c as throwIfCancelled, o as cancellableSleep } from "./exec-aULwtNly.mjs";
2
+ import { Y as diagnoseConnectFailure, ot as resolveEndpoint } from "./config-Cn94Jc0g.mjs";
3
+ import { t as BuildConnection } from "./client-xsdxrhWA.mjs";
4
+ import { g as configuredMachines } from "./selection-Bs8phwhN.mjs";
5
5
  import { createHash } from "node:crypto";
6
6
  import { lstatSync, readFileSync, readdirSync, readlinkSync } from "node:fs";
7
7
  import { join } from "node:path";
@@ -54,10 +54,14 @@ async function connectHost(machine, timeoutMs = CONNECT_TIMEOUT_MS, strict = fal
54
54
  });
55
55
  if (signal?.aborted && opened instanceof BuildConnection) opened.close();
56
56
  signal?.throwIfAborted();
57
- if (!(opened instanceof BuildConnection)) throw Object.assign(/* @__PURE__ */ new Error(opened.code === "server-outdated" ? `${machine} runs a stim-server that speaks an older protocol than this Stim. Run stim doctor for the command that updates it there, then retry.` : opened.refused ? `${machine} refused this machine: ${opened.failure.replace(/\.+$/, "")}. Run stim doctor.` : `${machine} is unreachable: ${opened.failure}. Run stim doctor to see which layer failed.`), {
58
- code: strict ? "STIM_HOSTING_REFUSED" : opened.refused ? "STIM_HOSTING_REFUSED" : opened.code ?? "closed",
59
- hostCode: opened.code
60
- });
57
+ if (!(opened instanceof BuildConnection)) {
58
+ const diagnosis = opened.refused || opened.code === "server-outdated" ? null : await diagnoseConnectFailure(machine, opened, signal);
59
+ throw Object.assign(new Error(opened.code === "server-outdated" ? `${machine} runs a stim-server that speaks an older protocol than this Stim. Run stim doctor for the command that updates it there, then retry.` : opened.refused ? `${machine} refused this machine: ${opened.failure.replace(/\.+$/, "")}. Run stim doctor.` : diagnosis?.message ?? `${machine} is unreachable: ${opened.failure}. Run stim doctor to see which layer failed.`), {
60
+ code: strict ? "STIM_HOSTING_REFUSED" : opened.refused ? "STIM_HOSTING_REFUSED" : opened.code ?? "closed",
61
+ hostCode: opened.code,
62
+ ...diagnosis ? { remedy: diagnosis.remedy } : {}
63
+ });
64
+ }
61
65
  return {
62
66
  machine,
63
67
  credential,
@@ -1,11 +1,11 @@
1
- import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
- import { E as workspaceDir, k as workspaceLogsDir$1 } from "./workspace-state-pUg3_RRA.mjs";
3
- import { B as deviceSlotFileKey, nt as parseMachine$1, q as validateDeviceSlot } from "./config-BktkY_zC.mjs";
4
- import { l as phaseLine } from "./command-output-BF5AR2dL.mjs";
5
- import { n as macosDir } from "./state-C4OdpOTF.mjs";
6
- import { n as androidLogGroups, r as isAndroidCrashText } from "./android-B5P81yI-.mjs";
7
- import { r as createNdjsonWriter, s as readNdjsonGenerations$1 } from "./ndjson-CgE_o3Dl.mjs";
8
- import { c as call } from "./hosted-client-fHO8yqzc.mjs";
1
+ import { t as getExecutor } from "./exec-aULwtNly.mjs";
2
+ import { E as workspaceDir, k as workspaceLogsDir$1 } from "./workspace-state-BjqdjnJR.mjs";
3
+ import { B as deviceSlotFileKey, q as validateDeviceSlot, rt as parseMachine$1 } from "./config-Cn94Jc0g.mjs";
4
+ import { l as phaseLine } from "./command-output-Dj-WT4BP.mjs";
5
+ import { n as macosDir } from "./state-CZxLyetD.mjs";
6
+ import { n as androidLogGroups, r as isAndroidCrashText } from "./android-Deb9X3_Y.mjs";
7
+ import { c as readNdjsonGenerations$1, i as createNdjsonWriter } from "./ndjson-Dy2W4vRa.mjs";
8
+ import { c as call } from "./hosted-client-D7Pk_Oo1.mjs";
9
9
  import { mkdirSync, readFileSync, realpathSync, renameSync, rmSync, writeFileSync } from "node:fs";
10
10
  import { dirname, join } from "node:path";
11
11
  import { LOG_ROTATE_BYTES, ambientWrite, withDirLockAsync } from "@stim-cli/core";
@@ -1,8 +1,8 @@
1
- import { n as pullHostedNativeLogs, r as readHostedNativeLogs, t as pullHostedMacosLogs } from "./hosted-logs-BfbmDM4M.mjs";
2
- import { l as phaseLine } from "./command-output-BF5AR2dL.mjs";
3
- import { l as connectHost } from "./hosted-client-fHO8yqzc.mjs";
4
- import { n as readHostedIos, t as readHostedAndroid } from "./ios-state-Cw7-WQf2.mjs";
5
- import "./hosted-macos-CPl0OZ9h.mjs";
1
+ import { n as pullHostedNativeLogs, r as readHostedNativeLogs, t as pullHostedMacosLogs } from "./hosted-logs-B1gqQuva.mjs";
2
+ import { l as phaseLine } from "./command-output-Dj-WT4BP.mjs";
3
+ import { l as connectHost } from "./hosted-client-D7Pk_Oo1.mjs";
4
+ import { n as readHostedIos, t as readHostedAndroid } from "./ios-state-BZ03NFgF.mjs";
5
+ import "./hosted-macos-B9w4H8hc.mjs";
6
6
  import { watch } from "node:fs";
7
7
  import { dirname, relative, resolve, sep } from "node:path";
8
8
  import { ambientWrite, configDir } from "@stim-cli/core";
@@ -1,9 +1,9 @@
1
- import { o as cancellableSleep } from "./exec-VFRpu1iA.mjs";
2
- import { a as agentAccess, i as closeAgentConnection, o as removeAgentAccess, t as pullHostedMacosLogs } from "./hosted-logs-BfbmDM4M.mjs";
3
- import { l as phaseLine } from "./command-output-BF5AR2dL.mjs";
4
- import { n as macosDir } from "./state-C4OdpOTF.mjs";
5
- import { d as runCancellationSignal } from "./native-run-BfIDFKLH.mjs";
6
- import { _ as unknownSession, a as SESSION_TIMEOUT_MS, c as call, d as hostedSession, g as stoppedSession, h as sha256, i as RESERVE_TIMEOUT_MS, l as connectHost, m as settle, o as attach, r as PREPARE_TIMEOUT_MS, s as bundleManifest, t as INSTALL_TIMEOUT_MS, u as heldNoLonger, v as upload } from "./hosted-client-fHO8yqzc.mjs";
1
+ import { o as cancellableSleep } from "./exec-aULwtNly.mjs";
2
+ import { a as agentAccess, i as closeAgentConnection, o as removeAgentAccess, t as pullHostedMacosLogs } from "./hosted-logs-B1gqQuva.mjs";
3
+ import { l as phaseLine } from "./command-output-Dj-WT4BP.mjs";
4
+ import { n as macosDir } from "./state-CZxLyetD.mjs";
5
+ import { ot as runCancellationSignal } from "./toolchain-CbCG6C5Z.mjs";
6
+ import { _ as unknownSession, a as SESSION_TIMEOUT_MS, c as call, d as hostedSession, g as stoppedSession, h as sha256, i as RESERVE_TIMEOUT_MS, l as connectHost, m as settle, o as attach, r as PREPARE_TIMEOUT_MS, s as bundleManifest, t as INSTALL_TIMEOUT_MS, u as heldNoLonger, v as upload } from "./hosted-client-D7Pk_Oo1.mjs";
7
7
  import { randomUUID } from "node:crypto";
8
8
  import { join } from "node:path";
9
9
  import { ambientContext, ambientWrite } from "@stim-cli/core";
@@ -1,10 +1,10 @@
1
- import { o as cancellableSleep } from "./exec-VFRpu1iA.mjs";
2
- import { E as workspaceDir, l as withWorkspaceStateLockAsync, r as readWorkspaceState$1 } from "./workspace-state-pUg3_RRA.mjs";
3
- import { a as agentAccess, i as closeAgentConnection, n as pullHostedNativeLogs, o as removeAgentAccess } from "./hosted-logs-BfbmDM4M.mjs";
4
- import { d as runCancellationSignal } from "./native-run-BfIDFKLH.mjs";
5
- import { _ as unknownSession, a as SESSION_TIMEOUT_MS, c as call, d as hostedSession, g as stoppedSession, h as sha256, i as RESERVE_TIMEOUT_MS, l as connectHost, m as settle, n as OFFER_TIMEOUT_MS, o as attach, p as requireHostedAppMode, r as PREPARE_TIMEOUT_MS, s as bundleManifest, t as INSTALL_TIMEOUT_MS, u as heldNoLonger, v as upload } from "./hosted-client-fHO8yqzc.mjs";
6
- import { a as requireHostedMetro, i as requestHostedMetro, n as closeHostedMetro } from "./metro-gateway-B6_PgD0L.mjs";
7
- import { s as writeHostedNative } from "./ios-state-Cw7-WQf2.mjs";
1
+ import { o as cancellableSleep, x as withDrainingCancellation } from "./exec-aULwtNly.mjs";
2
+ import { E as workspaceDir, l as withWorkspaceStateLockAsync, r as readWorkspaceState$1 } from "./workspace-state-BjqdjnJR.mjs";
3
+ import { a as agentAccess, i as closeAgentConnection, n as pullHostedNativeLogs, o as removeAgentAccess } from "./hosted-logs-B1gqQuva.mjs";
4
+ import { ot as runCancellationSignal } from "./toolchain-CbCG6C5Z.mjs";
5
+ import { _ as unknownSession, a as SESSION_TIMEOUT_MS, c as call, d as hostedSession, g as stoppedSession, h as sha256, i as RESERVE_TIMEOUT_MS, l as connectHost, m as settle, n as OFFER_TIMEOUT_MS, o as attach, p as requireHostedAppMode, r as PREPARE_TIMEOUT_MS, s as bundleManifest, t as INSTALL_TIMEOUT_MS, u as heldNoLonger, v as upload } from "./hosted-client-D7Pk_Oo1.mjs";
6
+ import { a as requireHostedMetro, i as requestHostedMetro, n as closeHostedMetro } from "./metro-gateway-BnHdqMO_.mjs";
7
+ import { s as writeHostedNative } from "./ios-state-BZ03NFgF.mjs";
8
8
  import { randomUUID } from "node:crypto";
9
9
  import { readFileSync } from "node:fs";
10
10
  import { join } from "node:path";
@@ -124,12 +124,19 @@ function hostedMetroPortProbe(machine, note) {
124
124
  return !window.busy.has(port);
125
125
  };
126
126
  }
127
- async function placeHostedNative(target, { root, slot, bundle, handoff, bundleId, selectors, release, mode = release ? "release" : "development", devClientScheme, reserved, note, enterPhase = () => {}, metro = requestHostedMetro, metroPort, platform = "ios" }) {
127
+ function placeHostedNative(target, options) {
128
+ const context = ambientContext();
129
+ return withDrainingCancellation(context, runCancellationSignal(context), () => placeHostedNativeOnce(target, options));
130
+ }
131
+ async function placeHostedNativeOnce(target, { root, slot, bundle, handoff, bundleId, selectors, release, mode = release ? "release" : "development", devClientScheme, reserved, note, enterPhase = () => {}, metro = requestHostedMetro, metroPort, platform = "ios" }) {
128
132
  let host = target.host;
133
+ const signal = runCancellationSignal(ambientContext());
134
+ const closeOnAbort = () => host.connection.close();
135
+ signal?.addEventListener("abort", closeOnAbort, { once: true });
129
136
  try {
130
137
  if (mode === "development" && metro === requestHostedMetro) requireHostedMetro(root);
131
138
  enterPhase("device");
132
- host = await connectHost(host.machine, void 0, true);
139
+ host = await connectHost(host.machine, void 0, true, signal);
133
140
  target.host = host;
134
141
  requireHostedAppMode(host, platform, mode);
135
142
  let session = (target.session ? await attach(host, target.session.id, void 0, platform) : null) ?? await reserveHostedNative(host, target, {
@@ -266,6 +273,7 @@ async function placeHostedNative(target, { root, slot, bundle, handoff, bundleId
266
273
  } catch (error) {
267
274
  throw hostingRefusal(host.machine, error);
268
275
  } finally {
276
+ signal?.removeEventListener("abort", closeOnAbort);
269
277
  if (platform === "android") host.connection.close();
270
278
  }
271
279
  }
@@ -286,13 +294,6 @@ async function stopHostedNative(root, slot, signal, platform = "ios") {
286
294
  signal?.addEventListener("abort", cancel, { once: true });
287
295
  try {
288
296
  host = await connectHost(placement.machine, void 0, false, signal);
289
- try {
290
- await pullHostedNativeLogs(root, name, placement, host, true, platform, signal);
291
- } catch (error) {
292
- signal?.throwIfAborted();
293
- ambientWrite("stderr", `Could not copy final native logs from ${placement.machine}: ${error.message}\n`);
294
- }
295
- signal?.throwIfAborted();
296
297
  const stopped = await settle(host, hostedSession(host, await call(host, "device-host.stop", { session: placement.session }), platform), ["stopping"], SESSION_TIMEOUT_MS, platform, signal);
297
298
  signal?.throwIfAborted();
298
299
  if (stopped.state !== "stopped") throw unknownSession(host, stopped);
@@ -1,12 +1,11 @@
1
- import { k as workspaceLogsDir$1, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-pUg3_RRA.mjs";
2
- import { V as deviceSlotKey, _ as loadConfig$1 } from "./config-BktkY_zC.mjs";
3
- import { o as formatLongDuration } from "./command-output-BF5AR2dL.mjs";
4
- import { r as createNdjsonWriter } from "./ndjson-CgE_o3Dl.mjs";
5
- import { P as workspaceBuildInProgress, k as collectOwnedDeviceActivity } from "./budget-k2mZGvvk.mjs";
1
+ import { k as workspaceLogsDir$1, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-BjqdjnJR.mjs";
2
+ import { V as deviceSlotKey, _ as loadConfig$1 } from "./config-Cn94Jc0g.mjs";
3
+ import { o as formatLongDuration } from "./command-output-Dj-WT4BP.mjs";
4
+ import { i as createNdjsonWriter } from "./ndjson-Dy2W4vRa.mjs";
5
+ import { L as workspaceBuildInProgress, ft as teardownOwnedIosSim, j as collectOwnedDeviceActivity, ut as teardownOwnedAvd } from "./workspaces-DFbj07jp.mjs";
6
6
  import { t as canonicalPath } from "./paths-BsJMoPP2.mjs";
7
- import { A as teardownOwnedIosSim, O as teardownOwnedAvd } from "./workspaces-g2lhdBXF.mjs";
8
- import { _ as workspaceDeviceLastUseAt } from "./activity-Lnb_EoRY.mjs";
9
- import { d as listAllIosSims } from "./ios-WxpDJ5T1.mjs";
7
+ import { _ as workspaceDeviceLastUseAt } from "./activity-Cd-ysFes.mjs";
8
+ import { d as listAllIosSims } from "./ios-E26qSpkb.mjs";
10
9
  import { join } from "node:path";
11
10
  import { LOG_ROTATE_BYTES } from "@stim-cli/core";
12
11
  import { DEVICE_IDLE_SHUTDOWN_KEY, DEVICE_RECLAIM_REASON, readDeviceIdleShutdowns } from "@stim-cli/core/state";
@@ -1,39 +1,40 @@
1
- import { a as recordWorkspaceUseAsync, k as workspaceLogsDir$1 } from "./workspace-state-pUg3_RRA.mjs";
2
- import { B as deviceSlotFileKey, W as parseDeviceSlotOption, q as validateDeviceSlot } from "./config-BktkY_zC.mjs";
3
- import { _ as stepTimer, g as stepClock, i as formatDuration, l as phaseLine } from "./command-output-BF5AR2dL.mjs";
4
- import { C as iosSigningIdentitySha1Setting, M as metroPortSetting, P as metroWarmupUrlSetting, R as projectSettingsContextAsync, S as iosSigningIdentitySettingError, _ as iosLanHostSetting, a as SETTING_SHAPE_REMEDY, g as deviceReclaimIdleMinutesSetting, it as tunnelModeSetting, v as iosLanHostSettingError, w as iosSigningIdentitySha1SettingError, x as iosSigningIdentitySetting, z as publicUrlSetting } from "./settings-CosW5X-S.mjs";
5
- import { t as NO_PROJECT_REFUSAL } from "./project-BUu6Is4k.mjs";
6
- import { ft as POOL_SETTING_REMEDY, vt as parkedMaxSetting } from "./android-DTAcRwBC.mjs";
7
- import { G as runFailureRecord, I as NO_BUILD_PROGRESS, J as thrownRunFailureRecord, K as startBuildProgress, Un as runProcessOperation, Ut as binOnPath, Vn as exitAfterFlush, Y as createRunRecorder, hn as DEFAULT_METRO_PORT, q as tapBuildLog, tt as statsProjectKey$1, ur as ownedSessionName } from "./budget-k2mZGvvk.mjs";
8
- import { d as runCancellationSignal, f as withNativeBuildRun, r as cancelledFailure, u as runCancellation } from "./native-run-BfIDFKLH.mjs";
9
- import { i as createIosSimSnapshot } from "./ios-WxpDJ5T1.mjs";
1
+ import { a as recordWorkspaceUseAsync, k as workspaceLogsDir$1 } from "./workspace-state-BjqdjnJR.mjs";
2
+ import { B as deviceSlotFileKey, W as parseDeviceSlotOption, q as validateDeviceSlot } from "./config-Cn94Jc0g.mjs";
3
+ import { _ as stepTimer, g as stepClock, i as formatDuration, l as phaseLine } from "./command-output-Dj-WT4BP.mjs";
4
+ import { B as publicUrlSetting, C as iosSigningIdentitySettingError, F as metroWarmupUrlSetting, N as metroPortSetting, S as iosSigningIdentitySetting, T as iosSigningIdentitySha1SettingError, a as SETTING_SHAPE_REMEDY, g as deviceReclaimIdleMinutesSetting, ot as tunnelModeSetting, v as iosLanHostSetting, w as iosSigningIdentitySha1Setting, y as iosLanHostSettingError, z as projectSettingsContextAsync } from "./settings-BDVI8Ivc.mjs";
5
+ import { t as NO_PROJECT_REFUSAL } from "./project-DYj-HVx6.mjs";
6
+ import { ft as POOL_SETTING_REMEDY, vt as parkedMaxSetting } from "./android-DriNoAVy.mjs";
7
+ import { En as runProcessOperation, Et as binOnPath, Qt as DEFAULT_METRO_PORT, qn as ownedSessionName, wn as exitAfterFlush } from "./ccache-BWTze1Ls.mjs";
8
+ import { J as runFailureRecord, X as tapBuildLog, Y as startBuildProgress, Z as thrownRunFailureRecord, et as createRunRecorder, ot as statsProjectKey$1, z as NO_BUILD_PROGRESS } from "./workspaces-DFbj07jp.mjs";
9
+ import { Q as cancelledFailure, at as runCancellation, k as COMPILATION_CACHE_NOT_RUN, ot as runCancellationSignal, st as withNativeBuildRun } from "./toolchain-CbCG6C5Z.mjs";
10
+ import { i as createIosSimSnapshot } from "./ios-E26qSpkb.mjs";
10
11
  import { d as optimizationBuildProfile, l as artifactCachePolicy } from "./errors-DHm_U5gv.mjs";
11
- import { k as COMPILATION_CACHE_NOT_RUN } from "./toolchain-J4J8MrAr.mjs";
12
- import { S as setRemoteLogSink, d as simulatorRuntime } from "./client-D9CaRks-.mjs";
13
- import { a as parseBuildMachineOption } from "./selection-BNPBZ6T5.mjs";
14
- import { r as hostedMetroSettings } from "./metro-gateway-B6_PgD0L.mjs";
15
- import { i as writeDevicePlacementAsync } from "./ios-state-Cw7-WQf2.mjs";
16
- import { t as devClientPortBusy } from "./hosted-native-CpDB3-PO.mjs";
17
- import { f as waitFlagConflict, o as leaseExpiryText } from "./device-lease-run-BmvIl7bI.mjs";
18
- import { _ as resolveIosWait, a as deviceModelRefusal, b as resolveSimulatorAppFlag, c as iosProjectPathError, d as ownedSimFailure, g as resolveIosBuildSetup, h as resolveDeviceType, i as deviceLabel, m as resolveConfiguration, n as buildLogFile, r as createIosDeviceWaitRun, u as isReleaseConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-CVOCp0Ft.mjs";
19
- import { r as isEasBuildFailure } from "./eas-build-Dsj93iM9.mjs";
20
- import { r as isPhysicalDeviceRequest, t as ensureDevServer } from "./native-runtime-Dq3RBcON.mjs";
21
- import "./dev-client-DXR_tPVY.mjs";
22
- import { t as didSetUpDevice } from "./device-BK-zwyd_.mjs";
12
+ import { S as setRemoteLogSink, d as simulatorRuntime } from "./client-xsdxrhWA.mjs";
13
+ import { s as parseBuildMachineOption } from "./selection-Bs8phwhN.mjs";
14
+ import { r as hostedMetroSettings } from "./metro-gateway-BnHdqMO_.mjs";
15
+ import { i as writeDevicePlacementAsync } from "./ios-state-BZ03NFgF.mjs";
16
+ import { t as devClientPortBusy } from "./hosted-native-CdgaiuyP.mjs";
17
+ import { i as restoreLightenedDependencies, n as printLightenedFailure } from "./lightened-BCsdAGj_.mjs";
18
+ import { f as waitFlagConflict, o as leaseExpiryText } from "./device-lease-run-DwsGfjUN.mjs";
19
+ import { _ as resolveIosWait, a as deviceModelRefusal, b as resolveSimulatorAppFlag, c as iosProjectPathError, d as ownedSimFailure, g as resolveIosBuildSetup, h as resolveDeviceType, i as deviceLabel, m as resolveConfiguration, n as buildLogFile, r as createIosDeviceWaitRun, u as isReleaseConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-Be0UeVZU.mjs";
20
+ import { r as isEasBuildFailure } from "./eas-build-CjNSWmjo.mjs";
21
+ import { i as launchOutcomeRecord, r as isPhysicalDeviceRequest, t as ensureDevServer } from "./native-runtime-DqaIBO5w.mjs";
22
+ import "./dev-client-BMca82xo.mjs";
23
+ import { t as didSetUpDevice } from "./device-tM41-TUq.mjs";
23
24
  import { t as unsupportedPlan } from "./project-plan-BPwbLwQu.mjs";
24
- import { a as refusePlan, i as printPlan, n as planFlagRefusal } from "./build-plan-DrMMdayj.mjs";
25
- import { a as lastBuildRecord, o as reportIosResult, s as writeLastBuild } from "./ios-project-Ty5pHl9O.mjs";
26
- import { t as acquireIosArtifact } from "./artifact-CsAP6AGK.mjs";
27
- import { a as hostedIosSelectors, i as hostedIosMetroNote, n as connectIosTarget, o as iosPlacementBudget, r as deviceRemoteConflict, s as selectIosPlacement, t as connectIosBackend } from "./remote-C8S7FlPF.mjs";
28
- import { a as iosPoolCandidates, c as isWirelessIosDevice, f as resolveIosPhysicalDevice, o as iosPoolNoCandidatesRefusal, r as iosDeviceBounds } from "./ios-device-CsyryvpT.mjs";
29
- import { i as lanOriginUrlFor, l as verifyIosMetroRun, n as chooseLanAddress, o as finishIosRun, t as DEFAULT_DEPS } from "./dependencies-Dw6wfQdv.mjs";
30
- import { basename, join } from "node:path";
25
+ import { a as refusePlan, i as printPlan, n as planFlagRefusal } from "./build-plan-CBqYbzYM.mjs";
26
+ import { a as iosLedgerDevice, c as writeLastBuild, o as lastBuildRecord, s as reportIosResult } from "./ios-project-D8Jcy_br.mjs";
27
+ import { t as acquireIosArtifact } from "./artifact-faemIZv5.mjs";
28
+ import { a as hostedIosSelectors, i as hostedIosMetroNote, n as connectIosTarget, o as iosPlacementBudget, r as deviceRemoteConflict, s as selectIosPlacement, t as connectIosBackend } from "./remote-y6n99WMW.mjs";
29
+ import { a as iosPoolCandidates, c as isWirelessIosDevice, f as resolveIosPhysicalDevice, o as iosPoolNoCandidatesRefusal, r as iosDeviceBounds } from "./ios-device-C_QkIf1Z.mjs";
30
+ import { i as lanOriginUrlFor, l as verifyIosMetroRun, n as chooseLanAddress, o as finishIosRun, t as DEFAULT_DEPS } from "./dependencies-BGokZ-Ng.mjs";
31
+ import { join } from "node:path";
31
32
  import { workspaceId } from "@stim-cli/core";
32
33
  import { hostedIosStatus, parseMachine } from "@stim-cli/core/state";
33
34
  import chalk from "chalk";
34
35
  import { InvalidArgumentError } from "commander";
35
36
  //#region src/commands/ios/hosted.ts
36
- async function finishHostedIosRun({ target, d, artifact, root, slot, release, appMode, isExpo, metroCheck, metroPort, logsDir, fail, note, phase, enterPhase, enterActivity, selectors, projectBundleId, ...report }) {
37
+ async function finishHostedIosRun({ target, d, artifact, root, slot, release, appMode, isExpo, metroCheck, metroPort, logsDir, fail, note, phase, enterPhase, enterActivity, selectors, projectBundleId, logWriter, ...report }) {
37
38
  const bundleId = artifact.bundleId ?? (await d.readBundleId(artifact.path) || await projectBundleId());
38
39
  if (!bundleId) return fail({
39
40
  code: "STIM_INSTALL_FAILED",
@@ -41,6 +42,7 @@ async function finishHostedIosRun({ target, d, artifact, root, slot, release, ap
41
42
  });
42
43
  const devClientScheme = appMode === "development" && isExpo ? d.devClientScheme(root, artifact.path) ?? void 0 : void 0;
43
44
  const launchedAt = d.now();
45
+ let marked = false;
44
46
  let run;
45
47
  try {
46
48
  run = await d.placeHostedIos(target, {
@@ -54,7 +56,25 @@ async function finishHostedIosRun({ target, d, artifact, root, slot, release, ap
54
56
  mode: appMode,
55
57
  ...appMode === "development" && isExpo ? { devClientScheme } : {},
56
58
  metroPort,
57
- reserved: (placement) => d.writeHostedIos(root, slot, placement),
59
+ reserved: (placement) => {
60
+ if (placement.device && !marked) {
61
+ marked = true;
62
+ logWriter().write({
63
+ src: "build",
64
+ level: "info",
65
+ marker: true,
66
+ event: "launch_attempt",
67
+ ts: d.now(),
68
+ platform: "ios",
69
+ appId: bundleId,
70
+ deviceId: placement.session,
71
+ remote: true,
72
+ host: target.host.machine,
73
+ msg: `launching ${bundleId} on ${target.host.machine}`
74
+ });
75
+ }
76
+ return d.writeHostedIos(root, slot, placement);
77
+ },
58
78
  note,
59
79
  enterPhase
60
80
  });
@@ -76,6 +96,7 @@ async function finishHostedIosRun({ target, d, artifact, root, slot, release, ap
76
96
  }, slot);
77
97
  let launched = run.launched;
78
98
  let launchWarning;
99
+ let unattributed = false;
79
100
  if (appMode === "development") {
80
101
  const hostedLogs = d.followHostedLaunchLogs(root, slot, "ios", launchedAt);
81
102
  let verification;
@@ -117,7 +138,17 @@ async function finishHostedIosRun({ target, d, artifact, root, slot, release, ap
117
138
  });
118
139
  launched = verification.state === true ? true : verification.state === "bundling" ? "bundling" : "unverified";
119
140
  launchWarning = verification.warning;
141
+ unattributed = verification.unattributed ?? false;
120
142
  }
143
+ logWriter().write(launchOutcomeRecord({
144
+ launchState: launched,
145
+ release,
146
+ process: appMode === "process",
147
+ bundleId,
148
+ configuration: report.configuration,
149
+ metroPort,
150
+ unattributed
151
+ }));
121
152
  if (launched === "unverified") note(`Launch on ${target.host.machine} is unverified; check the hosted app, then retry stim ios --remote ${target.host.machine}.`);
122
153
  const cache = artifact.cache;
123
154
  const device = run.placement.device;
@@ -207,9 +238,9 @@ function iosCommand(program) {
207
238
  registerIos(program);
208
239
  }
209
240
  function registerIos(program, deps = {}) {
210
- program.command("ios").description("Build (or restore from the fingerprint cache), install and launch this workspace's app on its owned simulator. React Native and Expo Debug runs start the dev server when it is not running.").option("--eas-profile <name>", "Download a matching EAS development build; on a miss, print the build command without running it").option("--slot <name>", "Reusable device slot within this workspace (default: default)", parseDeviceSlotOption).option("--remote-build <value>", "Build on auto, local, or one named machine; a name refuses without fallback", parseBuildMachineOption).option("--json", "Emit the facts as a single JSON line on stdout; every other line goes to stderr").option("--plan", "Predict the next build without building, booting or installing: resolve the fingerprint, check the local then remote cache, and print the expected cache result and duration. Writes no Stim state.").option("--scheme <name>", "Shared Xcode app scheme to build; overrides automatic scheme selection, not the app URL scheme").option("--no-metro-check", "Skip the \"is this workspace's dev server running?\" check: do not start it, and build anyway").option("--no-build-cache", "Build fresh, ignoring cached artifacts (local and the project's build-cache provider); the fresh build still replaces the cache entry").option("--configuration <name>", "Xcode configuration to build (e.g. Release). A non-Debug configuration embeds the JS bundle and skips Metro entirely. Overrides the ios.configuration setting. Default: Debug").option("--device-type <name>", "Simulator model to create this workspace's owned sim as, exactly as `xcrun simctl list devicetypes` names it (e.g. \"iPad Pro 13-inch (M5)\"). Overrides the ios.deviceType setting for this invocation. A model no installed runtime can create refuses with STIM_BAD_ARG and prints the models they do offer.").option("--runtime <version>", "Simulator runtime to create this workspace's owned sim on, as a version (\"18.5\") or a runtime's full name (\"iOS 18.5\"); nothing else matches. Overrides the ios.runtime setting for this invocation. An unknown version refuses with STIM_BAD_ARG and prints the installed runtimes.").option("--simulator-app <app>", "Open the owned simulator in xcode, siniulator, or stim-desktop for this run, overriding the machine iosSimulatorApp setting. Also opens an already running simulator; local simulators only.").option("--device [udid]", "Build the iphoneos slice for a connected iPhone, install it, and launch it, instead of using this workspace's owned simulator. The phone can be cabled or paired over Wi-Fi. With no UDID, the first cabled device this workspace can lease is used, waiting for one that is busy; a Wi-Fi device is used only when no cabled one is connected and ready. In Debug the app is wired to this workspace's Metro over the LAN. Stim never creates, boots, or deletes a physical device.").option("--remote <target>", "Run on eas, proxy, or an approved Mac in remote.machines; named Macs never fall back locally. auto places on an approved Mac when this machine is full or busy. local runs here, whatever ios.remote says.", (value) => {
241
+ program.command("ios").description("Build (or restore from the fingerprint cache), install and launch this workspace's app on its owned simulator. React Native and Expo Debug runs start the dev server when it is not running.").option("--eas-profile <name>", "Download a matching EAS development build; on a miss, print the build command without running it").option("--slot <name>", "Reusable device slot within this workspace (default: default)", parseDeviceSlotOption).option("--remote-build <value>", "Build on local, auto, remote (remote machines first), remote-only (never here), or one named machine; a name refuses without fallback", parseBuildMachineOption).option("--json", "Emit the facts as a single JSON line on stdout; every other line goes to stderr").option("--plan", "Predict the next build without building, booting or installing: resolve the fingerprint, check the local then remote cache, and print the expected cache result and duration. Writes no Stim state.").option("--scheme <name>", "Shared Xcode app scheme to build; overrides automatic scheme selection, not the app URL scheme").option("--no-metro-check", "Skip the \"is this workspace's dev server running?\" check: do not start it, and build anyway").option("--no-build-cache", "Build fresh, ignoring cached artifacts (local and the project's build-cache provider); the fresh build still replaces the cache entry").option("--configuration <name>", "Xcode configuration to build (e.g. Release). A non-Debug configuration embeds the JS bundle and skips Metro entirely. Overrides the ios.configuration setting. Default: Debug").option("--device-type <name>", "Simulator model to create this workspace's owned sim as, exactly as `xcrun simctl list devicetypes` names it (e.g. \"iPad Pro 13-inch (M5)\"). Overrides the ios.deviceType setting for this invocation. A model no installed runtime can create refuses with STIM_BAD_ARG and prints the models they do offer.").option("--runtime <version>", "Simulator runtime to create this workspace's owned sim on, as a version (\"18.5\") or a runtime's full name (\"iOS 18.5\"); nothing else matches. Overrides the ios.runtime setting for this invocation. An unknown version refuses with STIM_BAD_ARG and prints the installed runtimes.").option("--simulator-app <app>", "Open the owned simulator in xcode, siniulator, or stim-desktop for this run, overriding the machine iosSimulatorApp setting. Also opens an already running simulator; local simulators only.").option("--device [udid]", "Build the iphoneos slice for a connected iPhone, install it, and launch it, instead of using this workspace's owned simulator. The phone can be cabled or paired over Wi-Fi. With no UDID, the first cabled device this workspace can lease is used, waiting for one that is busy; a Wi-Fi device is used only when no cabled one is connected and ready. In Debug the app is wired to this workspace's Metro over the LAN. Stim never creates, boots, or deletes a physical device.").option("--remote <target>", "Run on eas, proxy, or an approved Mac in remote.machines; named Macs never fall back locally. auto places on an approved Mac when this machine is full or busy. remote tries remote.machines in order first and runs here only when none takes it. remote-only never runs here. local runs here, whatever ios.remote says.", (value) => {
211
242
  if (parseMachine(value)) return value.trim();
212
- throw new InvalidArgumentError("expected eas, proxy, auto, local, or a remote Mac name");
243
+ throw new InvalidArgumentError("expected eas, proxy, local, auto, remote, remote-only, or a remote Mac name");
213
244
  }).option("--wait <seconds>", "How long to wait for another workspace to release the phone it leases, before refusing with STIM_DEVICE_BUSY (default 60, 0 refuses at once). Without --device, wait for an owned-device slot (default 600 seconds; --no-wait refuses immediately).").option("--no-wait", "Install on a phone another workspace leases instead of waiting: this run takes no lease and, when both workspaces build the same app id, the install terminates the holder's running app. Without --device, refuse a full device cap or existing slot queue immediately.").action(async (opts) => {
214
245
  if (opts.plan) {
215
246
  await planIos(opts, {
@@ -234,6 +265,12 @@ function runIosOperation(context, root, opts = {}, deps = {}, onFailure = () =>
234
265
  platform: "ios",
235
266
  slot: opts.slot ?? "default"
236
267
  }, async (claim) => {
268
+ const lightened = await restoreLightenedDependencies(root, context);
269
+ if (lightened) {
270
+ printLightenedFailure(context, lightened, Boolean(opts.json));
271
+ onFailure(lightened);
272
+ return null;
273
+ }
237
274
  await recordWorkspaceUseAsync(root, /* @__PURE__ */ new Date(), context.env, context.cwd, context.signal);
238
275
  const progress = startBuildProgress({
239
276
  root,
@@ -307,6 +344,10 @@ function iosSlotDeps(d, slot) {
307
344
  ...args,
308
345
  slot
309
346
  }),
347
+ ensureBooted: (args) => base.ensureBooted({
348
+ ...args,
349
+ slot
350
+ }),
310
351
  checkDeviceCapacity: (args) => base.checkDeviceCapacity({
311
352
  ...args,
312
353
  slot
@@ -435,7 +476,15 @@ async function runIos(context, projectRoot, opts = {}, overrides = {}, progress
435
476
  let devicePlacement;
436
477
  let builtConfiguration = null;
437
478
  let acquiredBuild = null;
438
- const recordFailedBuild = (build, errorCode) => writeLastBuild(root, lastBuildRecord({
479
+ let builtScheme;
480
+ let builtDevice = null;
481
+ const recordFailedBuild = (build, errorCode, why = {}) => writeLastBuild(root, lastBuildRecord({
482
+ ledger: {
483
+ scheme: builtScheme,
484
+ device: builtDevice,
485
+ message: why.message,
486
+ remedy: why.remedy
487
+ },
439
488
  devicePlacement,
440
489
  buildMachine,
441
490
  ...build,
@@ -461,7 +510,10 @@ async function runIos(context, projectRoot, opts = {}, overrides = {}, progress
461
510
  if (remedy) note(chalk.dim(phaseLine("remedy", remedy)));
462
511
  if (logPath) note(chalk.dim(phaseLine("log", logPath)));
463
512
  const failedBuild = build ?? acquiredBuild;
464
- if (failedBuild) recordFailedBuild(failedBuild, code);
513
+ if (failedBuild) recordFailedBuild(failedBuild, code, {
514
+ message,
515
+ remedy
516
+ });
465
517
  if (acquiredBuild) logWriter().write(runFailureRecord({
466
518
  code,
467
519
  message,
@@ -549,6 +601,7 @@ async function runIos(context, projectRoot, opts = {}, overrides = {}, progress
549
601
  const configuration = opts.easProfile !== void 0 ? null : resolveConfiguration(opts.configuration, settings);
550
602
  builtConfiguration = configuration ?? "Debug";
551
603
  const buildScheme = resolveSchemeSelection(opts, settings);
604
+ builtScheme = buildScheme;
552
605
  const release = isReleaseConfiguration(configuration);
553
606
  const appMode = {
554
607
  metro: "development",
@@ -573,7 +626,6 @@ async function runIos(context, projectRoot, opts = {}, overrides = {}, progress
573
626
  const deviceSlotWait = {
574
627
  automatic: false,
575
628
  waitMs: deviceSlotWaitMs,
576
- displayName: basename(root),
577
629
  reclaimIdleMinutes: deviceReclaimIdleMinutesSetting(settings),
578
630
  ...deviceWaitRun.policy,
579
631
  onWait: (ms) => {
@@ -621,6 +673,7 @@ async function runIos(context, projectRoot, opts = {}, overrides = {}, progress
621
673
  }),
622
674
  simSnapshot,
623
675
  noWait: deviceSlotWaitMs === 0,
676
+ waitMs: deviceSlotWaitMs,
624
677
  note,
625
678
  phase,
626
679
  log: (entry) => logWriter().write(entry)
@@ -818,6 +871,7 @@ async function runIos(context, projectRoot, opts = {}, overrides = {}, progress
818
871
  const prepareMs = prepare();
819
872
  if (device.created || prepareMs >= 2e3) phase("device", `${deviceLabel(device, device.deviceUdid)} ${device.created ? "created" : "prepared"} (${formatDuration(prepareMs)})`);
820
873
  }
874
+ builtDevice = iosLedgerDevice(device);
821
875
  let bootDuration = "";
822
876
  let bootPending = false;
823
877
  let bootPromise;
@@ -970,7 +1024,7 @@ async function runIos(context, projectRoot, opts = {}, overrides = {}, progress
970
1024
  if (cancelled) return fail(cancelled);
971
1025
  if (acquiredBuild) {
972
1026
  const { code } = error;
973
- recordFailedBuild(acquiredBuild, typeof code === "string" ? code : void 0);
1027
+ recordFailedBuild(acquiredBuild, typeof code === "string" ? code : void 0, { message: error instanceof Error ? error.message : String(error) });
974
1028
  logWriter().write(thrownRunFailureRecord(error, progress.phase()));
975
1029
  }
976
1030
  recordRun({
@@ -1121,7 +1175,8 @@ async function runIos(context, projectRoot, opts = {}, overrides = {}, progress
1121
1175
  phase,
1122
1176
  enterPhase: progress.step,
1123
1177
  enterActivity: progress.activity,
1124
- selectors
1178
+ selectors,
1179
+ logWriter
1125
1180
  });
1126
1181
  if (!localBoot) {
1127
1182
  progress.step("device");
@@ -1,9 +1,9 @@
1
- import { h as shortUdid, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BF5AR2dL.mjs";
2
- import { In as pickDevClientScheme, Rn as schemesFromInfoPlist } from "./budget-k2mZGvvk.mjs";
3
- import { f as podAction, h as resolveDeviceType, i as deviceLabel, m as resolveConfiguration, n as buildLogFile, s as iosConfigurationSetting, t as appNameFromPath, u as isReleaseConfiguration, v as resolveRuntime } from "./support-CVOCp0Ft.mjs";
4
- import { n as ensureWorkspaceStorageSafely } from "./native-runtime-Dq3RBcON.mjs";
5
- import { t as devClientScheme } from "./dev-client-DXR_tPVY.mjs";
6
- import { a as lastBuildRecord, i as iosFacts, n as cacheDescription, s as writeLastBuild } from "./ios-project-Ty5pHl9O.mjs";
7
- import { d as replaceCollector, u as collectorEntry } from "./dependencies-Dw6wfQdv.mjs";
8
- import { n as registerIos, r as runIosOperation, t as iosCommand } from "./ios-ftxdQbJS.mjs";
1
+ import { h as shortUdid, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-Dj-WT4BP.mjs";
2
+ import { xn as schemesFromInfoPlist, yn as pickDevClientScheme } from "./ccache-BWTze1Ls.mjs";
3
+ import { f as podAction, h as resolveDeviceType, i as deviceLabel, m as resolveConfiguration, n as buildLogFile, s as iosConfigurationSetting, t as appNameFromPath, u as isReleaseConfiguration, v as resolveRuntime } from "./support-Be0UeVZU.mjs";
4
+ import { n as ensureWorkspaceStorageSafely } from "./native-runtime-DqaIBO5w.mjs";
5
+ import { t as devClientScheme } from "./dev-client-BMca82xo.mjs";
6
+ import { c as writeLastBuild, i as iosFacts, n as cacheDescription, o as lastBuildRecord } from "./ios-project-D8Jcy_br.mjs";
7
+ import { d as replaceCollector, u as collectorEntry } from "./dependencies-BGokZ-Ng.mjs";
8
+ import { n as registerIos, r as runIosOperation, t as iosCommand } from "./ios-B5HlVMhQ.mjs";
9
9
  export { appNameFromPath, buildLogFile, cacheDescription, collectorEntry, iosCommand as default, devClientScheme, deviceLabel, ensureWorkspaceStorageSafely, formatDuration, iosConfigurationSetting, iosFacts, isReleaseConfiguration, lastBuildRecord, phaseLine, pickDevClientScheme, podAction, registerIos, replaceCollector, resolveConfiguration, resolveDeviceType, resolveRuntime, runIosOperation, schemesFromInfoPlist, shortHash, shortUdid, writeLastBuild };
@@ -1,4 +1,4 @@
1
- import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
1
+ import { t as getExecutor } from "./exec-aULwtNly.mjs";
2
2
  //#region src/collector/ios.ts
3
3
  const MESSAGE_TYPE_LEVEL = {
4
4
  Debug: "debug",
@@ -90,6 +90,12 @@ const NOISE_RULES = [
90
90
  exactSubsystem: "com.apple.runtime-issues",
91
91
  category: "CFNetwork Performance Diagnostic",
92
92
  level: "warn"
93
+ },
94
+ {
95
+ id: "swiftui-invalid-configuration",
96
+ exactSubsystem: "com.apple.SwiftUI",
97
+ category: "Invalid Configuration",
98
+ level: "warn"
93
99
  }
94
100
  ];
95
101
  function ruleMatches(rule, { subsystem, category, message }) {
@@ -1,10 +1,10 @@
1
- import { l as WorkspaceProcessCleanupError, n as isTimeoutError, o as cancellableSleep, t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
- import { P as formatBytes, _ as loadConfig$1 } from "./config-BktkY_zC.mjs";
1
+ import { l as WorkspaceProcessCleanupError, n as isTimeoutError, o as cancellableSleep, t as getExecutor } from "./exec-aULwtNly.mjs";
2
+ import { P as formatBytes, _ as loadConfig$1 } from "./config-Cn94Jc0g.mjs";
3
3
  import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
4
- import { n as runOperationFileQuiet, t as runOperationFile } from "./operation-exec-CUZifp6Z.mjs";
5
- import { i as stimDesktopInstalledAsync, n as settingDefault, t as STIM_DESKTOP_OPEN_OPTIONS } from "./stim-desktop-6Dqp-gjX.mjs";
6
- import { Ct as forgetCreatedDeviceAsync, Et as recordCreatedDeviceAsync, dt as isStimOwnedSim } from "./android-DTAcRwBC.mjs";
7
- import { n as signedTailFor } from "./apk-signed-tail-B46U9hXc.mjs";
4
+ import { n as runOperationFileQuiet, t as runOperationFile } from "./operation-exec-Dp4FuIGR.mjs";
5
+ import { i as stimDesktopInstalledAsync, n as settingDefault, t as STIM_DESKTOP_OPEN_OPTIONS } from "./stim-desktop-CbWo21kb.mjs";
6
+ import { Ct as forgetCreatedDeviceAsync, Et as recordCreatedDeviceAsync, dt as isStimOwnedSim } from "./android-DriNoAVy.mjs";
7
+ import { n as signedTailFor } from "./apk-signed-tail-BHQHx3Rm.mjs";
8
8
  import { createHash } from "node:crypto";
9
9
  import { closeSync, existsSync, lstatSync, mkdtempSync, openSync, readSync, readdirSync, rmSync, writeFileSync } from "node:fs";
10
10
  import { tmpdir, totalmem } from "node:os";
@@ -621,6 +621,9 @@ async function readSpringBoardPid(udid) {
621
621
  return null;
622
622
  }
623
623
  }
624
+ function springBoardRunning(launchctlList) {
625
+ return /^\d+[ \t]+\S+[ \t]+com\.apple\.SpringBoard$/m.test(launchctlList);
626
+ }
624
627
  async function waitForSpringBoard(udid, deadline) {
625
628
  for (;;) {
626
629
  let output = null;
@@ -645,7 +648,10 @@ async function waitForSpringBoard(udid, deadline) {
645
648
  state: "unreadable",
646
649
  reason: `Could not read SpringBoard's startup state: ${output.trim() || "no output"}.`
647
650
  };
648
- if (Number(state[1]) > 0) return { state: "started" };
651
+ if (Number(state[1]) > 0) return {
652
+ state: "started",
653
+ pid: Number(state[1])
654
+ };
649
655
  }
650
656
  if (Date.now() >= deadline) return { state: "timed-out" };
651
657
  await cancellableSleep(SPRINGBOARD_POLL_MS);
@@ -706,7 +712,7 @@ async function awaitBootCommand(args, attemptMs, onLine) {
706
712
  const detail = lines.length ? `: ${lines.join(" | ")}` : "";
707
713
  throw new Error(`${command} failed with exit code ${result.code ?? "unknown"}${detail}`);
708
714
  }
709
- async function bootIosSim(udid, { timeoutMs = IOS_BOOT_TIMEOUT_MS, attemptMs = BOOTSTATUS_ATTEMPT_MS, simulatorApp, env, openViewer = true, label = udid, out = () => {} } = {}) {
715
+ async function bootIosSim(udid, { timeoutMs = IOS_BOOT_TIMEOUT_MS, attemptMs = BOOTSTATUS_ATTEMPT_MS, simulatorApp, env, openViewer = true, label = udid, out = () => {}, onPhase } = {}) {
710
716
  const exec = getExecutor();
711
717
  const viewer = configuredIosSimulatorViewer(simulatorApp, env);
712
718
  const started = Date.now();
@@ -747,6 +753,7 @@ async function bootIosSim(udid, { timeoutMs = IOS_BOOT_TIMEOUT_MS, attemptMs = B
747
753
  monitor.unref();
748
754
  try {
749
755
  try {
756
+ onPhase?.({ phase: "boot_requested" });
750
757
  await awaitBootCommand([
751
758
  "simctl",
752
759
  "boot",
@@ -779,15 +786,24 @@ async function bootIosSim(udid, { timeoutMs = IOS_BOOT_TIMEOUT_MS, attemptMs = B
779
786
  if (state !== "Booting" && state !== "Booted" && state !== void 0) throw new Error(`Simulator ${udid} reports "${state ?? "missing"}" after ${waited}s of boot wait.`);
780
787
  if (deadline - Date.now() <= 0) throw new Error(`Simulator ${udid} did not finish booting within ${Math.round(timeoutMs / 1e3)}s.`);
781
788
  }
789
+ onPhase?.({ phase: "bootstatus_done" });
782
790
  phase = "waiting for SpringBoard";
783
- if ((await waitForSpringBoard(udid, deadline)).state === "timed-out") throw new Error(`Simulator ${udid} did not finish booting within ${Math.round(timeoutMs / 1e3)}s.`);
791
+ const springBoard = await waitForSpringBoard(udid, deadline);
792
+ if (springBoard.state === "timed-out") throw new Error(`Simulator ${udid} did not finish booting within ${Math.round(timeoutMs / 1e3)}s.`);
793
+ if (springBoard.state === "started") onPhase?.({
794
+ phase: "springboard_started",
795
+ pid: springBoard.pid
796
+ });
784
797
  } catch (error) {
785
798
  const named = memoryCulpritAdvice(await memoryCulpritsUnderAsync(sample(), exec));
786
799
  throw new Error(`${error?.message || error} Last boot output: ${phase}. Highest observed memory pressure: ${worst ?? "unknown"}; unavailable samples: ${unknown}.${coverage()}${named ? ` ${named}` : ""} ${recovery} These observations do not establish an OOM crash.`, { cause: error });
787
800
  } finally {
788
801
  clearInterval(monitor);
789
802
  }
790
- if (openViewer) await viewer.open(udid);
803
+ if (openViewer) {
804
+ await viewer.open(udid);
805
+ onPhase?.({ phase: "viewer_opened" });
806
+ }
791
807
  }
792
808
  async function shutdownIosSim(udid, operation) {
793
809
  if (!operation) {
@@ -1168,4 +1184,4 @@ function parseIosRuntimes(out) {
1168
1184
  }] : []);
1169
1185
  }
1170
1186
  //#endregion
1171
- export { uninstallIosApp as A, memoryCulpritAdvice as B, renameIosSim as C, resolveOwnedIosSim as D, resolveIosCreation as E, memoryCulpritsUnder as F, readMemoryCulpritsAsync as H, memoryCulpritsUnderAsync as I, readHostMemoryPressure as L, configuredIosSimulatorViewer as M, parseIosSimulatorApp as N, sanitizeDeviceLabel as O, hostMemoryPressureAdvice as P, readHostMemoryPressureAsync as R, readSpringBoardPid as S, resetIosPrivacy as T, deviceHoldsApk as U, memoryCulpritFindings as V, deviceHoldsBundle as W, ownedSimName as _, createOwnedIosSim as a, parseSimctlList as b, eraseIosSim as c, listAllIosSims as d, listAllIosSimsAsync as f, listUserApps as g, listIosRuntimesAsync as h, createIosSimSnapshot as i, waitForSpringBoard as j, shutdownIosSim as k, iosRuntimeMatches as l, listIosRuntimes as m, bootIosSim as n, deleteIosSim as o, listIosDeviceTypesAsync as p, clearIosAppData as r, deleteParkedIosSim as s, IOS_BOOT_TIMEOUT_MS as t, iosSimulatorFailureAdvice as u, parkedSimName as v, resetIosKeychain as w, pickDefaultIosCreation as x, parseRuntimeVersion as y, reportMemoryCulprits as z };
1187
+ export { springBoardRunning as A, reportMemoryCulprits as B, renameIosSim as C, resolveOwnedIosSim as D, resolveIosCreation as E, hostMemoryPressureAdvice as F, deviceHoldsBundle as G, memoryCulpritFindings as H, memoryCulpritsUnder as I, memoryCulpritsUnderAsync as L, waitForSpringBoard as M, configuredIosSimulatorViewer as N, sanitizeDeviceLabel as O, parseIosSimulatorApp as P, readHostMemoryPressure as R, readSpringBoardPid as S, resetIosPrivacy as T, readMemoryCulpritsAsync as U, memoryCulpritAdvice as V, deviceHoldsApk as W, ownedSimName as _, createOwnedIosSim as a, parseSimctlList as b, eraseIosSim as c, listAllIosSims as d, listAllIosSimsAsync as f, listUserApps as g, listIosRuntimesAsync as h, createIosSimSnapshot as i, uninstallIosApp as j, shutdownIosSim as k, iosRuntimeMatches as l, listIosRuntimes as m, bootIosSim as n, deleteIosSim as o, listIosDeviceTypesAsync as p, clearIosAppData as r, deleteParkedIosSim as s, IOS_BOOT_TIMEOUT_MS as t, iosSimulatorFailureAdvice as u, parkedSimName as v, resetIosKeychain as w, pickDefaultIosCreation as x, parseRuntimeVersion as y, readHostMemoryPressureAsync as z };
@@ -1,6 +1,6 @@
1
- import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
- import { bn as appProcessFromPid, gn as INSTALL_ERROR } from "./budget-k2mZGvvk.mjs";
3
- import { n as TOOL_ERROR_PREFIX } from "./ios-device-B6HK951C.mjs";
1
+ import { t as getExecutor } from "./exec-aULwtNly.mjs";
2
+ import { $t as INSTALL_ERROR, rn as appProcessFromPid } from "./ccache-BWTze1Ls.mjs";
3
+ import { n as TOOL_ERROR_PREFIX } from "./ios-device-CiBA-er9.mjs";
4
4
  import { mkdtempSync, readFileSync, rmSync } from "node:fs";
5
5
  import { tmpdir } from "node:os";
6
6
  import { join } from "node:path";
@@ -1,4 +1,4 @@
1
- import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
1
+ import { t as getExecutor } from "./exec-aULwtNly.mjs";
2
2
  //#region src/collector/ios-device.ts
3
3
  const CONSOLE_ENV = { OS_ACTIVITY_DT_MODE: "enable" };
4
4
  const DEV_MENU_LAUNCH_ARGS = [