stim 1.29.0 → 1.30.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 (124) hide show
  1. package/dist/{acquire-artifact-C2DKfenN.mjs → acquire-artifact-CrZ4rEbI.mjs} +1 -1
  2. package/dist/{act-CrTcskiE.mjs → act-BaKjDWGw.mjs} +12 -12
  3. package/dist/{activity-BR5oHSO5.mjs → activity-BTaUf0tc.mjs} +2 -2
  4. package/dist/{agent-device-usage-output-W0x4SoC7.mjs → agent-device-usage-output-DYBpO17K.mjs} +3 -3
  5. package/dist/{android-BPmCmyAy.mjs → android-BCYLwmH6.mjs} +5 -5
  6. package/dist/{android-CLU_MMnb.mjs → android-BEQUDpOg.mjs} +1 -1
  7. package/dist/{android-l616dRP1.mjs → android-BWqdDK6R.mjs} +36 -34
  8. package/dist/{android-BHKgeOuq.mjs → android-DdKG6lyD.mjs} +39 -30
  9. package/dist/api.mjs +21 -21
  10. package/dist/{apk-signed-tail-B-wKoF_8.mjs → apk-signed-tail-B8kw4a8K.mjs} +1 -1
  11. package/dist/{artifact-Dm9ScLrh.mjs → artifact-DTHXcmQ3.mjs} +11 -11
  12. package/dist/{artifact-DHuFYfhD.mjs → artifact-M6W2l-xh.mjs} +11 -11
  13. package/dist/{auto-placement-C8sJsyMN.mjs → auto-placement-CZaWDmcY.mjs} +8 -8
  14. package/dist/{browser-web-_tQTbQUs.mjs → browser-web-JQ7lFej3.mjs} +5 -5
  15. package/dist/{build-DtCU9Kim.mjs → build-C2ZWoCmg.mjs} +18 -18
  16. package/dist/{build-cache-BGwTsIEa.mjs → build-cache-DlC3owap.mjs} +1 -1
  17. package/dist/{build-plan-CWyjMPKo.mjs → build-plan-J3iRR3gI.mjs} +5 -5
  18. package/dist/{ccache-DsDkdP72.mjs → ccache-B8gY50-h.mjs} +11 -11
  19. package/dist/{cli-3fjOg-Oc.mjs → cli-xRPXJPtA.mjs} +17 -17
  20. package/dist/cli.mjs +1 -1
  21. package/dist/{client-BTUH8TF1.mjs → client-DrHykA24.mjs} +3 -3
  22. package/dist/collector-run.mjs +1 -1
  23. package/dist/{command-output-DjCsmzLZ.mjs → command-output-BBW8eWPL.mjs} +1 -1
  24. package/dist/{dependencies-CHNqX6Pr.mjs → dependencies-vUh9mp5z.mjs} +31 -30
  25. package/dist/{dev-client-CROrxj1x.mjs → dev-client-CASgAOu7.mjs} +2 -2
  26. package/dist/device-ChnO7bR9.mjs +761 -0
  27. package/dist/device-CsIdRXfm.mjs +175 -0
  28. package/dist/{device-Bmm5qjM-.mjs → device-android-CcdQqQWg.mjs} +26 -193
  29. package/dist/{device-capacity-B2ChA-bz.mjs → device-capacity-C5C_jOQd.mjs} +9 -9
  30. package/dist/device-host-worker.mjs +40 -31
  31. package/dist/{device-ios-CYzivd31.mjs → device-ios-DbmtPIiw.mjs} +24 -14
  32. package/dist/{device-lease-run-qRq_2W2V.mjs → device-lease-run-Do6zYA7y.mjs} +3 -3
  33. package/dist/{device-pool-CrmiE4_x.mjs → device-pool-CpoYiCGO.mjs} +2 -2
  34. package/dist/{device-provision-CK2XiEp1.mjs → device-provision-B5Ms94qY.mjs} +6 -6
  35. package/dist/{doctor-Dr3C1iXV.mjs → doctor-CJSB5q-s.mjs} +14 -14
  36. package/dist/{doctor-Cp4-HN1f.mjs → doctor-CLE4AZEI.mjs} +12 -12
  37. package/dist/{doctor-BO_kaFWX.mjs → doctor-CpfbYh3Q.mjs} +1 -1
  38. package/dist/doctor-fingerprint.mjs +1 -1
  39. package/dist/{doctor-watchman-CJr2aXXv.mjs → doctor-watchman-D1IyMle9.mjs} +2 -2
  40. package/dist/{eas-build-D-9HmGZS.mjs → eas-build-DIDOHw2P.mjs} +2 -2
  41. package/dist/{eas-fallback-Cemt2GVL.mjs → eas-fallback-DVS9oBSc.mjs} +2 -2
  42. package/dist/{eas-session-ledger-B0KLZx5m.mjs → eas-session-ledger-CW3l-inB.mjs} +1 -1
  43. package/dist/{error-diagnostics-CV_1RoEH.mjs → error-diagnostics-XJ9eWdtq.mjs} +5 -5
  44. package/dist/{gc-DjXwQXHK.mjs → gc-BVIcxCxE.mjs} +2 -2
  45. package/dist/{gc-CKHqL4aS.mjs → gc-Co7PE36D.mjs} +13 -13
  46. package/dist/{guide-CeRlWVsS.mjs → guide-DkepBgHT.mjs} +110 -13
  47. package/dist/{hosted-android-DI_vvv7U.mjs → hosted-android-Du7NxufJ.mjs} +2 -2
  48. package/dist/{hosted-client-CgoxdU9j.mjs → hosted-client-Cect92SZ.mjs} +2 -2
  49. package/dist/{hosted-logs-C-4INmkn.mjs → hosted-logs-Opcjv1Lr.mjs} +3 -3
  50. package/dist/{hosted-logs-sync-Bf5s02fi.mjs → hosted-logs-sync-wsI7N1Hv.mjs} +6 -10
  51. package/dist/{hosted-macos-Doh85YUM.mjs → hosted-macos-BP9Kucat.mjs} +4 -4
  52. package/dist/{hosted-native-DvZENAL-.mjs → hosted-native-DmdLSmvu.mjs} +6 -5
  53. package/dist/{idle-shutdown-BM37gMfU.mjs → idle-shutdown-BcMN_cLm.mjs} +4 -4
  54. package/dist/{ios-CNDH6fNF.mjs → ios-BFkBHuRT.mjs} +8 -8
  55. package/dist/{ios-UM_dManb.mjs → ios-CG0IsLtt.mjs} +24 -24
  56. package/dist/{ios-CoMCWfub.mjs → ios-CXnoVO_z.mjs} +2 -2
  57. package/dist/{ios-device-L1-pota_.mjs → ios-device-ClSfuu-_.mjs} +1 -1
  58. package/dist/{ios-project-DJYptOCh.mjs → ios-project-BM9TbTE7.mjs} +5 -5
  59. package/dist/{js-swap-BthE4kZC.mjs → js-swap-9Rx-5Nqz.mjs} +3 -3
  60. package/dist/{launch-D798aSm8.mjs → launch-DvJV1Mx4.mjs} +14 -14
  61. package/dist/{lightened-vSxkstg6.mjs → lightened-23pqe7LS.mjs} +2 -2
  62. package/dist/{logs-BND8MiBq.mjs → logs-DJgZlf2K.mjs} +5 -5
  63. package/dist/{logs-CilPftm3.mjs → logs-Pkeh3wZk.mjs} +5 -4
  64. package/dist/{macos-CxUi9xcE.mjs → macos-DPvPQadc.mjs} +15 -15
  65. package/dist/{macos-BOQrKYeJ.mjs → macos-Du07NsOB.mjs} +1 -1
  66. package/dist/maintenance-run.mjs +4 -4
  67. package/dist/{native-android-BkhrCjdX.mjs → native-android-CBOM1_gB.mjs} +12 -12
  68. package/dist/{native-gradle-artifact-inputs-Cw4P6Gyr.mjs → native-gradle-artifact-inputs-D_iAfPuS.mjs} +3 -3
  69. package/dist/{native-runtime-DyH2gkXK.mjs → native-runtime-D4cTwU0Z.mjs} +3 -3
  70. package/dist/{native-xcode-inputs-DV8jr3kJ.mjs → native-xcode-inputs-BF-ogSnG.mjs} +1 -1
  71. package/dist/{native-xcode-ios-DdpPG2iT.mjs → native-xcode-ios-DwJBfMP6.mjs} +12 -12
  72. package/dist/offload-worker.mjs +15 -15
  73. package/dist/{phone-reverses-DZRad8HT.mjs → phone-reverses-CvhhkGMH.mjs} +2 -2
  74. package/dist/{placement-log-CoN6xrjY.mjs → placement-log-CRR_TE1r.mjs} +1 -1
  75. package/dist/{plan-placement-7sHuqR-r.mjs → plan-placement-CdLc-pTb.mjs} +4 -4
  76. package/dist/{ports-VQSAPZhl.mjs → ports-g4N_cfyg.mjs} +1 -1
  77. package/dist/{prebuild-Bqp0LFGN.mjs → prebuild-DBJMhwSS.mjs} +6 -6
  78. package/dist/{project-D1n0K4yg.mjs → project-DPQjnpcI.mjs} +11 -11
  79. package/dist/{react-native-android-FQ-yX3Mv.mjs → react-native-android-idMWOwkX.mjs} +21 -21
  80. package/dist/{react-native-build-D58bIqV9.mjs → react-native-build-BSoh4HkH.mjs} +5 -5
  81. package/dist/{react-native-doctor-AkUH2aca.mjs → react-native-doctor-CYibY8-4.mjs} +8 -7
  82. package/dist/{react-native-ios-Dmsv8j7T.mjs → react-native-ios-13KIIOOy.mjs} +15 -14
  83. package/dist/{reload-CDKEzzaf.mjs → reload-B9DZOjcV.mjs} +1 -1
  84. package/dist/{reload-BV0nD-k9.mjs → reload-BUQI3dSu.mjs} +8 -8
  85. package/dist/{remote-C8xyslUa.mjs → remote-C-RGHhAP.mjs} +6 -6
  86. package/dist/{result-9fqcJ90W.mjs → result-W4HCum4A.mjs} +11 -11
  87. package/dist/{selection-D1ZDzHFX.mjs → selection-PCMT97XD.mjs} +1 -1
  88. package/dist/{server-command-RlS-Kl4a.mjs → server-command-oqi3TDy7.mjs} +2 -2
  89. package/dist/server-expo-BUFAq2In.mjs +2 -0
  90. package/dist/{server-expo-bB1VV2k-.mjs → server-expo-C1K07shx.mjs} +1 -1
  91. package/dist/{settings-BcVCcAT5.mjs → settings-CKlMOmhj.mjs} +2 -2
  92. package/dist/{settings-payload-_aatELz2.mjs → settings-payload-CE-NZ6Lq.mjs} +1 -1
  93. package/dist/{settings-write-CkTVGQ4O.mjs → settings-write-D7Xwa_-M.mjs} +2 -2
  94. package/dist/{slot-launch-Dbgfh8gc.mjs → slot-launch-CeIK1iUI.mjs} +4 -4
  95. package/dist/{stage-BuHuRj1y.mjs → stage-Blqe6bWb.mjs} +1 -1
  96. package/dist/{start-Dlv4XXTP.mjs → start-B7J5a9nS.mjs} +5 -5
  97. package/dist/{start-Cr-c3Xhq.mjs → start-CvP2pJjc.mjs} +1 -1
  98. package/dist/{stats-D5c-uIBp.mjs → stats-Uo7l8OAk.mjs} +3 -3
  99. package/dist/{status-DbQv--Yb.mjs → status-CqJI1TgG.mjs} +1 -1
  100. package/dist/{status-D6PBK6_-.mjs → status-_rWXFSO7.mjs} +15 -15
  101. package/dist/{status-watch-okrpea4i.mjs → status-watch-CnSyXUmj.mjs} +3 -3
  102. package/dist/status-worker.mjs +1 -1
  103. package/dist/{stop-CHtAiv79.mjs → stop-Bogo9oO2.mjs} +2 -2
  104. package/dist/{stop-uRQ-zYcl.mjs → stop-CMVfaA-6.mjs} +2 -2
  105. package/dist/{stop-p9uSKuGE.mjs → stop-CnF9ixYe.mjs} +10 -10
  106. package/dist/supervisor-run.mjs +9 -9
  107. package/dist/{support-PFyTkrnr.mjs → support-BGqpYMV8.mjs} +15 -11
  108. package/dist/{support-BMpQIug0.mjs → support-DUevTPur.mjs} +7 -7
  109. package/dist/{swiftpm-artifact-inputs-Cddq6jN2.mjs → swiftpm-artifact-inputs-BcJk6-3u.mjs} +1 -1
  110. package/dist/{swiftpm-macos-BSj9iZlI.mjs → swiftpm-macos-DBrmoocG.mjs} +4 -4
  111. package/dist/toolchain-Cw9VVHOY.mjs +2 -0
  112. package/dist/{toolchain-CLGnEUgT.mjs → toolchain-DLdoyxIt.mjs} +18 -10
  113. package/dist/{warm-progress--KkkBBaq.mjs → warm-progress-DQ2wQZKp.mjs} +1 -1
  114. package/dist/web-CI_qCRPw.mjs +2 -0
  115. package/dist/{web-xlVssjQf.mjs → web-g9U7L1sR.mjs} +3 -3
  116. package/dist/web-run.mjs +2 -2
  117. package/dist/{workspaces-CvSYD_78.mjs → workspaces-7_RWoi6c.mjs} +4 -4
  118. package/dist/{worktree-DTOIohFe.mjs → worktree-DEet9H3p.mjs} +1 -1
  119. package/dist/{worktree-CaQBf6kh.mjs → worktree-qKJ3x07S.mjs} +13 -13
  120. package/package.json +7 -7
  121. package/dist/device-BvpasThQ.mjs +0 -297
  122. package/dist/server-expo-BVV9qy31.mjs +0 -2
  123. package/dist/toolchain-B-mzR9Rh.mjs +0 -2
  124. package/dist/web-BxSo493O.mjs +0 -2
@@ -1,5 +1,5 @@
1
1
  import { l as WorkspaceProcessCleanupError } from "./exec-aULwtNly.mjs";
2
- import { I as waitForSharedBuild } from "./activity-BR5oHSO5.mjs";
2
+ import { I as waitForSharedBuild } from "./activity-BTaUf0tc.mjs";
3
3
  import { rmSync } from "node:fs";
4
4
  //#region src/engine/artifact-lifecycle.ts
5
5
  async function runArtifactLifecycle(phases) {
@@ -1,27 +1,27 @@
1
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
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-DGwkPXwq.mjs";
3
3
  import { F as isOnMountedVolume, G as projectDeviceSlots, I as listMountedVolumes, L as measuredDirectorySizeAsync, N as directorySizeAsync, P as formatBytes, _ as loadConfig$1, p as getProject } from "./config-AbUjIBOQ.mjs";
4
- import { o as formatLongDuration, u as plural } from "./command-output-DjCsmzLZ.mjs";
4
+ import { o as formatLongDuration, u as plural } from "./command-output-BBW8eWPL.mjs";
5
5
  import { c as gitQuiet, l as gitQuietAsync, n as runOperationFileQuiet, r as childEnvironment } from "./operation-exec-Dp4FuIGR.mjs";
6
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-D776ygML.mjs";
7
- import { P as readRemoteSession, i as findProjectRoot$1 } from "./project-D1n0K4yg.mjs";
8
- import { A as listAdbDevices, D as getAvdNameForSerial, F as listAvdsAsync, G as ownedAvdSerialResolverAsync, O as getAvdNameForSerialAsync, P as listAvds, V as ownedAvdDirectory, j as listAdbDevicesAsync, yt as readParked } from "./android-BHKgeOuq.mjs";
7
+ import { P as readRemoteSession, i as findProjectRoot$1 } from "./project-DPQjnpcI.mjs";
8
+ import { F as listAvds, G as ownedAvdSerialResolverAsync, I as listAvdsAsync, M as listAdbDevicesAsync, O as getAvdNameForSerial, V as ownedAvdDirectory, j as listAdbDevices, k as getAvdNameForSerialAsync, yt as readParked } from "./android-DdKG6lyD.mjs";
9
9
  import { c as pidExists } from "./metro-BMQHczcf.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-DsDkdP72.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-B8gY50-h.mjs";
11
11
  import { o as readWebRecord, u as webFacts } from "./state-D5ZxwCGJ.mjs";
12
12
  import { a as unregister, n as readManifest } from "./cache-manifest-evF_zJ9U.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-CvSYD_78.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-7_RWoi6c.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-BR5oHSO5.mjs";
16
- import { d as listAllIosSims, f as listAllIosSimsAsync } from "./ios-CoMCWfub.mjs";
15
+ import { N as listBuildLocks, _ as workspaceDeviceLastUseAt, b as leaseIsExpired, g as workspaceActivity, x as listLeaseFiles } from "./activity-BTaUf0tc.mjs";
16
+ import { d as listAllIosSims, f as listAllIosSimsAsync } from "./ios-CXnoVO_z.mjs";
17
17
  import { s as metroStoreRoot } from "./errors-DHm_U5gv.mjs";
18
18
  import { t as resolveMaintenanceSettings } from "./settings-D9LtQaUw.mjs";
19
- import { o as runStop } from "./stop-p9uSKuGE.mjs";
20
- 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-CaQBf6kh.mjs";
19
+ import { o as runStop } from "./stop-CnF9ixYe.mjs";
20
+ 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-qKJ3x07S.mjs";
21
21
  import { n as describePullRequest, r as endedPullRequest, s as pullRequestLookups } from "./pull-request-BzLmzAIQ.mjs";
22
- import { a as lastFetchedAtAsync, c as mergeStateAsync, f as recordPullRequestLookup, i as fetchDefaultBranchAsync, o as localDefaultBranchAsync, r as FETCH_FRESH_MS } from "./warm-progress--KkkBBaq.mjs";
23
- import { a as restoreProblem, r as recordLightened, t as finishLightened } from "./lightened-vSxkstg6.mjs";
24
- import { i as writeIdleShutdownEvent, n as dueIdleDevices, r as shutDownIdleDevices } from "./idle-shutdown-BM37gMfU.mjs";
22
+ import { a as lastFetchedAtAsync, c as mergeStateAsync, f as recordPullRequestLookup, i as fetchDefaultBranchAsync, o as localDefaultBranchAsync, r as FETCH_FRESH_MS } from "./warm-progress-DQ2wQZKp.mjs";
23
+ import { a as restoreProblem, r as recordLightened, t as finishLightened } from "./lightened-23pqe7LS.mjs";
24
+ import { i as writeIdleShutdownEvent, n as dueIdleDevices, r as shutDownIdleDevices } from "./idle-shutdown-BcMN_cLm.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
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
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-DGwkPXwq.mjs";
3
3
  import { U as parseDeviceSlotKey, V as deviceSlotKey, d as getConfigDir, q as validateDeviceSlot } from "./config-AbUjIBOQ.mjs";
4
- import { a as formatElapsed, i as formatDuration, m as shortHash } from "./command-output-DjCsmzLZ.mjs";
4
+ import { a as formatElapsed, i as formatDuration, m as shortHash } from "./command-output-BBW8eWPL.mjs";
5
5
  import { n as runOperationFileQuiet } from "./operation-exec-Dp4FuIGR.mjs";
6
- import { C as resolveBuild } from "./build-cache-BGwTsIEa.mjs";
6
+ import { C as resolveBuild } from "./build-cache-DlC3owap.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
1
  import { S as process_identity_exports } from "./exec-aULwtNly.mjs";
2
2
  import { P as formatBytes } from "./config-AbUjIBOQ.mjs";
3
- import { o as formatLongDuration } from "./command-output-DjCsmzLZ.mjs";
4
- import { bt as measureDu, u as listWorkspaceDirs, xt as writeUsageCache, yt as canonical } from "./workspaces-CvSYD_78.mjs";
5
- import { c as parseAgentDeviceRecord, o as envDir, u as processMatches } from "./activity-BR5oHSO5.mjs";
3
+ import { o as formatLongDuration } from "./command-output-BBW8eWPL.mjs";
4
+ import { bt as measureDu, u as listWorkspaceDirs, xt as writeUsageCache, yt as canonical } from "./workspaces-7_RWoi6c.mjs";
5
+ import { c as parseAgentDeviceRecord, o as envDir, u as processMatches } from "./activity-BTaUf0tc.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,6 +1,6 @@
1
- import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-DjCsmzLZ.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-PFyTkrnr.mjs";
3
- import { r as lastBuildRecord, t as androidFacts } from "./result-9fqcJ90W.mjs";
4
- import { i as runAndroidOperation, n as registerAndroid, r as runAndroid, t as androidCommand } from "./android-l616dRP1.mjs";
5
- import { a as collectorLogFile, o as killPreviousCollector, s as startCollector } from "./launch-D798aSm8.mjs";
1
+ import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BBW8eWPL.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-BGqpYMV8.mjs";
3
+ import { r as lastBuildRecord, t as androidFacts } from "./result-W4HCum4A.mjs";
4
+ import { i as runAndroidOperation, n as registerAndroid, r as runAndroid, t as androidCommand } from "./android-BWqdDK6R.mjs";
5
+ import { a as collectorLogFile, o as killPreviousCollector, s as startCollector } from "./launch-DvJV1Mx4.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
  import { t as getExecutor } from "./exec-aULwtNly.mjs";
2
- import { u as androidToolCwd } from "./android-BHKgeOuq.mjs";
2
+ import { u as androidToolCwd } from "./android-DdKG6lyD.mjs";
3
3
  //#region src/collector/android.ts
4
4
  const LEVEL_BY_LETTER = {
5
5
  V: "debug",
@@ -1,42 +1,43 @@
1
1
  import { D as ownership_claim_exports, t as getExecutor } from "./exec-aULwtNly.mjs";
2
2
  import { a as recordWorkspaceUseAsync, f as writeWorkspaceStateAsync, g as emulatorLogFile, k as workspaceLogsDir$1, r as readWorkspaceState$1 } from "./workspace-state-DGwkPXwq.mjs";
3
3
  import { B as deviceSlotFileKey, E as upsertProject, H as deviceSlotPlatforms, O as withConfigLockAsync$1, W as parseDeviceSlotOption, p as getProject, q as validateDeviceSlot, u as getConcurrencyLimits } from "./config-AbUjIBOQ.mjs";
4
- import { _ as stepTimer, f as refuseNoProject, g as stepClock, i as formatDuration, l as phaseLine } from "./command-output-DjCsmzLZ.mjs";
4
+ import { _ as stepTimer, f as refuseNoProject, g as stepClock, i as formatDuration, l as phaseLine } from "./command-output-BBW8eWPL.mjs";
5
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-D776ygML.mjs";
6
- import { f as projectRegistry, i as findProjectRoot$1, l as projectShortcut, t as NO_PROJECT_REFUSAL, z as writeWorkspaceLaunchAsync } from "./project-D1n0K4yg.mjs";
7
- import { A as listAdbDevices, Dt as configuredAndroidEmulatorApp, I as listInstalledSystemImages, Y as physicalDeviceModel, Z as probeEmulatorSerial, a as androidDeviceAbi, ct as waitForBoot, nt as resolveOwnedAvdSerialAsync, rt as resolvePhysicalDevice } from "./android-BHKgeOuq.mjs";
6
+ import { f as projectRegistry, i as findProjectRoot$1, l as projectShortcut, t as NO_PROJECT_REFUSAL, z as writeWorkspaceLaunchAsync } from "./project-DPQjnpcI.mjs";
7
+ import { Dt as configuredAndroidEmulatorApp, L as listInstalledSystemImages, M as listAdbDevicesAsync, T as emulatorProbeSession, Y as physicalDeviceModel, Z as probeEmulatorSerial, a as androidDeviceAbi, ct as waitForBoot, nt as resolveOwnedAvdSerialAsync, rt as resolvePhysicalDevice } from "./android-DdKG6lyD.mjs";
8
8
  import { c as pidExists, d as resolveProjectMetro } from "./metro-BMQHczcf.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-DsDkdP72.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-CvSYD_78.mjs";
12
- import { Q as cancelledFailure, at as runCancellation, ot as runCancellationSignal, st as withNativeBuildRun } from "./toolchain-CLGnEUgT.mjs";
13
- import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-BR5oHSO5.mjs";
14
- import { T as storedAppId } from "./build-cache-BGwTsIEa.mjs";
15
- import { S as setRemoteLogSink } from "./client-BTUH8TF1.mjs";
16
- import { d as resolveBuildPlacement, s as parseBuildMachineOption } from "./selection-D1ZDzHFX.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-B8gY50-h.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-7_RWoi6c.mjs";
12
+ import { $ as cancelledFailure, ct as withNativeBuildRun, ot as runCancellation, st as runCancellationSignal } from "./toolchain-DLdoyxIt.mjs";
13
+ import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-BTaUf0tc.mjs";
14
+ import { T as storedAppId } from "./build-cache-DlC3owap.mjs";
15
+ import { S as setRemoteLogSink } from "./client-DrHykA24.mjs";
16
+ import { d as resolveBuildPlacement, s as parseBuildMachineOption } from "./selection-PCMT97XD.mjs";
17
17
  import { r as hostedMetroSettings } from "./metro-request-BtF7ox53.mjs";
18
18
  import { a as writeHostedAndroidAsync, i as writeDevicePlacementAsync, t as readHostedAndroid } from "./ios-state-Ce_dystM.mjs";
19
- import { n as prepareHostedAndroid, t as placeHostedAndroid } from "./hosted-android-DI_vvv7U.mjs";
19
+ import { n as prepareHostedAndroid, t as placeHostedAndroid } from "./hosted-android-Du7NxufJ.mjs";
20
20
  import { n as verifyCollectorOwnership } from "./ownership-Dtz9G5Gl.mjs";
21
- import { i as restoreLightenedDependencies, n as printLightenedFailure } from "./lightened-vSxkstg6.mjs";
22
- import { c as startDevServer } from "./start-Dlv4XXTP.mjs";
23
- import { a as acquireRunLease, d as runLease, f as waitFlagConflict, o as leaseExpiryText, u as releaseLeaseOnAbort } from "./device-lease-run-qRq_2W2V.mjs";
24
- import { n as DeviceAdmissionRefusal, r as checkDeviceCapacity } from "./device-capacity-B2ChA-bz.mjs";
25
- import { a as resolveEasDevelopmentBuild, r as isEasBuildFailure } from "./eas-build-D-9HmGZS.mjs";
26
- import { t as followHostedLaunchLogs } from "./hosted-logs-sync-Bf5s02fi.mjs";
27
- import { f as settleFingerprintCheck } from "./prebuild-Bqp0LFGN.mjs";
28
- import { i as launchOutcomeRecord, n as ensureWorkspaceStorageSafely, r as isPhysicalDeviceRequest, t as ensureDevServer } from "./native-runtime-DyH2gkXK.mjs";
29
- import { n as devicePlacementRecord } from "./placement-log-CoN6xrjY.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-PFyTkrnr.mjs";
31
- import { t as acquireAndroidArtifact } from "./artifact-DHuFYfhD.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-9fqcJ90W.mjs";
33
- import { n as devicePlacementLine, t as automaticDevicePlacement } from "./auto-placement-C8sJsyMN.mjs";
34
- import { i as verifyAndroidMetroRun, r as finishAndroidRun } from "./launch-D798aSm8.mjs";
35
- import { t as checkEasFallback } from "./eas-fallback-Cemt2GVL.mjs";
36
- import { a as AvdRecoveryError, i as AvdBootError, n as ensureBooted, o as warmMetro, r as ensureOwnedDevice, t as didSetUpDevice } from "./device-Bmm5qjM-.mjs";
37
- import { t as selectFromPool } from "./device-pool-CrmiE4_x.mjs";
21
+ import { i as restoreLightenedDependencies, n as printLightenedFailure } from "./lightened-23pqe7LS.mjs";
22
+ import { c as startDevServer } from "./start-B7J5a9nS.mjs";
23
+ import { a as acquireRunLease, d as runLease, f as waitFlagConflict, o as leaseExpiryText, u as releaseLeaseOnAbort } from "./device-lease-run-Do6zYA7y.mjs";
24
+ import { n as DeviceAdmissionRefusal, r as checkDeviceCapacity } from "./device-capacity-C5C_jOQd.mjs";
25
+ import { a as resolveEasDevelopmentBuild, r as isEasBuildFailure } from "./eas-build-DIDOHw2P.mjs";
26
+ import { t as followHostedLaunchLogs } from "./hosted-logs-sync-wsI7N1Hv.mjs";
27
+ import { f as settleFingerprintCheck } from "./prebuild-DBJMhwSS.mjs";
28
+ import { i as launchOutcomeRecord, n as ensureWorkspaceStorageSafely, r as isPhysicalDeviceRequest, t as ensureDevServer } from "./native-runtime-D4cTwU0Z.mjs";
29
+ import { n as devicePlacementRecord } from "./placement-log-CRR_TE1r.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-BGqpYMV8.mjs";
31
+ import { t as acquireAndroidArtifact } from "./artifact-M6W2l-xh.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-W4HCum4A.mjs";
33
+ import { n as devicePlacementLine, t as automaticDevicePlacement } from "./auto-placement-CZaWDmcY.mjs";
34
+ import { i as verifyAndroidMetroRun, r as finishAndroidRun } from "./launch-DvJV1Mx4.mjs";
35
+ import { t as checkEasFallback } from "./eas-fallback-DVS9oBSc.mjs";
36
+ import { i as warmMetro, n as ensureBooted, r as ensureOwnedDevice, t as didSetUpDevice } from "./device-CsIdRXfm.mjs";
37
+ import { a as AvdBootError, o as AvdRecoveryError } from "./device-android-CcdQqQWg.mjs";
38
+ import { t as selectFromPool } from "./device-pool-CpoYiCGO.mjs";
38
39
  import { t as unsupportedPlan } from "./project-plan-BPwbLwQu.mjs";
39
- import { a as refusePlan, i as printPlan, n as planFlagRefusal } from "./build-plan-CWyjMPKo.mjs";
40
+ import { a as refusePlan, i as printPlan, n as planFlagRefusal } from "./build-plan-J3iRR3gI.mjs";
40
41
  import { join } from "node:path";
41
42
  import { workspaceId } from "@stim-cli/core";
42
43
  import { hostedAndroidStatus, parseMachine } from "@stim-cli/core/state";
@@ -443,7 +444,7 @@ function runAndroidOperation(context, root, opts = {}) {
443
444
  }
444
445
  }, { write: (line) => context.output("stderr", `${chalk.dim(phaseLine("lock", line))}\n`) });
445
446
  }
446
- 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, 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 = listAdbDevices, 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, {
447
+ 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, 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, {
447
448
  ...options,
448
449
  context
449
450
  }), 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) } = {}) {
@@ -1028,11 +1029,12 @@ async function runAndroid(options = {}) {
1028
1029
  serial: pooled.device.serial
1029
1030
  });
1030
1031
  } else if (target.kind === "physical") {
1031
- const resolved = resolvePhysicalDevice(target.serial, listDevices(), isEmulatorDevice);
1032
+ const adb = await listDevices();
1033
+ const resolved = await emulatorProbeSession(isEmulatorDevice)((isEmulator) => resolvePhysicalDevice(target.serial, adb, isEmulator));
1032
1034
  if (!resolved.serial) return fail(NO_DEVICE, resolved.error, resolved.remedy);
1033
1035
  device = {
1034
1036
  serial: resolved.serial,
1035
- deviceName: deviceModel(resolved.serial) ?? resolved.serial,
1037
+ deviceName: await deviceModel(resolved.serial) ?? resolved.serial,
1036
1038
  owned: false
1037
1039
  };
1038
1040
  bootPromise = Promise.resolve({
@@ -1045,7 +1047,7 @@ async function runAndroid(options = {}) {
1045
1047
  } catch (err) {
1046
1048
  return fail("STIM_BAD_ARG", err.message, "Run `stim settings set androidEmulatorApp emulator` or `stim settings set androidEmulatorApp stim-desktop`.");
1047
1049
  }
1048
- const capacity = plan.deviceSlotWaitMs === 0 ? checkCapacity({
1050
+ const capacity = plan.deviceSlotWaitMs === 0 ? await checkCapacity({
1049
1051
  platform: PLATFORM,
1050
1052
  project,
1051
1053
  max: limits.maxDevices
@@ -1148,7 +1150,7 @@ async function runAndroid(options = {}) {
1148
1150
  writer,
1149
1151
  settings,
1150
1152
  buildPlan,
1151
- target: androidBuildOptions({
1153
+ target: await androidBuildOptions({
1152
1154
  release,
1153
1155
  physical,
1154
1156
  device,
@@ -680,25 +680,21 @@ const EMULATOR_HARDWARE = /* @__PURE__ */ new Set([
680
680
  "vbox86",
681
681
  "vbox86p"
682
682
  ]);
683
- function adbProp(serial, name) {
684
- try {
685
- const out = getExecutor().runFile(androidToolPath("adb"), [
686
- "-s",
687
- serial,
688
- "shell",
689
- "getprop",
690
- name
691
- ], { timeoutMs: ADB_PROP_TIMEOUT_MS });
692
- return String(out ?? "").trim() || null;
693
- } catch {
694
- return null;
695
- }
683
+ async function adbProp(serial, name) {
684
+ const out = await getExecutor().runFileQuietAsync(androidToolPath("adb"), [
685
+ "-s",
686
+ serial,
687
+ "shell",
688
+ "getprop",
689
+ name
690
+ ], { timeoutMs: ADB_PROP_TIMEOUT_MS });
691
+ return String(out ?? "").trim() || null;
696
692
  }
697
693
  function physicalDeviceModel(serial) {
698
694
  return adbProp(serial, "ro.product.model");
699
695
  }
700
- function androidDeviceAbi(serial) {
701
- const abi = adbProp(serial, "ro.product.cpu.abi");
696
+ async function androidDeviceAbi(serial) {
697
+ const abi = await adbProp(serial, "ro.product.cpu.abi");
702
698
  return abi && ANDROID_ABIS.has(abi) ? abi : null;
703
699
  }
704
700
  function androidSystemImageAbi(systemImage) {
@@ -709,10 +705,10 @@ function looksLikeEmulator({ kernelQemu, hardware }) {
709
705
  if (String(kernelQemu ?? "").trim() === "1") return true;
710
706
  return EMULATOR_HARDWARE.has(String(hardware ?? "").trim().toLowerCase());
711
707
  }
712
- function probeEmulatorSerial(serial) {
708
+ async function probeEmulatorSerial(serial) {
713
709
  return looksLikeEmulator({
714
- kernelQemu: adbProp(serial, "ro.kernel.qemu"),
715
- hardware: adbProp(serial, "ro.hardware")
710
+ kernelQemu: await adbProp(serial, "ro.kernel.qemu"),
711
+ hardware: await adbProp(serial, "ro.hardware")
716
712
  });
717
713
  }
718
714
  function unreachableDeviceRefusal(entry) {
@@ -727,20 +723,33 @@ function emulatorRefusal(serial) {
727
723
  remedy: "Run `stim android` without --device to use this workspace's owned emulator."
728
724
  };
729
725
  }
730
- function memoizeEmulatorProbe(probe = probeEmulatorSerial) {
731
- const seen = /* @__PURE__ */ new Map();
732
- return (serial) => {
733
- const cached = seen.get(serial);
734
- if (cached !== void 0) return cached;
735
- const probed = probe(serial);
736
- seen.set(serial, probed);
737
- return probed;
726
+ var UnprobedSerial = class extends Error {
727
+ serial;
728
+ constructor(serial) {
729
+ super(serial);
730
+ this.serial = serial;
731
+ }
732
+ };
733
+ function emulatorProbeSession(probe) {
734
+ const known = /* @__PURE__ */ new Map();
735
+ const isEmulator = (serial) => {
736
+ const answer = known.get(serial);
737
+ if (answer === void 0) throw new UnprobedSerial(serial);
738
+ return answer;
739
+ };
740
+ return async (select) => {
741
+ for (;;) try {
742
+ return select(isEmulator);
743
+ } catch (error) {
744
+ if (!(error instanceof UnprobedSerial)) throw error;
745
+ known.set(error.serial, await probe(error.serial));
746
+ }
738
747
  };
739
748
  }
740
- function androidPoolCandidates(adb, isEmulator = probeEmulatorSerial) {
749
+ function androidPoolCandidates(adb, isEmulator) {
741
750
  return (adb?.physical ?? []).filter((entry) => !isEmulator(entry.serial));
742
751
  }
743
- function androidPoolNoCandidatesRefusal(adb, isEmulator = probeEmulatorSerial) {
752
+ function androidPoolNoCandidatesRefusal(adb, isEmulator) {
744
753
  const physical = adb?.physical ?? [];
745
754
  if (physical.length > 0 && physical.every((entry) => isEmulator(entry.serial))) {
746
755
  const reasons = physical.map((entry) => emulatorRefusal(entry.serial));
@@ -751,7 +760,7 @@ function androidPoolNoCandidatesRefusal(adb, isEmulator = probeEmulatorSerial) {
751
760
  }
752
761
  return resolvePhysicalDevice(null, adb, isEmulator);
753
762
  }
754
- function resolvePhysicalDevice(requested, adb, isEmulator = probeEmulatorSerial) {
763
+ function resolvePhysicalDevice(requested, adb, isEmulator) {
755
764
  const physical = adb?.physical ?? [];
756
765
  const unhealthy = adb?.unhealthy ?? [];
757
766
  if (requested) {
@@ -1777,4 +1786,4 @@ function ownedAvdSerialResolver({ timeoutMs } = {}) {
1777
1786
  };
1778
1787
  }
1779
1788
  //#endregion
1780
- export { removeMetroReverses as $, listAdbDevices as A, ownedAvdDeviceProfile as B, emulatorDiskSpaceRemedy as C, forgetCreatedDeviceAsync as Ct, getAvdNameForSerial as D, configuredAndroidEmulatorApp as Dt, findBuildTool as E, recordCreatedDeviceAsync as Et, listAvdsAsync as F, ownedAvdSerialResolverAsync as G, ownedAvdMatchesConfiguration as H, listInstalledSystemImages as I, parseAvdSystemImage as J, ownedAvdSystemImage as K, listOrphanedAvdDirectories as L, listAvdDeviceProfiles as M, listAvdDeviceProfilesAsync as N, getAvdNameForSerialAsync as O, listAvds as P, profileNeedsFoldFeature as Q, memoizeEmulatorProbe as R, deleteAvd as S, forgetCreatedDevice as St, extractEmulatorFailure as T, recordCreatedDevice as Tt, ownedAvdName as U, ownedAvdDirectory as V, ownedAvdSerialResolver as W, pickDefaultSystemImage as X, physicalDeviceModel as Y, probeEmulatorSerial as Z, avdPoolConfiguration as _, parkSim as _t, androidDeviceAbi as a, systemImageSupportsFold as at, configureNewOwnedAvd as b, removeParkedAfter as bt, androidPoolNoCandidatesRefusal as c, waitForBoot as ct, androidToolPath as d, isStimOwnedSim as dt, removeOwnedEmulatorMetroReverses as et, assertOwnedAvdStopped as f, POOL_SETTING_REMEDY as ft, avdPathExists as g, isLegacyDeletionClaim as gt, avdNameAbsent as h, eraseParkedAfter as ht, androidDataFreeBytes as i, shutdownAndroidEmulator as it, listAdbDevicesAsync as j, hostSystemImageArch as k, androidSystemImageAbi as l, wipeAvdUserData as lt, avdIniPaths as m, dropParked as mt, OWNED_AVD_CONFIG_DEFAULTS as n, resolveOwnedAvdSerialAsync as nt, androidHome as o, trimAndroidCaches as ot, assertOwnedAvdStoppedAsync as p, adoptParked as pt, parseAvdDeviceProfile as q, androidBuildToolName as r, resolvePhysicalDevice as rt, androidPoolCandidates as s, waitForAndroidEmulatorShutdown as st, DEFAULT_AVD_DEVICE_PROFILE as t, resetAdoptedAvd as tt, androidToolCwd as u, isStimOwnedAvd as ut, avdStorageRoots as v, parkedMaxSetting as vt, emulatorFailureRemedy as w, readCreatedDevices$1 as wt, createOwnedAvd as x, selectParked as xt, bootAndroidEmulator as y, readParked as yt, nextConsolePort as z };
1789
+ export { removeMetroReverses as $, hostSystemImageArch as A, ownedAvdDeviceProfile as B, emulatorDiskSpaceRemedy as C, forgetCreatedDeviceAsync as Ct, findBuildTool as D, configuredAndroidEmulatorApp as Dt, extractEmulatorFailure as E, recordCreatedDeviceAsync as Et, listAvds as F, ownedAvdSerialResolverAsync as G, ownedAvdMatchesConfiguration as H, listAvdsAsync as I, parseAvdSystemImage as J, ownedAvdSystemImage as K, listInstalledSystemImages as L, listAdbDevicesAsync as M, listAvdDeviceProfiles as N, getAvdNameForSerial as O, listAvdDeviceProfilesAsync as P, profileNeedsFoldFeature as Q, listOrphanedAvdDirectories as R, deleteAvd as S, forgetCreatedDevice as St, emulatorProbeSession as T, recordCreatedDevice as Tt, ownedAvdName as U, ownedAvdDirectory as V, ownedAvdSerialResolver as W, pickDefaultSystemImage as X, physicalDeviceModel as Y, probeEmulatorSerial as Z, avdPoolConfiguration as _, parkSim as _t, androidDeviceAbi as a, systemImageSupportsFold as at, configureNewOwnedAvd as b, removeParkedAfter as bt, androidPoolNoCandidatesRefusal as c, waitForBoot as ct, androidToolPath as d, isStimOwnedSim as dt, removeOwnedEmulatorMetroReverses as et, assertOwnedAvdStopped as f, POOL_SETTING_REMEDY as ft, avdPathExists as g, isLegacyDeletionClaim as gt, avdNameAbsent as h, eraseParkedAfter as ht, androidDataFreeBytes as i, shutdownAndroidEmulator as it, listAdbDevices as j, getAvdNameForSerialAsync as k, androidSystemImageAbi as l, wipeAvdUserData as lt, avdIniPaths as m, dropParked as mt, OWNED_AVD_CONFIG_DEFAULTS as n, resolveOwnedAvdSerialAsync as nt, androidHome as o, trimAndroidCaches as ot, assertOwnedAvdStoppedAsync as p, adoptParked as pt, parseAvdDeviceProfile as q, androidBuildToolName as r, resolvePhysicalDevice as rt, androidPoolCandidates as s, waitForAndroidEmulatorShutdown as st, DEFAULT_AVD_DEVICE_PROFILE as t, resetAdoptedAvd as tt, androidToolCwd as u, isStimOwnedAvd as ut, avdStorageRoots as v, parkedMaxSetting as vt, emulatorFailureRemedy as w, readCreatedDevices$1 as wt, createOwnedAvd as x, selectParked as xt, bootAndroidEmulator as y, readParked as yt, nextConsolePort as z };
package/dist/api.mjs CHANGED
@@ -1,32 +1,32 @@
1
1
  import { D as ownership_claim_exports, T as trackReportResource, b as operationState, c as throwIfCancelled, l as WorkspaceProcessCleanupError, s as cancelledError, w as runReport } from "./exec-aULwtNly.mjs";
2
2
  import { E as workspaceDir, a as recordWorkspaceUseAsync, k as workspaceLogsDir$1, v as ensureWorkspaceStorageAsync } from "./workspace-state-DGwkPXwq.mjs";
3
3
  import { E as upsertProject, O as withConfigLockAsync$1, p as getProject, q as validateDeviceSlot, y as refuseRelativeStimPaths } from "./config-AbUjIBOQ.mjs";
4
- import { l as phaseLine } from "./command-output-DjCsmzLZ.mjs";
4
+ import { l as phaseLine } from "./command-output-BBW8eWPL.mjs";
5
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-D776ygML.mjs";
6
- import { c as projectProblem, f as projectRegistry, i as findProjectRoot$1, r as findCommandWorkspaceAsync, t as NO_PROJECT_REFUSAL } from "./project-D1n0K4yg.mjs";
6
+ import { c as projectProblem, f as projectRegistry, i as findProjectRoot$1, r as findCommandWorkspaceAsync, t as NO_PROJECT_REFUSAL } from "./project-DPQjnpcI.mjs";
7
7
  import { n as macosDir } from "./state-C2AUjjhg.mjs";
8
8
  import { c as ensureHomeIdentity, s as workspaceShareURL } from "./stim-desktop-CYXLFpFS.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-CvSYD_78.mjs";
11
- import { ot as runCancellationSignal, st as withNativeBuildRun } from "./toolchain-CLGnEUgT.mjs";
12
- import { d as resolveBuildPlacement } from "./selection-D1ZDzHFX.mjs";
13
- import { c as stopWorkspaceNow } from "./stop-p9uSKuGE.mjs";
14
- import { r as runReload } from "./reload-BV0nD-k9.mjs";
15
- import { m as warmWorktreeTarget, p as removeWorktreeTarget } from "./worktree-CaQBf6kh.mjs";
16
- import { i as restoreLightenedDependencies } from "./lightened-vSxkstg6.mjs";
17
- import { c as startDevServer } from "./start-Dlv4XXTP.mjs";
18
- import { s as recordDoctorCheck } from "./doctor-watchman-CJr2aXXv.mjs";
19
- import { c as readSettingsPayload, s as readSettingsContext, t as SettingsRefusal } from "./settings-payload-_aatELz2.mjs";
20
- import { a as readDoctorReport } from "./doctor-Cp4-HN1f.mjs";
21
- import { i as readGcReport, n as executeGc, o as withGcMaintenanceClaim } from "./gc-CKHqL4aS.mjs";
22
- import { r as readWorkspaceLogs, t as followWorkspaceLogs } from "./logs-CilPftm3.mjs";
10
+ import { $ as tapBuildLog, Q as startBuildProgress, X as recordFinishedBuild, tt as errorRemedy } from "./workspaces-7_RWoi6c.mjs";
11
+ import { ct as withNativeBuildRun, st as runCancellationSignal } from "./toolchain-DLdoyxIt.mjs";
12
+ import { d as resolveBuildPlacement } from "./selection-PCMT97XD.mjs";
13
+ import { c as stopWorkspaceNow } from "./stop-CnF9ixYe.mjs";
14
+ import { r as runReload } from "./reload-BUQI3dSu.mjs";
15
+ import { m as warmWorktreeTarget, p as removeWorktreeTarget } from "./worktree-qKJ3x07S.mjs";
16
+ import { i as restoreLightenedDependencies } from "./lightened-23pqe7LS.mjs";
17
+ import { c as startDevServer } from "./start-B7J5a9nS.mjs";
18
+ import { s as recordDoctorCheck } from "./doctor-watchman-D1IyMle9.mjs";
19
+ import { c as readSettingsPayload, s as readSettingsContext, t as SettingsRefusal } from "./settings-payload-CE-NZ6Lq.mjs";
20
+ import { a as readDoctorReport } from "./doctor-CLE4AZEI.mjs";
21
+ import { i as readGcReport, n as executeGc, o as withGcMaintenanceClaim } from "./gc-Co7PE36D.mjs";
22
+ import { r as readWorkspaceLogs, t as followWorkspaceLogs } from "./logs-Pkeh3wZk.mjs";
23
23
  import { t as readProjectStats } from "./stats-report-B86Cv7Uc.mjs";
24
- import { n as buildAndroidOperation, t as buildIosOperation } from "./build-DtCU9Kim.mjs";
25
- import { a as readAndroidBuildPlan, i as runAndroidOperation } from "./android-l616dRP1.mjs";
26
- import { i as readIosBuildPlan, r as runIosOperation } from "./ios-UM_dManb.mjs";
27
- import { a as buildMacosBundle, i as planMacos, n as runMacos } from "./macos-CxUi9xcE.mjs";
28
- import { t as runWeb } from "./web-xlVssjQf.mjs";
29
- import { t as mutateSetting } from "./settings-write-CkTVGQ4O.mjs";
24
+ import { n as buildAndroidOperation, t as buildIosOperation } from "./build-C2ZWoCmg.mjs";
25
+ import { a as readAndroidBuildPlan, i as runAndroidOperation } from "./android-BWqdDK6R.mjs";
26
+ import { i as readIosBuildPlan, r as runIosOperation } from "./ios-CG0IsLtt.mjs";
27
+ import { a as buildMacosBundle, i as planMacos, n as runMacos } from "./macos-DPvPQadc.mjs";
28
+ import { t as runWeb } from "./web-g9U7L1sR.mjs";
29
+ import { t as mutateSetting } from "./settings-write-D7Xwa_-M.mjs";
30
30
  import { randomBytes } from "node:crypto";
31
31
  import { mkdirSync, mkdtempSync, readFileSync, realpathSync, rmSync } from "node:fs";
32
32
  import { stripVTControlCharacters } from "node:util";
@@ -1,5 +1,5 @@
1
1
  import { y as sharedBuildCache } from "./workspace-state-DGwkPXwq.mjs";
2
- import { E as findBuildTool } from "./android-BHKgeOuq.mjs";
2
+ import { D as findBuildTool } from "./android-DdKG6lyD.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,16 +1,16 @@
1
1
  import { D as ownership_claim_exports, c as throwIfCancelled, x as withDrainingCancellation } from "./exec-aULwtNly.mjs";
2
2
  import { E as workspaceDir } from "./workspace-state-DGwkPXwq.mjs";
3
- import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-DjCsmzLZ.mjs";
4
- import { Dn as RESOLVE_TIMEOUT_MS, Mn as isEasAuthFailureText, jn as easAuthNote } from "./ccache-DsDkdP72.mjs";
5
- import { P as compilationCacheActivityLine, Q as cancelledFailure, k as COMPILATION_CACHE_NOT_RUN, ot as runCancellationSignal } from "./toolchain-CLGnEUgT.mjs";
6
- import { T as storedAppId, b as providerDownloadPath, x as providerUploadOutcome, y as prepareProviderDownloadDir } from "./build-cache-BGwTsIEa.mjs";
7
- import { C as COMPILATION_CACHE_CORRUPT, 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 clearCorruptCompilationCache } from "./client-BTUH8TF1.mjs";
8
- import { a as missingPackageManagerRemedy, c as podsFailedRemedy, h as predictedRefusal, i as fingerprintMismatchRemedy, l as requireLocalBuild, n as automaticBuild, o as namedBuildMachine, t as OffloadRefusal } from "./selection-D1ZDzHFX.mjs";
9
- import { S as xcodeFailureReport, p as printDiagnostics } from "./support-BMpQIug0.mjs";
10
- import { f as settleFingerprintCheck, u as skippedMissReason } from "./prebuild-Bqp0LFGN.mjs";
11
- import { t as buildPlacementRecord } from "./placement-log-CoN6xrjY.mjs";
12
- import { n as settleArtifactUploads, t as acquireArtifact } from "./acquire-artifact-C2DKfenN.mjs";
13
- import { r as finishIosUpload, t as IosRecipeRefusal } from "./ios-project-DJYptOCh.mjs";
3
+ import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BBW8eWPL.mjs";
4
+ import { Dn as RESOLVE_TIMEOUT_MS, Mn as isEasAuthFailureText, jn as easAuthNote } from "./ccache-B8gY50-h.mjs";
5
+ import { $ as cancelledFailure, A as COMPILATION_CACHE_NOT_RUN, F as compilationCacheActivityLine, st as runCancellationSignal } from "./toolchain-DLdoyxIt.mjs";
6
+ import { T as storedAppId, b as providerDownloadPath, x as providerUploadOutcome, y as prepareProviderDownloadDir } from "./build-cache-DlC3owap.mjs";
7
+ import { C as COMPILATION_CACHE_CORRUPT, 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 clearCorruptCompilationCache } from "./client-DrHykA24.mjs";
8
+ import { a as missingPackageManagerRemedy, c as podsFailedRemedy, h as predictedRefusal, i as fingerprintMismatchRemedy, l as requireLocalBuild, n as automaticBuild, o as namedBuildMachine, t as OffloadRefusal } from "./selection-PCMT97XD.mjs";
9
+ import { S as xcodeFailureReport, p as printDiagnostics } from "./support-DUevTPur.mjs";
10
+ import { f as settleFingerprintCheck, u as skippedMissReason } from "./prebuild-DBJMhwSS.mjs";
11
+ import { t as buildPlacementRecord } from "./placement-log-CRR_TE1r.mjs";
12
+ import { n as settleArtifactUploads, t as acquireArtifact } from "./acquire-artifact-CrZ4rEbI.mjs";
13
+ import { r as finishIosUpload, t as IosRecipeRefusal } from "./ios-project-BM9TbTE7.mjs";
14
14
  import { rmSync } from "node:fs";
15
15
  import { join } from "node:path";
16
16
  import { machineCapacity } from "@stim-cli/core/state";
@@ -1,16 +1,16 @@
1
1
  import { D as ownership_claim_exports, c as throwIfCancelled, x as withDrainingCancellation } from "./exec-aULwtNly.mjs";
2
2
  import { E as workspaceDir } from "./workspace-state-DGwkPXwq.mjs";
3
- import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-DjCsmzLZ.mjs";
4
- import { Dn as RESOLVE_TIMEOUT_MS, Mn as isEasAuthFailureText, jn as easAuthNote, n as CCACHE_UNAVAILABLE, r as ccacheActivityLine, t as CCACHE_NOT_RUN } from "./ccache-DsDkdP72.mjs";
5
- import { Q as cancelledFailure, ot as runCancellationSignal } from "./toolchain-CLGnEUgT.mjs";
6
- import { b as providerDownloadPath, y as prepareProviderDownloadDir } from "./build-cache-BGwTsIEa.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-BTUH8TF1.mjs";
8
- import { a as missingPackageManagerRemedy, i as fingerprintMismatchRemedy, l as requireLocalBuild, n as automaticBuild, o as namedBuildMachine, t as OffloadRefusal } from "./selection-D1ZDzHFX.mjs";
9
- import { f as formatDiagnostic } from "./react-native-build-D58bIqV9.mjs";
10
- import { u as skippedMissReason } from "./prebuild-Bqp0LFGN.mjs";
11
- import { t as buildPlacementRecord } from "./placement-log-CoN6xrjY.mjs";
12
- import { n as settleArtifactUploads, t as acquireArtifact } from "./acquire-artifact-C2DKfenN.mjs";
13
- import { a as PLATFORM, h as displayPath } from "./support-PFyTkrnr.mjs";
3
+ import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BBW8eWPL.mjs";
4
+ import { Dn as RESOLVE_TIMEOUT_MS, Mn as isEasAuthFailureText, jn as easAuthNote, n as CCACHE_UNAVAILABLE, r as ccacheActivityLine, t as CCACHE_NOT_RUN } from "./ccache-B8gY50-h.mjs";
5
+ import { $ as cancelledFailure, st as runCancellationSignal } from "./toolchain-DLdoyxIt.mjs";
6
+ import { b as providerDownloadPath, y as prepareProviderDownloadDir } from "./build-cache-DlC3owap.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-DrHykA24.mjs";
8
+ import { a as missingPackageManagerRemedy, i as fingerprintMismatchRemedy, l as requireLocalBuild, n as automaticBuild, o as namedBuildMachine, t as OffloadRefusal } from "./selection-PCMT97XD.mjs";
9
+ import { f as formatDiagnostic } from "./react-native-build-BSoh4HkH.mjs";
10
+ import { u as skippedMissReason } from "./prebuild-DBJMhwSS.mjs";
11
+ import { t as buildPlacementRecord } from "./placement-log-CRR_TE1r.mjs";
12
+ import { n as settleArtifactUploads, t as acquireArtifact } from "./acquire-artifact-CrZ4rEbI.mjs";
13
+ import { a as PLATFORM, h as displayPath } from "./support-BGqpYMV8.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,11 +1,11 @@
1
1
  import { _ as loadConfig$1, p as getProject } from "./config-AbUjIBOQ.mjs";
2
- import { m as peekBudget } from "./ccache-DsDkdP72.mjs";
3
- import { z as readHostMemoryPressureAsync } from "./ios-CoMCWfub.mjs";
4
- import { _ as hostingMachines, o as namedBuildMachine, u as resolveBuildMachine } from "./selection-D1ZDzHFX.mjs";
5
- import { c as call, l as connectHost, m as requireHostedAppMode } from "./hosted-client-CgoxdU9j.mjs";
2
+ import { m as peekBudget } from "./ccache-B8gY50-h.mjs";
3
+ import { z as readHostMemoryPressureAsync } from "./ios-CXnoVO_z.mjs";
4
+ import { _ as hostingMachines, o as namedBuildMachine, u as resolveBuildMachine } from "./selection-PCMT97XD.mjs";
5
+ import { c as call, l as connectHost, m as requireHostedAppMode } from "./hosted-client-Cect92SZ.mjs";
6
6
  import { c as writeHostedNativeAsync, r as readHostedNative } from "./ios-state-Ce_dystM.mjs";
7
- import { i as prepareHostedNative } from "./hosted-native-DvZENAL-.mjs";
8
- import { t as DEFAULT_DEVICE_SLOT_WAIT_MS, u as peekDeviceSlots } from "./device-capacity-B2ChA-bz.mjs";
7
+ import { i as prepareHostedNative } from "./hosted-native-DmdLSmvu.mjs";
8
+ import { t as DEFAULT_DEVICE_SLOT_WAIT_MS, u as peekDeviceSlots } from "./device-capacity-C5C_jOQd.mjs";
9
9
  import { ambientEnv } from "@stim-cli/core";
10
10
  import { automaticMachineEnabled, isJsonObject, machineCapacity, mayRunHere, parseHostedChoice, parseHostedNativeOffer, prefersRemote } from "@stim-cli/core/state";
11
11
  import { setTimeout } from "node:timers/promises";
@@ -99,7 +99,7 @@ function decideDevicePlacement(inputs) {
99
99
  const { offer } = probe;
100
100
  if (offer.declined !== null) [code, reason] = ["declined", `declined: ${offer.declined}`];
101
101
  else if (offer.platform !== platform || !offer.choice) [code, reason] = ["no-matching-device", `no matching ${platform} device choice`];
102
- else if (offer.resources.memoryPressure !== "normal") [code, reason] = ["memory", "host memory pressure unknown or elevated"];
102
+ else if (offer.resources.memoryPressure !== "normal") [code, reason] = ["memory", offer.resources.memoryPressure === null ? "host memory pressure could not be read" : `host memory pressure is ${offer.resources.memoryPressure}`];
103
103
  else if (offer.capacity.available === 0) [code, reason] = ["no-capacity", "no hosted device capacity available"];
104
104
  else if (offer.resources.loadPerCore !== null && offer.resources.loadPerCore >= ceiling(offer)) [code, reason] = ["load", `saturated: load ${offer.resources.loadPerCore.toFixed(1)}/core there, at or above ${ceiling(offer)}/core`];
105
105
  else if (placement === "auto" && !cannotTake && offer.resources.loadPerCore === null) [code, reason] = ["load", "host load unknown while this machine has room"];
@@ -268,7 +268,7 @@ async function automaticDevicePlacement({ root, slot, platform, placement = "aut
268
268
  max: 0,
269
269
  queued: 0,
270
270
  localLive: false
271
- } : peek();
271
+ } : await peek();
272
272
  if (devices.localLive && placement === "remote-only") throw Object.assign(/* @__PURE__ */ new Error(`This workspace's ${platform} device for slot ${slot} runs on this machine, and remote-only never runs here.`), {
273
273
  code: "STIM_HOSTING_REFUSED",
274
274
  remedy: "Run stim stop, then retry."
@@ -1,17 +1,17 @@
1
1
  import { D as ownership_claim_exports, S as process_identity_exports, c as throwIfCancelled, l as WorkspaceProcessCleanupError, s as cancelledError, t as getExecutor, u as withWorkspaceProcessLock } from "./exec-aULwtNly.mjs";
2
2
  import { E as workspaceDir, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, r as readWorkspaceState$1 } from "./workspace-state-DGwkPXwq.mjs";
3
3
  import { p as getProject } from "./config-AbUjIBOQ.mjs";
4
- import { l as phaseLine } from "./command-output-DjCsmzLZ.mjs";
4
+ import { l as phaseLine } from "./command-output-BBW8eWPL.mjs";
5
5
  import { N as metroPortSetting, a as SETTING_SHAPE_REMEDY, ct as webSettings } from "./settings-D776ygML.mjs";
6
- import { b as isPackageResolvable, v as detectIsExpo } from "./project-D1n0K4yg.mjs";
6
+ import { b as isPackageResolvable, v as detectIsExpo } from "./project-DPQjnpcI.mjs";
7
7
  import { d as resolveProjectMetro } from "./metro-BMQHczcf.mjs";
8
8
  import { c as readNdjsonGenerations$1 } from "./ndjson-CrjIsGzw.mjs";
9
- import { Wt as readMetroRecords } from "./ccache-DsDkdP72.mjs";
9
+ import { Wt as readMetroRecords } from "./ccache-B8gY50-h.mjs";
10
10
  import { f as webLogFile, m as webSupervisorLogFile, o as readWebRecord, s as updateWebRecord } from "./state-D5ZxwCGJ.mjs";
11
- import { ft as teardownBrowserHeld, x as resolveSupervisorTarget } from "./workspaces-CvSYD_78.mjs";
11
+ import { ft as teardownBrowserHeld, x as resolveSupervisorTarget } from "./workspaces-7_RWoi6c.mjs";
12
12
  import { i as reserveBrowserPort, n as getNamedPort } from "./named-ports-DcktE2Pw.mjs";
13
13
  import { n as sendToOwnedPage, t as liveWebRecord } from "./page-CQJlcj3x.mjs";
14
- import { o as resolveWorkspaceMetroPort } from "./start-Dlv4XXTP.mjs";
14
+ import { o as resolveWorkspaceMetroPort } from "./start-B7J5a9nS.mjs";
15
15
  import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
16
16
  import { n as windowsLauncherArgs } from "./detached-entry-BPlSaCwC.mjs";
17
17
  import { a as findChrome, t as CHROME_INSTALL_REMEDY } from "./chrome-DyDWurWG.mjs";