stim 1.32.0 → 1.34.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 (173) hide show
  1. package/dist/{acquire-artifact-CI9fIokp.mjs → acquire-artifact-B0SWoVNt.mjs} +2 -2
  2. package/dist/{act-BfChMxcU.mjs → act-7f7wIvCQ.mjs} +22 -22
  3. package/dist/{activity-yjH7Q3zn.mjs → activity-DkS-Ir6V.mjs} +6 -6
  4. package/dist/{agent-device-usage-output-DO412bsG.mjs → agent-device-usage-output-BVdgKbfz.mjs} +5 -5
  5. package/dist/{android-BeeC15Ve.mjs → android-B2DSKg-A.mjs} +2 -2
  6. package/dist/{android-D56S_GX3.mjs → android-BU4uBX8I.mjs} +5 -5
  7. package/dist/{android-BNm5A40S.mjs → android-D7qjT2fq.mjs} +87 -53
  8. package/dist/{android-DsEj2CCs.mjs → android-Iq0M2t2d.mjs} +27 -15
  9. package/dist/{android-cas-CbumHXIq.mjs → android-cas-Dhcjkys1.mjs} +4 -4
  10. package/dist/android-cas-compiler.mjs +1 -1
  11. package/dist/android-image-DFk26aY6.mjs +254 -0
  12. package/dist/{android-project-CCEQyYJK.d.mts → android-project-DhO6el8N.d.mts} +2 -2
  13. package/dist/api.d.mts +2 -1
  14. package/dist/api.mjs +28 -28
  15. package/dist/{apk-signed-tail-B9Usseps.mjs → apk-signed-tail-CPpA-3vu.mjs} +2 -2
  16. package/dist/{artifact-k1x9Jrn0.mjs → artifact-CNnTZs3R.mjs} +34 -21
  17. package/dist/{artifact-C8Nvp07y.mjs → artifact-DmRtKFXW.mjs} +13 -13
  18. package/dist/{artifact-platform-BO2Uvk_A.mjs → artifact-platform-DqCWUieN.mjs} +1 -1
  19. package/dist/{auto-placement--nfdQ9rp.mjs → auto-placement-DA65VQH7.mjs} +11 -9
  20. package/dist/{browser-web-6RDAeH0z.mjs → browser-web-Dn_hgKZC.mjs} +15 -15
  21. package/dist/{build-VXX_dtl5.mjs → build-D7SuVoRX.mjs} +23 -23
  22. package/dist/build-artifact-cache-D7B6seMj.mjs +174 -0
  23. package/dist/build-artifact-cache.d.mts +25 -0
  24. package/dist/build-artifact-cache.mjs +2 -0
  25. package/dist/{build-cache-BsKim4V7.mjs → build-cache-Cqj4FGnX.mjs} +20 -8
  26. package/dist/{build-plan-BK34X2iY.mjs → build-plan-Ct1FiA3E.mjs} +7 -7
  27. package/dist/{cache-manifest-CfiEny4T.mjs → cache-manifest-8JX9S1QJ.mjs} +1 -1
  28. package/dist/cache-manifest.mjs +1 -1
  29. package/dist/{ccache-BrwGIxmV.mjs → ccache-ChBMXlBq.mjs} +35 -67
  30. package/dist/{cdp-C3svvXiE.mjs → cdp-C216kOAn.mjs} +1 -1
  31. package/dist/{chrome-DyDWurWG.mjs → chrome-C8sC5tdl.mjs} +1 -1
  32. package/dist/{cli-Jc7obreB.mjs → cli-DjdvQG5U.mjs} +20 -20
  33. package/dist/cli.mjs +1 -1
  34. package/dist/{client-lDmA-5jx.mjs → client-kU37gURU.mjs} +70 -13
  35. package/dist/collector-run.mjs +7 -7
  36. package/dist/{command-output-CfPW1bKP.mjs → command-output-DjExb_tZ.mjs} +1 -1
  37. package/dist/{config-D5qNWJEP.mjs → config-BW0fAtoK.mjs} +256 -246
  38. package/dist/{dependencies-DkZ8681S.mjs → dependencies-CZ7c8XX_.mjs} +39 -39
  39. package/dist/{dependency-state-DZVln1P9.mjs → dependency-state-mL5g4H6K.mjs} +2 -2
  40. package/dist/{detached-entry-BPlSaCwC.mjs → detached-entry-tfrgGVWb.mjs} +1 -1
  41. package/dist/{dev-client-eDZy6RoX.mjs → dev-client-D3wOllNd.mjs} +2 -2
  42. package/dist/{device-CeIikWac.mjs → device-CWPFAqs0.mjs} +13 -13
  43. package/dist/{device-CTozKhU0.mjs → device-DH5yf6TU.mjs} +11 -11
  44. package/dist/{device-android-zgD9We85.mjs → device-android-ChfF5I9A.mjs} +10 -10
  45. package/dist/{device-capacity-Bki6B-7h.mjs → device-capacity-CHC3dKWg.mjs} +9 -9
  46. package/dist/device-host-worker.mjs +58 -17
  47. package/dist/{device-ios-TE5ejeXx.mjs → device-ios-B3-Ah--R.mjs} +9 -9
  48. package/dist/{device-lease-run-DeNGjJZM.mjs → device-lease-run-i3FNX4OE.mjs} +5 -5
  49. package/dist/{device-pool-mjyUYaau.mjs → device-pool-EZziQ0uS.mjs} +3 -3
  50. package/dist/{device-provision-j_B7G0e6.mjs → device-provision-CfpEy-Vm.mjs} +10 -10
  51. package/dist/{doctor-sSLtn-j1.mjs → doctor-B5uEZiKp.mjs} +30 -17
  52. package/dist/{doctor-CNZuvTSe.mjs → doctor-CGBsS_68.mjs} +1 -1
  53. package/dist/{doctor-BlrcoQ7B.mjs → doctor-dwRboaXx.mjs} +54 -25
  54. package/dist/{doctor-fingerprint-o7ZI9YLn.mjs → doctor-fingerprint-DqWvIhMb.mjs} +1 -1
  55. package/dist/doctor-fingerprint.mjs +1 -1
  56. package/dist/{doctor-watchman-CCuboyj1.mjs → doctor-watchman-r7M9UPi0.mjs} +5 -5
  57. package/dist/{eas-build-CaG-Sfs9.mjs → eas-build-BpHIt_M3.mjs} +4 -4
  58. package/dist/{eas-fallback-BpX1lpco.mjs → eas-fallback-CNPcjq3K.mjs} +6 -6
  59. package/dist/{eas-session-ledger-B-nTfdfk.mjs → eas-session-ledger-CXwagcQ7.mjs} +6 -6
  60. package/dist/{error-diagnostics-q56Im4D8.mjs → error-diagnostics-Ym2mjmJ0.mjs} +10 -10
  61. package/dist/{exec-aULwtNly.mjs → exec-CGuDzt40.mjs} +103 -103
  62. package/dist/{gc-By2Kc-Ek.mjs → gc-B464w_a5.mjs} +2 -2
  63. package/dist/{gc-Dv6nb9nf.mjs → gc-C7YxKNci.mjs} +25 -54
  64. package/dist/{guide-CwpsGWTJ.mjs → guide-BFW-cB7R.mjs} +141 -44
  65. package/dist/{hosted-android-c5nPJA6S.mjs → hosted-android-B7yfqXEy.mjs} +4 -4
  66. package/dist/{hosted-client-Hs-fD4L3.mjs → hosted-client-CQuzZwAu.mjs} +6 -5
  67. package/dist/{hosted-logs-BteXG8rm.mjs → hosted-logs-DfYCqrrR.mjs} +7 -7
  68. package/dist/{hosted-logs-sync-B8bjLEMs.mjs → hosted-logs-sync-Dlpa2mQF.mjs} +5 -5
  69. package/dist/{hosted-macos-B4byscei.mjs → hosted-macos-JKefapEm.mjs} +6 -6
  70. package/dist/{hosted-native-Bh9IJ_t5.mjs → hosted-native-B7OFt5gB.mjs} +14 -10
  71. package/dist/{idle-shutdown-BaeCo4ps.mjs → idle-shutdown-DPD8oV36.mjs} +6 -6
  72. package/dist/{ios-CdAV4-1E.mjs → ios-BdZdNsAj.mjs} +6 -6
  73. package/dist/{ios-D3oK9-O4.mjs → ios-DSBs9c6d.mjs} +28 -28
  74. package/dist/{ios-CsRVik64.mjs → ios-Qam0bT9n.mjs} +1 -1
  75. package/dist/{ios-device-CiBA-er9.mjs → ios-device-DLdEDWJj.mjs} +1 -1
  76. package/dist/{ios-device-D7Gi3e1I.mjs → ios-device-Drplrgzo.mjs} +3 -3
  77. package/dist/{ios-project-DDQlX_jX.mjs → ios-project-DoTQYghg.mjs} +7 -7
  78. package/dist/{ios-D1XKSITX.mjs → ios-sUPbWqEh.mjs} +8 -8
  79. package/dist/ios-signing-R34vbrNU.mjs +202 -0
  80. package/dist/{ios-state-BEIJRJ7P.mjs → ios-state-CWsBysyN.mjs} +1 -1
  81. package/dist/{js-swap-C8N5DXHl.mjs → js-swap-DrokhOfo.mjs} +6 -6
  82. package/dist/{launch-DxpvL6il.mjs → launch-Cy-MWEZc.mjs} +20 -20
  83. package/dist/{lightened-Df6II_XI.mjs → lightened-ALwQcQtV.mjs} +5 -5
  84. package/dist/{logs-zv3ge7c6.mjs → logs-DWT7jGpF.mjs} +6 -6
  85. package/dist/{logs-CuWJWF88.mjs → logs-DuED-01Z.mjs} +7 -7
  86. package/dist/{macos-C6U-4Iip.mjs → macos-CtBtA_hW.mjs} +22 -22
  87. package/dist/{macos-CbRZheLw.mjs → macos-kWGcfLzx.mjs} +1 -1
  88. package/dist/macos-run.mjs +1 -1
  89. package/dist/maintenance-run.mjs +6 -6
  90. package/dist/{metro-mKHEMO-a.mjs → metro-B5PVz0Wv.mjs} +4 -4
  91. package/dist/{metro-request-DODHNXCN.mjs → metro-request-2LmFpC1z.mjs} +2 -2
  92. package/dist/{named-ports-B0hCk2v-.mjs → named-ports-CA0nB9Yw.mjs} +3 -3
  93. package/dist/{native-android-9dVFqvTT.mjs → native-android-tISP2EVp.mjs} +29 -19
  94. package/dist/{native-gradle-artifact-inputs-BlY97pt8.mjs → native-gradle-artifact-inputs-DVoeZkrw.mjs} +5 -5
  95. package/dist/{native-runtime-DQfxW5Au.mjs → native-runtime-CNgxeOCG.mjs} +6 -6
  96. package/dist/{native-source-D1AzWiuP.mjs → native-source-ChAGj7R1.mjs} +1 -1
  97. package/dist/{native-xcode-inputs-tDuUvSU8.mjs → native-xcode-inputs-DGzkhpu4.mjs} +3 -3
  98. package/dist/{native-xcode-ios-CG-PD-7g.mjs → native-xcode-ios-B9nsfId2.mjs} +17 -17
  99. package/dist/offload-worker.d.mts +8 -1
  100. package/dist/offload-worker.mjs +62 -23
  101. package/dist/{operation-exec-Dp4FuIGR.mjs → operation-exec-DKlBcKAL.mjs} +1 -1
  102. package/dist/{ownership-CCfiBfOP.mjs → ownership-hC7xvvxF.mjs} +3 -3
  103. package/dist/{page-CQJlcj3x.mjs → page-Dj8IqvGM.mjs} +2 -2
  104. package/dist/{phone-reverses-CnNwdz9A.mjs → phone-reverses-Bo0EzJ-P.mjs} +4 -4
  105. package/dist/{placement-log-CRL0IY-k.mjs → placement-log-BsGvKLtU.mjs} +1 -1
  106. package/dist/{plan-placement-2imvnlWP.mjs → plan-placement-Am0IjuxB.mjs} +6 -6
  107. package/dist/{ports-CKktj5lV.mjs → ports-CNzg1LYD.mjs} +3 -3
  108. package/dist/{prebuild-CyNrUWgV.mjs → prebuild-BfJII57G.mjs} +12 -12
  109. package/dist/{project-Crtcbfl0.mjs → project-DU3jjnBE.mjs} +16 -16
  110. package/dist/{pull-request-BzLmzAIQ.mjs → pull-request-BpMTNkMB.mjs} +2 -2
  111. package/dist/pull-requests.mjs +1 -1
  112. package/dist/{react-native-android-Cabe2YER.mjs → react-native-android-3dZiJv-4.mjs} +37 -33
  113. package/dist/{react-native-build-DhWBUV_H.mjs → react-native-build-CuvNPt-q.mjs} +10 -10
  114. package/dist/{react-native-doctor-D-twmBon.mjs → react-native-doctor-a35BwMUO.mjs} +6 -6
  115. package/dist/{react-native-ios-u_ley41B.mjs → react-native-ios-CqnReM1t.mjs} +22 -17
  116. package/dist/{recordings-BWnIlhZH.mjs → recordings-AKZfsW2W.mjs} +1 -1
  117. package/dist/{registration-BwCe64PH.mjs → registration-DKjJGQ6p.mjs} +1 -1
  118. package/dist/{reload-D2TpUlns.mjs → reload-CC3sNo10.mjs} +17 -17
  119. package/dist/{reload-f9hvEHE9.mjs → reload-YPnvXGlB.mjs} +1 -1
  120. package/dist/{remote-BsBAjlD2.mjs → remote-BfaIHnhM.mjs} +9 -9
  121. package/dist/{result-EOsWV6sp.mjs → result-H-AxY7Ud.mjs} +24 -20
  122. package/dist/{run-2CHAJ9Oj.mjs → run-N-BbRxnC.mjs} +2 -2
  123. package/dist/{selection-C4ZQz_ER.mjs → selection-CH-MUVGD.mjs} +5 -4
  124. package/dist/{server-bare-CFyVFZXJ.mjs → server-bare-BTlICuaX.mjs} +2 -2
  125. package/dist/{server-command-BMyKtnjH.mjs → server-command-Bn_gOObU.mjs} +5 -5
  126. package/dist/server-expo-B59N16uT.mjs +2 -0
  127. package/dist/{server-expo-BLxcN2x2.mjs → server-expo-CUJ2fuv1.mjs} +3 -3
  128. package/dist/{settings-C6UTYW2K.mjs → settings-B5IBDfTx.mjs} +4 -4
  129. package/dist/{settings-jeS0WmUF.mjs → settings-DoWHJopy.mjs} +2 -2
  130. package/dist/{settings-payload-CrX933Xi.mjs → settings-payload-Bxw3hid5.mjs} +5 -5
  131. package/dist/{settings-write-DMcT23Kl.mjs → settings-write-C6d7EC54.mjs} +6 -6
  132. package/dist/settings.schema.json +38 -0
  133. package/dist/{simslim-93xmPh-d.mjs → simslim-DKdJx0LL.mjs} +2 -2
  134. package/dist/{slot-launch-CSpQcFZw.mjs → slot-launch-kq0-7w9C.mjs} +6 -6
  135. package/dist/{stage-Cf9uSM1a.mjs → stage-CBfMTUK3.mjs} +2 -2
  136. package/dist/{start-CquYgzVf.mjs → start-Diu8q6_U.mjs} +1 -1
  137. package/dist/{start-CLN_r9EG.mjs → start-WTMumMHi.mjs} +12 -12
  138. package/dist/{state-CM_HvvkS.mjs → state-CtmYTRWm.mjs} +4 -4
  139. package/dist/{state-CiflgxTP.mjs → state-DSOUqO-o.mjs} +2 -2
  140. package/dist/{stats-BVEZuSlg.mjs → stats-D4cW247z.mjs} +5 -5
  141. package/dist/{stats-report-B86Cv7Uc.mjs → stats-report-BVRCqwWA.mjs} +1 -1
  142. package/dist/{status-Bhdy07v0.mjs → status-B-oeWS0Z.mjs} +1 -1
  143. package/dist/{status-D0ruTmPl.mjs → status-CEwxo-PS.mjs} +37 -28
  144. package/dist/{status-GQ-JqvRi.mjs → status-DTFhDnd1.mjs} +1 -1
  145. package/dist/{status-watch-DSu_hhg6.mjs → status-watch-D63R5nSI.mjs} +5 -5
  146. package/dist/status-worker.mjs +1 -1
  147. package/dist/{stim-desktop-1XxET4S8.mjs → stim-desktop-_WTria-r.mjs} +2 -2
  148. package/dist/{stop-RZqER_Ww.mjs → stop-Dm9ON6Os.mjs} +2 -2
  149. package/dist/{stop-B616ZyTv.mjs → stop-HL2RvhrE.mjs} +5 -5
  150. package/dist/{stop-W4DK8qZq.mjs → stop-vX4w3_8V.mjs} +16 -16
  151. package/dist/supervisor-run.mjs +16 -16
  152. package/dist/{support-S_5nkkzs.mjs → support-BNe1_Hg7.mjs} +18 -8
  153. package/dist/{support-NxnD8QXd.mjs → support-ivsfDj0v.mjs} +9 -9
  154. package/dist/{swiftpm-artifact-inputs-yp8D5LE4.mjs → swiftpm-artifact-inputs-uq5oV7xR.mjs} +4 -4
  155. package/dist/{swiftpm-macos-Gtq9bNQb.mjs → swiftpm-macos-ClF203_2.mjs} +11 -11
  156. package/dist/{toolchain-B2bN8jEo.mjs → toolchain-CECahBDa.mjs} +1 -1
  157. package/dist/{toolchain-Bnm8vUCV.mjs → toolchain-CYonNjd_.mjs} +429 -20
  158. package/dist/{trigger-CfnOfpDd.mjs → trigger-BtB4kbe0.mjs} +2 -2
  159. package/dist/trigger-D8B7QR0q.mjs +2 -0
  160. package/dist/{warm-progress-_aTMvkIH.mjs → warm-progress-q11Vdvhh.mjs} +6 -6
  161. package/dist/{web-BdWG8b5_.mjs → web-BdaMBr2O.mjs} +9 -9
  162. package/dist/web-CIpHpGp8.mjs +2 -0
  163. package/dist/web-run.mjs +8 -8
  164. package/dist/windows-report.mjs +1 -1
  165. package/dist/{workspace-state-3bF4TB8P.mjs → workspace-state-BdZ-QgmB.mjs} +3 -3
  166. package/dist/{workspaces-C59v9bpD.mjs → workspaces-B9v5V7Es.mjs} +14 -14
  167. package/dist/{worktree-CinoSsGy.mjs → worktree-C3N86KpI.mjs} +77 -31
  168. package/dist/{worktree-K9F50fD_.mjs → worktree-C4MBOMz7.mjs} +1 -1
  169. package/package.json +12 -7
  170. package/dist/ios-signing-BJzvDPfU.mjs +0 -489
  171. package/dist/server-expo-DwR3eD-a.mjs +0 -2
  172. package/dist/trigger-DBZ-GBrl.mjs +0 -2
  173. package/dist/web-DwuluWJt.mjs +0 -2
@@ -1,5 +1,5 @@
1
- import { l as WorkspaceProcessCleanupError } from "./exec-aULwtNly.mjs";
2
- import { I as waitForSharedBuild } from "./activity-yjH7Q3zn.mjs";
1
+ import { f as WorkspaceProcessCleanupError } from "./exec-CGuDzt40.mjs";
2
+ import { I as waitForSharedBuild } from "./activity-DkS-Ir6V.mjs";
3
3
  import { rmSync } from "node:fs";
4
4
  //#region src/engine/artifact-lifecycle.ts
5
5
  async function runArtifactLifecycle(phases) {
@@ -1,28 +1,28 @@
1
- import { S as process_identity_exports, d as workspaceProcessLockError, l as WorkspaceProcessCleanupError, n as isTimeoutError, t as getExecutor, u as withWorkspaceProcessLock } from "./exec-aULwtNly.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-3bF4TB8P.mjs";
3
- import { F as formatBytes, I as isOnMountedVolume, K as projectDeviceSlots, L as listMountedVolumes, P as directorySizeAsync, R as measuredDirectorySizeAsync, m as getProject, v as loadConfig$1 } from "./config-D5qNWJEP.mjs";
4
- import { o as formatLongDuration, u as plural } from "./command-output-CfPW1bKP.mjs";
5
- import { c as gitQuiet, l as gitQuietAsync, n as runOperationFileQuiet, r as childEnvironment } from "./operation-exec-Dp4FuIGR.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-C6UTYW2K.mjs";
7
- import { P as readRemoteSession, i as findProjectRoot$1 } from "./project-Crtcbfl0.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-DsEj2CCs.mjs";
9
- import { c as pidExists } from "./metro-mKHEMO-a.mjs";
10
- import { A as diskPressureLevel, G as planCacheEmptying, N as lowestFree, P as protectWindowMs, X as collectGradleVersions, Z as deleteGradleVersion, Zn as collectMemoryReport, _ as resolveBudget, at as DEVICE_LIST_TIMEOUT_MS, ct as collectParkedSims, d as enforceBudget, dr as pruneCache, dt as deleteProjectDevices, j as levelFloors, lt as deleteParkedAvds, mt as deviceSweepIsScoped, nr as memorySweepIsScoped, nt as waitForGradleExit, or as stopIdleGradleDaemons, p as machineNumber, sr as phase, st as collectParkedAvds, u as cacheLabel, ur as discoverCaches, ut as deleteParkedSims, v as trimmableCaches, vt as findStaleProjectDevices, y as stopOwnedMetro, z as emptyCaches } from "./ccache-BrwGIxmV.mjs";
11
- import { o as readWebRecord, u as webFacts } from "./state-CM_HvvkS.mjs";
12
- import { a as unregister, n as readManifest } from "./cache-manifest-CfiEny4T.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-C59v9bpD.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-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-BdZ-QgmB.mjs";
3
+ import { o as formatLongDuration, u as plural } from "./command-output-DjExb_tZ.mjs";
4
+ import { at as isOnMountedVolume, ht as projectDeviceSlots, m as getProject, nt as directorySizeAsync, ot as listMountedVolumes, rt as formatBytes, st as measuredDirectorySizeAsync, v as loadConfig$1 } from "./config-BW0fAtoK.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-B5IBDfTx.mjs";
7
+ import { P as readRemoteSession, i as findProjectRoot$1 } from "./project-DU3jjnBE.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-Iq0M2t2d.mjs";
9
+ import { c as pidExists } from "./metro-B5PVz0Wv.mjs";
10
+ import { $n as memorySweepIsScoped, A as diskPressureLevel, G as planCacheEmptying, Jn as collectMemoryReport, N as lowestFree, P as protectWindowMs, X as collectGradleVersions, Z as deleteGradleVersion, _ as resolveBudget, at as DEVICE_LIST_TIMEOUT_MS, cr as pruneCache, ct as collectParkedSims, d as enforceBudget, dt as deleteProjectDevices, ir as phase, j as levelFloors, lt as deleteParkedAvds, mt as deviceSweepIsScoped, nt as waitForGradleExit, p as machineNumber, rr as stopIdleGradleDaemons, sr as discoverCaches, st as collectParkedAvds, u as cacheLabel, ut as deleteParkedSims, v as trimmableCaches, vt as findStaleProjectDevices, y as stopOwnedMetro, z as emptyCaches } from "./ccache-ChBMXlBq.mjs";
11
+ import { o as readWebRecord, u as webFacts } from "./state-CtmYTRWm.mjs";
12
+ import { a as unregister, n as readManifest } from "./cache-manifest-8JX9S1QJ.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-B9v5V7Es.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-yjH7Q3zn.mjs";
16
- import { d as listAllIosSims, f as listAllIosSimsAsync } from "./ios-CdAV4-1E.mjs";
15
+ import { N as listBuildLocks, _ as workspaceDeviceLastUseAt, b as leaseIsExpired, g as workspaceActivity, x as listLeaseFiles } from "./activity-DkS-Ir6V.mjs";
16
+ import { d as listAllIosSims, f as listAllIosSimsAsync } from "./ios-BdZdNsAj.mjs";
17
17
  import { s as metroStoreRoot } from "./errors-DHm_U5gv.mjs";
18
18
  import { t as resolveMaintenanceSettings } from "./settings-D9LtQaUw.mjs";
19
- import { p as probeHostedSession } from "./hosted-client-Hs-fD4L3.mjs";
20
- import { o as runStop } from "./stop-W4DK8qZq.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-CinoSsGy.mjs";
22
- import { n as describePullRequest, r as endedPullRequest, s as pullRequestLookups } from "./pull-request-BzLmzAIQ.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-_aTMvkIH.mjs";
24
- import { a as restoreProblem, r as recordLightened, t as finishLightened } from "./lightened-Df6II_XI.mjs";
25
- import { i as writeIdleShutdownEvent, n as dueIdleDevices, r as shutDownIdleDevices } from "./idle-shutdown-BaeCo4ps.mjs";
19
+ import { m as probeHostedSession } from "./hosted-client-CQuzZwAu.mjs";
20
+ import { o as runStop } from "./stop-vX4w3_8V.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-C3N86KpI.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-q11Vdvhh.mjs";
24
+ import { a as restoreProblem, r as recordLightened, t as finishLightened } from "./lightened-ALwQcQtV.mjs";
25
+ import { i as writeIdleShutdownEvent, n as dueIdleDevices, r as shutDownIdleDevices } from "./idle-shutdown-DPD8oV36.mjs";
26
26
  import { readClaimSet } from "@stim-cli/core/ownership-claim";
27
27
  import { existsSync, lstatSync, readFileSync, readdirSync, readlinkSync, realpathSync, rmSync, statSync } from "node:fs";
28
28
  import { tmpdir } from "node:os";
@@ -1,9 +1,9 @@
1
- import { D as ownership_claim_exports, S as process_identity_exports, m as declareSpawnsOn, t as getExecutor, v as stopDeclaringSpawnsOn } from "./exec-aULwtNly.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-3bF4TB8P.mjs";
3
- import { H as deviceSlotKey, J as validateDeviceSlot, W as parseDeviceSlotKey, d as getConfigDir } from "./config-D5qNWJEP.mjs";
4
- import { a as formatElapsed, i as formatDuration, m as shortHash } from "./command-output-CfPW1bKP.mjs";
5
- import { n as runOperationFileQuiet } from "./operation-exec-Dp4FuIGR.mjs";
6
- import { C as resolveBuild } from "./build-cache-BsKim4V7.mjs";
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-BdZ-QgmB.mjs";
3
+ import { a as formatElapsed, i as formatDuration, m as shortHash } from "./command-output-DjExb_tZ.mjs";
4
+ import { _t as validateDeviceSlot, d as getConfigDir, dt as deviceSlotKey, pt as parseDeviceSlotKey } from "./config-BW0fAtoK.mjs";
5
+ import { n as runOperationFileQuiet } from "./operation-exec-DKlBcKAL.mjs";
6
+ import { w as resolveBuild } from "./build-cache-Cqj4FGnX.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 { S as process_identity_exports } from "./exec-aULwtNly.mjs";
2
- import { F as formatBytes } from "./config-D5qNWJEP.mjs";
3
- import { o as formatLongDuration } from "./command-output-CfPW1bKP.mjs";
4
- import { bt as measureDu, u as listWorkspaceDirs, xt as writeUsageCache, yt as canonical } from "./workspaces-C59v9bpD.mjs";
5
- import { c as parseAgentDeviceRecord, o as envDir, u as processMatches } from "./activity-yjH7Q3zn.mjs";
1
+ import { T as process_identity_exports } from "./exec-CGuDzt40.mjs";
2
+ import { o as formatLongDuration } from "./command-output-DjExb_tZ.mjs";
3
+ import { rt as formatBytes } from "./config-BW0fAtoK.mjs";
4
+ import { bt as measureDu, u as listWorkspaceDirs, xt as writeUsageCache, yt as canonical } from "./workspaces-B9v5V7Es.mjs";
5
+ import { c as parseAgentDeviceRecord, o as envDir, u as processMatches } from "./activity-DkS-Ir6V.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,5 +1,5 @@
1
- import { t as getExecutor } from "./exec-aULwtNly.mjs";
2
- import { u as androidToolCwd } from "./android-DsEj2CCs.mjs";
1
+ import { t as getExecutor } from "./exec-CGuDzt40.mjs";
2
+ import { u as androidToolCwd } from "./android-Iq0M2t2d.mjs";
3
3
  //#region src/collector/android.ts
4
4
  const LEVEL_BY_LETTER = {
5
5
  V: "debug",
@@ -1,6 +1,6 @@
1
- import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-CfPW1bKP.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-S_5nkkzs.mjs";
3
- import { r as lastBuildRecord, t as androidFacts } from "./result-EOsWV6sp.mjs";
4
- import { i as runAndroidOperation, n as registerAndroid, r as runAndroid, t as androidCommand } from "./android-BNm5A40S.mjs";
5
- import { a as collectorLogFile, o as killPreviousCollector, s as startCollector } from "./launch-DxpvL6il.mjs";
1
+ import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-DjExb_tZ.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-BNe1_Hg7.mjs";
3
+ import { r as lastBuildRecord, t as androidFacts } from "./result-H-AxY7Ud.mjs";
4
+ import { i as runAndroidOperation, n as registerAndroid, r as runAndroid, t as androidCommand } from "./android-D7qjT2fq.mjs";
5
+ import { a as collectorLogFile, o as killPreviousCollector, s as startCollector } from "./launch-Cy-MWEZc.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,43 +1,44 @@
1
- import { D as ownership_claim_exports, t as getExecutor } from "./exec-aULwtNly.mjs";
2
- import { a as recordWorkspaceUseAsync, f as writeWorkspaceStateAsync, g as emulatorLogFile, k as workspaceLogsDir$1, r as readWorkspaceState$1 } from "./workspace-state-3bF4TB8P.mjs";
3
- import { D as upsertProject, G as parseDeviceSlotOption, J as validateDeviceSlot, U as deviceSlotPlatforms, V as deviceSlotFileKey, k as withConfigLockAsync$1, m as getProject, u as getConcurrencyLimits } from "./config-D5qNWJEP.mjs";
4
- import { _ as stepTimer, f as refuseNoProject, g as stepClock, i as formatDuration, l as phaseLine } from "./command-output-CfPW1bKP.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-C6UTYW2K.mjs";
6
- import { f as projectRegistry, i as findProjectRoot$1, l as projectShortcut, t as NO_PROJECT_REFUSAL, z as writeWorkspaceLaunchAsync } from "./project-Crtcbfl0.mjs";
7
- import { $ as probeEmulatorSerial, E as emulatorProbeSession, M as isEmulatorToolAbsent, P as listAdbDevicesAsync, Z as physicalDeviceModel, a as androidDeviceAbi, at as resolvePhysicalDevice, it as resolveOwnedAvdSerialAsync, kt as configuredAndroidEmulatorApp, ut as waitForBoot, v as avdStorageExists, z as listInstalledSystemImages } from "./android-DsEj2CCs.mjs";
8
- import { c as pidExists, d as resolveProjectMetro } from "./metro-mKHEMO-a.mjs";
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-BdZ-QgmB.mjs";
3
+ import { _ as stepTimer, f as refuseNoProject, g as stepClock, i as formatDuration, l as phaseLine } from "./command-output-DjExb_tZ.mjs";
4
+ import { D as upsertProject, _t as validateDeviceSlot, ft as deviceSlotPlatforms, k as withConfigLockAsync$1, m as getProject, mt as parseDeviceSlotOption, u as getConcurrencyLimits, ut as deviceSlotFileKey } from "./config-BW0fAtoK.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-B5IBDfTx.mjs";
6
+ import { f as projectRegistry, i as findProjectRoot$1, l as projectShortcut, t as NO_PROJECT_REFUSAL, z as writeWorkspaceLaunchAsync } from "./project-DU3jjnBE.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-Iq0M2t2d.mjs";
8
+ import { c as pidExists, d as resolveProjectMetro } from "./metro-B5PVz0Wv.mjs";
9
9
  import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
10
- import { An as checkEasAuth, At as ensureRemoteBootOwned, En as runProcessOperation, Et as binOnPath, Jt as verifyLaunch, Ln as resolveEasCliBin, Mt as remoteAndroidDeps, Pt as resolveRemoteContext, Qt as DEFAULT_METRO_PORT, Rn as resolveRemote, Zt as ADB_INSTALL_TIMEOUT_MS, c as budgetGate, kt as ensureMetroReachable, ln as installAndroidApp, mn as launchAndroidReleaseApp, pn as launchAndroidApp, qn as ownedSessionName, qt as verifyAndroidReleaseLaunch, t as CCACHE_NOT_RUN, wn as exitAfterFlush, zn as uploadRemote } from "./ccache-BrwGIxmV.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-C59v9bpD.mjs";
12
- import { $ as cancelledFailure, ct as withNativeBuildRun, ot as runCancellation, st as runCancellationSignal } from "./toolchain-Bnm8vUCV.mjs";
13
- import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-yjH7Q3zn.mjs";
14
- import { T as storedAppId } from "./build-cache-BsKim4V7.mjs";
15
- import { S as setRemoteLogSink } from "./client-lDmA-5jx.mjs";
16
- import { d as resolveBuildPlacement, s as parseBuildMachineOption } from "./selection-C4ZQz_ER.mjs";
17
- import { i as hostedMetroSettings } from "./metro-request-DODHNXCN.mjs";
18
- import { a as writeHostedAndroidAsync, i as writeDevicePlacementAsync, t as readHostedAndroid } from "./ios-state-BEIJRJ7P.mjs";
19
- import { n as prepareHostedAndroid, t as placeHostedAndroid } from "./hosted-android-c5nPJA6S.mjs";
20
- import { n as verifyCollectorOwnership } from "./ownership-CCfiBfOP.mjs";
21
- import { i as restoreLightenedDependencies, n as printLightenedFailure } from "./lightened-Df6II_XI.mjs";
22
- import { c as startDevServer } from "./start-CLN_r9EG.mjs";
23
- import { a as acquireRunLease, d as runLease, f as waitFlagConflict, o as leaseExpiryText, u as releaseLeaseOnAbort } from "./device-lease-run-DeNGjJZM.mjs";
24
- import { n as DeviceAdmissionRefusal, r as checkDeviceCapacity } from "./device-capacity-Bki6B-7h.mjs";
25
- import { a as resolveEasDevelopmentBuild, r as isEasBuildFailure } from "./eas-build-CaG-Sfs9.mjs";
26
- import { t as followHostedLaunchLogs } from "./hosted-logs-sync-B8bjLEMs.mjs";
27
- import { f as settleFingerprintCheck } from "./prebuild-CyNrUWgV.mjs";
28
- import { i as launchOutcomeRecord, n as ensureWorkspaceStorageSafely, r as isPhysicalDeviceRequest, t as ensureDevServer } from "./native-runtime-DQfxW5Au.mjs";
29
- import { n as devicePlacementRecord } from "./placement-log-CRL0IY-k.mjs";
30
- 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-S_5nkkzs.mjs";
31
- import { t as acquireAndroidArtifact } from "./artifact-C8Nvp07y.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-EOsWV6sp.mjs";
33
- import { n as devicePlacementLine, t as automaticDevicePlacement } from "./auto-placement--nfdQ9rp.mjs";
34
- import { i as verifyAndroidMetroRun, r as finishAndroidRun } from "./launch-DxpvL6il.mjs";
35
- import { t as checkEasFallback } from "./eas-fallback-BpX1lpco.mjs";
36
- import { i as warmMetro, n as ensureBooted, r as ensureOwnedDevice, t as didSetUpDevice } from "./device-CTozKhU0.mjs";
37
- import { a as AvdBootError, o as AvdRecoveryError } from "./device-android-zgD9We85.mjs";
38
- import { t as selectFromPool } from "./device-pool-mjyUYaau.mjs";
10
+ import { At as ensureRemoteBootOwned, Cn as runProcessOperation, Dn as checkEasAuth, Et as binOnPath, Fn as resolveRemote, In as uploadRemote, Jt as verifyLaunch, Mt as remoteAndroidDeps, Pn as resolveEasCliBin, Pt as resolveRemoteContext, Qt as DEFAULT_METRO_PORT, Wn as ownedSessionName, Zt as ADB_INSTALL_TIMEOUT_MS, c as budgetGate, kt as ensureMetroReachable, ln as installAndroidApp, mn as launchAndroidReleaseApp, pn as launchAndroidApp, qt as verifyAndroidReleaseLaunch, t as CCACHE_NOT_RUN, xn as exitAfterFlush } from "./ccache-ChBMXlBq.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-B9v5V7Es.mjs";
12
+ import { _t as runCancellationSignal, gt as runCancellation, lt as cancelledFailure, vt as withNativeBuildRun } from "./toolchain-CYonNjd_.mjs";
13
+ import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-DkS-Ir6V.mjs";
14
+ import { E as storedAppId } from "./build-cache-Cqj4FGnX.mjs";
15
+ import { C as setRemoteLogSink } from "./client-kU37gURU.mjs";
16
+ import { d as resolveBuildPlacement, s as parseBuildMachineOption } from "./selection-CH-MUVGD.mjs";
17
+ import { i as hostedMetroSettings } from "./metro-request-2LmFpC1z.mjs";
18
+ import { a as writeHostedAndroidAsync, i as writeDevicePlacementAsync, t as readHostedAndroid } from "./ios-state-CWsBysyN.mjs";
19
+ import { n as prepareHostedAndroid, t as placeHostedAndroid } from "./hosted-android-B7yfqXEy.mjs";
20
+ import { n as verifyCollectorOwnership } from "./ownership-hC7xvvxF.mjs";
21
+ import { i as restoreLightenedDependencies, n as printLightenedFailure } from "./lightened-ALwQcQtV.mjs";
22
+ import { c as startDevServer } from "./start-WTMumMHi.mjs";
23
+ import { a as acquireRunLease, d as runLease, f as waitFlagConflict, o as leaseExpiryText, u as releaseLeaseOnAbort } from "./device-lease-run-i3FNX4OE.mjs";
24
+ import { n as DeviceAdmissionRefusal, r as checkDeviceCapacity } from "./device-capacity-CHC3dKWg.mjs";
25
+ import { r as ensureSystemImage, t as androidImageInstallPolicy } from "./android-image-DFk26aY6.mjs";
26
+ import { a as resolveEasDevelopmentBuild, r as isEasBuildFailure } from "./eas-build-BpHIt_M3.mjs";
27
+ import { t as followHostedLaunchLogs } from "./hosted-logs-sync-Dlpa2mQF.mjs";
28
+ import { f as settleFingerprintCheck } from "./prebuild-BfJII57G.mjs";
29
+ import { i as launchOutcomeRecord, n as ensureWorkspaceStorageSafely, r as isPhysicalDeviceRequest, t as ensureDevServer } from "./native-runtime-CNgxeOCG.mjs";
30
+ import { n as devicePlacementRecord } from "./placement-log-BsGvKLtU.mjs";
31
+ 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-BNe1_Hg7.mjs";
32
+ import { t as acquireAndroidArtifact } from "./artifact-DmRtKFXW.mjs";
33
+ import { a as persistLastBuild, c as androidDeviceSelectorRefusal, i as logPostBuildFailure, n as finishAndroidUpload, o as persistThrownBuild, s as reportAndroidResult, u as resolveAndroidRunPlan } from "./result-H-AxY7Ud.mjs";
34
+ import { n as devicePlacementLine, t as automaticDevicePlacement } from "./auto-placement-DA65VQH7.mjs";
35
+ import { i as verifyAndroidMetroRun, r as finishAndroidRun } from "./launch-Cy-MWEZc.mjs";
36
+ import { t as checkEasFallback } from "./eas-fallback-CNPcjq3K.mjs";
37
+ import { i as warmMetro, n as ensureBooted, r as ensureOwnedDevice, t as didSetUpDevice } from "./device-DH5yf6TU.mjs";
38
+ import { a as AvdBootError, o as AvdRecoveryError } from "./device-android-ChfF5I9A.mjs";
39
+ import { t as selectFromPool } from "./device-pool-EZziQ0uS.mjs";
39
40
  import { t as unsupportedPlan } from "./project-plan-BPwbLwQu.mjs";
40
- import { a as refusePlan, i as printPlan, n as planFlagRefusal } from "./build-plan-BK34X2iY.mjs";
41
+ import { a as refusePlan, i as printPlan, n as planFlagRefusal } from "./build-plan-Ct1FiA3E.mjs";
41
42
  import { join } from "node:path";
42
43
  import { workspaceId } from "@stim-cli/core";
43
44
  import { hostedAndroidStatus, parseMachine } from "@stim-cli/core/state";
@@ -586,6 +587,27 @@ function avdSetupFailure(error, root, logFile) {
586
587
  }
587
588
  };
588
589
  }
590
+ function slotKeepsAvd(root, slot) {
591
+ const android = deviceSlotPlatforms(getProject(root), slot)?.android;
592
+ if (!android?.owned || !android.avdName || android.setupIncomplete || android.bootPending) return false;
593
+ return Boolean(ownedAvdDirectory(android.avdName));
594
+ }
595
+ async function localRunRefusal(budgetRefusal, target, keepsAvd, ensureImage, recheckSelectors, signal) {
596
+ if (budgetRefusal || target.kind !== "emulator" || keepsAvd()) return budgetRefusal;
597
+ let image;
598
+ try {
599
+ image = await ensureImage();
600
+ } catch (error) {
601
+ if (!signal?.aborted || error instanceof Error && "reportCleanup" in error) throw error;
602
+ return {
603
+ code: "STIM_CANCELLED",
604
+ message: "during the Android system image install",
605
+ remedy: ""
606
+ };
607
+ }
608
+ if (!image.ok) return image;
609
+ return image.installed ? recheckSelectors() : null;
610
+ }
589
611
  async function runAndroid(options = {}) {
590
612
  const { context } = options;
591
613
  let { root, json, commandRemoteBackend, resolveSettingsFor, resolveRemoteDeviceContext, makeRemoteDeviceDeps, resolveEasBin, ensureRemoteMetro, ensureRemoteOwned, detectRemoteProviders, metroCheck, useBuildCache: requestedBuildCache, easProfile, 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);
@@ -801,6 +823,21 @@ async function runAndroid(options = {}) {
801
823
  const runtimeKind = integration.runtimeKind(buildPlan);
802
824
  const appMode = runtimeKind === "process" ? "process" : runtimeKind === "metro" ? "development" : "release";
803
825
  record.configuration = variant ?? "debug";
826
+ const localSelectors = (target) => androidDeviceSelectorRefusal({
827
+ settingsContext,
828
+ signal: context.signal,
829
+ slot,
830
+ systemImageFlag,
831
+ deviceProfileFlag,
832
+ systemImage: target.systemImage,
833
+ deviceProfile: target.deviceProfile,
834
+ physical: false,
835
+ remoteBackend: null,
836
+ installImages: androidImageInstallPolicy(settings)
837
+ }, {
838
+ listSystemImages,
839
+ listDeviceProfiles
840
+ });
804
841
  const hosting = await selectAndroidPlacement({
805
842
  root,
806
843
  slot,
@@ -828,20 +865,7 @@ async function runAndroid(options = {}) {
828
865
  publicUrl: publicUrlSetting(settings),
829
866
  localOnlyFlags: [...typeof systemImageFlag === "string" ? ["--system-image"] : [], ...typeof deviceProfileFlag === "string" ? ["--device-profile"] : []]
830
867
  }) } : {},
831
- localSelectors: (target) => androidDeviceSelectorRefusal({
832
- settingsContext,
833
- signal: context.signal,
834
- slot,
835
- systemImageFlag,
836
- deviceProfileFlag,
837
- systemImage: target.systemImage,
838
- deviceProfile: target.deviceProfile,
839
- physical: false,
840
- remoteBackend: null
841
- }, {
842
- listSystemImages,
843
- listDeviceProfiles
844
- }),
868
+ localSelectors,
845
869
  checkBudget: (args) => (options.checkBudget ?? budgetGate)({
846
870
  ...args,
847
871
  env: context.env
@@ -862,7 +886,17 @@ async function runAndroid(options = {}) {
862
886
  if (appMode === "development" && (publicUrlSetting(settings) || tunnelModeSetting(settings))) phase("metro", "metro.publicUrl and metro.tunnel are ignored on a hosting Mac; Metro uses links this machine opens to the host.");
863
887
  }
864
888
  reclaimed = budget.reclaimed;
865
- if (budget.refusal) return fail(budget.refusal.code, budget.refusal.message, budget.refusal.remedy);
889
+ const localRefusal = await localRunRefusal(budget.refusal, target, () => slotKeepsAvd(root, slot), () => (options.ensureImage ?? ensureSystemImage)({
890
+ requested: target.kind === "emulator" ? target.systemImage : null,
891
+ policy: androidImageInstallPolicy(settings),
892
+ env: context.env,
893
+ signal: settingsSignal,
894
+ note: (line) => phase("image", line)
895
+ }), () => localSelectors(target.kind === "emulator" ? target : {
896
+ systemImage: null,
897
+ deviceProfile: null
898
+ }), settingsSignal);
899
+ if (localRefusal) return fail(localRefusal.code, localRefusal.message, localRefusal.remedy);
866
900
  const remoteContext = remoteBackend ? await resolveRemoteDeviceContext({
867
901
  root,
868
902
  platform: PLATFORM,
@@ -1,10 +1,10 @@
1
- import { D as ownership_claim_exports, S as process_identity_exports, l as WorkspaceProcessCleanupError, m as declareSpawnsOn, o as cancellableSleep, t as getExecutor, v as stopDeclaringSpawnsOn } from "./exec-aULwtNly.mjs";
2
- import { M as withDirLock$1, N as withDirLockAsync$1 } from "./workspace-state-3bF4TB8P.mjs";
3
- import { B as assignSlotDevice, K as projectDeviceSlots, O as withConfigLock$1, U as deviceSlotPlatforms, c as ensureConfig, d as getConfigDir, f as getConfigPath$1, k as withConfigLockAsync$1, q as removeSlotDevice, v as loadConfig$1, w as saveConfig } from "./config-D5qNWJEP.mjs";
4
- import { n as runOperationFileQuiet, t as runOperationFile } from "./operation-exec-Dp4FuIGR.mjs";
5
- import { c as androidDataPartitionSizeBytes } from "./settings-C6UTYW2K.mjs";
6
- import { i as stimDesktopInstalledAsync, n as settingDefault, t as STIM_DESKTOP_OPEN_OPTIONS } from "./stim-desktop-1XxET4S8.mjs";
7
- import { c as pidExists, p as signalProcessTreeAsync } from "./metro-mKHEMO-a.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-CGuDzt40.mjs";
2
+ import { M as withDirLock$1, N as withDirLockAsync$1 } from "./workspace-state-BdZ-QgmB.mjs";
3
+ import { O as withConfigLock$1, c as ensureConfig, d as getConfigDir, f as getConfigPath$1, ft as deviceSlotPlatforms, gt as removeSlotDevice, ht as projectDeviceSlots, k as withConfigLockAsync$1, lt as assignSlotDevice, v as loadConfig$1, w as saveConfig } from "./config-BW0fAtoK.mjs";
4
+ import { n as runOperationFileQuiet, t as runOperationFile } from "./operation-exec-DKlBcKAL.mjs";
5
+ import { c as androidDataPartitionSizeBytes } from "./settings-B5IBDfTx.mjs";
6
+ import { i as stimDesktopInstalledAsync, n as settingDefault, t as STIM_DESKTOP_OPEN_OPTIONS } from "./stim-desktop-_WTria-r.mjs";
7
+ import { c as pidExists, p as signalProcessTreeAsync } from "./metro-B5PVz0Wv.mjs";
8
8
  import { renameSync, rmSync, writeFileSync } from "node:fs";
9
9
  import { isDeepStrictEqual } from "node:util";
10
10
  import { join } from "node:path";
@@ -47,6 +47,7 @@ function update(platform, change) {
47
47
  ios: [...current.ios],
48
48
  android: [...current.android],
49
49
  web: [...current.web],
50
+ ...current.systemImages.size ? { systemImages: [...current.systemImages] } : {},
50
51
  [platform]: [...entries]
51
52
  };
52
53
  const file = createdDevicesFile();
@@ -80,6 +81,10 @@ function forgetCreatedDeviceAsync(platform, id, signal, transaction = (forget) =
80
81
  signal
81
82
  });
82
83
  }
84
+ /** Waits asynchronously for the ledger lock, then records an Android system image directory Stim installed. */
85
+ function recordInstalledSystemImageAsync(directory) {
86
+ return withDirLockAsync$1(createdDevicesLock(), () => update("systemImages", (entries) => entries.size !== entries.add(directory).size), { ensureParent: () => ensurePrivateDir(getConfigDir()) });
87
+ }
83
88
  //#endregion
84
89
  //#region src/devices/sim-pool.ts
85
90
  const POOL_SETTING_REMEDY = "Run `stim guide settings` for the device pool bounds and where it can be set.";
@@ -400,7 +405,11 @@ function findBuildTool(tools, { home = androidHome(), readDir = readdirSync$1, e
400
405
  }
401
406
  return null;
402
407
  }
403
- function listInstalledSystemImages(onUnreadable, env = ambientEnv()) {
408
+ /**
409
+ * Lists the system images in the SDK. An image sdkmanager is still installing, or left mid-install, is left out unless
410
+ * `includePartial` asks for it.
411
+ */
412
+ function listInstalledSystemImages(onUnreadable, env = ambientEnv(), { includePartial = false } = {}) {
404
413
  const root = join$1(androidHome(env), "system-images");
405
414
  const images = [];
406
415
  const list = (dir) => {
@@ -416,12 +425,15 @@ function listInstalledSystemImages(onUnreadable, env = ambientEnv()) {
416
425
  const m = apiDir.match(/^android-(\d+)$/);
417
426
  if (!m) continue;
418
427
  const apiPath = join$1(root, apiDir);
419
- for (const tag of list(apiPath)) for (const arch of list(join$1(apiPath, tag))) images.push({
420
- api: Number(m[1]),
421
- tag,
422
- arch,
423
- pkg: `system-images;${apiDir};${tag};${arch}`
424
- });
428
+ for (const tag of list(apiPath)) for (const arch of list(join$1(apiPath, tag))) {
429
+ if (!includePartial && existsSync$1(join$1(apiPath, tag, arch, ".installer"))) continue;
430
+ images.push({
431
+ api: Number(m[1]),
432
+ tag,
433
+ arch,
434
+ pkg: `system-images;${apiDir};${tag};${arch}`
435
+ });
436
+ }
425
437
  }
426
438
  return images;
427
439
  }
@@ -1807,4 +1819,4 @@ function ownedAvdSerialResolver({ timeoutMs } = {}) {
1807
1819
  };
1808
1820
  }
1809
1821
  //#endregion
1810
- export { probeEmulatorSerial as $, getAvdNameForSerialAsync as A, listOrphanedAvdDirectories as B, deleteAvd as C, selectParked as Ct, extractEmulatorFailure as D, recordCreatedDevice as Dt, emulatorProbeSession as E, readCreatedDevices$1 as Et, listAvdDeviceProfiles as F, ownedAvdName as G, ownedAvdDeviceProfile as H, listAvdDeviceProfilesAsync as I, ownedAvdSystemImage as J, ownedAvdSerialResolver as K, listAvds as L, isEmulatorToolAbsent as M, listAdbDevices as N, findBuildTool as O, recordCreatedDeviceAsync as Ot, listAdbDevicesAsync as P, pickDefaultSystemImage as Q, listAvdsAsync as R, createOwnedAvd as S, removeParkedAfter as St, emulatorFailureRemedy as T, forgetCreatedDeviceAsync as Tt, ownedAvdDirectory as U, nextConsolePort as V, ownedAvdMatchesConfiguration as W, parseAvdSystemImage as X, parseAvdDeviceProfile as Y, physicalDeviceModel as Z, avdPoolConfiguration as _, eraseParkedAfter as _t, androidDeviceAbi as a, resolvePhysicalDevice as at, bootAndroidEmulator as b, parkedMaxSetting as bt, androidPoolNoCandidatesRefusal as c, trimAndroidCaches as ct, androidToolPath as d, wipeAvdUserData as dt, profileNeedsFoldFeature as et, assertOwnedAvdStopped as f, isStimOwnedAvd as ft, avdPathExists as g, dropParked as gt, avdNameAbsent as h, adoptParked as ht, androidDataFreeBytes as i, resolveOwnedAvdSerialAsync as it, hostSystemImageArch as j, getAvdNameForSerial as k, configuredAndroidEmulatorApp as kt, androidSystemImageAbi as l, waitForAndroidEmulatorShutdown as lt, avdIniPaths as m, POOL_SETTING_REMEDY as mt, OWNED_AVD_CONFIG_DEFAULTS as n, removeOwnedEmulatorMetroReverses as nt, androidHome as o, shutdownAndroidEmulator as ot, assertOwnedAvdStoppedAsync as p, isStimOwnedSim as pt, ownedAvdSerialResolverAsync as q, androidBuildToolName as r, resetAdoptedAvd as rt, androidPoolCandidates as s, systemImageSupportsFold as st, DEFAULT_AVD_DEVICE_PROFILE as t, removeMetroReverses as tt, androidToolCwd as u, waitForBoot as ut, avdStorageExists as v, isLegacyDeletionClaim as vt, emulatorDiskSpaceRemedy as w, forgetCreatedDevice as wt, configureNewOwnedAvd as x, readParked as xt, avdStorageRoots as y, parkSim as yt, listInstalledSystemImages as z };
1822
+ export { probeEmulatorSerial as $, getAvdNameForSerialAsync as A, configuredAndroidEmulatorApp as At, listOrphanedAvdDirectories as B, deleteAvd as C, selectParked as Ct, extractEmulatorFailure as D, recordCreatedDevice as Dt, emulatorProbeSession as E, readCreatedDevices$1 as Et, listAvdDeviceProfiles as F, ownedAvdName as G, ownedAvdDeviceProfile as H, listAvdDeviceProfilesAsync as I, ownedAvdSystemImage as J, ownedAvdSerialResolver as K, listAvds as L, isEmulatorToolAbsent as M, listAdbDevices as N, findBuildTool as O, recordCreatedDeviceAsync as Ot, listAdbDevicesAsync as P, pickDefaultSystemImage as Q, listAvdsAsync as R, createOwnedAvd as S, removeParkedAfter as St, emulatorFailureRemedy as T, forgetCreatedDeviceAsync as Tt, ownedAvdDirectory as U, nextConsolePort as V, ownedAvdMatchesConfiguration as W, parseAvdSystemImage as X, parseAvdDeviceProfile as Y, physicalDeviceModel as Z, avdPoolConfiguration as _, eraseParkedAfter as _t, androidDeviceAbi as a, resolvePhysicalDevice as at, bootAndroidEmulator as b, parkedMaxSetting as bt, androidPoolNoCandidatesRefusal as c, trimAndroidCaches as ct, androidToolPath as d, wipeAvdUserData as dt, profileNeedsFoldFeature as et, assertOwnedAvdStopped as f, isStimOwnedAvd as ft, avdPathExists as g, dropParked as gt, avdNameAbsent as h, adoptParked as ht, androidDataFreeBytes as i, resolveOwnedAvdSerialAsync as it, hostSystemImageArch as j, getAvdNameForSerial as k, recordInstalledSystemImageAsync as kt, androidSystemImageAbi as l, waitForAndroidEmulatorShutdown as lt, avdIniPaths as m, POOL_SETTING_REMEDY as mt, OWNED_AVD_CONFIG_DEFAULTS as n, removeOwnedEmulatorMetroReverses as nt, androidHome as o, shutdownAndroidEmulator as ot, assertOwnedAvdStoppedAsync as p, isStimOwnedSim as pt, ownedAvdSerialResolverAsync as q, androidBuildToolName as r, resetAdoptedAvd as rt, androidPoolCandidates as s, systemImageSupportsFold as st, DEFAULT_AVD_DEVICE_PROFILE as t, removeMetroReverses as tt, androidToolCwd as u, waitForBoot as ut, avdStorageExists as v, isLegacyDeletionClaim as vt, emulatorDiskSpaceRemedy as w, forgetCreatedDevice as wt, configureNewOwnedAvd as x, readParked as xt, avdStorageRoots as y, parkSim as yt, listInstalledSystemImages as z };
@@ -1,7 +1,7 @@
1
- import { M as withDirLock$1, _ as ensureWorkspaceStorage } from "./workspace-state-3bF4TB8P.mjs";
2
- import { d as getConfigDir } from "./config-D5qNWJEP.mjs";
3
- import { m as defaultAndroidLayout } from "./settings-C6UTYW2K.mjs";
4
- import { r as register } from "./cache-manifest-CfiEny4T.mjs";
1
+ import { M as withDirLock$1, _ as ensureWorkspaceStorage } from "./workspace-state-BdZ-QgmB.mjs";
2
+ import { d as getConfigDir } from "./config-BW0fAtoK.mjs";
3
+ import { m as defaultAndroidLayout } from "./settings-B5IBDfTx.mjs";
4
+ import { r as register } from "./cache-manifest-8JX9S1QJ.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,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { t as getExecutor } from "./exec-aULwtNly.mjs";
2
+ import { t as getExecutor } from "./exec-CGuDzt40.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";