stim 1.36.0 → 1.37.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 (164) hide show
  1. package/README.md +3 -1
  2. package/dist/{acquire-artifact-DGTHCd0Q.mjs → acquire-artifact-zBUbPuDP.mjs} +2 -2
  3. package/dist/{act-CvN9xyV6.mjs → act-BGAFjY8f.mjs} +21 -21
  4. package/dist/{activity-BpdDvA8Q.mjs → activity-CdpXXSq2.mjs} +6 -6
  5. package/dist/{agent-device-usage-output-pbhaW7_k.mjs → agent-device-usage-output-D0582GHy.mjs} +5 -5
  6. package/dist/{android-e9WP10cE.mjs → android-BBwLpxRh.mjs} +43 -40
  7. package/dist/{android-5wkcMFDG.mjs → android-BPBARZMR.mjs} +2 -2
  8. package/dist/{android-SJx1V3R3.mjs → android-CGctfYpv.mjs} +7 -7
  9. package/dist/{android-B0qTdwnt.mjs → android-CaSsewbu.mjs} +5 -5
  10. package/dist/android-cas-compiler.mjs +1 -1
  11. package/dist/{android-cas-BS9_55U5.mjs → android-cas-p8gna03x.mjs} +4 -4
  12. package/dist/{android-image-BZ57YL6R.mjs → android-image-DY8KxK2m.mjs} +3 -3
  13. package/dist/api.d.mts +10 -3
  14. package/dist/api.mjs +34 -31
  15. package/dist/{apk-signed-tail-eZyXIrnc.mjs → apk-signed-tail-BMv-KLcB.mjs} +2 -2
  16. package/dist/{artifact-ubNdxo_K.mjs → artifact-BrNZTZtA.mjs} +12 -12
  17. package/dist/{artifact-C3srrGVU.mjs → artifact-BsimBWxG.mjs} +13 -13
  18. package/dist/{artifact-platform-DqCWUieN.mjs → artifact-platform-BaGL1i1X.mjs} +1 -1
  19. package/dist/{auto-placement-CKFpFCuq.mjs → auto-placement-CFKNrWLU.mjs} +7 -7
  20. package/dist/{browser-web-B63vLrj6.mjs → browser-web-YFsgCP_a.mjs} +15 -15
  21. package/dist/{build-B_Dx9SKJ.mjs → build-DIhuoozz.mjs} +29 -28
  22. package/dist/{build-cache-BW8T4oD2.mjs → build-cache-Dt-dhCJF.mjs} +6 -6
  23. package/dist/{build-plan-CeIooJqn.mjs → build-plan-CgnLDof9.mjs} +7 -7
  24. package/dist/{cache-manifest-CxWkZmUr.mjs → cache-manifest-BO0TIcPV.mjs} +1 -1
  25. package/dist/cache-manifest.mjs +1 -1
  26. package/dist/{cdp-C216kOAn.mjs → cdp-CgT47_9A.mjs} +1 -1
  27. package/dist/{chrome-C8sC5tdl.mjs → chrome-DL5znvmo.mjs} +1 -1
  28. package/dist/{cli-COdXswmc.mjs → cli-BGUrlSH3.mjs} +21 -21
  29. package/dist/cli.mjs +1 -1
  30. package/dist/{client-KSWIeQLA.mjs → client-DU6dnGX1.mjs} +7 -7
  31. package/dist/collector-run.mjs +7 -7
  32. package/dist/{command-output-T3cDctRE.mjs → command-output-ByEmIwur.mjs} +1 -1
  33. package/dist/{config-BA3TgoIP.mjs → config-CNmN-ndb.mjs} +2 -2
  34. package/dist/{dependencies-LH-7k1Vr.mjs → dependencies-BozoTBqa.mjs} +102 -64
  35. package/dist/{dependency-state-Blfp3AkG.mjs → dependency-state-BQeC4FVn.mjs} +2 -2
  36. package/dist/{detached-entry-tfrgGVWb.mjs → detached-entry-VqFeEE9W.mjs} +1 -1
  37. package/dist/{dev-client-MO_DjTZr.mjs → dev-client-3SQzMRXZ.mjs} +2 -2
  38. package/dist/{device-BZWt_aPJ.mjs → device-BIg1iExg.mjs} +11 -11
  39. package/dist/{device-DNTWFFB1.mjs → device-DGMvzoZZ.mjs} +13 -13
  40. package/dist/{device-android-BB9Lugr8.mjs → device-android-CBat355q.mjs} +9 -9
  41. package/dist/{device-capacity-CpAVcKgq.mjs → device-capacity-DWUOvY13.mjs} +19 -19
  42. package/dist/device-host-worker.mjs +16 -16
  43. package/dist/{device-pool-BJToGG-q.mjs → device-pool-B8IqZKqm.mjs} +3 -3
  44. package/dist/{device-provision-CxQDCtrc.mjs → device-provision-DWAoSKEw.mjs} +10 -10
  45. package/dist/{doctor-CYZ45LnX.mjs → doctor-Bknt0121.mjs} +24 -24
  46. package/dist/{doctor-DV639Iw_.mjs → doctor-CPzwqcXY.mjs} +15 -15
  47. package/dist/{doctor-C-46SkBe.mjs → doctor-CxgR5vPi.mjs} +1 -1
  48. package/dist/{doctor-fingerprint-DqWvIhMb.mjs → doctor-fingerprint-Bo4z8YNP.mjs} +1 -1
  49. package/dist/doctor-fingerprint.mjs +1 -1
  50. package/dist/{doctor-watchman-TZxYt_98.mjs → doctor-watchman-CPE4C8KV.mjs} +5 -5
  51. package/dist/{eas-build-Xf5Jd6LR.mjs → eas-build-CwOXKJwa.mjs} +4 -4
  52. package/dist/{eas-fallback-DNYPNinw.mjs → eas-fallback-Cnb12a50.mjs} +6 -6
  53. package/dist/{eas-session-ledger-CXZ4aix0.mjs → eas-session-ledger-TE1miVz5.mjs} +6 -6
  54. package/dist/{error-diagnostics-CvB5bpPU.mjs → error-diagnostics-CXTT3bYC.mjs} +10 -10
  55. package/dist/{exec-CGuDzt40.mjs → exec-L37dbiIb.mjs} +7 -1
  56. package/dist/{gc-DiUhrVFo.mjs → gc-0jdcnDHs.mjs} +19 -19
  57. package/dist/{gc-8Qm_K1iy.mjs → gc-1ZLq1djg.mjs} +2 -2
  58. package/dist/{guide-CuvHRP53.mjs → guide-COxIANZu.mjs} +76 -40
  59. package/dist/{hosted-android-D__HGVIO.mjs → hosted-android-D8JbIzgC.mjs} +4 -4
  60. package/dist/{hosted-client-DMOOu8vD.mjs → hosted-client-BLwuXEZS.mjs} +4 -4
  61. package/dist/{hosted-logs-CClIktQM.mjs → hosted-logs-BWEQNJx_.mjs} +7 -7
  62. package/dist/{hosted-logs-sync-B7XCeqVm.mjs → hosted-logs-sync-uWSrH2mf.mjs} +5 -5
  63. package/dist/{hosted-macos-D4sDJIbB.mjs → hosted-macos-BnCYAv1y.mjs} +6 -6
  64. package/dist/{hosted-native-BiiUG_Q6.mjs → hosted-native-OBT2sJxn.mjs} +8 -8
  65. package/dist/{ios-Qam0bT9n.mjs → ios-2Qr4_Zu2.mjs} +1 -1
  66. package/dist/{ios-BZuhvLGr.mjs → ios-Bjz7aPLy.mjs} +8 -8
  67. package/dist/{ios-BhfpRfNf.mjs → ios-BveW7qK1.mjs} +16 -6
  68. package/dist/{ios-BhpUWyN7.mjs → ios-CGyx4PA7.mjs} +32 -31
  69. package/dist/{ios-device-vhYL1N--.mjs → ios-device-ByrDWSpC.mjs} +3 -3
  70. package/dist/{ios-device-DLdEDWJj.mjs → ios-device-ygijU78G.mjs} +1 -1
  71. package/dist/{ios-project-Cz0S1Sz-.mjs → ios-project-XHg87vyQ.mjs} +7 -7
  72. package/dist/{ios-signing-BcH88ecn.mjs → ios-signing-CRYQ1W42.mjs} +3 -3
  73. package/dist/{ios-state-Avwz2cbZ.mjs → ios-state-enWc5P6U.mjs} +1 -1
  74. package/dist/{js-swap-Desu2iII.mjs → js-swap-C6vl3vEd.mjs} +60 -13
  75. package/dist/{launch-6ckG9UrC.mjs → launch-f3RnbFW5.mjs} +48 -28
  76. package/dist/{lightened-B6TnpHMX.mjs → lightened-Cdfmo8MO.mjs} +5 -5
  77. package/dist/{logs-CO0CJRiC.mjs → logs-DAjxBF3c.mjs} +6 -6
  78. package/dist/{logs-B-DMy1K0.mjs → logs-x3em2-oI.mjs} +7 -7
  79. package/dist/{macos-B1aCXhem.mjs → macos-D_LAseN9.mjs} +22 -22
  80. package/dist/{macos-CduEmWAK.mjs → macos-ZfpWlzBO.mjs} +1 -1
  81. package/dist/macos-run.mjs +1 -1
  82. package/dist/maintenance-run.mjs +6 -6
  83. package/dist/{metro-DM3yJL1M.mjs → metro-TIQ1Wft-.mjs} +4 -4
  84. package/dist/{metro-request-O8Q-JvBg.mjs → metro-request-DcUxyaq8.mjs} +2 -2
  85. package/dist/{named-ports-BvB_CO9B.mjs → named-ports-BfEMi9bK.mjs} +3 -3
  86. package/dist/{native-android-28NOG2-y.mjs → native-android-COOrNDk2.mjs} +18 -18
  87. package/dist/{native-gradle-artifact-inputs-DxVEtS6_.mjs → native-gradle-artifact-inputs-B4Mwydmf.mjs} +5 -5
  88. package/dist/{native-runtime-C3_NkUlW.mjs → native-runtime-UxUBU8up.mjs} +6 -6
  89. package/dist/{native-source-ChAGj7R1.mjs → native-source-D2ZfiQ6U.mjs} +1 -1
  90. package/dist/{native-xcode-inputs-BWFTw5cJ.mjs → native-xcode-inputs-DUv7Q3ok.mjs} +3 -3
  91. package/dist/{native-xcode-ios-B4Qoc7-U.mjs → native-xcode-ios-DXcteLVi.mjs} +18 -19
  92. package/dist/offload-worker.mjs +22 -22
  93. package/dist/{operation-exec-DKlBcKAL.mjs → operation-exec-DNynwpqO.mjs} +1 -1
  94. package/dist/{ownership-C3y8wLSl.mjs → ownership-CQTg6v1d.mjs} +3 -3
  95. package/dist/{page-Dj8IqvGM.mjs → page-CoN9al_x.mjs} +2 -2
  96. package/dist/{phone-reverses-BhSxbqom.mjs → phone-reverses-CHtco460.mjs} +4 -4
  97. package/dist/{placement-log-B8RCSzOm.mjs → placement-log-oQnELAvQ.mjs} +1 -1
  98. package/dist/{plan-placement-BI4r55aP.mjs → plan-placement-45EOlIG1.mjs} +6 -6
  99. package/dist/{ports-DhOSyWm9.mjs → ports-DKO7EUNt.mjs} +3 -3
  100. package/dist/{prebuild-Di2IhUue.mjs → prebuild-BKkj3OyL.mjs} +12 -12
  101. package/dist/{project-Clk1JAWL.mjs → project-BCtQz48d.mjs} +16 -16
  102. package/dist/{pull-request-BpMTNkMB.mjs → pull-request-m8cMZ3aE.mjs} +2 -2
  103. package/dist/pull-requests.mjs +1 -1
  104. package/dist/{react-native-android-bdHBMrnf.mjs → react-native-android-MI4ktuhL.mjs} +27 -31
  105. package/dist/{react-native-build-CJega_NM.mjs → react-native-build-dixAL2G8.mjs} +9 -9
  106. package/dist/{react-native-doctor-CY7BGITE.mjs → react-native-doctor-CvkWincj.mjs} +6 -6
  107. package/dist/{react-native-ios-Bo5EDVel.mjs → react-native-ios-DF5otoBR.mjs} +17 -18
  108. package/dist/{recorded-build-BuGL_fnm.mjs → recorded-build-CGHGCO8m.mjs} +20 -2
  109. package/dist/{recordings-6i2-x8LU.mjs → recordings-BcOzqFD1.mjs} +1 -1
  110. package/dist/{registration-DKjJGQ6p.mjs → registration-C-3PDR3X.mjs} +1 -1
  111. package/dist/{reload-A_axEbeS.mjs → reload-DGWfNFwQ.mjs} +16 -16
  112. package/dist/{reload-BvDuvygc.mjs → reload-DWxmO9dY.mjs} +1 -1
  113. package/dist/{remote-WK_swZEw.mjs → remote-CV2jBcLv.mjs} +9 -9
  114. package/dist/{remote-PD6CM0xp.mjs → remote-DWYGW2f5.mjs} +4 -4
  115. package/dist/{result-BkDpN5Mz.mjs → result-CWyxwPvZ.mjs} +17 -17
  116. package/dist/{run-CTFi4Nq2.mjs → run-FZtMQgrx.mjs} +2 -2
  117. package/dist/{server-bare-W0aPsRZE.mjs → server-bare-Ksh1NKeI.mjs} +2 -2
  118. package/dist/{server-command-S00-ddjK.mjs → server-command-BO2DIsJV.mjs} +5 -5
  119. package/dist/server-expo-9hQwyLze.mjs +2 -0
  120. package/dist/{server-expo-cc-cmfsl.mjs → server-expo-ZS9_WaNG.mjs} +3 -3
  121. package/dist/{settings-Bap-qjnp.mjs → settings-Ag4pbs0z.mjs} +5 -4
  122. package/dist/{settings-C_Xu4RNZ.mjs → settings-TYrzDh8T.mjs} +2 -2
  123. package/dist/{settings-payload-D5jjhmrw.mjs → settings-payload-CUM0DYwz.mjs} +5 -5
  124. package/dist/{settings-write-C5huI-iS.mjs → settings-write-D_9_IEx7.mjs} +6 -6
  125. package/dist/{simslim-DlBvwgeF.mjs → simslim-BMgpTRWe.mjs} +2 -2
  126. package/dist/{slot-launch-qEQVTth7.mjs → slot-launch-DW_29Bmu.mjs} +6 -6
  127. package/dist/{stage-CxVI_MlP.mjs → stage-_8k8p7uq.mjs} +2 -2
  128. package/dist/{start-CVzivp35.mjs → start-CdgtOksb.mjs} +1 -1
  129. package/dist/{start-YpT_JpQQ.mjs → start-CzBB5R7N.mjs} +12 -12
  130. package/dist/{state-B9VFI6r0.mjs → state-CfP-ccP8.mjs} +4 -4
  131. package/dist/{state-B4B5P4LU.mjs → state-DsrFh3yv.mjs} +2 -2
  132. package/dist/{stats-COoePEri.mjs → stats-BgTyuzib.mjs} +5 -5
  133. package/dist/{stats-report-BVRCqwWA.mjs → stats-report-Ci6TAfFm.mjs} +1 -1
  134. package/dist/{status-CIg0k7Qb.mjs → status-Bcdy5eHt.mjs} +24 -24
  135. package/dist/{status-CQWmNl1f.mjs → status-C2PdxK6q.mjs} +1 -1
  136. package/dist/{status-CIvU5-TF.mjs → status-C7Zzb-Eh.mjs} +1 -1
  137. package/dist/{status-watch--rfZynD_.mjs → status-watch-DY0EZcmg.mjs} +5 -5
  138. package/dist/status-worker.mjs +1 -1
  139. package/dist/{stim-desktop-D0P_bzmd.mjs → stim-desktop-DWGAfaud.mjs} +2 -2
  140. package/dist/{stop-BEBBruvD.mjs → stop-CbxsTKyZ.mjs} +5 -5
  141. package/dist/{stop-C3d5qG7C.mjs → stop-CkmBkNyg.mjs} +16 -16
  142. package/dist/{stop-BiI4_VFG.mjs → stop-iGkvEvDn.mjs} +2 -2
  143. package/dist/supervisor-run.mjs +15 -15
  144. package/dist/{support-BJbXovoO.mjs → support-CfYmOdQs.mjs} +13 -14
  145. package/dist/{support-Vckdzrmk.mjs → support-JZ4KRW0C.mjs} +7 -7
  146. package/dist/{swiftpm-artifact-inputs-DbuF-Yrr.mjs → swiftpm-artifact-inputs-C1rZDRDs.mjs} +4 -4
  147. package/dist/{swiftpm-macos-Bu8xeBfM.mjs → swiftpm-macos-DRTjC7Ff.mjs} +11 -11
  148. package/dist/{toolchain-DCnWAxQL.mjs → toolchain-BeD7tbBW.mjs} +6 -6
  149. package/dist/{toolchain-CIRdNl-c.mjs → toolchain-CNlKc9pH.mjs} +1 -1
  150. package/dist/trigger-Bp3lruF2.mjs +2 -0
  151. package/dist/{trigger-BtB4kbe0.mjs → trigger-G_gbfIVB.mjs} +2 -2
  152. package/dist/{warm-progress-DwsGBpph.mjs → warm-progress-CJQ8tk5O.mjs} +6 -6
  153. package/dist/{web-D2En0Wa5.mjs → web-BXbmysa1.mjs} +9 -9
  154. package/dist/web-BcaySU05.mjs +2 -0
  155. package/dist/web-run.mjs +8 -8
  156. package/dist/windows-report.mjs +1 -1
  157. package/dist/{workspace-state-BhwAJBgA.mjs → workspace-state-DOPXG2Gp.mjs} +3 -3
  158. package/dist/{workspaces-Dh5N70qW.mjs → workspaces-DCzDzydB.mjs} +15 -14
  159. package/dist/{worktree-DLm4s2Ib.mjs → worktree-6ngObKkw.mjs} +1 -1
  160. package/dist/{worktree-Yw3EW77B.mjs → worktree-BAC43Kio.mjs} +27 -27
  161. package/package.json +7 -7
  162. package/dist/server-expo-BWJDa7Qb.mjs +0 -2
  163. package/dist/trigger-D8B7QR0q.mjs +0 -2
  164. package/dist/web-Dpj70t4p.mjs +0 -2
@@ -1,20 +1,20 @@
1
- import { D as ownership_claim_exports, T as process_identity_exports, d as throwIfCancelled, f as WorkspaceProcessCleanupError, p as withWorkspaceProcessLock, t as getExecutor, u as cancelledError } from "./exec-CGuDzt40.mjs";
2
- import { E as workspaceDir, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, r as readWorkspaceState$1 } from "./workspace-state-BhwAJBgA.mjs";
3
- import { l as phaseLine } from "./command-output-T3cDctRE.mjs";
4
- import { m as getProject } from "./config-BA3TgoIP.mjs";
5
- import { N as metroPortSetting, a as SETTING_SHAPE_REMEDY, ct as webSettings } from "./settings-Bap-qjnp.mjs";
6
- import { b as isPackageResolvable, v as detectIsExpo } from "./project-Clk1JAWL.mjs";
7
- import { d as resolveProjectMetro } from "./metro-DM3yJL1M.mjs";
1
+ import { D as ownership_claim_exports, T as process_identity_exports, d as throwIfCancelled, f as WorkspaceProcessCleanupError, p as withWorkspaceProcessLock, t as getExecutor, u as cancelledError } from "./exec-L37dbiIb.mjs";
2
+ import { E as workspaceDir, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, r as readWorkspaceState$1 } from "./workspace-state-DOPXG2Gp.mjs";
3
+ import { l as phaseLine } from "./command-output-ByEmIwur.mjs";
4
+ import { m as getProject } from "./config-CNmN-ndb.mjs";
5
+ import { N as metroPortSetting, a as SETTING_SHAPE_REMEDY, ct as webSettings } from "./settings-Ag4pbs0z.mjs";
6
+ import { b as isPackageResolvable, v as detectIsExpo } from "./project-BCtQz48d.mjs";
7
+ import { d as resolveProjectMetro } from "./metro-TIQ1Wft-.mjs";
8
8
  import { c as readNdjsonGenerations$1 } from "./ndjson-CrjIsGzw.mjs";
9
- import { dn as readMetroRecords } from "./device-capacity-CpAVcKgq.mjs";
10
- import { f as webLogFile, m as webSupervisorLogFile, o as readWebRecord, s as updateWebRecord } from "./state-B9VFI6r0.mjs";
11
- import { ft as teardownBrowserHeld, x as resolveSupervisorTarget } from "./workspaces-Dh5N70qW.mjs";
12
- import { i as reserveBrowserPort, n as getNamedPort } from "./named-ports-BvB_CO9B.mjs";
13
- import { n as sendToOwnedPage, t as liveWebRecord } from "./page-Dj8IqvGM.mjs";
14
- import { o as resolveWorkspaceMetroPort } from "./start-YpT_JpQQ.mjs";
9
+ import { dn as readMetroRecords } from "./device-capacity-DWUOvY13.mjs";
10
+ import { f as webLogFile, m as webSupervisorLogFile, o as readWebRecord, s as updateWebRecord } from "./state-CfP-ccP8.mjs";
11
+ import { ft as teardownBrowserHeld, x as resolveSupervisorTarget } from "./workspaces-DCzDzydB.mjs";
12
+ import { i as reserveBrowserPort, n as getNamedPort } from "./named-ports-BfEMi9bK.mjs";
13
+ import { n as sendToOwnedPage, t as liveWebRecord } from "./page-CoN9al_x.mjs";
14
+ import { o as resolveWorkspaceMetroPort } from "./start-CzBB5R7N.mjs";
15
15
  import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
16
- import { n as windowsLauncherArgs } from "./detached-entry-tfrgGVWb.mjs";
17
- import { a as findChrome, t as CHROME_INSTALL_REMEDY } from "./chrome-C8sC5tdl.mjs";
16
+ import { n as windowsLauncherArgs } from "./detached-entry-VqFeEE9W.mjs";
17
+ import { a as findChrome, t as CHROME_INSTALL_REMEDY } from "./chrome-DL5znvmo.mjs";
18
18
  import { randomUUID } from "node:crypto";
19
19
  import { mkdirSync, openSync, statSync, watch } from "node:fs";
20
20
  import { ambientEnv } from "@stim-cli/core";
@@ -1,32 +1,32 @@
1
- import { d as throwIfCancelled, u as cancelledError, w as withDrainingCancellation } from "./exec-CGuDzt40.mjs";
2
- import { E as workspaceDir, a as recordWorkspaceUseAsync, k as workspaceLogsDir } from "./workspace-state-BhwAJBgA.mjs";
3
- import { l as phaseLine } from "./command-output-T3cDctRE.mjs";
4
- import { A as withConfigLockAsync, O as upsertProject, m as getProject, u as getConcurrencyLimits } from "./config-BA3TgoIP.mjs";
5
- import { J as resolveCacheProviderConfig, Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY } from "./settings-Bap-qjnp.mjs";
6
- import { f as projectRegistry, v as detectIsExpo } from "./project-Clk1JAWL.mjs";
7
- import { s as workspaceShareURL } from "./stim-desktop-D0P_bzmd.mjs";
8
- import { j as hostSystemImageArch } from "./android-SJx1V3R3.mjs";
1
+ import { d as throwIfCancelled, u as cancelledError, w as withDrainingCancellation } from "./exec-L37dbiIb.mjs";
2
+ import { E as workspaceDir, a as recordWorkspaceUseAsync, k as workspaceLogsDir } from "./workspace-state-DOPXG2Gp.mjs";
3
+ import { l as phaseLine } from "./command-output-ByEmIwur.mjs";
4
+ import { A as withConfigLockAsync, O as upsertProject, m as getProject, u as getConcurrencyLimits } from "./config-CNmN-ndb.mjs";
5
+ import { J as resolveCacheProviderConfig, Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY } from "./settings-Ag4pbs0z.mjs";
6
+ import { f as projectRegistry, v as detectIsExpo } from "./project-BCtQz48d.mjs";
7
+ import { s as workspaceShareURL } from "./stim-desktop-DWGAfaud.mjs";
8
+ import { j as hostSystemImageArch } from "./android-CGctfYpv.mjs";
9
9
  import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
10
- import { Jn as checkEasAuth, nr as resolveRemote, rr as uploadRemote } from "./device-capacity-CpAVcKgq.mjs";
11
- import { $ as tapBuildLog, Q as startBuildProgress, St as acquireBuildSlot, Tt as releaseBuildSlot, X as recordFinishedBuild, ct as recordRunStats, it as readRunEstimates, lt as statsProjectKey, rt as createRunRecorder } from "./workspaces-Dh5N70qW.mjs";
12
- import { H as readBundleId, _t as runCancellationSignal, vt as withNativeBuildRun } from "./toolchain-DCnWAxQL.mjs";
13
- import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-BpdDvA8Q.mjs";
14
- import { C as providerUploadOutcome, D as storedAppId } from "./build-cache-BW8T4oD2.mjs";
15
- import { m as listIosRuntimes } from "./ios-BhfpRfNf.mjs";
10
+ import { Jn as checkEasAuth, nr as resolveRemote, rr as uploadRemote } from "./device-capacity-DWUOvY13.mjs";
11
+ import { $ as tapBuildLog, Q as startBuildProgress, St as acquireBuildSlot, Tt as releaseBuildSlot, X as recordFinishedBuild, ct as recordRunStats, it as readRunEstimates, lt as statsProjectKey, rt as createRunRecorder } from "./workspaces-DCzDzydB.mjs";
12
+ import { H as readBundleId, _t as runCancellationSignal, vt as withNativeBuildRun } from "./toolchain-BeD7tbBW.mjs";
13
+ import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-CdpXXSq2.mjs";
14
+ import { C as providerUploadOutcome, D as storedAppId } from "./build-cache-Dt-dhCJF.mjs";
15
+ import { m as listIosRuntimes } from "./ios-BveW7qK1.mjs";
16
16
  import { d as optimizationBuildProfile, l as artifactCachePolicy } from "./errors-DHm_U5gv.mjs";
17
- import { C as setRemoteLogSink } from "./client-KSWIeQLA.mjs";
18
- import { L as resolveBuildPlacement, c as iosProjectPathError, g as resolveIosBuildSetup, m as resolveConfiguration, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-BJbXovoO.mjs";
19
- import { a as resolveEasDevelopmentBuild, r as isEasBuildFailure } from "./eas-build-Xf5Jd6LR.mjs";
20
- import { f as settleFingerprintCheck } from "./prebuild-Di2IhUue.mjs";
21
- import { n as ensureWorkspaceStorageSafely } from "./native-runtime-C3_NkUlW.mjs";
22
- import { n as recordBuild, r as recordedBuildKey } from "./recorded-build-BuGL_fnm.mjs";
23
- import { E as resolveVariant } from "./support-Vckdzrmk.mjs";
24
- import { t as acquireAndroidArtifact } from "./artifact-C3srrGVU.mjs";
25
- import { a as persistLastBuild, l as resolveAndroidBuildPlan, n as finishAndroidUpload } from "./result-BkDpN5Mz.mjs";
26
- import { o as lastBuildRecord } from "./ios-project-Cz0S1Sz-.mjs";
27
- import { t as acquireIosArtifact } from "./artifact-ubNdxo_K.mjs";
17
+ import { C as setRemoteLogSink } from "./client-DU6dnGX1.mjs";
18
+ import { L as resolveBuildPlacement, c as iosProjectPathError, g as resolveIosBuildSetup, m as resolveConfiguration, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-CfYmOdQs.mjs";
19
+ import { a as resolveEasDevelopmentBuild, r as isEasBuildFailure } from "./eas-build-CwOXKJwa.mjs";
20
+ import { f as settleFingerprintCheck } from "./prebuild-BKkj3OyL.mjs";
21
+ import { n as ensureWorkspaceStorageSafely } from "./native-runtime-UxUBU8up.mjs";
22
+ import { i as recordedBuildKey, n as pruneArtifactCopies, r as recordBuild } from "./recorded-build-CGHGCO8m.mjs";
23
+ import { E as resolveVariant } from "./support-JZ4KRW0C.mjs";
24
+ import { t as acquireAndroidArtifact } from "./artifact-BsimBWxG.mjs";
25
+ import { a as persistLastBuild, l as resolveAndroidBuildPlan, n as finishAndroidUpload } from "./result-CWyxwPvZ.mjs";
26
+ import { o as lastBuildRecord } from "./ios-project-XHg87vyQ.mjs";
27
+ import { t as acquireIosArtifact } from "./artifact-BrNZTZtA.mjs";
28
28
  import { constants, promises } from "node:fs";
29
- import { basename, join } from "node:path";
29
+ import { basename, dirname, join } from "node:path";
30
30
  import { hostSimulatorArch } from "@stim-cli/core";
31
31
  import chalk from "chalk";
32
32
  import { loadCacheProvider } from "@stim-cli/cache";
@@ -269,6 +269,7 @@ async function buildAndroidOperation(context, root, options, { artifactScope, ca
269
269
  appPath: built.apkPath,
270
270
  bundleId: built.androidPackage
271
271
  });
272
+ await pruneArtifactCopies(root, "android", dirname(built.apkPath), (line) => phase("artifacts", chalk.yellow(line)));
272
273
  stats.record({
273
274
  failed: false,
274
275
  cacheHit: record.cacheHit === "local" || record.cacheHit === "remote" ? record.cacheHit : false,
@@ -321,8 +322,7 @@ async function buildIosOperation(context, root, options) {
321
322
  const arch = options.arch === "all" ? null : options.arch ?? simulatorBuildArch({
322
323
  physical: false,
323
324
  remoteArch: null,
324
- hostArch: hostSimulatorArch(),
325
- configuration
325
+ hostArch: hostSimulatorArch()
326
326
  });
327
327
  const cache = artifactCachePolicy(optimizations, options.buildCache !== false, integration.runtimeKind(configuration) === "embedded-js");
328
328
  const phase = (label, line) => note(phaseLine(label, line));
@@ -551,6 +551,7 @@ async function buildIosOperation(context, root, options) {
551
551
  appPath: built.appPath,
552
552
  bundleId: built.bundleId
553
553
  });
554
+ await pruneArtifactCopies(root, "ios", dirname(built.appPath), (line) => phase("artifacts", chalk.yellow(line)));
554
555
  stats.record({
555
556
  failed: false,
556
557
  durationMs: Date.now() - started,
@@ -1,9 +1,9 @@
1
- import { d as throwIfCancelled, t as getExecutor, w as withDrainingCancellation } from "./exec-CGuDzt40.mjs";
2
- import { y as sharedBuildCache } from "./workspace-state-BhwAJBgA.mjs";
3
- import { a as killOnAbort, c as gitQuiet, o as git, r as childEnvironment, s as gitAsync } from "./operation-exec-DKlBcKAL.mjs";
4
- import { m as defaultAndroidLayout } from "./settings-Bap-qjnp.mjs";
5
- import { r as register } from "./cache-manifest-CxWkZmUr.mjs";
6
- import { r as writeSignedTail, t as computeSignedTail } from "./apk-signed-tail-eZyXIrnc.mjs";
1
+ import { d as throwIfCancelled, t as getExecutor, w as withDrainingCancellation } from "./exec-L37dbiIb.mjs";
2
+ import { y as sharedBuildCache } from "./workspace-state-DOPXG2Gp.mjs";
3
+ import { a as killOnAbort, c as gitQuiet, o as git, r as childEnvironment, s as gitAsync } from "./operation-exec-DNynwpqO.mjs";
4
+ import { m as defaultAndroidLayout } from "./settings-Ag4pbs0z.mjs";
5
+ import { r as register } from "./cache-manifest-BO0TIcPV.mjs";
6
+ import { r as writeSignedTail, t as computeSignedTail } from "./apk-signed-tail-BMv-KLcB.mjs";
7
7
  import { createHash } from "node:crypto";
8
8
  import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
9
9
  import { join } from "node:path";
@@ -1,10 +1,10 @@
1
- import { a as trackReportResource } from "./exec-CGuDzt40.mjs";
2
- import { i as formatDuration, l as phaseLine, m as shortHash, u as plural } from "./command-output-T3cDctRE.mjs";
3
- import { an as makeTemporaryDirectory, sn as removeTemporaryEntryAsync } from "./settings-Bap-qjnp.mjs";
4
- import { Yn as easAuthNote } from "./device-capacity-CpAVcKgq.mjs";
5
- import { at as readStats, q as estimateBuild } from "./workspaces-Dh5N70qW.mjs";
6
- import { c as entryDir, t as artifactIn } from "./build-cache-BW8T4oD2.mjs";
7
- import { l as predictBuildMiss, o as staleNativeDirRefusal } from "./prebuild-Di2IhUue.mjs";
1
+ import { a as trackReportResource } from "./exec-L37dbiIb.mjs";
2
+ import { i as formatDuration, l as phaseLine, m as shortHash, u as plural } from "./command-output-ByEmIwur.mjs";
3
+ import { an as makeTemporaryDirectory, sn as removeTemporaryEntryAsync } from "./settings-Ag4pbs0z.mjs";
4
+ import { Yn as easAuthNote } from "./device-capacity-DWUOvY13.mjs";
5
+ import { at as readStats, q as estimateBuild } from "./workspaces-DCzDzydB.mjs";
6
+ import { c as entryDir, t as artifactIn } from "./build-cache-Dt-dhCJF.mjs";
7
+ import { l as predictBuildMiss, o as staleNativeDirRefusal } from "./prebuild-BKkj3OyL.mjs";
8
8
  import chalk from "chalk";
9
9
  import { PROVIDER_LOAD_TIMEOUT_ENV, PROVIDER_LOAD_TIMEOUT_MS, buildResolveTimeoutMs, resolveTieredBuild, timeoutFromEnv } from "@stim-cli/cache";
10
10
  //#region src/commands/build-plan.ts
@@ -1,4 +1,4 @@
1
- import { d as getConfigDir } from "./config-BA3TgoIP.mjs";
1
+ import { d as getConfigDir } from "./config-CNmN-ndb.mjs";
2
2
  import { cacheDirRefusal, readCacheManifest, updateCacheManifest } from "@stim-cli/core";
3
3
  import { join, resolve } from "path";
4
4
  import { existsSync } from "fs";
@@ -1,2 +1,2 @@
1
- import { a as unregister, i as registeredCaches, n as readManifest, r as register, t as manifestPath } from "./cache-manifest-CxWkZmUr.mjs";
1
+ import { a as unregister, i as registeredCaches, n as readManifest, r as register, t as manifestPath } from "./cache-manifest-BO0TIcPV.mjs";
2
2
  export { manifestPath, readManifest, register, registeredCaches, unregister };
@@ -1,4 +1,4 @@
1
- import { d as throwIfCancelled, u as cancelledError } from "./exec-CGuDzt40.mjs";
1
+ import { d as throwIfCancelled, u as cancelledError } from "./exec-L37dbiIb.mjs";
2
2
  import { WebSocket } from "ws";
3
3
  //#region src/web/cdp.ts
4
4
  const COMMAND_TIMEOUT_MS = 15e3;
@@ -1,4 +1,4 @@
1
- import { t as getExecutor } from "./exec-CGuDzt40.mjs";
1
+ import { t as getExecutor } from "./exec-L37dbiIb.mjs";
2
2
  import { existsSync } from "node:fs";
3
3
  import { homedir } from "node:os";
4
4
  import { join } from "node:path";
@@ -1,28 +1,28 @@
1
- import { E as debugLog } from "./exec-CGuDzt40.mjs";
2
- import { b as refuseRelativeStimPaths } from "./config-BA3TgoIP.mjs";
1
+ import { E as debugLog } from "./exec-L37dbiIb.mjs";
2
+ import { b as refuseRelativeStimPaths } from "./config-CNmN-ndb.mjs";
3
3
  import { readFileSync } from "node:fs";
4
4
  import { runId, trace } from "@stim-cli/core/state";
5
5
  import { Command } from "commander";
6
6
  //#region bin/cli.ts
7
7
  const commands = /* @__PURE__ */ new Map([
8
- ["doctor", () => import("./doctor-C-46SkBe.mjs")],
9
- ["worktree", () => import("./worktree-DLm4s2Ib.mjs")],
10
- ["start", () => import("./start-CVzivp35.mjs")],
11
- ["ports", () => import("./ports-DhOSyWm9.mjs")],
12
- ["stop", () => import("./stop-BiI4_VFG.mjs")],
13
- ["ios", () => import("./ios-BZuhvLGr.mjs")],
14
- ["android", () => import("./android-B0qTdwnt.mjs")],
15
- ["web", () => import("./web-Dpj70t4p.mjs")],
16
- ["macos", () => import("./macos-CduEmWAK.mjs")],
17
- ["reload", () => import("./reload-BvDuvygc.mjs")],
18
- ["device", () => import("./device-DNTWFFB1.mjs")],
19
- ["logs", () => import("./logs-B-DMy1K0.mjs")],
20
- ["remote", () => import("./remote-PD6CM0xp.mjs")],
21
- ["settings", () => import("./settings-C_Xu4RNZ.mjs")],
22
- ["status", () => import("./status-CIvU5-TF.mjs")],
23
- ["stats", () => import("./stats-COoePEri.mjs")],
24
- ["gc", () => import("./gc-8Qm_K1iy.mjs")],
25
- ["guide", () => import("./guide-CuvHRP53.mjs")]
8
+ ["doctor", () => import("./doctor-CxgR5vPi.mjs")],
9
+ ["worktree", () => import("./worktree-6ngObKkw.mjs")],
10
+ ["start", () => import("./start-CdgtOksb.mjs")],
11
+ ["ports", () => import("./ports-DKO7EUNt.mjs")],
12
+ ["stop", () => import("./stop-iGkvEvDn.mjs")],
13
+ ["ios", () => import("./ios-Bjz7aPLy.mjs")],
14
+ ["android", () => import("./android-CaSsewbu.mjs")],
15
+ ["web", () => import("./web-BcaySU05.mjs")],
16
+ ["macos", () => import("./macos-ZfpWlzBO.mjs")],
17
+ ["reload", () => import("./reload-DWxmO9dY.mjs")],
18
+ ["device", () => import("./device-DGMvzoZZ.mjs")],
19
+ ["logs", () => import("./logs-x3em2-oI.mjs")],
20
+ ["remote", () => import("./remote-DWYGW2f5.mjs")],
21
+ ["settings", () => import("./settings-TYrzDh8T.mjs")],
22
+ ["status", () => import("./status-C7Zzb-Eh.mjs")],
23
+ ["stats", () => import("./stats-BgTyuzib.mjs")],
24
+ ["gc", () => import("./gc-1ZLq1djg.mjs")],
25
+ ["guide", () => import("./guide-COxIANZu.mjs")]
26
26
  ]);
27
27
  const pkg = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf-8"));
28
28
  const program = new Command();
@@ -54,7 +54,7 @@ try {
54
54
  }));
55
55
  }
56
56
  try {
57
- const { triggerMaintenance } = await import("./trigger-D8B7QR0q.mjs");
57
+ const { triggerMaintenance } = await import("./trigger-Bp3lruF2.mjs");
58
58
  triggerMaintenance(action.name());
59
59
  } catch {}
60
60
  });
package/dist/cli.mjs CHANGED
@@ -4,6 +4,6 @@ const encode = (version) => version.split(".", 3).reduce((sum, part) => sum * 1e
4
4
  if (encode(process.versions.node) < encode("22.12.0")) {
5
5
  process.stderr.write(`STIM_NODE_UNSUPPORTED: Stim needs Node 22.12.0 or later; this is Node ${process.versions.node} at ${process.execPath}. To run Stim where a project pins an older Node, see https://stim.appandflow.com/docs/requirements#older-node-pins\n`);
6
6
  process.exitCode = 1;
7
- } else import("./cli-COdXswmc.mjs");
7
+ } else import("./cli-BGUrlSH3.mjs");
8
8
  //#endregion
9
9
  export {};
@@ -1,13 +1,13 @@
1
- import { C as operationState, E as debugLog, d as throwIfCancelled, r as reportSignal, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { H as openAuthenticated, J as sayHello, q as resolveEndpoint, v as loadConfig$1 } from "./config-BA3TgoIP.mjs";
3
- import { o as git, s as gitAsync } from "./operation-exec-DKlBcKAL.mjs";
4
- import { C as CCACHE_UNAVAILABLE, Or as discoverCaches, S as CCACHE_NOT_RUN, at as maintenanceLogger, ft as planCacheEmptying, ot as emptyCaches } from "./device-capacity-CpAVcKgq.mjs";
1
+ import { C as operationState, E as debugLog, d as throwIfCancelled, r as reportSignal, t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { H as openAuthenticated, J as sayHello, q as resolveEndpoint, v as loadConfig$1 } from "./config-CNmN-ndb.mjs";
3
+ import { o as git, s as gitAsync } from "./operation-exec-DNynwpqO.mjs";
4
+ import { C as CCACHE_UNAVAILABLE, Or as discoverCaches, S as CCACHE_NOT_RUN, at as maintenanceLogger, ft as planCacheEmptying, ot as emptyCaches } from "./device-capacity-DWUOvY13.mjs";
5
5
  import { t as canonicalPath } from "./paths-BsJMoPP2.mjs";
6
- import { A as COMPILATION_CACHE_NOT_RUN, D as readRubyVersion, S as workerToolchain, _t as runCancellationSignal, a as buildsOnlyOnWorker, b as toolchainNotes, c as iosToolchainAsync, j as COMPILATION_CACHE_UNAVAILABLE, o as cocoapodsDifference, y as toolchainMismatches } from "./toolchain-DCnWAxQL.mjs";
6
+ import { A as COMPILATION_CACHE_NOT_RUN, D as readRubyVersion, S as workerToolchain, _t as runCancellationSignal, a as buildsOnlyOnWorker, b as toolchainNotes, c as iosToolchainAsync, j as COMPILATION_CACHE_UNAVAILABLE, o as cocoapodsDifference, y as toolchainMismatches } from "./toolchain-BeD7tbBW.mjs";
7
7
  import { t as resolveMaintenanceSettings } from "./settings-D9LtQaUw.mjs";
8
- import { D as OffloadRefusal, M as namedBuildMachine, R as workerFailureReason, et as pairedMachines, u as isReleaseConfiguration } from "./support-BJbXovoO.mjs";
8
+ import { D as OffloadRefusal, M as namedBuildMachine, R as workerFailureReason, et as pairedMachines, u as isReleaseConfiguration } from "./support-CfYmOdQs.mjs";
9
9
  import { n as fingerprintNativeInputs, r as manifestDigest } from "./native-inputs-TRTTTRxt.mjs";
10
- import { a as sourceManifest, i as nativeTransferManifest, n as gitVisiblePaths, r as nativeFileDigest, t as checkNativeTransferMembership } from "./native-source-ChAGj7R1.mjs";
10
+ import { a as sourceManifest, i as nativeTransferManifest, n as gitVisiblePaths, r as nativeFileDigest, t as checkNativeTransferMembership } from "./native-source-D2ZfiQ6U.mjs";
11
11
  import { t as BuildArtifactCache } from "./build-artifact-cache-D7B6seMj.mjs";
12
12
  import { createHash, webcrypto } from "node:crypto";
13
13
  import { closeSync, existsSync, lstatSync, mkdirSync, openSync, readFileSync, readdirSync, realpathSync, rmSync, writeSync } from "node:fs";
@@ -1,12 +1,12 @@
1
- import { T as process_identity_exports } from "./exec-CGuDzt40.mjs";
2
- import { k as workspaceLogsDir } from "./workspace-state-BhwAJBgA.mjs";
1
+ import { T as process_identity_exports } from "./exec-L37dbiIb.mjs";
2
+ import { k as workspaceLogsDir } from "./workspace-state-DOPXG2Gp.mjs";
3
3
  import { t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
4
- import { ft as deviceSlotKey, vt as validateDeviceSlot } from "./config-BA3TgoIP.mjs";
5
- import { c as watchAppPid, i as parseLogcatLine, o as startAndroidLogcat, s as waitForAppPid, t as androidClockOffset } from "./android-5wkcMFDG.mjs";
4
+ import { ft as deviceSlotKey, vt as validateDeviceSlot } from "./config-CNmN-ndb.mjs";
5
+ import { c as watchAppPid, i as parseLogcatLine, o as startAndroidLogcat, s as waitForAppPid, t as androidClockOffset } from "./android-BPBARZMR.mjs";
6
6
  import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
7
- import { a as startIosDeviceConsole, i as parseDeviceConsoleLine } from "./ios-device-DLdEDWJj.mjs";
8
- import { a as unregisterCollector, i as registerCollector, r as readCollectors, t as collectorProcessTitle } from "./ownership-C3y8wLSl.mjs";
9
- import { n as parseLogStreamLine, r as startIosLogStream, t as appNameFromBundleId } from "./ios-Qam0bT9n.mjs";
7
+ import { a as startIosDeviceConsole, i as parseDeviceConsoleLine } from "./ios-device-ygijU78G.mjs";
8
+ import { a as unregisterCollector, i as registerCollector, r as readCollectors, t as collectorProcessTitle } from "./ownership-CQTg6v1d.mjs";
9
+ import { n as parseLogStreamLine, r as startIosLogStream, t as appNameFromBundleId } from "./ios-2Qr4_Zu2.mjs";
10
10
  import { existsSync } from "node:fs";
11
11
  import { isAbsolute, join, resolve } from "node:path";
12
12
  import { LOG_ROTATE_BYTES } from "@stim-cli/core";
@@ -1,5 +1,5 @@
1
1
  import { n as stripAnsi } from "./process-output-Fpl8PYi8.mjs";
2
- import { t as NO_PROJECT_REFUSAL } from "./project-Clk1JAWL.mjs";
2
+ import { t as NO_PROJECT_REFUSAL } from "./project-BCtQz48d.mjs";
3
3
  import { quotedPath as quotedPath$1 } from "@stim-cli/core";
4
4
  import chalk from "chalk";
5
5
  //#region src/diagnostics/launch-error-preview.ts
@@ -1,5 +1,5 @@
1
- import { D as ownership_claim_exports, T as process_identity_exports, a as trackReportResource, f as WorkspaceProcessCleanupError, r as reportSignal, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { t as runOperationFile } from "./operation-exec-DKlBcKAL.mjs";
1
+ import { D as ownership_claim_exports, T as process_identity_exports, a as trackReportResource, f as WorkspaceProcessCleanupError, r as reportSignal, t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { t as runOperationFile } from "./operation-exec-DNynwpqO.mjs";
3
3
  import { join } from "node:path";
4
4
  import { ambientEnv, configDir, ensurePrivateDir } from "@stim-cli/core";
5
5
  import { DEFAULT_SERVER_PORT, allMetroPorts, cannotHost, clientIdentity, configCorruptRepair, endpoint, endpoint as endpoint$1, findEnclosingWorktreeRoot, findPeer, findPeer as findPeer$1, getConcurrencyLimits, getConfigPath, getConfigPath as getConfigPath$1, getPlatformDeviceLimits, getProject, getProjectSettings, getRepoSettings, isJsonObject, isPathPrefix as isPathPrefix$1, loadConfig, loadConfig as loadConfig$1, machineEndpoint, parseMachine, parseMachine as parseMachine$1, validateAutomaticPool, withConfigLock, withConfigLock as withConfigLock$1, withConfigLockAsync, withConfigLockAsync as withConfigLockAsync$1, wrongTailnet } from "@stim-cli/core/state";
@@ -1,41 +1,41 @@
1
- import { l as cancellableSleep, t as getExecutor, w as withDrainingCancellation } from "./exec-CGuDzt40.mjs";
2
- import { f as writeWorkspaceStateAsync, k as workspaceLogsDir, r as readWorkspaceState } from "./workspace-state-BhwAJBgA.mjs";
3
- import { _ as stepTimer, c as launchErrorReport, i as formatDuration, l as phaseLine, n as appReadinessMessage, v as launchErrorPreview } from "./command-output-T3cDctRE.mjs";
4
- import { A as withConfigLockAsync, O as upsertProject, dt as deviceSlotFileKey, ft as deviceSlotKey, m as getProject, u as getConcurrencyLimits, y as recordIosSchemeApprovals } from "./config-BA3TgoIP.mjs";
5
- import { J as resolveCacheProviderConfig, Q as resolveSettings, St as gitCommonDirAsync, Vt as repoRootAsync, an as makeTemporaryDirectory, at as settingsLayers, dt as detectProviders, nt as settingOriginScope, on as removeTemporaryEntry } from "./settings-Bap-qjnp.mjs";
6
- import { L as workspaceDevServerMode, f as projectRegistry, i as findProjectRoot, v as detectIsExpo, z as writeWorkspaceLaunchAsync } from "./project-Clk1JAWL.mjs";
7
- import { o as workspaceLinks } from "./stim-desktop-D0P_bzmd.mjs";
8
- import { c as pidExists, d as resolveProjectMetro, f as signalProcessTree } from "./metro-DM3yJL1M.mjs";
1
+ import { l as cancellableSleep, t as getExecutor, w as withDrainingCancellation } from "./exec-L37dbiIb.mjs";
2
+ import { f as writeWorkspaceStateAsync, k as workspaceLogsDir, r as readWorkspaceState } from "./workspace-state-DOPXG2Gp.mjs";
3
+ import { _ as stepTimer, c as launchErrorReport, i as formatDuration, l as phaseLine, n as appReadinessMessage, v as launchErrorPreview } from "./command-output-ByEmIwur.mjs";
4
+ import { A as withConfigLockAsync, O as upsertProject, dt as deviceSlotFileKey, ft as deviceSlotKey, m as getProject, u as getConcurrencyLimits, y as recordIosSchemeApprovals } from "./config-CNmN-ndb.mjs";
5
+ import { J as resolveCacheProviderConfig, Q as resolveSettings, St as gitCommonDirAsync, Vt as repoRootAsync, an as makeTemporaryDirectory, at as settingsLayers, dt as detectProviders, nt as settingOriginScope, on as removeTemporaryEntry } from "./settings-Ag4pbs0z.mjs";
6
+ import { L as workspaceDevServerMode, f as projectRegistry, i as findProjectRoot, v as detectIsExpo, z as writeWorkspaceLaunchAsync } from "./project-BCtQz48d.mjs";
7
+ import { o as workspaceLinks } from "./stim-desktop-DWGAfaud.mjs";
8
+ import { c as pidExists, d as resolveProjectMetro, f as signalProcessTree } from "./metro-TIQ1Wft-.mjs";
9
9
  import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
10
- import { Bn as readRemoteSimulatorArch, En as devClientUrl, In as launchIosApp, Jn as checkEasAuth, Jt as bundleEntryPoint, Ln as restartedAppNote, Mn as installIosApp, Nn as iosAppProcess, Tn as clearOtherUserApps, Vn as gateMetroOrigin, Xt as ensureMetroReachable, Zn as loadProjectProvider, Zt as ensureRemoteBootOwned, an as LAUNCH_UNVERIFIED, dn as readMetroRecords, en as remoteIosDeps, fn as unattributedLaunchLines, gn as verifyReleaseLaunch, hn as verifyLaunch, in as LAUNCH_FATAL, k as budgetGate, ln as isBundleProof, nr as resolveRemote, pn as unverifiedLaunchLines, r as checkDeviceCapacity, rn as LAUNCH_BUNDLING, rr as uploadRemote, sn as RELEASE_VERIFY_WAIT_MS, tn as resolveRemoteContext, tr as resolveEasCliBin, un as readCollectorRecords, xn as IOS_DEV_MENU_OFF_DEFAULTS_PLIST } from "./device-capacity-CpAVcKgq.mjs";
11
- import { St as acquireBuildSlot, Tt as releaseBuildSlot, ct as recordRunStats, it as readRunEstimates, ot as recordCapacityRefusal } from "./workspaces-Dh5N70qW.mjs";
12
- import { E as readPodState, H as readBundleId, T as podsAreStale, U as resolveScheme, V as readBundleExecutable, c as iosToolchainAsync, k as runPodInstall } from "./toolchain-DCnWAxQL.mjs";
13
- import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-BpdDvA8Q.mjs";
14
- import { E as storeBuild, M as untrackedNativeFiles, T as resolveBuild, g as fingerprintProject, l as evictBuild } from "./build-cache-BW8T4oD2.mjs";
15
- import { d as listAllIosSims, h as listIosRuntimesAsync, r as clearIosAppData } from "./ios-BhfpRfNf.mjs";
16
- import { C as clearIosAdoptionPending, G as lostLine, J as releaseLeaseOnAbort, K as lostRefusal, U as acquireRunLease, Y as runLease, i as deviceLabel, o as deviceShortName, t as appNameFromPath, z as DEBUG_VERIFY_STEP_MS } from "./support-BJbXovoO.mjs";
17
- import { n as readHostedIos, o as writeHostedIosAsync } from "./ios-state-Avwz2cbZ.mjs";
18
- import { n as hostedMetroPortProbe } from "./hosted-native-BiiUG_Q6.mjs";
19
- import { i as prepareHostedIos, r as placeHostedIos } from "./phone-reverses-BhSxbqom.mjs";
20
- import { n as verifyCollectorOwnership } from "./ownership-C3y8wLSl.mjs";
21
- import { n as nativeRunCommand, r as siblingPlatformSlots, t as launchSlotScope } from "./slot-launch-qEQVTth7.mjs";
22
- import { a as discoverXcodeProject, r as buildIos } from "./react-native-build-CJega_NM.mjs";
23
- import { c as startDevServer, g as detectBundleId } from "./start-YpT_JpQQ.mjs";
10
+ import { Bn as readRemoteSimulatorArch, En as devClientUrl, In as launchIosApp, Jn as checkEasAuth, Jt as bundleEntryPoint, Ln as restartedAppNote, Mn as installIosApp, Nn as iosAppProcess, Tn as clearOtherUserApps, Vn as gateMetroOrigin, Xt as ensureMetroReachable, Zn as loadProjectProvider, Zt as ensureRemoteBootOwned, an as LAUNCH_UNVERIFIED, dn as readMetroRecords, en as remoteIosDeps, fn as unattributedLaunchLines, gn as verifyReleaseLaunch, hn as verifyLaunch, in as LAUNCH_FATAL, k as budgetGate, ln as isBundleProof, nr as resolveRemote, pn as unverifiedLaunchLines, r as checkDeviceCapacity, rn as LAUNCH_BUNDLING, rr as uploadRemote, sn as RELEASE_VERIFY_WAIT_MS, tn as resolveRemoteContext, tr as resolveEasCliBin, un as readCollectorRecords, xn as IOS_DEV_MENU_OFF_DEFAULTS_PLIST } from "./device-capacity-DWUOvY13.mjs";
11
+ import { St as acquireBuildSlot, Tt as releaseBuildSlot, ct as recordRunStats, it as readRunEstimates, ot as recordCapacityRefusal } from "./workspaces-DCzDzydB.mjs";
12
+ import { E as readPodState, H as readBundleId, T as podsAreStale, U as resolveScheme, V as readBundleExecutable, c as iosToolchainAsync, k as runPodInstall } from "./toolchain-BeD7tbBW.mjs";
13
+ import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-CdpXXSq2.mjs";
14
+ import { E as storeBuild, M as untrackedNativeFiles, T as resolveBuild, g as fingerprintProject, l as evictBuild } from "./build-cache-Dt-dhCJF.mjs";
15
+ import { d as listAllIosSims, h as listIosRuntimesAsync, r as clearIosAppData, w as resetIosKeychain } from "./ios-BveW7qK1.mjs";
16
+ import { C as clearIosAdoptionPending, G as lostLine, J as releaseLeaseOnAbort, K as lostRefusal, U as acquireRunLease, Y as runLease, i as deviceLabel, o as deviceShortName, t as appNameFromPath, z as DEBUG_VERIFY_STEP_MS } from "./support-CfYmOdQs.mjs";
17
+ import { n as readHostedIos, o as writeHostedIosAsync } from "./ios-state-enWc5P6U.mjs";
18
+ import { n as hostedMetroPortProbe } from "./hosted-native-OBT2sJxn.mjs";
19
+ import { i as prepareHostedIos, r as placeHostedIos } from "./phone-reverses-CHtco460.mjs";
20
+ import { n as verifyCollectorOwnership } from "./ownership-CQTg6v1d.mjs";
21
+ import { n as nativeRunCommand, r as siblingPlatformSlots, t as launchSlotScope } from "./slot-launch-DW_29Bmu.mjs";
22
+ import { a as discoverXcodeProject, r as buildIos } from "./react-native-build-dixAL2G8.mjs";
23
+ import { c as startDevServer, g as detectBundleId } from "./start-CzBB5R7N.mjs";
24
24
  import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
25
- import { a as sealAppForDevice, r as gateProfileForDevice } from "./ios-signing-BcH88ecn.mjs";
26
- import { a as resolveEasDevelopmentBuild } from "./eas-build-Xf5Jd6LR.mjs";
27
- import { c as isWirelessIosDevice, i as iosDeviceProcess, l as listIosDevices, n as installIosDeviceApp, p as verifyIosDeviceReleaseLaunch, r as iosDeviceBounds, t as awaitIosDeviceLaunch, u as localNetworkPending } from "./ios-device-vhYL1N--.mjs";
28
- import { a as captureNativeCrashes, c as simulatorConsolePaths, i as bundleBindFailure, n as IOS_CRASH_REPORT_RETRY, s as printNativeCrashReport, t as errorDiagnostics } from "./error-diagnostics-CvB5bpPU.mjs";
29
- import { t as followHostedLaunchLogs } from "./hosted-logs-sync-B7XCeqVm.mjs";
30
- import { a as runPrebuild, d as memoizedFingerprint, n as planPrebuildAsync } from "./prebuild-Di2IhUue.mjs";
31
- import { i as launchOutcomeRecord, n as ensureWorkspaceStorageSafely } from "./native-runtime-C3_NkUlW.mjs";
32
- import { n as devClientTakesDevMenuParams, r as hasDevClient, t as devClientScheme } from "./dev-client-MO_DjTZr.mjs";
33
- import { t as automaticDevicePlacement } from "./auto-placement-CKFpFCuq.mjs";
34
- import { t as checkEasFallback } from "./eas-fallback-DNYPNinw.mjs";
35
- import { i as warmMetro, n as ensureBooted, r as ensureOwnedDevice } from "./device-BZWt_aPJ.mjs";
36
- import { t as selectFromPool } from "./device-pool-BJToGG-q.mjs";
37
- import { s as reportIosResult } from "./ios-project-Cz0S1Sz-.mjs";
38
- import { i as swapJsBundle } from "./js-swap-Desu2iII.mjs";
25
+ import { a as sealAppForDevice, r as gateProfileForDevice } from "./ios-signing-CRYQ1W42.mjs";
26
+ import { a as resolveEasDevelopmentBuild } from "./eas-build-CwOXKJwa.mjs";
27
+ import { c as isWirelessIosDevice, i as iosDeviceProcess, l as listIosDevices, n as installIosDeviceApp, p as verifyIosDeviceReleaseLaunch, r as iosDeviceBounds, t as awaitIosDeviceLaunch, u as localNetworkPending } from "./ios-device-ByrDWSpC.mjs";
28
+ import { a as captureNativeCrashes, c as simulatorConsolePaths, i as bundleBindFailure, n as IOS_CRASH_REPORT_RETRY, s as printNativeCrashReport, t as errorDiagnostics } from "./error-diagnostics-CXTT3bYC.mjs";
29
+ import { t as followHostedLaunchLogs } from "./hosted-logs-sync-uWSrH2mf.mjs";
30
+ import { a as runPrebuild, d as memoizedFingerprint, n as planPrebuildAsync } from "./prebuild-BKkj3OyL.mjs";
31
+ import { i as launchOutcomeRecord, n as ensureWorkspaceStorageSafely } from "./native-runtime-UxUBU8up.mjs";
32
+ import { n as devClientTakesDevMenuParams, r as hasDevClient, t as devClientScheme } from "./dev-client-3SQzMRXZ.mjs";
33
+ import { t as automaticDevicePlacement } from "./auto-placement-CFKNrWLU.mjs";
34
+ import { t as checkEasFallback } from "./eas-fallback-Cnb12a50.mjs";
35
+ import { i as warmMetro, n as ensureBooted, r as ensureOwnedDevice } from "./device-BIg1iExg.mjs";
36
+ import { t as selectFromPool } from "./device-pool-B8IqZKqm.mjs";
37
+ import { s as reportIosResult } from "./ios-project-XHg87vyQ.mjs";
38
+ import { a as swapJsBundle } from "./js-swap-C6vl3vEd.mjs";
39
39
  import { mkdirSync, openSync, writeFileSync } from "node:fs";
40
40
  import { networkInterfaces } from "node:os";
41
41
  import { basename, join } from "node:path";
@@ -177,6 +177,10 @@ function missingCrashReportHint({ physical, remote, crashed }) {
177
177
  return crashed && !physical && !remote ? `No attributable native crash report captured yet. ${IOS_CRASH_REPORT_RETRY}` : "No attributable native crash report captured. Read `stim logs --source device` for available output.";
178
178
  }
179
179
  async function verifyIosProcessRun({ operation, root, slot, appPath, d, launched, configuration, phase, note, logsDir, launchedAt, bundleId, udid, physical, appName, remoteDevice, embeddedJavaScript }) {
180
+ if (remoteDevice) {
181
+ phase("verify", chalk.yellow("UNVERIFIED: remote adapter launch accepted; process verification is unavailable"));
182
+ return { state: LAUNCH_UNVERIFIED };
183
+ }
180
184
  const readNativeCrashes = () => remoteDevice ? [] : captureNativeCrashes({
181
185
  root,
182
186
  slot,
@@ -373,26 +377,58 @@ async function installsOverWifi(d, udid, selectedWireless, note) {
373
377
  if (wireless) note(phaseLine("device", `${current?.name ?? udid} is paired over Wi-Fi, so the install and launch go over the network and take longer than over a cable`));
374
378
  return wireless;
375
379
  }
376
- async function cleanAdoptedIosApps({ d, udid, bundleId, devClient, phase, note }) {
380
+ async function cleanIosAppState({ d, device, udid, bundleId, devClient, adopting, cleanAppState, remote, runCommand, phase, note }) {
381
+ if (!adopting && (!cleanAppState || remote)) return null;
382
+ if (!adopting && !device.owned) return {
383
+ code: "STIM_BAD_ARG",
384
+ message: `cleanAppState clears only a simulator Stim owns, and ${deviceLabel(device, udid)} is not one.`,
385
+ remedy: "Run `stim gc --delete` to clear the assignment so Stim creates an owned simulator."
386
+ };
387
+ const failure = await sweepIosAppState({
388
+ d,
389
+ udid,
390
+ bundleId,
391
+ devClient,
392
+ resetKeychain: !adopting,
393
+ previous: adopting ? "the previous workspace" : "an earlier run",
394
+ phase,
395
+ note
396
+ });
397
+ if (!failure) return null;
398
+ return {
399
+ code: "STIM_INSTALL_FAILED",
400
+ message: adopting ? `${failure} Stim kept the adoption cleanup pending and did not install or launch the app.` : `${failure} Stim did not install or launch the app.`,
401
+ remedy: `Run \`${runCommand}\` again after simulator tooling is responsive.`
402
+ };
403
+ }
404
+ async function sweepIosAppState({ d, udid, bundleId, devClient, resetKeychain, previous, phase, note }) {
377
405
  const swept = await d.clearOtherUserApps({
378
406
  udid,
379
407
  keep: bundleId
380
408
  });
381
- if (swept.removed.length) phase("install", `removed ${swept.removed.join(", ")}, left by the previous workspace`);
409
+ if (swept.removed.length) phase("install", `removed ${swept.removed.join(", ")}, left by ${previous}`);
382
410
  if (swept.listed && swept.failed.length === 0) {
383
411
  if (swept.kept && bundleId) {
384
412
  try {
385
413
  await d.clearIosAppData(udid, bundleId, { defaultsPlist: devClient ? IOS_DEV_MENU_OFF_DEFAULTS_PLIST : null });
386
414
  } catch (error) {
387
- return `Could not clear the data ${bundleId} kept from the previous workspace: ${String(error?.message || error)}`;
415
+ return `Could not clear the data ${bundleId} kept from ${previous}: ${String(error?.message || error)}`;
416
+ }
417
+ phase("install", `cleared ${bundleId} data left by ${previous}`);
418
+ }
419
+ if (resetKeychain) {
420
+ try {
421
+ await d.resetIosKeychain(udid);
422
+ } catch (error) {
423
+ return `Could not reset the keychain on ${udid}: ${error instanceof Error ? error.message : String(error)}`;
388
424
  }
389
- phase("install", `cleared ${bundleId} data left by the previous workspace`);
425
+ phase("install", `reset the keychain on ${udid}`);
390
426
  }
391
427
  return null;
392
428
  }
393
- if (!swept.listed) return "Could not list apps left by the previous workspace.";
394
- for (const failure of swept.failed) note(chalk.yellow(phaseLine("install", `could not remove ${failure}, left by the previous workspace`)));
395
- return `Could not remove ${swept.failed.join(", ")}, left by the previous workspace.`;
429
+ if (!swept.listed) return `Could not list apps left by ${previous}.`;
430
+ for (const failure of swept.failed) note(chalk.yellow(phaseLine("install", `could not remove ${failure}, left by ${previous}`)));
431
+ return `Could not remove ${swept.failed.join(", ")}, left by ${previous}.`;
396
432
  }
397
433
  async function evictUnbindableCacheHit({ d, root, slot, udid, bundleId, appPath, launchedAt, logsDir, cacheHit, providerName, storeKey, runCommand, local, logFields, operation }) {
398
434
  if (!cacheHit || !storeKey || !bundleId || !local) return null;
@@ -450,7 +486,7 @@ function launchFailureRemedy(remoteDevice, udid, bundleId, logFile, reason) {
450
486
  if (reason && /system shell .*probably crashed/.test(reason)) return `SpringBoard, the simulator's system shell, is not running, and only a reboot brings it back. Run \`stim stop\`, then \`stim ios\` again. Repeated crashes leave SpringBoard reports in ~/Library/Logs/DiagnosticReports.`;
451
487
  return `If the simulator timed out, run \`stim doctor --platform ios\` and resolve any reported host memory pressure before retrying. Otherwise run \`xcrun simctl launch --terminate-running-process --console ${udid} ${bundleId}\` to see what the app reports, and check ${logFile}.`;
452
488
  }
453
- async function finishIosRun({ operation, output, projectBundleId, runtime, runtimePreparation, devicePlacement, artifact, d, root, slot, json, release, configuration, buildScheme, isExpo, metroCheck, metroPort, logsDir, logFile, device, udid, physical, wireless, lanAddress, lanOriginUrl, remoteDevice, bootPromise, bootDuration, bootPending, fail, phase, note, logWriter, elapsed, startedAt, closeWriter, lease, releaseLease, recordRun, reclaimed, devServer, enterPhase, enterActivity }) {
489
+ async function finishIosRun({ operation, output, projectBundleId, runtime, runtimePreparation, devicePlacement, artifact, d, root, slot, json, release, configuration, buildScheme, isExpo, metroCheck, metroPort, logsDir, logFile, device, udid, physical, wireless, lanAddress, lanOriginUrl, remoteDevice, cleanAppState, bootPromise, bootDuration, bootPending, fail, phase, note, logWriter, elapsed, startedAt, closeWriter, lease, releaseLease, recordRun, reclaimed, devServer, enterPhase, enterActivity }) {
454
490
  const { path: appPath, bundleId: initialBundleId, failureFields: buildFailure, cache } = artifact;
455
491
  const { hit: cacheHit, providerName, buildMachine, builtOn, offloadedTo, offloadFallback, readEnabled: useBuildCache, missReason, waitedForBuild, compilation: compilationCache } = cache;
456
492
  const storeHash = cache.identity?.fingerprint ?? null;
@@ -657,26 +693,27 @@ async function finishIosRun({ operation, output, projectBundleId, runtime, runti
657
693
  phase("launch", `${bundleId} pid ${launched.pid} ${launchTimer()}`);
658
694
  } else {
659
695
  const adopting = Boolean(device?.adoptionPending);
660
- if (adopting) {
661
- const cleanupFailure = await cleanAdoptedIosApps({
662
- d,
663
- udid,
664
- bundleId,
665
- devClient: Boolean(scheme),
666
- phase,
667
- note
668
- });
669
- if (cleanupFailure) return fail({
670
- code: "STIM_INSTALL_FAILED",
671
- message: `${cleanupFailure} Stim kept the adoption cleanup pending and did not install or launch the app.`,
672
- remedy: `Run \`${runCommand}\` again after simulator tooling is responsive.`,
673
- build: {
674
- ...buildFailure,
675
- appPath,
676
- bundleId
677
- }
678
- });
679
- }
696
+ const cleanupFailure = await cleanIosAppState({
697
+ d,
698
+ device,
699
+ udid,
700
+ bundleId,
701
+ devClient: Boolean(scheme),
702
+ adopting,
703
+ cleanAppState,
704
+ remote: Boolean(remoteDevice),
705
+ runCommand,
706
+ phase,
707
+ note
708
+ });
709
+ if (cleanupFailure) return fail({
710
+ ...cleanupFailure,
711
+ build: {
712
+ ...buildFailure,
713
+ appPath,
714
+ bundleId
715
+ }
716
+ });
680
717
  enterPhase("install");
681
718
  const installTimer = stepTimer(d.now);
682
719
  const installed = await d.installIosApp({
@@ -1104,6 +1141,7 @@ const DEFAULT_DEPS = {
1104
1141
  installIosApp,
1105
1142
  clearOtherUserApps,
1106
1143
  clearIosAppData,
1144
+ resetIosKeychain,
1107
1145
  clearIosAdoptionPending,
1108
1146
  launchIosApp,
1109
1147
  verifyLaunch,
@@ -1,5 +1,5 @@
1
- import { t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { Bt as repoRoot } from "./settings-Bap-qjnp.mjs";
1
+ import { t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { Bt as repoRoot } from "./settings-Ag4pbs0z.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import { existsSync } from "node:fs";
5
5
  import { dirname, join, relative } from "node:path";
@@ -1,4 +1,4 @@
1
- import { t as getExecutor } from "./exec-CGuDzt40.mjs";
1
+ import { t as getExecutor } from "./exec-L37dbiIb.mjs";
2
2
  import { openSync } from "node:fs";
3
3
  //#region src/detached-entry.ts
4
4
  const LOG_FILE_FLAG = "--log-file";
@@ -1,5 +1,5 @@
1
- import { C as resolvePackageJson, b as isPackageResolvable } from "./project-Clk1JAWL.mjs";
2
- import { $ as readBundleSchemes, Q as pickDevClientScheme } from "./toolchain-DCnWAxQL.mjs";
1
+ import { C as resolvePackageJson, b as isPackageResolvable } from "./project-BCtQz48d.mjs";
2
+ import { $ as readBundleSchemes, Q as pickDevClientScheme } from "./toolchain-BeD7tbBW.mjs";
3
3
  import { dirname, join } from "node:path";
4
4
  import { isJsonObject, readJsonObject } from "@stim-cli/core/state";
5
5
  //#region src/commands/dev-client.ts