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
package/README.md CHANGED
@@ -104,7 +104,9 @@ Build-only preserves existing sessions and uses the same cache and build locks.
104
104
  Successful builds include `result.facts.links.workspace`, an HTTPS workspace link
105
105
  agents can share with an already-paired phone or Desktop, including when the
106
106
  build machine has no Desktop app installed.
107
- Each result is a separate copy kept in the workspace until `stim worktree remove`.
107
+ Each result is a separate copy in the workspace. It lasts until a build replaces
108
+ its recorded build (for macOS, until the next macOS build) or `stim worktree remove`;
109
+ copy or export a result you need to keep before the next build.
108
110
  Run results preserve the CLI's launch evidence, including `'bundling'` and
109
111
  `'unverified'` results.
110
112
 
@@ -1,5 +1,5 @@
1
- import { f as WorkspaceProcessCleanupError } from "./exec-CGuDzt40.mjs";
2
- import { I as waitForSharedBuild } from "./activity-BpdDvA8Q.mjs";
1
+ import { f as WorkspaceProcessCleanupError } from "./exec-L37dbiIb.mjs";
2
+ import { I as waitForSharedBuild } from "./activity-CdpXXSq2.mjs";
3
3
  import { copyFileSync, rmSync } from "node:fs";
4
4
  //#region src/engine/failed-transcript.ts
5
5
  /**
@@ -1,27 +1,27 @@
1
- import { T as process_identity_exports, f as WorkspaceProcessCleanupError, m as workspaceProcessLockError, n as isTimeoutError, p as withWorkspaceProcessLock, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { E as workspaceDir, j as workspaceStateFile$1, k as workspaceLogsDir$1, r as readWorkspaceState$1, u as workspaceLastUsed, w as workspaceAgentDeviceDir } from "./workspace-state-BhwAJBgA.mjs";
3
- import { o as formatLongDuration, u as plural } from "./command-output-T3cDctRE.mjs";
4
- import { ct as measuredDirectorySizeAsync, gt as projectDeviceSlots, it as formatBytes, m as getProject, ot as isOnMountedVolume, rt as directorySizeAsync, st as listMountedVolumes, v as loadConfig$1 } from "./config-BA3TgoIP.mjs";
5
- import { c as gitQuiet, l as gitQuietAsync, n as runOperationFileQuiet, r as childEnvironment } from "./operation-exec-DKlBcKAL.mjs";
6
- import { At as listWorktrees, Et as hasUncommittedWorkAsync, Ft as matchWorktreeEntry, Kt as sourceCheckoutOf, O as maintenanceKeepSetting, Pt as lockReason, Ut as resolveFullRefAsync, Wt as resolveSourceCheckoutAsync, X as resolveProjectSettings, Xt as worktreeLockAsync, Z as resolveProjectSettingsAsync, bt as dirtyPathsAsync, h as deviceIdleShutdownMinutesSetting, it as settingValueAt, jt as listWorktreesAsync, mt as LOCKED_REASON, qt as unpushedCommitsAsync, sn as removeTemporaryEntryAsync, wt as hasPopulatedSubmodulesAsync } from "./settings-Bap-qjnp.mjs";
7
- import { P as readRemoteSession, i as findProjectRoot$1 } from "./project-Clk1JAWL.mjs";
8
- import { A as getAvdNameForSerialAsync, L as listAvds, N as listAdbDevices, P as listAdbDevicesAsync, R as listAvdsAsync, U as ownedAvdDirectory, k as getAvdNameForSerial, q as ownedAvdSerialResolverAsync, xt as readParked } from "./android-SJx1V3R3.mjs";
9
- import { c as pidExists } from "./metro-DM3yJL1M.mjs";
10
- import { At as deleteParkedAvds, B as stopOwnedMetro, Ct as waitForGradleExit, Et as DEVICE_LIST_TIMEOUT_MS, Ft as deviceSweepIsScoped, M as enforceBudget, Mt as deleteProjectDevices, Or as discoverCaches, Ot as collectParkedAvds, P as machineNumber, Q as levelFloors, R as resolveBudget, Tr as phase, Z as diskPressureLevel, _t as collectGradleVersions, b as shutDownIdleDevices, br as memorySweepIsScoped, et as lowestFree, ft as planCacheEmptying, hr as collectMemoryReport, j as cacheLabel, jt as deleteParkedSims, kr as pruneCache, kt as collectParkedSims, ot as emptyCaches, tt as protectWindowMs, vt as deleteGradleVersion, wr as stopIdleGradleDaemons, x as writeIdleShutdownEvent, y as dueIdleDevices, z as trimmableCaches, zt as findStaleProjectDevices } from "./device-capacity-CpAVcKgq.mjs";
11
- import { o as readWebRecord, u as webFacts } from "./state-B9VFI6r0.mjs";
12
- import { a as unregister, n as readManifest } from "./cache-manifest-CxWkZmUr.mjs";
13
- import { B as workspaceBuildInProgress, Et as GC_OUTPUT, F as collectOwnedDeviceActivityAsync, Ot as takeGcResults, P as collectOwnedDeviceActivity, a as collectOrphanedWorkspaces, b as workspaceInUseAsync, c as isInsideWorkspaces, d as recentNativeUseReason, g as ARTIFACT_DIRS, h as workspaceDirRemoved, i as clearWorkspaceOutputs, jt as readConcurrency, kt as eachLimited, l as keptByLock, m as workspaceBuildReasons, o as collectWorkspaceOutputs, s as deleteOrphanedWorkspaces, t as LIGHTEN_AFTER_MS, u as listWorkspaceDirs, v as withIdleWorkspace, x as resolveSupervisorTarget, y as workspaceInUse } from "./workspaces-Dh5N70qW.mjs";
1
+ import { T as process_identity_exports, f as WorkspaceProcessCleanupError, m as workspaceProcessLockError, n as isTimeoutError, p as withWorkspaceProcessLock, t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { E as workspaceDir, j as workspaceStateFile$1, k as workspaceLogsDir$1, r as readWorkspaceState$1, u as workspaceLastUsed, w as workspaceAgentDeviceDir } from "./workspace-state-DOPXG2Gp.mjs";
3
+ import { o as formatLongDuration, u as plural } from "./command-output-ByEmIwur.mjs";
4
+ import { ct as measuredDirectorySizeAsync, gt as projectDeviceSlots, it as formatBytes, m as getProject, ot as isOnMountedVolume, rt as directorySizeAsync, st as listMountedVolumes, v as loadConfig$1 } from "./config-CNmN-ndb.mjs";
5
+ import { c as gitQuiet, l as gitQuietAsync, n as runOperationFileQuiet, r as childEnvironment } from "./operation-exec-DNynwpqO.mjs";
6
+ import { At as listWorktrees, Et as hasUncommittedWorkAsync, Ft as matchWorktreeEntry, Kt as sourceCheckoutOf, O as maintenanceKeepSetting, Pt as lockReason, Ut as resolveFullRefAsync, Wt as resolveSourceCheckoutAsync, X as resolveProjectSettings, Xt as worktreeLockAsync, Z as resolveProjectSettingsAsync, bt as dirtyPathsAsync, h as deviceIdleShutdownMinutesSetting, it as settingValueAt, jt as listWorktreesAsync, mt as LOCKED_REASON, qt as unpushedCommitsAsync, sn as removeTemporaryEntryAsync, wt as hasPopulatedSubmodulesAsync } from "./settings-Ag4pbs0z.mjs";
7
+ import { P as readRemoteSession, i as findProjectRoot$1 } from "./project-BCtQz48d.mjs";
8
+ import { A as getAvdNameForSerialAsync, L as listAvds, N as listAdbDevices, P as listAdbDevicesAsync, R as listAvdsAsync, U as ownedAvdDirectory, k as getAvdNameForSerial, q as ownedAvdSerialResolverAsync, xt as readParked } from "./android-CGctfYpv.mjs";
9
+ import { c as pidExists } from "./metro-TIQ1Wft-.mjs";
10
+ import { At as deleteParkedAvds, B as stopOwnedMetro, Ct as waitForGradleExit, Et as DEVICE_LIST_TIMEOUT_MS, Ft as deviceSweepIsScoped, M as enforceBudget, Mt as deleteProjectDevices, Or as discoverCaches, Ot as collectParkedAvds, P as machineNumber, Q as levelFloors, R as resolveBudget, Tr as phase, Z as diskPressureLevel, _t as collectGradleVersions, b as shutDownIdleDevices, br as memorySweepIsScoped, et as lowestFree, ft as planCacheEmptying, hr as collectMemoryReport, j as cacheLabel, jt as deleteParkedSims, kr as pruneCache, kt as collectParkedSims, ot as emptyCaches, tt as protectWindowMs, vt as deleteGradleVersion, wr as stopIdleGradleDaemons, x as writeIdleShutdownEvent, y as dueIdleDevices, z as trimmableCaches, zt as findStaleProjectDevices } from "./device-capacity-DWUOvY13.mjs";
11
+ import { o as readWebRecord, u as webFacts } from "./state-CfP-ccP8.mjs";
12
+ import { a as unregister, n as readManifest } from "./cache-manifest-BO0TIcPV.mjs";
13
+ import { B as workspaceBuildInProgress, Et as GC_OUTPUT, F as collectOwnedDeviceActivityAsync, Ot as takeGcResults, P as collectOwnedDeviceActivity, a as collectOrphanedWorkspaces, b as workspaceInUseAsync, c as isInsideWorkspaces, d as recentNativeUseReason, g as ARTIFACT_DIRS, h as workspaceDirRemoved, i as clearWorkspaceOutputs, jt as readConcurrency, kt as eachLimited, l as keptByLock, m as workspaceBuildReasons, o as collectWorkspaceOutputs, s as deleteOrphanedWorkspaces, t as LIGHTEN_AFTER_MS, u as listWorkspaceDirs, v as withIdleWorkspace, x as resolveSupervisorTarget, y as workspaceInUse } from "./workspaces-DCzDzydB.mjs";
14
14
  import { t as canonicalPath } from "./paths-BsJMoPP2.mjs";
15
- import { N as listBuildLocks, _ as workspaceDeviceLastUseAt, b as leaseIsExpired, g as workspaceActivity, x as listLeaseFiles } from "./activity-BpdDvA8Q.mjs";
16
- import { d as listAllIosSims, f as listAllIosSimsAsync } from "./ios-BhfpRfNf.mjs";
15
+ import { N as listBuildLocks, _ as workspaceDeviceLastUseAt, b as leaseIsExpired, g as workspaceActivity, x as listLeaseFiles } from "./activity-CdpXXSq2.mjs";
16
+ import { d as listAllIosSims, f as listAllIosSimsAsync } from "./ios-BveW7qK1.mjs";
17
17
  import { s as metroStoreRoot } from "./errors-DHm_U5gv.mjs";
18
18
  import { t as resolveMaintenanceSettings } from "./settings-D9LtQaUw.mjs";
19
- import { m as probeHostedSession } from "./hosted-client-DMOOu8vD.mjs";
20
- import { o as runStop } from "./stop-C3d5qG7C.mjs";
21
- import { D as stimCliUseOf, E as stimCliEntries, M as worktreeArchiveLimits, T as serviceRunningFrom, _ as cacheBlocked, a as nestedWorktrees, b as measurePressure, i as excludeWatchmanCookies, o as porcelainPath, p as removeWorktreeTarget, r as excludePodChurn, s as reclaimKeys, v as measureDisk, w as uncommittedActivityOf, x as measurePressureAsync, y as measureDiskAsync } from "./worktree-Yw3EW77B.mjs";
22
- import { n as describePullRequest, r as endedPullRequest, s as pullRequestLookups } from "./pull-request-BpMTNkMB.mjs";
23
- import { a as lastFetchedAtAsync, c as mergeStateAsync, f as recordPullRequestLookup, i as fetchDefaultBranchAsync, o as localDefaultBranchAsync, r as FETCH_FRESH_MS } from "./warm-progress-DwsGBpph.mjs";
24
- import { a as restoreProblem, r as recordLightened, t as finishLightened } from "./lightened-B6TnpHMX.mjs";
19
+ import { m as probeHostedSession } from "./hosted-client-BLwuXEZS.mjs";
20
+ import { o as runStop } from "./stop-CkmBkNyg.mjs";
21
+ import { D as stimCliUseOf, E as stimCliEntries, M as worktreeArchiveLimits, T as serviceRunningFrom, _ as cacheBlocked, a as nestedWorktrees, b as measurePressure, i as excludeWatchmanCookies, o as porcelainPath, p as removeWorktreeTarget, r as excludePodChurn, s as reclaimKeys, v as measureDisk, w as uncommittedActivityOf, x as measurePressureAsync, y as measureDiskAsync } from "./worktree-BAC43Kio.mjs";
22
+ import { n as describePullRequest, r as endedPullRequest, s as pullRequestLookups } from "./pull-request-m8cMZ3aE.mjs";
23
+ import { a as lastFetchedAtAsync, c as mergeStateAsync, f as recordPullRequestLookup, i as fetchDefaultBranchAsync, o as localDefaultBranchAsync, r as FETCH_FRESH_MS } from "./warm-progress-CJQ8tk5O.mjs";
24
+ import { a as restoreProblem, r as recordLightened, t as finishLightened } from "./lightened-Cdfmo8MO.mjs";
25
25
  import { readClaimSet } from "@stim-cli/core/ownership-claim";
26
26
  import { existsSync, lstatSync, readFileSync, readdirSync, readlinkSync, realpathSync, rmSync, statSync } from "node:fs";
27
27
  import { tmpdir } from "node:os";
@@ -1,9 +1,9 @@
1
- import { D as ownership_claim_exports, T as process_identity_exports, _ as declareSpawnsOn, t as getExecutor, x as stopDeclaringSpawnsOn } from "./exec-CGuDzt40.mjs";
2
- import { M as withDirLock$1, N as withDirLockAsync$1, c as withWorkspaceStateLock, d as writeWorkspaceState, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1 } from "./workspace-state-BhwAJBgA.mjs";
3
- import { a as formatElapsed, i as formatDuration, m as shortHash } from "./command-output-T3cDctRE.mjs";
4
- import { d as getConfigDir, ft as deviceSlotKey, mt as parseDeviceSlotKey, vt as validateDeviceSlot } from "./config-BA3TgoIP.mjs";
5
- import { n as runOperationFileQuiet } from "./operation-exec-DKlBcKAL.mjs";
6
- import { T as resolveBuild } from "./build-cache-BW8T4oD2.mjs";
1
+ import { D as ownership_claim_exports, T as process_identity_exports, _ as declareSpawnsOn, t as getExecutor, x as stopDeclaringSpawnsOn } from "./exec-L37dbiIb.mjs";
2
+ import { M as withDirLock$1, N as withDirLockAsync$1, c as withWorkspaceStateLock, d as writeWorkspaceState, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1 } from "./workspace-state-DOPXG2Gp.mjs";
3
+ import { a as formatElapsed, i as formatDuration, m as shortHash } from "./command-output-ByEmIwur.mjs";
4
+ import { d as getConfigDir, ft as deviceSlotKey, mt as parseDeviceSlotKey, vt as validateDeviceSlot } from "./config-CNmN-ndb.mjs";
5
+ import { n as runOperationFileQuiet } from "./operation-exec-DNynwpqO.mjs";
6
+ import { T as resolveBuild } from "./build-cache-Dt-dhCJF.mjs";
7
7
  import { randomBytes } from "node:crypto";
8
8
  import { closeSync, fstatSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
9
9
  import { homedir } from "node:os";
@@ -1,8 +1,8 @@
1
- import { T as process_identity_exports } from "./exec-CGuDzt40.mjs";
2
- import { o as formatLongDuration } from "./command-output-T3cDctRE.mjs";
3
- import { it as formatBytes } from "./config-BA3TgoIP.mjs";
4
- import { bt as measureDu, u as listWorkspaceDirs, xt as writeUsageCache, yt as canonical } from "./workspaces-Dh5N70qW.mjs";
5
- import { c as parseAgentDeviceRecord, o as envDir, u as processMatches } from "./activity-BpdDvA8Q.mjs";
1
+ import { T as process_identity_exports } from "./exec-L37dbiIb.mjs";
2
+ import { o as formatLongDuration } from "./command-output-ByEmIwur.mjs";
3
+ import { it as formatBytes } from "./config-CNmN-ndb.mjs";
4
+ import { bt as measureDu, u as listWorkspaceDirs, xt as writeUsageCache, yt as canonical } from "./workspaces-DCzDzydB.mjs";
5
+ import { c as parseAgentDeviceRecord, o as envDir, u as processMatches } from "./activity-CdpXXSq2.mjs";
6
6
  import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
7
7
  import { homedir } from "node:os";
8
8
  import { isAbsolute, join, relative, sep } from "node:path";
@@ -1,43 +1,43 @@
1
- import { D as ownership_claim_exports, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { a as recordWorkspaceUseAsync, f as writeWorkspaceStateAsync, g as emulatorLogFile, k as workspaceLogsDir$1, r as readWorkspaceState$1 } from "./workspace-state-BhwAJBgA.mjs";
3
- import { _ as stepTimer, f as refuseNoProject, g as stepClock, i as formatDuration, l as phaseLine } from "./command-output-T3cDctRE.mjs";
4
- import { A as withConfigLockAsync$1, O as upsertProject, dt as deviceSlotFileKey, ht as parseDeviceSlotOption, m as getProject, pt as deviceSlotPlatforms, u as getConcurrencyLimits, vt as validateDeviceSlot } from "./config-BA3TgoIP.mjs";
5
- import { B as publicUrlSetting, F as metroWarmupUrlSetting, J as resolveCacheProviderConfig, N as metroPortSetting, Q as resolveSettings, W as remoteEasFallbackSetting, Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY, dt as detectProviders, g as deviceReclaimIdleMinutesSetting, ot as tunnelModeSetting, z as projectSettingsContextAsync } from "./settings-Bap-qjnp.mjs";
6
- import { f as projectRegistry, i as findProjectRoot$1, l as projectShortcut, t as NO_PROJECT_REFUSAL, z as writeWorkspaceLaunchAsync } from "./project-Clk1JAWL.mjs";
7
- import { $ as probeEmulatorSerial, At as configuredAndroidEmulatorApp, E as emulatorProbeSession, M as isEmulatorToolAbsent, P as listAdbDevicesAsync, U as ownedAvdDirectory, Z as physicalDeviceModel, a as androidDeviceAbi, at as resolvePhysicalDevice, it as resolveOwnedAvdSerialAsync, ut as waitForBoot, v as avdStorageExists, z as listInstalledSystemImages } from "./android-SJx1V3R3.mjs";
8
- import { c as pidExists, d as resolveProjectMetro } from "./metro-DM3yJL1M.mjs";
1
+ import { D as ownership_claim_exports, t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { a as recordWorkspaceUseAsync, f as writeWorkspaceStateAsync, g as emulatorLogFile, k as workspaceLogsDir$1, r as readWorkspaceState$1 } from "./workspace-state-DOPXG2Gp.mjs";
3
+ import { _ as stepTimer, f as refuseNoProject, g as stepClock, i as formatDuration, l as phaseLine } from "./command-output-ByEmIwur.mjs";
4
+ import { A as withConfigLockAsync$1, O as upsertProject, dt as deviceSlotFileKey, ht as parseDeviceSlotOption, m as getProject, pt as deviceSlotPlatforms, u as getConcurrencyLimits, vt as validateDeviceSlot } from "./config-CNmN-ndb.mjs";
5
+ import { B as publicUrlSetting, F as metroWarmupUrlSetting, J as resolveCacheProviderConfig, N as metroPortSetting, Q as resolveSettings, W as remoteEasFallbackSetting, Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY, dt as detectProviders, g as deviceReclaimIdleMinutesSetting, ot as tunnelModeSetting, z as projectSettingsContextAsync } from "./settings-Ag4pbs0z.mjs";
6
+ import { f as projectRegistry, i as findProjectRoot$1, l as projectShortcut, t as NO_PROJECT_REFUSAL, z as writeWorkspaceLaunchAsync } from "./project-BCtQz48d.mjs";
7
+ import { $ as probeEmulatorSerial, At as configuredAndroidEmulatorApp, E as emulatorProbeSession, M as isEmulatorToolAbsent, P as listAdbDevicesAsync, U as ownedAvdDirectory, Z as physicalDeviceModel, a as androidDeviceAbi, at as resolvePhysicalDevice, it as resolveOwnedAvdSerialAsync, ut as waitForBoot, v as avdStorageExists, z as listInstalledSystemImages } from "./android-CGctfYpv.mjs";
8
+ import { c as pidExists, d as resolveProjectMetro } from "./metro-TIQ1Wft-.mjs";
9
9
  import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
10
- import { $t as remoteAndroidDeps, An as installAndroidApp, Fn as launchAndroidReleaseApp, Hn as exitAfterFlush, Jn as checkEasAuth, Pn as launchAndroidApp, S as CCACHE_NOT_RUN, Wn as runProcessOperation, Xt as ensureMetroReachable, Zt as ensureRemoteBootOwned, dr as ownedSessionName, hn as verifyLaunch, k as budgetGate, mn as verifyAndroidReleaseLaunch, n as DeviceAdmissionRefusal, nr as resolveRemote, qt as binOnPath, r as checkDeviceCapacity, rr as uploadRemote, tn as resolveRemoteContext, tr as resolveEasCliBin, vn as ADB_INSTALL_TIMEOUT_MS, yn as DEFAULT_METRO_PORT } from "./device-capacity-CpAVcKgq.mjs";
11
- import { $ as tapBuildLog, H as NO_BUILD_PROGRESS, Q as startBuildProgress, St as acquireBuildSlot, Tt as releaseBuildSlot, Z as runFailureRecord, ct as recordRunStats, et as thrownRunFailureRecord, it as readRunEstimates, lt as statsProjectKey$1, ot as recordCapacityRefusal, rt as createRunRecorder } from "./workspaces-Dh5N70qW.mjs";
12
- import { _t as runCancellationSignal, gt as runCancellation, lt as cancelledFailure, vt as withNativeBuildRun } from "./toolchain-DCnWAxQL.mjs";
13
- import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-BpdDvA8Q.mjs";
14
- import { D as storedAppId } from "./build-cache-BW8T4oD2.mjs";
15
- import { C as setRemoteLogSink } from "./client-KSWIeQLA.mjs";
16
- import { J as releaseLeaseOnAbort, L as resolveBuildPlacement, N as parseBuildMachineOption, U as acquireRunLease, W as leaseExpiryText, X as waitFlagConflict, Y as runLease } from "./support-BJbXovoO.mjs";
17
- import { i as hostedMetroSettings } from "./metro-request-O8Q-JvBg.mjs";
18
- import { a as writeHostedAndroidAsync, i as writeDevicePlacementAsync, t as readHostedAndroid } from "./ios-state-Avwz2cbZ.mjs";
19
- import { n as prepareHostedAndroid, t as placeHostedAndroid } from "./hosted-android-D__HGVIO.mjs";
20
- import { n as verifyCollectorOwnership } from "./ownership-C3y8wLSl.mjs";
21
- import { i as restoreLightenedDependencies, n as printLightenedFailure } from "./lightened-B6TnpHMX.mjs";
22
- import { c as startDevServer } from "./start-YpT_JpQQ.mjs";
23
- import { r as ensureSystemImage, t as androidImageInstallPolicy } from "./android-image-BZ57YL6R.mjs";
24
- import { a as resolveEasDevelopmentBuild, r as isEasBuildFailure } from "./eas-build-Xf5Jd6LR.mjs";
25
- import { t as followHostedLaunchLogs } from "./hosted-logs-sync-B7XCeqVm.mjs";
26
- import { f as settleFingerprintCheck } from "./prebuild-Di2IhUue.mjs";
27
- import { i as launchOutcomeRecord, n as ensureWorkspaceStorageSafely, r as isPhysicalDeviceRequest, t as ensureDevServer } from "./native-runtime-C3_NkUlW.mjs";
28
- import { t as lookupRecordedBuild } from "./recorded-build-BuGL_fnm.mjs";
29
- import { S as pooledAndroidDevice, a as PLATFORM, b as noDeviceDiagnostic, g as dumpApkManifest, h as displayPath, o as androidBuildOptions, p as apkPackage, r as NO_DEVICE, s as androidDevClientScheme } from "./support-Vckdzrmk.mjs";
30
- import { n as devicePlacementRecord } from "./placement-log-B8RCSzOm.mjs";
31
- import { n as acquireAndroidArtifactOrRecorded } from "./artifact-C3srrGVU.mjs";
32
- import { a as persistLastBuild, c as androidDeviceSelectorRefusal, i as logPostBuildFailure, n as finishAndroidUpload, o as persistThrownBuild, s as reportAndroidResult, u as resolveAndroidRunPlan } from "./result-BkDpN5Mz.mjs";
33
- import { n as devicePlacementLine, t as automaticDevicePlacement } from "./auto-placement-CKFpFCuq.mjs";
34
- import { i as verifyAndroidMetroRun, r as finishAndroidRun } from "./launch-6ckG9UrC.mjs";
35
- import { t as checkEasFallback } from "./eas-fallback-DNYPNinw.mjs";
36
- import { i as warmMetro, n as ensureBooted, r as ensureOwnedDevice, t as didSetUpDevice } from "./device-BZWt_aPJ.mjs";
37
- import { a as AvdBootError, o as AvdRecoveryError } from "./device-android-BB9Lugr8.mjs";
38
- import { t as selectFromPool } from "./device-pool-BJToGG-q.mjs";
10
+ import { $t as remoteAndroidDeps, An as installAndroidApp, Fn as launchAndroidReleaseApp, Hn as exitAfterFlush, Jn as checkEasAuth, Pn as launchAndroidApp, S as CCACHE_NOT_RUN, Wn as runProcessOperation, Xt as ensureMetroReachable, Zt as ensureRemoteBootOwned, dr as ownedSessionName, hn as verifyLaunch, k as budgetGate, mn as verifyAndroidReleaseLaunch, n as DeviceAdmissionRefusal, nr as resolveRemote, qt as binOnPath, r as checkDeviceCapacity, rr as uploadRemote, tn as resolveRemoteContext, tr as resolveEasCliBin, vn as ADB_INSTALL_TIMEOUT_MS, yn as DEFAULT_METRO_PORT } from "./device-capacity-DWUOvY13.mjs";
11
+ import { $ as tapBuildLog, H as NO_BUILD_PROGRESS, Q as startBuildProgress, St as acquireBuildSlot, Tt as releaseBuildSlot, Z as runFailureRecord, ct as recordRunStats, et as thrownRunFailureRecord, it as readRunEstimates, lt as statsProjectKey$1, ot as recordCapacityRefusal, rt as createRunRecorder } from "./workspaces-DCzDzydB.mjs";
12
+ import { _t as runCancellationSignal, gt as runCancellation, lt as cancelledFailure, vt as withNativeBuildRun } from "./toolchain-BeD7tbBW.mjs";
13
+ import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-CdpXXSq2.mjs";
14
+ import { D as storedAppId } from "./build-cache-Dt-dhCJF.mjs";
15
+ import { C as setRemoteLogSink } from "./client-DU6dnGX1.mjs";
16
+ import { J as releaseLeaseOnAbort, L as resolveBuildPlacement, N as parseBuildMachineOption, U as acquireRunLease, W as leaseExpiryText, X as waitFlagConflict, Y as runLease } from "./support-CfYmOdQs.mjs";
17
+ import { i as hostedMetroSettings } from "./metro-request-DcUxyaq8.mjs";
18
+ import { a as writeHostedAndroidAsync, i as writeDevicePlacementAsync, t as readHostedAndroid } from "./ios-state-enWc5P6U.mjs";
19
+ import { n as prepareHostedAndroid, t as placeHostedAndroid } from "./hosted-android-D8JbIzgC.mjs";
20
+ import { n as verifyCollectorOwnership } from "./ownership-CQTg6v1d.mjs";
21
+ import { i as restoreLightenedDependencies, n as printLightenedFailure } from "./lightened-Cdfmo8MO.mjs";
22
+ import { c as startDevServer } from "./start-CzBB5R7N.mjs";
23
+ import { r as ensureSystemImage, t as androidImageInstallPolicy } from "./android-image-DY8KxK2m.mjs";
24
+ import { a as resolveEasDevelopmentBuild, r as isEasBuildFailure } from "./eas-build-CwOXKJwa.mjs";
25
+ import { t as followHostedLaunchLogs } from "./hosted-logs-sync-uWSrH2mf.mjs";
26
+ import { f as settleFingerprintCheck } from "./prebuild-BKkj3OyL.mjs";
27
+ import { i as launchOutcomeRecord, n as ensureWorkspaceStorageSafely, r as isPhysicalDeviceRequest, t as ensureDevServer } from "./native-runtime-UxUBU8up.mjs";
28
+ import { t as lookupRecordedBuild } from "./recorded-build-CGHGCO8m.mjs";
29
+ import { S as pooledAndroidDevice, a as PLATFORM, b as noDeviceDiagnostic, g as dumpApkManifest, h as displayPath, o as androidBuildOptions, p as apkPackage, r as NO_DEVICE, s as androidDevClientScheme } from "./support-JZ4KRW0C.mjs";
30
+ import { n as devicePlacementRecord } from "./placement-log-oQnELAvQ.mjs";
31
+ import { n as acquireAndroidArtifactOrRecorded } from "./artifact-BsimBWxG.mjs";
32
+ import { a as persistLastBuild, c as androidDeviceSelectorRefusal, i as logPostBuildFailure, n as finishAndroidUpload, o as persistThrownBuild, s as reportAndroidResult, u as resolveAndroidRunPlan } from "./result-CWyxwPvZ.mjs";
33
+ import { n as devicePlacementLine, t as automaticDevicePlacement } from "./auto-placement-CFKNrWLU.mjs";
34
+ import { i as verifyAndroidMetroRun, r as finishAndroidRun } from "./launch-f3RnbFW5.mjs";
35
+ import { t as checkEasFallback } from "./eas-fallback-Cnb12a50.mjs";
36
+ import { i as warmMetro, n as ensureBooted, r as ensureOwnedDevice, t as didSetUpDevice } from "./device-BIg1iExg.mjs";
37
+ import { a as AvdBootError, o as AvdRecoveryError } from "./device-android-CBat355q.mjs";
38
+ import { t as selectFromPool } from "./device-pool-B8IqZKqm.mjs";
39
39
  import { t as unsupportedPlan } from "./project-plan-BPwbLwQu.mjs";
40
- import { a as refusePlan, i as printPlan, n as planFlagRefusal } from "./build-plan-CeIooJqn.mjs";
40
+ import { a as refusePlan, i as printPlan, n as planFlagRefusal } from "./build-plan-CgnLDof9.mjs";
41
41
  import { join } from "node:path";
42
42
  import { workspaceId } from "@stim-cli/core";
43
43
  import { hostedAndroidStatus, parseMachine } from "@stim-cli/core/state";
@@ -430,6 +430,7 @@ function runAndroidOperation(context, root, opts = {}) {
430
430
  slot: opts.slot,
431
431
  easProfile: opts.easProfile,
432
432
  recordedBuild: opts.recordedBuild,
433
+ cleanAppState: opts.cleanAppState,
433
434
  json: Boolean(opts.json),
434
435
  metroCheck: opts.metroCheck !== false,
435
436
  useBuildCache: opts.buildCache !== false,
@@ -447,7 +448,7 @@ function runAndroidOperation(context, root, opts = {}) {
447
448
  }
448
449
  }, { write: (line) => context.output("stderr", `${chalk.dim(phaseLine("lock", line))}\n`) });
449
450
  }
450
- function resolveRunAndroidOptions({ context, root, json = false, remoteDevice: commandRemoteBackend = null, resolveSettingsFor = resolveSettings, resolveRemoteDeviceContext = resolveRemoteContext, remoteDeviceDeps: makeRemoteDeviceDeps = remoteAndroidDeps, resolveEasBin = resolveEasCliBin, ensureMetroReachable: ensureRemoteMetro = ensureMetroReachable, ensureRemoteBootOwned: ensureRemoteOwned = ensureRemoteBootOwned, detectRemoteProviders = detectProviders, metroCheck = true, useBuildCache = true, easProfile, recordedBuild, resolveEasDevelopmentBuild: resolveEasBuild = resolveEasDevelopmentBuild, variant: variantFlag = null, systemImage: systemImageFlag = null, deviceProfile: deviceProfileFlag, device: deviceFlag = null, wait: waitFlag = void 0, waitConflict = false, acquireLease = acquireRunLease, makeRunLease = runLease, selectPool = selectFromPool, onLeaseSignal = releaseLeaseOnAbort, listDevices = listAdbDevicesAsync, deviceModel = physicalDeviceModel, deviceAbi = androidDeviceAbi, isEmulatorDevice = probeEmulatorSerial, readApkPackage = async (apkPath) => apkPackage(await dumpApkManifest(apkPath, { context })), getLimits = getConcurrencyLimits, checkCapacity = checkDeviceCapacity, acquireSlot = acquireBuildSlot, releaseSlot = releaseBuildSlot, ensureDevice = ensureOwnedDevice, listSystemImages = listInstalledSystemImages, listDeviceProfiles, ensureDeviceBooted = ensureBooted, resolveAvdSerial = resolveOwnedAvdSerialAsync, waitForDeviceBoot = waitForBoot, dataFreeBytes, trimCaches, wipeDevice, resolveMetro = resolveProjectMetro, warmMetro: prewarmMetro = warmMetro, startServer = startDevServer, readState = readWorkspaceState$1, pidAlive = pidExists, verifyCollector = verifyCollectorOwnership, verifyLaunched = verifyLaunch, ensureStorage = ensureWorkspaceStorageSafely, acquireLock = acquireBuildLock, releaseLock = releaseBuildLock, waitForBuild: waitForBuild$1 = waitForBuild, easAuth = checkEasAuth, resolveRemoteBuild = resolveRemote, uploadRemoteBuild = uploadRemote, resolveCacheProvider = resolveCacheProviderConfig, loadCacheProviderModule = loadCacheProvider, storedAppId: storedAppId$1 = storedAppId, install = installAndroidApp, launch = launchAndroidApp, launchRelease = launchAndroidReleaseApp, verifyReleaseLaunched = verifyAndroidReleaseLaunch, resolveDevClientScheme = (projectRoot, apkPath, options) => androidDevClientScheme(projectRoot, apkPath, {
451
+ function resolveRunAndroidOptions({ context, root, json = false, remoteDevice: commandRemoteBackend = null, resolveSettingsFor = resolveSettings, resolveRemoteDeviceContext = resolveRemoteContext, remoteDeviceDeps: makeRemoteDeviceDeps = remoteAndroidDeps, resolveEasBin = resolveEasCliBin, ensureMetroReachable: ensureRemoteMetro = ensureMetroReachable, ensureRemoteBootOwned: ensureRemoteOwned = ensureRemoteBootOwned, detectRemoteProviders = detectProviders, metroCheck = true, useBuildCache = true, easProfile, recordedBuild, cleanAppState = false, resolveEasDevelopmentBuild: resolveEasBuild = resolveEasDevelopmentBuild, variant: variantFlag = null, systemImage: systemImageFlag = null, deviceProfile: deviceProfileFlag, device: deviceFlag = null, wait: waitFlag = void 0, waitConflict = false, acquireLease = acquireRunLease, makeRunLease = runLease, selectPool = selectFromPool, onLeaseSignal = releaseLeaseOnAbort, listDevices = listAdbDevicesAsync, deviceModel = physicalDeviceModel, deviceAbi = androidDeviceAbi, isEmulatorDevice = probeEmulatorSerial, readApkPackage = async (apkPath) => apkPackage(await dumpApkManifest(apkPath, { context })), getLimits = getConcurrencyLimits, checkCapacity = checkDeviceCapacity, acquireSlot = acquireBuildSlot, releaseSlot = releaseBuildSlot, ensureDevice = ensureOwnedDevice, listSystemImages = listInstalledSystemImages, listDeviceProfiles, ensureDeviceBooted = ensureBooted, resolveAvdSerial = resolveOwnedAvdSerialAsync, waitForDeviceBoot = waitForBoot, dataFreeBytes, trimCaches, wipeDevice, resolveMetro = resolveProjectMetro, warmMetro: prewarmMetro = warmMetro, startServer = startDevServer, readState = readWorkspaceState$1, pidAlive = pidExists, verifyCollector = verifyCollectorOwnership, verifyLaunched = verifyLaunch, ensureStorage = ensureWorkspaceStorageSafely, acquireLock = acquireBuildLock, releaseLock = releaseBuildLock, waitForBuild: waitForBuild$1 = waitForBuild, easAuth = checkEasAuth, resolveRemoteBuild = resolveRemote, uploadRemoteBuild = uploadRemote, resolveCacheProvider = resolveCacheProviderConfig, loadCacheProviderModule = loadCacheProvider, storedAppId: storedAppId$1 = storedAppId, install = installAndroidApp, launch = launchAndroidApp, launchRelease = launchAndroidReleaseApp, verifyReleaseLaunched = verifyAndroidReleaseLaunch, resolveDevClientScheme = (projectRoot, apkPath, options) => androidDevClientScheme(projectRoot, apkPath, {
451
452
  ...options,
452
453
  context
453
454
  }), spawn = (cmd, args, opts) => getExecutor().spawn(cmd, args, opts), kill = (pid, signal) => process.kill(pid, signal), createWriter = createNdjsonWriter, writeLaunch = writeWorkspaceLaunchAsync, writeState = writeWorkspaceStateAsync, recordBuild, recordStats = recordRunStats, recordCapacityRefusal: recordRefusal, readEstimates = readRunEstimates, now = Date.now, out = (line) => context ? context.output("stderr", `${line}\n`) : console.error(line), emit = (line) => context ? context.output("stdout", `${line}\n`) : console.log(line) } = {}) {
@@ -466,6 +467,7 @@ function resolveRunAndroidOptions({ context, root, json = false, remoteDevice: c
466
467
  useBuildCache,
467
468
  easProfile,
468
469
  recordedBuild,
470
+ cleanAppState,
469
471
  resolveEasBuild,
470
472
  variantFlag,
471
473
  systemImageFlag,
@@ -611,7 +613,7 @@ async function localRunRefusal(budgetRefusal, target, keepsAvd, ensureImage, rec
611
613
  }
612
614
  async function runAndroid(options = {}) {
613
615
  const { context } = options;
614
- let { root, json, commandRemoteBackend, resolveSettingsFor, resolveRemoteDeviceContext, makeRemoteDeviceDeps, resolveEasBin, ensureRemoteMetro, ensureRemoteOwned, detectRemoteProviders, metroCheck, useBuildCache: requestedBuildCache, easProfile, recordedBuild: recordedBuildRequested, resolveEasBuild, variantFlag, systemImageFlag, deviceProfileFlag, deviceFlag, waitFlag, waitConflict, acquireLease, makeRunLease, selectPool, onLeaseSignal, listDevices, deviceModel, deviceAbi, isEmulatorDevice, readApkPackage, getLimits, checkCapacity, acquireSlot, releaseSlot, ensureDevice, listSystemImages, listDeviceProfiles, ensureDeviceBooted, resolveAvdSerial, waitForDeviceBoot, dataFreeBytes, trimCaches, wipeDevice, resolveMetro, prewarmMetro, startServer, readState, pidAlive, verifyCollector, verifyLaunched, ensureStorage, acquireLock, releaseLock, waitForBuild, easAuth, resolveRemoteBuild, uploadRemoteBuild, resolveCacheProvider, loadCacheProviderModule, storedAppId, install, launch, launchRelease, verifyReleaseLaunched, resolveDevClientScheme, spawn, kill, createWriter, writeLaunch, writeState, recordBuild, recordStats, recordCapacityRefusal: recordRefusal = recordCapacityRefusal, readEstimates, now, out, emit } = androidSlotOptions(options);
616
+ let { root, json, commandRemoteBackend, resolveSettingsFor, resolveRemoteDeviceContext, makeRemoteDeviceDeps, resolveEasBin, ensureRemoteMetro, ensureRemoteOwned, detectRemoteProviders, metroCheck, useBuildCache: requestedBuildCache, easProfile, recordedBuild: recordedBuildRequested, cleanAppState, resolveEasBuild, variantFlag, systemImageFlag, deviceProfileFlag, deviceFlag, waitFlag, waitConflict, acquireLease, makeRunLease, selectPool, onLeaseSignal, listDevices, deviceModel, deviceAbi, isEmulatorDevice, readApkPackage, getLimits, checkCapacity, acquireSlot, releaseSlot, ensureDevice, listSystemImages, listDeviceProfiles, ensureDeviceBooted, resolveAvdSerial, waitForDeviceBoot, dataFreeBytes, trimCaches, wipeDevice, resolveMetro, prewarmMetro, startServer, readState, pidAlive, verifyCollector, verifyLaunched, ensureStorage, acquireLock, releaseLock, waitForBuild, easAuth, resolveRemoteBuild, uploadRemoteBuild, resolveCacheProvider, loadCacheProviderModule, storedAppId, install, launch, launchRelease, verifyReleaseLaunched, resolveDevClientScheme, spawn, kill, createWriter, writeLaunch, writeState, recordBuild, recordStats, recordCapacityRefusal: recordRefusal = recordCapacityRefusal, readEstimates, now, out, emit } = androidSlotOptions(options);
615
617
  const progress = options.progress ?? NO_BUILD_PROGRESS;
616
618
  const slot = validateDeviceSlot(options.slot);
617
619
  const started = now();
@@ -1371,6 +1373,7 @@ async function runAndroid(options = {}) {
1371
1373
  device,
1372
1374
  physical,
1373
1375
  remoteDevice,
1376
+ cleanAppState,
1374
1377
  bootPromise,
1375
1378
  resolveAvdSerial,
1376
1379
  waitForDeviceBoot,
@@ -1,5 +1,5 @@
1
- import { t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { u as androidToolCwd } from "./android-SJx1V3R3.mjs";
1
+ import { t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { u as androidToolCwd } from "./android-CGctfYpv.mjs";
3
3
  //#region src/collector/android.ts
4
4
  const LEVEL_BY_LETTER = {
5
5
  V: "debug",
@@ -1,10 +1,10 @@
1
- import { D as ownership_claim_exports, T as process_identity_exports, _ as declareSpawnsOn, f as WorkspaceProcessCleanupError, l as cancellableSleep, t as getExecutor, x as stopDeclaringSpawnsOn } from "./exec-CGuDzt40.mjs";
2
- import { M as withDirLock$1, N as withDirLockAsync$1 } from "./workspace-state-BhwAJBgA.mjs";
3
- import { A as withConfigLockAsync$1, _t as removeSlotDevice, c as ensureConfig, d as getConfigDir, f as getConfigPath$1, gt as projectDeviceSlots, k as withConfigLock$1, pt as deviceSlotPlatforms, ut as assignSlotDevice, v as loadConfig$1, w as saveConfig } from "./config-BA3TgoIP.mjs";
4
- import { n as runOperationFileQuiet, t as runOperationFile } from "./operation-exec-DKlBcKAL.mjs";
5
- import { c as androidDataPartitionSizeBytes } from "./settings-Bap-qjnp.mjs";
6
- import { i as stimDesktopInstalledAsync, n as settingDefault, t as STIM_DESKTOP_OPEN_OPTIONS } from "./stim-desktop-D0P_bzmd.mjs";
7
- import { c as pidExists, p as signalProcessTreeAsync } from "./metro-DM3yJL1M.mjs";
1
+ import { D as ownership_claim_exports, T as process_identity_exports, _ as declareSpawnsOn, f as WorkspaceProcessCleanupError, l as cancellableSleep, t as getExecutor, x as stopDeclaringSpawnsOn } from "./exec-L37dbiIb.mjs";
2
+ import { M as withDirLock$1, N as withDirLockAsync$1 } from "./workspace-state-DOPXG2Gp.mjs";
3
+ import { A as withConfigLockAsync$1, _t as removeSlotDevice, c as ensureConfig, d as getConfigDir, f as getConfigPath$1, gt as projectDeviceSlots, k as withConfigLock$1, pt as deviceSlotPlatforms, ut as assignSlotDevice, v as loadConfig$1, w as saveConfig } from "./config-CNmN-ndb.mjs";
4
+ import { n as runOperationFileQuiet, t as runOperationFile } from "./operation-exec-DNynwpqO.mjs";
5
+ import { c as androidDataPartitionSizeBytes } from "./settings-Ag4pbs0z.mjs";
6
+ import { i as stimDesktopInstalledAsync, n as settingDefault, t as STIM_DESKTOP_OPEN_OPTIONS } from "./stim-desktop-DWGAfaud.mjs";
7
+ import { c as pidExists, p as signalProcessTreeAsync } from "./metro-TIQ1Wft-.mjs";
8
8
  import { renameSync, rmSync, writeFileSync } from "node:fs";
9
9
  import { isDeepStrictEqual } from "node:util";
10
10
  import { join } from "node:path";
@@ -1,6 +1,6 @@
1
- import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-T3cDctRE.mjs";
2
- import { E as resolveVariant, T as resolveSystemImage, _ as findAapt, b as noDeviceDiagnostic, d as androidVariantSetting, f as apkDevClientFacts, g as dumpApkManifest, h as displayPath, i as NO_FINGERPRINT, p as apkPackage, r as NO_DEVICE, s as androidDevClientScheme, u as androidSystemImageSetting, x as parseXmltree, y as isReleaseVariant } from "./support-Vckdzrmk.mjs";
3
- import { r as lastBuildRecord, t as androidFacts } from "./result-BkDpN5Mz.mjs";
4
- import { i as runAndroidOperation, n as registerAndroid, r as runAndroid, t as androidCommand } from "./android-e9WP10cE.mjs";
5
- import { a as collectorLogFile, o as killPreviousCollector, s as startCollector } from "./launch-6ckG9UrC.mjs";
1
+ import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-ByEmIwur.mjs";
2
+ import { E as resolveVariant, T as resolveSystemImage, _ as findAapt, b as noDeviceDiagnostic, d as androidVariantSetting, f as apkDevClientFacts, g as dumpApkManifest, h as displayPath, i as NO_FINGERPRINT, p as apkPackage, r as NO_DEVICE, s as androidDevClientScheme, u as androidSystemImageSetting, x as parseXmltree, y as isReleaseVariant } from "./support-JZ4KRW0C.mjs";
3
+ import { r as lastBuildRecord, t as androidFacts } from "./result-CWyxwPvZ.mjs";
4
+ import { i as runAndroidOperation, n as registerAndroid, r as runAndroid, t as androidCommand } from "./android-BBwLpxRh.mjs";
5
+ import { a as collectorLogFile, o as killPreviousCollector, s as startCollector } from "./launch-f3RnbFW5.mjs";
6
6
  export { NO_DEVICE, NO_FINGERPRINT, androidDevClientScheme, androidFacts, androidSystemImageSetting, androidVariantSetting, apkDevClientFacts, apkPackage, collectorLogFile, androidCommand as default, displayPath, dumpApkManifest, findAapt, formatDuration, isReleaseVariant, killPreviousCollector, lastBuildRecord, noDeviceDiagnostic, parseXmltree, phaseLine, registerAndroid, resolveSystemImage, resolveVariant, runAndroid, runAndroidOperation, shortHash, startCollector };
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { t as getExecutor } from "./exec-CGuDzt40.mjs";
2
+ import { t as getExecutor } from "./exec-L37dbiIb.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
5
5
  import { join } from "node:path";
@@ -1,7 +1,7 @@
1
- import { M as withDirLock$1, _ as ensureWorkspaceStorage } from "./workspace-state-BhwAJBgA.mjs";
2
- import { d as getConfigDir } from "./config-BA3TgoIP.mjs";
3
- import { m as defaultAndroidLayout } from "./settings-Bap-qjnp.mjs";
4
- import { r as register } from "./cache-manifest-CxWkZmUr.mjs";
1
+ import { M as withDirLock$1, _ as ensureWorkspaceStorage } from "./workspace-state-DOPXG2Gp.mjs";
2
+ import { d as getConfigDir } from "./config-CNmN-ndb.mjs";
3
+ import { m as defaultAndroidLayout } from "./settings-Ag4pbs0z.mjs";
4
+ import { r as register } from "./cache-manifest-BO0TIcPV.mjs";
5
5
  import { createHash, randomUUID } from "node:crypto";
6
6
  import { accessSync, constants, existsSync, mkdirSync, readFileSync, realpathSync, renameSync, statSync, writeFileSync } from "node:fs";
7
7
  import { join } from "node:path";
@@ -1,6 +1,6 @@
1
- import { D as ownership_claim_exports, T as process_identity_exports, l as cancellableSleep, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { it as settingValueAt } from "./settings-Bap-qjnp.mjs";
3
- import { Q as pickDefaultSystemImage, d as androidToolPath, j as hostSystemImageArch, kt as recordInstalledSystemImageAsync, o as androidHome, z as listInstalledSystemImages } from "./android-SJx1V3R3.mjs";
1
+ import { D as ownership_claim_exports, T as process_identity_exports, l as cancellableSleep, t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { it as settingValueAt } from "./settings-Ag4pbs0z.mjs";
3
+ import { Q as pickDefaultSystemImage, d as androidToolPath, j as hostSystemImageArch, kt as recordInstalledSystemImageAsync, o as androidHome, z as listInstalledSystemImages } from "./android-CGctfYpv.mjs";
4
4
  import { createHash } from "node:crypto";
5
5
  import { existsSync, readFileSync, realpathSync, statfsSync } from "node:fs";
6
6
  import { isAbsolute, join } from "node:path";
package/dist/api.d.mts CHANGED
@@ -50,7 +50,7 @@ type AndroidBuildOptions = Omit<Extract<PlatformBuildOptions, {
50
50
  easProfile?: string;
51
51
  };
52
52
  interface AndroidBuildFacts {
53
- /** Owned copy, retained with this workspace until explicitly removed. */
53
+ /** Owned copy, retained until a build replaces its recorded build or the worktree is removed. */
54
54
  apkPath: string;
55
55
  androidPackage: string | null;
56
56
  variant: string;
@@ -76,7 +76,7 @@ type MacosBuildOptions = Omit<Extract<PlatformBuildOptions, {
76
76
  }>, "platform">;
77
77
  interface MacosBuildFacts {
78
78
  product: string;
79
- /** Owned copy, retained with this workspace until explicitly removed. */
79
+ /** Owned copy, retained with this workspace until the next macOS build or worktree removal. */
80
80
  bundle: string;
81
81
  bundleId: string;
82
82
  executable: string;
@@ -97,7 +97,7 @@ type IosBuildOptions = Omit<Extract<PlatformBuildOptions, {
97
97
  easProfile?: string;
98
98
  };
99
99
  interface IosBuildFacts {
100
- /** Owned simulator app, retained with this workspace until explicitly removed. */
100
+ /** Owned simulator app, retained until a build replaces its recorded build or the worktree is removed. */
101
101
  appPath: string;
102
102
  bundleId: string | null;
103
103
  configuration: string;
@@ -870,6 +870,13 @@ type StimRunOptions = PlatformRunOptions & {
870
870
  * STIM_NO_RECORDED_BUILD when there is none. Not part of the private Desktop transport.
871
871
  */
872
872
  recordedBuild?: boolean;
873
+ /**
874
+ * iOS and Android: start the app from clean state on the workspace's owned local simulator or emulator. Before install,
875
+ * uninstall every other user app and clear the kept app's data: on iOS its defaults and data container, then the
876
+ * simulator keychain; on Android `pm clear`. Applies whether or not the install is skipped. `stim-ci run` always sets
877
+ * it. A run placed on another machine or on EAS is not cleaned. Refused with a physical device.
878
+ */
879
+ cleanAppState?: boolean;
873
880
  signal?: AbortSignal;
874
881
  };
875
882
  type StimRunResult = {
package/dist/api.mjs CHANGED
@@ -1,32 +1,33 @@
1
- import { C as operationState, D as ownership_claim_exports, a as trackReportResource, d as throwIfCancelled, f as WorkspaceProcessCleanupError, i as runReport, u as cancelledError } from "./exec-CGuDzt40.mjs";
2
- import { E as workspaceDir, a as recordWorkspaceUseAsync, k as workspaceLogsDir$1, v as ensureWorkspaceStorageAsync } from "./workspace-state-BhwAJBgA.mjs";
3
- import { l as phaseLine } from "./command-output-T3cDctRE.mjs";
4
- import { A as withConfigLockAsync$1, O as upsertProject, b as refuseRelativeStimPaths, m as getProject, vt as validateDeviceSlot } from "./config-BA3TgoIP.mjs";
5
- import { Vt as repoRootAsync, Z as resolveProjectSettingsAsync, _ as inertSettingWarning, a as SETTING_SHAPE_REMEDY, p as cacheProviderSettingError, rt as settingShapeErrors, st as unknownSettingKeys } from "./settings-Bap-qjnp.mjs";
6
- import { c as projectProblem, f as projectRegistry, i as findProjectRoot$1, r as findCommandWorkspaceAsync, t as NO_PROJECT_REFUSAL } from "./project-Clk1JAWL.mjs";
7
- import { n as macosDir } from "./state-B4B5P4LU.mjs";
8
- import { c as ensureHomeIdentity, s as workspaceShareURL } from "./stim-desktop-D0P_bzmd.mjs";
1
+ import { C as operationState, D as ownership_claim_exports, a as trackReportResource, d as throwIfCancelled, f as WorkspaceProcessCleanupError, i as runReport, u as cancelledError } from "./exec-L37dbiIb.mjs";
2
+ import { E as workspaceDir, a as recordWorkspaceUseAsync, k as workspaceLogsDir$1, v as ensureWorkspaceStorageAsync } from "./workspace-state-DOPXG2Gp.mjs";
3
+ import { l as phaseLine } from "./command-output-ByEmIwur.mjs";
4
+ import { A as withConfigLockAsync$1, O as upsertProject, b as refuseRelativeStimPaths, m as getProject, vt as validateDeviceSlot } from "./config-CNmN-ndb.mjs";
5
+ import { Vt as repoRootAsync, Z as resolveProjectSettingsAsync, _ as inertSettingWarning, a as SETTING_SHAPE_REMEDY, p as cacheProviderSettingError, rt as settingShapeErrors, st as unknownSettingKeys } from "./settings-Ag4pbs0z.mjs";
6
+ import { c as projectProblem, f as projectRegistry, i as findProjectRoot$1, r as findCommandWorkspaceAsync, t as NO_PROJECT_REFUSAL } from "./project-BCtQz48d.mjs";
7
+ import { n as macosDir } from "./state-DsrFh3yv.mjs";
8
+ import { c as ensureHomeIdentity, s as workspaceShareURL } from "./stim-desktop-DWGAfaud.mjs";
9
9
  import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
10
- import { $ as tapBuildLog, Q as startBuildProgress, X as recordFinishedBuild, tt as errorRemedy } from "./workspaces-Dh5N70qW.mjs";
11
- import { _t as runCancellationSignal, vt as withNativeBuildRun } from "./toolchain-DCnWAxQL.mjs";
12
- import { L as resolveBuildPlacement } from "./support-BJbXovoO.mjs";
13
- import { c as stopWorkspaceNow } from "./stop-C3d5qG7C.mjs";
14
- import { r as runReload } from "./reload-A_axEbeS.mjs";
15
- import { m as warmWorktreeTarget, p as removeWorktreeTarget } from "./worktree-Yw3EW77B.mjs";
16
- import { i as restoreLightenedDependencies } from "./lightened-B6TnpHMX.mjs";
17
- import { c as startDevServer } from "./start-YpT_JpQQ.mjs";
18
- import { s as recordDoctorCheck } from "./doctor-watchman-TZxYt_98.mjs";
19
- import { c as readSettingsPayload, s as readSettingsContext, t as SettingsRefusal } from "./settings-payload-D5jjhmrw.mjs";
20
- import { a as readDoctorReport } from "./doctor-DV639Iw_.mjs";
21
- import { i as readGcReport, n as executeGc, o as withGcMaintenanceClaim } from "./gc-DiUhrVFo.mjs";
22
- import { r as readWorkspaceLogs, t as followWorkspaceLogs } from "./logs-CO0CJRiC.mjs";
23
- import { t as readProjectStats } from "./stats-report-BVRCqwWA.mjs";
24
- import { n as buildAndroidOperation, t as buildIosOperation } from "./build-B_Dx9SKJ.mjs";
25
- import { a as readAndroidBuildPlan, i as runAndroidOperation } from "./android-e9WP10cE.mjs";
26
- import { i as readIosBuildPlan, r as runIosOperation } from "./ios-BhpUWyN7.mjs";
27
- import { a as buildMacosBundle, i as planMacos, n as runMacos } from "./macos-B1aCXhem.mjs";
28
- import { t as runWeb } from "./web-D2En0Wa5.mjs";
29
- import { t as mutateSetting } from "./settings-write-C5huI-iS.mjs";
10
+ import { $ as tapBuildLog, Q as startBuildProgress, X as recordFinishedBuild, tt as errorRemedy } from "./workspaces-DCzDzydB.mjs";
11
+ import { _t as runCancellationSignal, vt as withNativeBuildRun } from "./toolchain-BeD7tbBW.mjs";
12
+ import { L as resolveBuildPlacement } from "./support-CfYmOdQs.mjs";
13
+ import { c as stopWorkspaceNow } from "./stop-CkmBkNyg.mjs";
14
+ import { r as runReload } from "./reload-DGWfNFwQ.mjs";
15
+ import { m as warmWorktreeTarget, p as removeWorktreeTarget } from "./worktree-BAC43Kio.mjs";
16
+ import { i as restoreLightenedDependencies } from "./lightened-Cdfmo8MO.mjs";
17
+ import { c as startDevServer } from "./start-CzBB5R7N.mjs";
18
+ import { s as recordDoctorCheck } from "./doctor-watchman-CPE4C8KV.mjs";
19
+ import { c as readSettingsPayload, s as readSettingsContext, t as SettingsRefusal } from "./settings-payload-CUM0DYwz.mjs";
20
+ import { a as readDoctorReport } from "./doctor-CPzwqcXY.mjs";
21
+ import { i as readGcReport, n as executeGc, o as withGcMaintenanceClaim } from "./gc-0jdcnDHs.mjs";
22
+ import { r as readWorkspaceLogs, t as followWorkspaceLogs } from "./logs-DAjxBF3c.mjs";
23
+ import { t as readProjectStats } from "./stats-report-Ci6TAfFm.mjs";
24
+ import { n as pruneArtifactCopies } from "./recorded-build-CGHGCO8m.mjs";
25
+ import { n as buildAndroidOperation, t as buildIosOperation } from "./build-DIhuoozz.mjs";
26
+ import { a as readAndroidBuildPlan, i as runAndroidOperation } from "./android-BBwLpxRh.mjs";
27
+ import { i as readIosBuildPlan, r as runIosOperation } from "./ios-CGyx4PA7.mjs";
28
+ import { a as buildMacosBundle, i as planMacos, n as runMacos } from "./macos-D_LAseN9.mjs";
29
+ import { t as runWeb } from "./web-BXbmysa1.mjs";
30
+ import { t as mutateSetting } from "./settings-write-D_9_IEx7.mjs";
30
31
  import { randomBytes } from "node:crypto";
31
32
  import { mkdirSync, mkdtempSync, readFileSync, realpathSync, rmSync } from "node:fs";
32
33
  import { stripVTControlCharacters } from "node:util";
@@ -153,6 +154,7 @@ async function buildMacosOperation(context, root, options) {
153
154
  recursive: true,
154
155
  force: true
155
156
  });
157
+ if (succeeded && directory) await pruneArtifactCopies(root, "macos", directory, (line) => note(phaseLine("artifacts", line)));
156
158
  writer.close();
157
159
  progress.clear();
158
160
  }
@@ -723,10 +725,11 @@ async function build(context, options) {
723
725
  }
724
726
  }
725
727
  async function run(context, options) {
726
- if (options.recordedBuild && ("device" in options && options.device !== void 0 || "remote" in options && options.remote !== void 0)) throw new StimError({
728
+ const simulatorOnly = options.recordedBuild ? "recordedBuild" : options.cleanAppState ? "cleanAppState" : null;
729
+ if (simulatorOnly && "device" in options && options.device !== void 0) throw new StimError({
727
730
  code: "STIM_BAD_ARG",
728
- message: "recordedBuild installs a local simulator or emulator build, not a physical device or a remote host.",
729
- remedy: "Drop device and remote, or run without recordedBuild."
731
+ message: `${simulatorOnly} applies to a simulator or emulator, not a physical device.`,
732
+ remedy: `Drop device, or run without ${simulatorOnly}.`
730
733
  });
731
734
  const root = context.projectRoot;
732
735
  switch (options.platform) {
@@ -1,5 +1,5 @@
1
- import { y as sharedBuildCache } from "./workspace-state-BhwAJBgA.mjs";
2
- import { O as findBuildTool } from "./android-SJx1V3R3.mjs";
1
+ import { y as sharedBuildCache } from "./workspace-state-DOPXG2Gp.mjs";
2
+ import { O as findBuildTool } from "./android-CGctfYpv.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import { closeSync, fstatSync, openSync, readFileSync, readSync, realpathSync, renameSync, rmSync } from "node:fs";
5
5
  import { basename, dirname, join } from "node:path";
@@ -1,15 +1,15 @@
1
- import { D as ownership_claim_exports, d as throwIfCancelled, w as withDrainingCancellation } from "./exec-CGuDzt40.mjs";
2
- import { E as workspaceDir } from "./workspace-state-BhwAJBgA.mjs";
3
- import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-T3cDctRE.mjs";
4
- import { Gn as RESOLVE_TIMEOUT_MS, Xn as isEasAuthFailureText, Yn as easAuthNote } from "./device-capacity-CpAVcKgq.mjs";
5
- import { A as COMPILATION_CACHE_NOT_RUN, F as compilationCacheActivityLine, _t as runCancellationSignal, lt as cancelledFailure } from "./toolchain-DCnWAxQL.mjs";
6
- import { C as providerUploadOutcome, D as storedAppId, S as providerDownloadPath, x as prepareProviderDownloadDir } from "./build-cache-BW8T4oD2.mjs";
7
- import { T as clearCorruptCompilationCache, c as offloadPlacement, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, r as chooseBuildMachine, s as offloadCheck, u as remotePhaseText, w as COMPILATION_CACHE_CORRUPT } from "./client-KSWIeQLA.mjs";
8
- import { A as fingerprintMismatchRemedy, D as OffloadRefusal, F as requireLocalBuild, M as namedBuildMachine, O as automaticBuild, P as podsFailedRemedy, S as xcodeFailureReport, j as missingPackageManagerRemedy, p as printDiagnostics, tt as predictedRefusal, u as isReleaseConfiguration } from "./support-BJbXovoO.mjs";
9
- import { f as settleFingerprintCheck, u as skippedMissReason } from "./prebuild-Di2IhUue.mjs";
10
- import { n as settleArtifactUploads, r as retainFailedTranscript, t as acquireArtifact } from "./acquire-artifact-DGTHCd0Q.mjs";
11
- import { t as buildPlacementRecord } from "./placement-log-B8RCSzOm.mjs";
12
- import { r as finishIosUpload, t as IosRecipeRefusal } from "./ios-project-Cz0S1Sz-.mjs";
1
+ import { D as ownership_claim_exports, d as throwIfCancelled, w as withDrainingCancellation } from "./exec-L37dbiIb.mjs";
2
+ import { E as workspaceDir } from "./workspace-state-DOPXG2Gp.mjs";
3
+ import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-ByEmIwur.mjs";
4
+ import { Gn as RESOLVE_TIMEOUT_MS, Xn as isEasAuthFailureText, Yn as easAuthNote } from "./device-capacity-DWUOvY13.mjs";
5
+ import { A as COMPILATION_CACHE_NOT_RUN, F as compilationCacheActivityLine, _t as runCancellationSignal, lt as cancelledFailure } from "./toolchain-BeD7tbBW.mjs";
6
+ import { C as providerUploadOutcome, D as storedAppId, S as providerDownloadPath, x as prepareProviderDownloadDir } from "./build-cache-Dt-dhCJF.mjs";
7
+ import { T as clearCorruptCompilationCache, c as offloadPlacement, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, r as chooseBuildMachine, s as offloadCheck, u as remotePhaseText, w as COMPILATION_CACHE_CORRUPT } from "./client-DU6dnGX1.mjs";
8
+ import { A as fingerprintMismatchRemedy, D as OffloadRefusal, F as requireLocalBuild, M as namedBuildMachine, O as automaticBuild, P as podsFailedRemedy, S as xcodeFailureReport, j as missingPackageManagerRemedy, p as printDiagnostics, tt as predictedRefusal, u as isReleaseConfiguration } from "./support-CfYmOdQs.mjs";
9
+ import { f as settleFingerprintCheck, u as skippedMissReason } from "./prebuild-BKkj3OyL.mjs";
10
+ import { n as settleArtifactUploads, r as retainFailedTranscript, t as acquireArtifact } from "./acquire-artifact-zBUbPuDP.mjs";
11
+ import { t as buildPlacementRecord } from "./placement-log-oQnELAvQ.mjs";
12
+ import { r as finishIosUpload, t as IosRecipeRefusal } from "./ios-project-XHg87vyQ.mjs";
13
13
  import { rmSync } from "node:fs";
14
14
  import { join } from "node:path";
15
15
  import { machineCapacity } from "@stim-cli/core/state";
@@ -1,16 +1,16 @@
1
- import { D as ownership_claim_exports, d as throwIfCancelled, w as withDrainingCancellation } from "./exec-CGuDzt40.mjs";
2
- import { E as workspaceDir } from "./workspace-state-BhwAJBgA.mjs";
3
- import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-T3cDctRE.mjs";
4
- import { C as CCACHE_UNAVAILABLE, Gn as RESOLVE_TIMEOUT_MS, S as CCACHE_NOT_RUN, Xn as isEasAuthFailureText, Yn as easAuthNote, w as ccacheActivityLine } from "./device-capacity-CpAVcKgq.mjs";
5
- import { _t as runCancellationSignal, lt as cancelledFailure } from "./toolchain-DCnWAxQL.mjs";
6
- import { S as providerDownloadPath, x as prepareProviderDownloadDir } from "./build-cache-BW8T4oD2.mjs";
7
- import { c as offloadPlacement, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, r as chooseBuildMachine, u as remotePhaseText } from "./client-KSWIeQLA.mjs";
8
- import { A as fingerprintMismatchRemedy, D as OffloadRefusal, F as requireLocalBuild, M as namedBuildMachine, O as automaticBuild, j as missingPackageManagerRemedy } from "./support-BJbXovoO.mjs";
9
- import { f as formatDiagnostic } from "./react-native-build-CJega_NM.mjs";
10
- import { u as skippedMissReason } from "./prebuild-Di2IhUue.mjs";
11
- import { a as PLATFORM, h as displayPath } from "./support-Vckdzrmk.mjs";
12
- import { n as settleArtifactUploads, r as retainFailedTranscript, t as acquireArtifact } from "./acquire-artifact-DGTHCd0Q.mjs";
13
- import { t as buildPlacementRecord } from "./placement-log-B8RCSzOm.mjs";
1
+ import { D as ownership_claim_exports, d as throwIfCancelled, w as withDrainingCancellation } from "./exec-L37dbiIb.mjs";
2
+ import { E as workspaceDir } from "./workspace-state-DOPXG2Gp.mjs";
3
+ import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-ByEmIwur.mjs";
4
+ import { C as CCACHE_UNAVAILABLE, Gn as RESOLVE_TIMEOUT_MS, S as CCACHE_NOT_RUN, Xn as isEasAuthFailureText, Yn as easAuthNote, w as ccacheActivityLine } from "./device-capacity-DWUOvY13.mjs";
5
+ import { _t as runCancellationSignal, lt as cancelledFailure } from "./toolchain-BeD7tbBW.mjs";
6
+ import { S as providerDownloadPath, x as prepareProviderDownloadDir } from "./build-cache-Dt-dhCJF.mjs";
7
+ import { c as offloadPlacement, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, r as chooseBuildMachine, u as remotePhaseText } from "./client-DU6dnGX1.mjs";
8
+ import { A as fingerprintMismatchRemedy, D as OffloadRefusal, F as requireLocalBuild, M as namedBuildMachine, O as automaticBuild, j as missingPackageManagerRemedy } from "./support-CfYmOdQs.mjs";
9
+ import { f as formatDiagnostic } from "./react-native-build-dixAL2G8.mjs";
10
+ import { u as skippedMissReason } from "./prebuild-BKkj3OyL.mjs";
11
+ import { a as PLATFORM, h as displayPath } from "./support-JZ4KRW0C.mjs";
12
+ import { n as settleArtifactUploads, r as retainFailedTranscript, t as acquireArtifact } from "./acquire-artifact-zBUbPuDP.mjs";
13
+ import { t as buildPlacementRecord } from "./placement-log-oQnELAvQ.mjs";
14
14
  import { t as AndroidRecipeRefusal } from "./android-project-BCAAmMwz.mjs";
15
15
  import { rmSync } from "node:fs";
16
16
  import { join } 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 { join } from "node:path";
3
3
  //#region src/macos/artifact-platform.ts
4
4
  async function validateMacosArtifactPlatform(context, bundle, product, signal, nodeArch = process.arch) {
@@ -1,10 +1,10 @@
1
- import { m as getProject, v as loadConfig$1 } from "./config-BA3TgoIP.mjs";
2
- import { F as peekBudget, d as peekDeviceSlots, t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-CpAVcKgq.mjs";
3
- import { z as readHostMemoryPressureAsync } from "./ios-BhfpRfNf.mjs";
4
- import { I as resolveBuildMachine, M as namedBuildMachine, it as hostingMachines } from "./support-BJbXovoO.mjs";
5
- import { h as requireHostedAppMode, l as call, u as connectHost } from "./hosted-client-DMOOu8vD.mjs";
6
- import { c as writeHostedNativeAsync, r as readHostedNative } from "./ios-state-Avwz2cbZ.mjs";
7
- import { i as prepareHostedNative } from "./hosted-native-BiiUG_Q6.mjs";
1
+ import { m as getProject, v as loadConfig$1 } from "./config-CNmN-ndb.mjs";
2
+ import { F as peekBudget, d as peekDeviceSlots, t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-DWUOvY13.mjs";
3
+ import { z as readHostMemoryPressureAsync } from "./ios-BveW7qK1.mjs";
4
+ import { I as resolveBuildMachine, M as namedBuildMachine, it as hostingMachines } from "./support-CfYmOdQs.mjs";
5
+ import { h as requireHostedAppMode, l as call, u as connectHost } from "./hosted-client-BLwuXEZS.mjs";
6
+ import { c as writeHostedNativeAsync, r as readHostedNative } from "./ios-state-enWc5P6U.mjs";
7
+ import { i as prepareHostedNative } from "./hosted-native-OBT2sJxn.mjs";
8
8
  import { ambientEnv } from "@stim-cli/core";
9
9
  import { automaticMachineEnabled, isJsonObject, machineCapacity, mayRunHere, parseHostedChoice, parseHostedNativeOffer, prefersRemote } from "@stim-cli/core/state";
10
10
  import { setTimeout } from "node:timers/promises";