stim 1.24.0 → 1.25.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 (143) hide show
  1. package/dist/{acquire-artifact-CEs02U2o.mjs → acquire-artifact-zA4S7RHE.mjs} +1 -1
  2. package/dist/{act-Cyvm8xYc.mjs → act-BbHS3oV8.mjs} +12 -12
  3. package/dist/{activity-Dq3ZcdD8.mjs → activity-BpjwrQXU.mjs} +3 -3
  4. package/dist/{agent-device-usage-output-CccomeE0.mjs → agent-device-usage-output-Bnkerfod.mjs} +3 -3
  5. package/dist/{android-BZppyPe_.mjs → android-BGwuK3Mc.mjs} +41 -36
  6. package/dist/{android-DcztblCT.mjs → android-CNZgRC-4.mjs} +5 -5
  7. package/dist/{android-882m4hxX.mjs → android-Cjcj8MCw.mjs} +2 -2
  8. package/dist/{android-cas-BtCOrNqb.mjs → android-cas-BVqh2Zep.mjs} +1 -1
  9. package/dist/{android-project-DVWyCbWU.d.mts → android-project-CTYaETc0.d.mts} +6 -2
  10. package/dist/{android-CX5IcRuf.mjs → android-saBeB4lr.mjs} +1 -1
  11. package/dist/api.d.mts +1 -1
  12. package/dist/api.mjs +22 -22
  13. package/dist/{artifact-BR5VNArK.mjs → artifact-Co8zixVx.mjs} +14 -13
  14. package/dist/{artifact-Bdt_n9Jc.mjs → artifact-DN8JNwqS.mjs} +13 -13
  15. package/dist/{browser-web-ycg9qWB8.mjs → browser-web-CCgZsHmI.mjs} +10 -10
  16. package/dist/{budget-dPGuhNai.mjs → budget-HyShrIpL.mjs} +62 -21
  17. package/dist/{build-CaF574eS.mjs → build-CAiw8Ezm.mjs} +22 -21
  18. package/dist/{build-cache-HFUQ9eLz.mjs → build-cache-CKCzxzxA.mjs} +22 -4
  19. package/dist/{build-plan-JsDUq4w1.mjs → build-plan-zCuHGlA8.mjs} +5 -5
  20. package/dist/{ccache-CCn1S6qG.mjs → ccache-h1FKhZeg.mjs} +3 -3
  21. package/dist/{cli-xqAidP7O.mjs → cli-C4w607Pz.mjs} +17 -17
  22. package/dist/cli.mjs +1 -1
  23. package/dist/{client-18-ZowoT.mjs → client-BQsmyp_-.mjs} +26 -17
  24. package/dist/collector-run.mjs +2 -2
  25. package/dist/{command-output-DxC0k2rk.mjs → command-output-BBvS1H6v.mjs} +1 -1
  26. package/dist/{dependency-state-C56ll9hY.mjs → dependency-state-BwNCYG5Q.mjs} +1 -1
  27. package/dist/{dev-client-w_fok0Ek.mjs → dev-client-CHoXXZeg.mjs} +2 -2
  28. package/dist/{device-BktRGdjS.mjs → device-B9FqTBYW.mjs} +64 -33
  29. package/dist/{device-4RUugw5X.mjs → device-F5-4z9ef.mjs} +13 -13
  30. package/dist/{device-capacity-Ic-kdmEV.mjs → device-capacity-ZYaRALv5.mjs} +7 -7
  31. package/dist/device-host-worker.mjs +10 -10
  32. package/dist/{device-ios-DzpSlZyd.mjs → device-ios-DkHBrmvH.mjs} +27 -16
  33. package/dist/{device-lease-run-DUtkbqBQ.mjs → device-lease-run-ogEeJ62K.mjs} +4 -4
  34. package/dist/{device-pool-CgBHk401.mjs → device-pool-BIg8MU8l.mjs} +2 -2
  35. package/dist/{doctor-BZ6oxNum.mjs → doctor-A_Nr_fDe.mjs} +1 -1
  36. package/dist/{doctor-C33AzVfR.mjs → doctor-Bm8TVpGn.mjs} +27 -21
  37. package/dist/doctor-fingerprint.mjs +1 -1
  38. package/dist/{doctor-DZgpqR6J.mjs → doctor-k3P3PizH.mjs} +12 -12
  39. package/dist/{doctor-watchman-B453A231.mjs → doctor-watchman-BovI1y3-.mjs} +3 -3
  40. package/dist/{eas-build-CxKUNHsb.mjs → eas-build-CyDKNTBP.mjs} +2 -2
  41. package/dist/{eas-fallback-LMxk9Kw0.mjs → eas-fallback-gaZi-dJL.mjs} +12 -11
  42. package/dist/{eas-session-ledger-Ck6YXPAO.mjs → eas-session-ledger-BMCA1gdO.mjs} +3 -3
  43. package/dist/{error-diagnostics-BkKCZq4P.mjs → error-diagnostics-B1Mj_-7h.mjs} +7 -7
  44. package/dist/{errors-ccaPc4ox.mjs → errors-DHm_U5gv.mjs} +2 -1
  45. package/dist/{gc-yVKpAOKM.mjs → gc-B9jcnmIk.mjs} +15 -15
  46. package/dist/{gc-DDWEAj0w.mjs → gc-eaz403W6.mjs} +2 -2
  47. package/dist/{guide-Bggftwc5.mjs → guide-DR0K0xW9.mjs} +113 -37
  48. package/dist/{hosted-android-D4dweBof.mjs → hosted-android-Bvb2-ZxD.mjs} +3 -3
  49. package/dist/{hosted-client-BBTVe3X6.mjs → hosted-client-rsRqysJc.mjs} +2 -2
  50. package/dist/{hosted-ios-Sn0djzg8.mjs → hosted-ios-RtVcJH3u.mjs} +1 -1
  51. package/dist/{hosted-logs-CYIZ5ubJ.mjs → hosted-logs-CWKGYWNX.mjs} +4 -4
  52. package/dist/{hosted-macos-CXjsUNBR.mjs → hosted-macos-d0pv9Tth.mjs} +5 -5
  53. package/dist/{hosted-native-Doxbfzem.mjs → hosted-native-BxTizGU2.mjs} +6 -6
  54. package/dist/{idle-shutdown-BInjLKqm.mjs → idle-shutdown-BIyfl0Zj.mjs} +6 -6
  55. package/dist/{ios-CVUFFZ6C.mjs → ios-BQzvJlzw.mjs} +59 -11
  56. package/dist/{ios-B1FXRCMX.mjs → ios-BRVM8b0P.mjs} +37 -32
  57. package/dist/{ios-BItP6lkn.mjs → ios-Dvt97HgQ.mjs} +8 -8
  58. package/dist/{ios-device-BI38NFFH.mjs → ios-device-CKSvk0bu.mjs} +1 -1
  59. package/dist/{ios-project-KYqeJURj.mjs → ios-project-DCUDo06I.mjs} +4 -4
  60. package/dist/{ios-state-DlElquYD.mjs → ios-state-CT9nV5SP.mjs} +1 -1
  61. package/dist/{js-swap-BvrQvXHY.mjs → js-swap-Z9HbC4cj.mjs} +4 -4
  62. package/dist/{launch-SfzGH_s9.mjs → launch-D0lPvFFu.mjs} +16 -16
  63. package/dist/{launch-BVlyQw3T.mjs → launch-DscF1QfM.mjs} +35 -35
  64. package/dist/{logs-DXE32kyb.mjs → logs-BsIRre8x.mjs} +7 -7
  65. package/dist/{logs-ovlU7m7N.mjs → logs-Crs9y34Z.mjs} +5 -5
  66. package/dist/{macos-B3BveDrU.mjs → macos-CcUlJPMu.mjs} +1 -1
  67. package/dist/{macos-CCfhb-jT.mjs → macos-D477nfzH.mjs} +17 -17
  68. package/dist/macos-run.mjs +1 -1
  69. package/dist/maintenance-run.mjs +5 -5
  70. package/dist/{metro-Bu8LBfzS.mjs → metro-1pJgCX4U.mjs} +1 -1
  71. package/dist/{metro-gateway-DtsOy-0P.mjs → metro-gateway-Bp9gJQAN.mjs} +1 -1
  72. package/dist/{named-ports-BWDuU5oQ.mjs → named-ports-BVbn8SvC.mjs} +1 -1
  73. package/dist/{native-android-96BBizbq.mjs → native-android-BvMizJn1.mjs} +14 -14
  74. package/dist/{native-gradle-artifact-inputs-BcLYBZil.mjs → native-gradle-artifact-inputs-BJscK4vN.mjs} +3 -3
  75. package/dist/{native-run-BmH7U8pr.mjs → native-run-D5OJsGwA.mjs} +2 -2
  76. package/dist/{native-runtime-DgtJkzIa.mjs → native-runtime-B9w_Qyz3.mjs} +6 -6
  77. package/dist/{native-xcode-inputs-irplbQb0.mjs → native-xcode-inputs-Cv4l-obn.mjs} +1 -1
  78. package/dist/{native-xcode-ios-BY-6hh6M.mjs → native-xcode-ios-DGrg90hE.mjs} +17 -16
  79. package/dist/offload-worker.d.mts +5 -2
  80. package/dist/offload-worker.mjs +21 -20
  81. package/dist/{ownership-DxlZGDcV.mjs → ownership-jxxz-19m.mjs} +2 -2
  82. package/dist/{phone-reverses-BdsdesVF.mjs → phone-reverses-CYb7RRAx.mjs} +2 -2
  83. package/dist/{placement-log-DUvqqsB-.mjs → placement-log-DjOXJRIH.mjs} +1 -1
  84. package/dist/{plan-placement-4axc0Hs7.mjs → plan-placement-BqKgKHCi.mjs} +3 -3
  85. package/dist/{ports-D-E_OiAO.mjs → ports-DtS1Amb0.mjs} +2 -2
  86. package/dist/{prebuild-DmVCf5xb.mjs → prebuild-JUaqOLpc.mjs} +6 -6
  87. package/dist/{project-Dz-hWkb-.mjs → project-BiC68mIp.mjs} +14 -14
  88. package/dist/{react-native-android-DOinxgwB.mjs → react-native-android-DRYqoJc4.mjs} +23 -22
  89. package/dist/{react-native-build-AuCu-aAP.mjs → react-native-build-CwZB-agu.mjs} +6 -6
  90. package/dist/{react-native-doctor-2ivJUmwZ.mjs → react-native-doctor-BCrytK7h.mjs} +6 -6
  91. package/dist/{react-native-ios-D5zTIuH8.mjs → react-native-ios-Cr1buNFo.mjs} +18 -17
  92. package/dist/{recordings-CdPwYwvs.mjs → recordings-BaoQ0t-J.mjs} +1 -1
  93. package/dist/{reload-Ck9RJeSq.mjs → reload-Beftw2X3.mjs} +1 -1
  94. package/dist/{reload-C1TTVesC.mjs → reload-FbSgMF8x.mjs} +13 -13
  95. package/dist/{remote-DEZ7AOVq.mjs → remote-BuZj6AyU.mjs} +15 -6
  96. package/dist/{result-DqBrb12U.mjs → result-CR2vk2cj.mjs} +14 -14
  97. package/dist/{run-BIwoU44q.mjs → run-BtzE09Dl.mjs} +1 -1
  98. package/dist/{selection-BLtvaqxc.mjs → selection-D5cxEl3t.mjs} +2 -2
  99. package/dist/{server-bare-Z1ToVLPn.mjs → server-bare-CH9X0RLn.mjs} +55 -3
  100. package/dist/{server-command-C0pmjNdG.mjs → server-command-CaBbDNU2.mjs} +4 -4
  101. package/dist/server-expo-C16Zf2k7.mjs +2 -0
  102. package/dist/{server-expo-Tt_hLRpy.mjs → server-expo-Ck8EIidM.mjs} +8 -6
  103. package/dist/{settings-RKwY33wv.mjs → settings-B5tCoq9N.mjs} +58 -60
  104. package/dist/{settings-kkt0vP4w.mjs → settings-DzH9mGQZ.mjs} +1 -1
  105. package/dist/{settings-write--gj6MACV.mjs → settings-write-n0zwfohx.mjs} +3 -3
  106. package/dist/settings.schema.json +38 -0
  107. package/dist/{simslim-CdWKT3vA.mjs → simslim-BjxszUAb.mjs} +20 -5
  108. package/dist/{slot-launch-A1BgotaM.mjs → slot-launch-QeuJMlnJ.mjs} +5 -5
  109. package/dist/{stage-ERTMh88n.mjs → stage-D8xlRU2D.mjs} +1 -1
  110. package/dist/{start-Bmg_qmHi.mjs → start-C1JLjkNw.mjs} +1 -1
  111. package/dist/{start-BKGrEhzG.mjs → start-YMpNwLhh.mjs} +7 -7
  112. package/dist/{state-B1ig0Kqy.mjs → state-DMRNP7-4.mjs} +2 -2
  113. package/dist/{state-BfAltYJP.mjs → state-DPaM3u5K.mjs} +1 -1
  114. package/dist/{stats-B-ckuiUg.mjs → stats-CP7STzZw.mjs} +3 -3
  115. package/dist/{status-DfFp6a76.mjs → status-CRLiJ-O_.mjs} +19 -19
  116. package/dist/{status-Pw-807f0.mjs → status-cNw6i0_t.mjs} +1 -1
  117. package/dist/{status-watch-XC7F-AMf.mjs → status-watch-Bc2J4TZn.mjs} +4 -4
  118. package/dist/status-worker.mjs +1 -1
  119. package/dist/{stop-BFu7X_Do.mjs → stop-Br7LKxBE.mjs} +2 -2
  120. package/dist/{stop-DhclRwOO.mjs → stop-COP6PQqw.mjs} +4 -4
  121. package/dist/{stop-CL1kDHds.mjs → stop-Db9Kh-UA.mjs} +69 -50
  122. package/dist/supervisor-run.mjs +13 -13
  123. package/dist/{support-B3tzVhKn.mjs → support-Cxj9CmII.mjs} +4 -4
  124. package/dist/{support-B1W-hmC2.mjs → support-qKcbgmI5.mjs} +14 -11
  125. package/dist/{swiftpm-artifact-inputs-BWYPj9Sn.mjs → swiftpm-artifact-inputs-iY9fsmOc.mjs} +1 -1
  126. package/dist/{swiftpm-macos-BVCP5mO4.mjs → swiftpm-macos-Bp_sn9P4.mjs} +8 -8
  127. package/dist/{toolchain-BjgKdoEf.mjs → toolchain-DB1aeqxO.mjs} +1 -1
  128. package/dist/{toolchain-D3bmRMia.mjs → toolchain-VzLJzZ7O.mjs} +14 -3
  129. package/dist/{warm-progress-ol0ZypEu.mjs → warm-progress-BV3ZPmcY.mjs} +3 -3
  130. package/dist/{web-BH7peScT.mjs → web-B4Yjyt1G.mjs} +6 -6
  131. package/dist/web-DS4UDWvf.mjs +2 -0
  132. package/dist/web-run.mjs +3 -3
  133. package/dist/{workspace-state-CeBpIZgr.mjs → workspace-state-CPSp3mav.mjs} +1 -1
  134. package/dist/{workspaces-CSV2Orf4.mjs → workspaces-C9w4aeXF.mjs} +10 -10
  135. package/dist/{worktree-Dw8kfacb.mjs → worktree-CclFIe1Z.mjs} +25 -25
  136. package/dist/{worktree-DEDUzO_L.mjs → worktree-Ct9Gk3KL.mjs} +1 -1
  137. package/dist/{xcode-DHu41qQ4.mjs → xcode-CiIIDnuD.mjs} +4 -4
  138. package/package.json +7 -7
  139. package/shim/bundle-response.cjs +53 -1
  140. package/shim/bundle-response.d.cts +1 -1
  141. package/shim/expo-metro-config.cjs +23 -1
  142. package/dist/server-expo-CEntXzRw.mjs +0 -2
  143. package/dist/web-BdOFlTJr.mjs +0 -2
@@ -3,18 +3,33 @@ import { d as getConfigDir } from "./config-BZhXY15H.mjs";
3
3
  import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
4
4
  import { join } from "node:path";
5
5
  //#region src/engine/simslim.ts
6
- async function reconcileSimSlim({ udid, profile, previouslyManaged = false, out = () => {}, spawn, timeoutMs = 72e4, cleanupMs = 1e4, context }) {
7
- if (!profile && !previouslyManaged) return {
6
+ async function reconcileSimSlim(options) {
7
+ try {
8
+ return await applySimSlim(options);
9
+ } catch (error) {
10
+ const cause = error instanceof Error ? error.cause : void 0;
11
+ const missing = cause instanceof Error && "code" in cause && cause.code === "ENOENT";
12
+ if (options.profile || !options.slimByDefault || !missing) throw error;
13
+ options.out?.("SimSlim: ios.simslim is on but the `simslim` command is not installed; continuing without it. Run `brew install mobai-app/tap/simslim`.");
14
+ return {
15
+ managed: Boolean(options.previouslyManaged),
16
+ profile: null
17
+ };
18
+ }
19
+ }
20
+ async function applySimSlim({ udid, profile, slimByDefault = false, previouslyManaged = false, out = () => {}, spawn, timeoutMs = 72e4, cleanupMs = 1e4, context }) {
21
+ if (!profile && !slimByDefault && !previouslyManaged) return {
8
22
  managed: false,
9
23
  profile: null
10
24
  };
11
- const action = profile ? "on" : "off";
25
+ const slim = Boolean(profile) || slimByDefault;
26
+ const action = slim ? "on" : "off";
12
27
  const args = profile ? [
13
28
  "on",
14
29
  udid,
15
30
  "--profile",
16
31
  profile
17
- ] : ["off", udid];
32
+ ] : slim ? ["on", udid] : ["off", udid];
18
33
  const lines = [];
19
34
  const onLine = (raw) => {
20
35
  const line = stripAnsi(raw).trim();
@@ -130,7 +145,7 @@ async function reconcileSimSlim({ udid, profile, previouslyManaged = false, out
130
145
  throw new Error(`SimSlim ${action} failed with exit code ${result?.code ?? "unknown"}.${detail}`);
131
146
  }
132
147
  return {
133
- managed: Boolean(profile),
148
+ managed: slim,
134
149
  profile: profile ?? null
135
150
  };
136
151
  }
@@ -1,9 +1,9 @@
1
1
  import { G as projectDeviceSlots, U as parseDeviceSlotKey, p as getProject } from "./config-BZhXY15H.mjs";
2
- import { r as readWorkspaceState$1 } from "./workspace-state-CeBpIZgr.mjs";
3
- import { O as getAvdNameForSerialAsync, j as listAdbDevicesAsync } from "./android-882m4hxX.mjs";
4
- import { vn as deviceShellArg } from "./budget-dPGuhNai.mjs";
5
- import { y as fileLeaseIo } from "./activity-Dq3ZcdD8.mjs";
6
- import { f as listAllIosSimsAsync } from "./ios-CVUFFZ6C.mjs";
2
+ import { r as readWorkspaceState$1 } from "./workspace-state-CPSp3mav.mjs";
3
+ import { O as getAvdNameForSerialAsync, j as listAdbDevicesAsync } from "./android-Cjcj8MCw.mjs";
4
+ import { yn as deviceShellArg } from "./budget-HyShrIpL.mjs";
5
+ import { y as fileLeaseIo } from "./activity-BpjwrQXU.mjs";
6
+ import { f as listAllIosSimsAsync } from "./ios-BQzvJlzw.mjs";
7
7
  import { hostedNativeRecords } from "@stim-cli/core/state";
8
8
  //#region src/engine/slot-launch.ts
9
9
  function launchSlotScope(root, slot = "default") {
@@ -1,5 +1,5 @@
1
1
  import { c as throwIfCancelled, t as getExecutor, x as withDrainingCancellation } from "./exec-VFRpu1iA.mjs";
2
- import { d as runCancellationSignal } from "./native-run-BmH7U8pr.mjs";
2
+ import { d as runCancellationSignal } from "./native-run-D5OJsGwA.mjs";
3
3
  import { existsSync, lstatSync, promises, readdirSync, realpathSync, statSync } from "node:fs";
4
4
  import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
5
5
  import { validMacosResourceDestination } from "@stim-cli/core";
@@ -1,2 +1,2 @@
1
- import { a as registerStart, c as startDevServer, d as supervisorSignalable, f as tailLines, i as readLogTail, l as startFacts, n as liveSupervisor, o as resolveWorkspaceMetroPort, p as wantsExpoOwnTunnel, r as parseWait, s as startCommand, t as failureEvidence, u as supervisorEntry } from "./start-BKGrEhzG.mjs";
1
+ import { a as registerStart, c as startDevServer, d as supervisorSignalable, f as tailLines, i as readLogTail, l as startFacts, n as liveSupervisor, o as resolveWorkspaceMetroPort, p as wantsExpoOwnTunnel, r as parseWait, s as startCommand, t as failureEvidence, u as supervisorEntry } from "./start-YMpNwLhh.mjs";
2
2
  export { startCommand as default, failureEvidence, liveSupervisor, parseWait, readLogTail, registerStart, resolveWorkspaceMetroPort, startDevServer, startFacts, supervisorEntry, supervisorSignalable, tailLines, wantsExpoOwnTunnel };
@@ -1,15 +1,15 @@
1
1
  import { D as ownership_claim_exports, S as process_identity_exports, a as waitForGroupExit, c as throwIfCancelled, d as workspaceProcessLockError, l as WorkspaceProcessCleanupError, o as cancellableSleep, r as groupExitBudgetMs, t as getExecutor, u as withWorkspaceProcessLock, x as withDrainingCancellation } from "./exec-VFRpu1iA.mjs";
2
2
  import { l as workspaceAgentDeviceDir, m as workspaceLogsDir$1, n as ensureWorkspaceStorage, s as supervisorLogFile } from "./paths-DQtTgsBf.mjs";
3
3
  import { E as upsertProject, O as withConfigLockAsync$1, p as getProject, x as releaseMetroPort } from "./config-BZhXY15H.mjs";
4
- import { _ as stepTimer, l as phaseLine } from "./command-output-DxC0k2rk.mjs";
5
- import { i as recordWorkspaceUse, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-CeBpIZgr.mjs";
6
- import { A as metroIdleStopMinutesSetting, G as resolveCacheProviderConfig, J as resolveProjectSettingsAsync, K as resolveIosProjectDir, M as metroTunnelSettingError, O as metroCommandSetting, P as ngrokUrlSetting, R as publicUrlSetting, U as remoteIosSetting, V as remoteAndroidSetting, W as resolveAndroidLayout, a as SETTING_SHAPE_REMEDY, ct as detectProviders, et as settingShapeErrors, h as deviceIdleShutdownMinutesSetting, it as unknownSettingKeys, j as metroPortSetting, k as metroCommandSettingError, lt as planMetroReach, m as defaultAndroidLayout, p as cacheProviderSettingError, rt as tunnelModeSetting, st as PUBLIC_METRO_ENV } from "./settings-RKwY33wv.mjs";
7
- import { E as MODE_EXPO, M as readMetroTunnel, O as clearManagedMetroTunnel, S as readAppJson, T as MODE_COMMAND, c as projectProblem, i as findProjectRoot$1, t as NO_PROJECT_REFUSAL, v as detectIsExpo, w as MODE_BARE, x as readAppConfigText } from "./project-Dz-hWkb-.mjs";
4
+ import { _ as stepTimer, l as phaseLine } from "./command-output-BBvS1H6v.mjs";
5
+ import { i as recordWorkspaceUse, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-CPSp3mav.mjs";
6
+ import { A as metroCommandSettingError, F as ngrokUrlSetting, G as resolveAndroidLayout, H as remoteAndroidSetting, K as resolveCacheProviderConfig, M as metroPortSetting, N as metroTunnelSettingError, W as remoteIosSetting, Y as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY, at as unknownSettingKeys, ct as PUBLIC_METRO_ENV, h as deviceIdleShutdownMinutesSetting, it as tunnelModeSetting, j as metroIdleStopMinutesSetting, k as metroCommandSetting, lt as detectProviders, m as defaultAndroidLayout, p as cacheProviderSettingError, q as resolveIosProjectDir, tt as settingShapeErrors, ut as planMetroReach, z as publicUrlSetting } from "./settings-B5tCoq9N.mjs";
7
+ import { E as MODE_EXPO, M as readMetroTunnel, O as clearManagedMetroTunnel, S as readAppJson, T as MODE_COMMAND, c as projectProblem, i as findProjectRoot$1, t as NO_PROJECT_REFUSAL, v as detectIsExpo, w as MODE_BARE, x as readAppConfigText } from "./project-BiC68mIp.mjs";
8
8
  import { a as workspaceLinkLine, o as workspaceLinks } from "./stim-desktop-DS0mzR8U.mjs";
9
- import { _ as PORT_INSPECTION_REMEDY, a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, f as signalProcessTree, g as reserveMetroPort, h as isMetroRunning, m as createPortProbe, u as processCwds, v as PortInspectionError } from "./metro-Bu8LBfzS.mjs";
9
+ import { _ as PORT_INSPECTION_REMEDY, a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, f as signalProcessTree, g as reserveMetroPort, h as isMetroRunning, m as createPortProbe, u as processCwds, v as PortInspectionError } from "./metro-1pJgCX4U.mjs";
10
10
  import { i as levelRank } from "./ndjson-CgE_o3Dl.mjs";
11
- import { $n as remoteCliInvocation, In as exitAfterFlush, Jn as readProjectConfig, Rn as runProcessOperation, p as stopOwnedMetroForReset, t as budgetGate } from "./budget-dPGuhNai.mjs";
12
- import { S as withManagedTunnelLock, _ as startTunnelSequence, b as withManagedRemoteWorktreeLock, g as resolveSupervisorTarget, v as stopTunnel, y as terminateChild } from "./workspaces-CSV2Orf4.mjs";
11
+ import { Ln as exitAfterFlush, Yn as readProjectConfig, er as remoteCliInvocation, p as stopOwnedMetroForReset, t as budgetGate, zn as runProcessOperation } from "./budget-HyShrIpL.mjs";
12
+ import { S as withManagedTunnelLock, _ as startTunnelSequence, b as withManagedRemoteWorktreeLock, g as resolveSupervisorTarget, v as stopTunnel, y as terminateChild } from "./workspaces-C9w4aeXF.mjs";
13
13
  import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
14
14
  import { n as windowsLauncherArgs } from "./detached-entry-KmieOKgN.mjs";
15
15
  import { appendFileSync, closeSync, mkdirSync, openSync, readFileSync } from "node:fs";
@@ -1,8 +1,8 @@
1
1
  import { D as ownership_claim_exports, S as process_identity_exports, l as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
2
  import { d as workspaceDir, m as workspaceLogsDir$1 } from "./paths-DQtTgsBf.mjs";
3
3
  import { t as runOperationFile } from "./operation-exec-CUZifp6Z.mjs";
4
- import { d as writeWorkspaceState, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey } from "./workspace-state-CeBpIZgr.mjs";
5
- import { c as pidExists } from "./metro-Bu8LBfzS.mjs";
4
+ import { d as writeWorkspaceState, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey } from "./workspace-state-CPSp3mav.mjs";
5
+ import { c as pidExists } from "./metro-1pJgCX4U.mjs";
6
6
  import { readFileSync, readlinkSync, rmSync } from "node:fs";
7
7
  import { hostname } from "node:os";
8
8
  import { join } from "node:path";
@@ -1,6 +1,6 @@
1
1
  import { S as process_identity_exports } from "./exec-VFRpu1iA.mjs";
2
2
  import { d as workspaceDir, m as workspaceLogsDir$1 } from "./paths-DQtTgsBf.mjs";
3
- import { o as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-CeBpIZgr.mjs";
3
+ import { o as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-CPSp3mav.mjs";
4
4
  import { existsSync } from "node:fs";
5
5
  import { join } from "node:path";
6
6
  import { readMacosRecord } from "@stim-cli/core/state";
@@ -1,7 +1,7 @@
1
1
  import { P as formatBytes } from "./config-BZhXY15H.mjs";
2
- import { o as formatLongDuration } from "./command-output-DxC0k2rk.mjs";
3
- import { i as findProjectRoot$1 } from "./project-Dz-hWkb-.mjs";
4
- import { i as getSwiftpmCacheUsage, n as swiftpmCacheLines, r as getAgentDeviceUsage, t as agentDeviceLines } from "./agent-device-usage-output-CccomeE0.mjs";
2
+ import { o as formatLongDuration } from "./command-output-BBvS1H6v.mjs";
3
+ import { i as findProjectRoot$1 } from "./project-BiC68mIp.mjs";
4
+ import { i as getSwiftpmCacheUsage, n as swiftpmCacheLines, r as getAgentDeviceUsage, t as agentDeviceLines } from "./agent-device-usage-output-Bnkerfod.mjs";
5
5
  import { t as readProjectStats } from "./stats-report-n2U5plhk.mjs";
6
6
  import { archivedUsage, readArchives } from "@stim-cli/core/state";
7
7
  import chalk from "chalk";
@@ -1,29 +1,29 @@
1
1
  import { S as process_identity_exports, t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
2
  import { m as workspaceLogsDir$1, p as workspaceLogErrorIndex } from "./paths-DQtTgsBf.mjs";
3
3
  import { G as projectDeviceSlots, P as formatBytes, R as volumeRootFor, U as parseDeviceSlotKey, V as deviceSlotKey, _ as loadConfig$1, d as getConfigDir } from "./config-BZhXY15H.mjs";
4
- import { a as formatElapsed, i as formatDuration, r as clockTime, u as plural } from "./command-output-DxC0k2rk.mjs";
4
+ import { a as formatElapsed, i as formatDuration, r as clockTime, u as plural } from "./command-output-BBvS1H6v.mjs";
5
5
  import { s as gitAsync } from "./operation-exec-CUZifp6Z.mjs";
6
- import { r as readWorkspaceState$1 } from "./workspace-state-CeBpIZgr.mjs";
7
- import { Mt as repoRoot, Y as resolveSettings, _t as gitCommonDir, ot as workspaceHiddenSetting, wt as linkedWorktreesOnDisk, yt as gitCommonDirOnDisk } from "./settings-RKwY33wv.mjs";
8
- import { I as readWorkspaceLaunches, M as readMetroTunnel, P as readRemoteSession, S as readAppJson, a as findServerWorkspace, l as projectShortcut, u as detectPlatforms, v as detectIsExpo, y as detectTutorial } from "./project-Dz-hWkb-.mjs";
9
- import { A as listAdbDevices, B as ownedAvdDeviceProfile, W as ownedAvdSerialResolver, ft as POOL_SETTING_REMEDY, vt as parkedMaxSetting, yt as readParked } from "./android-882m4hxX.mjs";
10
- import { c as pidExists, d as resolveProjectMetro, h as isMetroRunning, i as listeningPids, l as processCwd, o as listeningPidsByPort, u as processCwds } from "./metro-Bu8LBfzS.mjs";
6
+ import { r as readWorkspaceState$1 } from "./workspace-state-CPSp3mav.mjs";
7
+ import { Nt as repoRoot, Tt as linkedWorktreesOnDisk, X as resolveSettings, bt as gitCommonDirOnDisk, st as workspaceHiddenSetting, vt as gitCommonDir } from "./settings-B5tCoq9N.mjs";
8
+ import { I as readWorkspaceLaunches, M as readMetroTunnel, P as readRemoteSession, S as readAppJson, a as findServerWorkspace, l as projectShortcut, u as detectPlatforms, v as detectIsExpo, y as detectTutorial } from "./project-BiC68mIp.mjs";
9
+ import { A as listAdbDevices, B as ownedAvdDeviceProfile, W as ownedAvdSerialResolver, ft as POOL_SETTING_REMEDY, vt as parkedMaxSetting, yt as readParked } from "./android-Cjcj8MCw.mjs";
10
+ import { c as pidExists, d as resolveProjectMetro, h as isMetroRunning, i as listeningPids, l as processCwd, o as listeningPidsByPort, u as processCwds } from "./metro-1pJgCX4U.mjs";
11
11
  import { a as parseNdjsonLine } from "./ndjson-CgE_o3Dl.mjs";
12
- import { a as readWebPage, o as readWebRecord, u as webFacts } from "./state-B1ig0Kqy.mjs";
13
- import { A as remoteDeviceState, C as environmentState, D as parseDfFree, E as metroReverseTargets, M as tightVolumes, N as unprovisionedWorktrees, O as poolLine, P as withWebFacts, S as diskLine, T as gitSummaryText, _ as addReverseMissingIssue, b as deviceLeaseLines, g as activityLabel, j as statusActivity, k as remoteDeviceLine, r as readEasSessionLedger$1, v as applyMachineMemory, x as deviceLeaseStates, y as capacity } from "./eas-session-ledger-Ck6YXPAO.mjs";
14
- import { F as buildStatusLine, I as bundlingActivity, N as activeBuildState, P as buildReport, R as parseActiveBuild, Z as statsProjectKey$1, bn as hasMetroReverse, br as attributeMachineUsage, h as describeMetroLastStop, j as ACTIVE_BUILD_KEY, o as machineNumber, q as readStats$1, xr as readFootprints, y as metroLastStop } from "./budget-dPGuhNai.mjs";
15
- import { g as resolveSupervisorTarget } from "./workspaces-CSV2Orf4.mjs";
16
- import { a as createDeviceProcessTables, b as leaseIsExpired, h as tailLines, m as readWebActivity, r as createActivityReader, w as parseWorkspaceLeases, x as listLeaseFiles } from "./activity-Dq3ZcdD8.mjs";
17
- import { b as parseSimctlList, f as listAllIosSimsAsync } from "./ios-CVUFFZ6C.mjs";
18
- import { f as probeHostedSession } from "./hosted-client-BBTVe3X6.mjs";
19
- import "./hosted-macos-CXjsUNBR.mjs";
20
- import { i as readSupervisorState } from "./stop-CL1kDHds.mjs";
12
+ import { a as readWebPage, o as readWebRecord, u as webFacts } from "./state-DMRNP7-4.mjs";
13
+ import { A as remoteDeviceState, C as environmentState, D as parseDfFree, E as metroReverseTargets, M as tightVolumes, N as unprovisionedWorktrees, O as poolLine, P as withWebFacts, S as diskLine, T as gitSummaryText, _ as addReverseMissingIssue, b as deviceLeaseLines, g as activityLabel, j as statusActivity, k as remoteDeviceLine, r as readEasSessionLedger$1, v as applyMachineMemory, x as deviceLeaseStates, y as capacity } from "./eas-session-ledger-BMCA1gdO.mjs";
14
+ import { F as buildStatusLine, I as bundlingActivity, N as activeBuildState, P as buildReport, R as parseActiveBuild, Sr as readFootprints, Z as statsProjectKey$1, h as describeMetroLastStop, j as ACTIVE_BUILD_KEY, o as machineNumber, q as readStats$1, xn as hasMetroReverse, xr as attributeMachineUsage, y as metroLastStop } from "./budget-HyShrIpL.mjs";
15
+ import { g as resolveSupervisorTarget } from "./workspaces-C9w4aeXF.mjs";
16
+ import { a as createDeviceProcessTables, b as leaseIsExpired, h as tailLines, m as readWebActivity, r as createActivityReader, w as parseWorkspaceLeases, x as listLeaseFiles } from "./activity-BpjwrQXU.mjs";
17
+ import { b as parseSimctlList, f as listAllIosSimsAsync } from "./ios-BQzvJlzw.mjs";
18
+ import { f as probeHostedSession } from "./hosted-client-rsRqysJc.mjs";
19
+ import "./hosted-macos-d0pv9Tth.mjs";
20
+ import { i as readSupervisorState } from "./stop-Db9Kh-UA.mjs";
21
21
  import { n as maintenanceLines, r as maintenanceStatus } from "./status-Fect2w9R.mjs";
22
- import { f as mergeState, i as createStatusMeasurer, n as workspacePhase, r as applyStatusMeasures } from "./warm-progress-ol0ZypEu.mjs";
23
- import { r as workspaceRecordingEnabled } from "./recordings-CdPwYwvs.mjs";
24
- import { d as readIosDevices, s as isReachable } from "./ios-device-BI38NFFH.mjs";
22
+ import { f as mergeState, i as createStatusMeasurer, n as workspacePhase, r as applyStatusMeasures } from "./warm-progress-BV3ZPmcY.mjs";
23
+ import { r as workspaceRecordingEnabled } from "./recordings-BaoQ0t-J.mjs";
24
+ import { d as readIosDevices, s as isReachable } from "./ios-device-CKSvk0bu.mjs";
25
25
  import { t as triggerMaintenance } from "./trigger-CBMe2YLH.mjs";
26
- import { a as createRefreshScheduler, c as watchStatusSources, n as WATCH_LIGHT_INTERVAL_MS, o as watchChangeKey, r as WATCH_MACHINE_INTERVAL_MS, s as watchPayload, t as WATCH_FALLBACK_MS } from "./status-watch-XC7F-AMf.mjs";
26
+ import { a as createRefreshScheduler, c as watchStatusSources, n as WATCH_LIGHT_INTERVAL_MS, o as watchChangeKey, r as WATCH_MACHINE_INTERVAL_MS, s as watchPayload, t as WATCH_FALLBACK_MS } from "./status-watch-Bc2J4TZn.mjs";
27
27
  import { t as watchStdoutReader } from "./stdout-reader-C8yjre1x.mjs";
28
28
  import { createHash, randomUUID } from "node:crypto";
29
29
  import { mkdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
@@ -1,2 +1,2 @@
1
- import { n as runStatusWatch, r as statusCommand, t as readVolumes } from "./status-DfFp6a76.mjs";
1
+ import { n as runStatusWatch, r as statusCommand, t as readVolumes } from "./status-CRLiJ-O_.mjs";
2
2
  export { statusCommand as default, readVolumes, runStatusWatch };
@@ -1,8 +1,8 @@
1
1
  import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
- import { d as androidToolPath } from "./android-882m4hxX.mjs";
3
- import { c as pidExists } from "./metro-Bu8LBfzS.mjs";
4
- import { n as easMachineStateRoot } from "./eas-session-ledger-Ck6YXPAO.mjs";
5
- import { b as parseSimctlList } from "./ios-CVUFFZ6C.mjs";
2
+ import { d as androidToolPath } from "./android-Cjcj8MCw.mjs";
3
+ import { c as pidExists } from "./metro-1pJgCX4U.mjs";
4
+ import { n as easMachineStateRoot } from "./eas-session-ledger-BMCA1gdO.mjs";
5
+ import { b as parseSimctlList } from "./ios-BQzvJlzw.mjs";
6
6
  import { existsSync, readdirSync, statSync, watch } from "node:fs";
7
7
  import { basename, dirname, join } from "node:path";
8
8
  //#region src/status-watch.ts
@@ -1,4 +1,4 @@
1
- import { n as runStatusWatch } from "./status-DfFp6a76.mjs";
1
+ import { n as runStatusWatch } from "./status-CRLiJ-O_.mjs";
2
2
  import { parentPort, workerData } from "node:worker_threads";
3
3
  //#region src/status-worker.ts
4
4
  const STOP_EXIT_MS = 500;
@@ -1,3 +1,3 @@
1
- import { g as resolveSupervisorTarget } from "./workspaces-CSV2Orf4.mjs";
2
- import { a as resolveCollectorTargets, c as stopWorkspaceNow, i as readSupervisorState, n as clearSupervisorState, o as runStop, r as readCollectorState, s as stopCommand, t as clearCollectorState } from "./stop-CL1kDHds.mjs";
1
+ import { g as resolveSupervisorTarget } from "./workspaces-C9w4aeXF.mjs";
2
+ import { a as resolveCollectorTargets, c as stopWorkspaceNow, i as readSupervisorState, n as clearSupervisorState, o as runStop, r as readCollectorState, s as stopCommand, t as clearCollectorState } from "./stop-Db9Kh-UA.mjs";
3
3
  export { clearCollectorState, clearSupervisorState, stopCommand as default, readCollectorState, readSupervisorState, resolveCollectorTargets, resolveSupervisorTarget, runStop, stopWorkspaceNow };
@@ -1,9 +1,9 @@
1
1
  import { D as ownership_claim_exports, S as process_identity_exports, u as withWorkspaceProcessLock } from "./exec-VFRpu1iA.mjs";
2
2
  import { d as workspaceDir } from "./paths-DQtTgsBf.mjs";
3
- import { d as writeWorkspaceState, l as withWorkspaceStateLockAsync } from "./workspace-state-CeBpIZgr.mjs";
4
- import { a as macosRuntimeClaim, o as requiredMacosRecord } from "./state-BfAltYJP.mjs";
5
- import { w as runningBundleInstancesAsync } from "./workspaces-CSV2Orf4.mjs";
6
- import { n as stopHostedMacos } from "./hosted-macos-CXjsUNBR.mjs";
3
+ import { d as writeWorkspaceState, l as withWorkspaceStateLockAsync } from "./workspace-state-CPSp3mav.mjs";
4
+ import { a as macosRuntimeClaim, o as requiredMacosRecord } from "./state-DPaM3u5K.mjs";
5
+ import { w as runningBundleInstancesAsync } from "./workspaces-C9w4aeXF.mjs";
6
+ import { n as stopHostedMacos } from "./hosted-macos-d0pv9Tth.mjs";
7
7
  import { readMacosRecord } from "@stim-cli/core/state";
8
8
  //#region src/macos/stop.ts
9
9
  const APP_EXIT_MS = 5e3;
@@ -1,21 +1,21 @@
1
1
  import { D as ownership_claim_exports, E as debugLog, S as process_identity_exports, u as withWorkspaceProcessLock } from "./exec-VFRpu1iA.mjs";
2
2
  import { d as workspaceDir } from "./paths-DQtTgsBf.mjs";
3
3
  import { E as upsertProject, G as projectDeviceSlots, H as deviceSlotPlatforms, O as withConfigLockAsync$1, U as parseDeviceSlotKey, W as parseDeviceSlotOption, o as clearSupervisor, p as getProject, q as validateDeviceSlot } from "./config-BZhXY15H.mjs";
4
- import { f as refuseNoProject, l as phaseLine, p as releasedLeaseFact, u as plural } from "./command-output-DxC0k2rk.mjs";
5
- import { c as withWorkspaceStateLock, d as writeWorkspaceState, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-CeBpIZgr.mjs";
6
- import { A as clearWorkspaceLaunches, M as readMetroTunnel, O as clearManagedMetroTunnel, P as readRemoteSession, T as MODE_COMMAND, j as clearWorkspaceSupervisor, k as clearRemoteSession, n as findCommandWorkspace } from "./project-Dz-hWkb-.mjs";
7
- import { t as macosAppPresent } from "./state-BfAltYJP.mjs";
8
- import { et as removeOwnedEmulatorMetroReverses } from "./android-882m4hxX.mjs";
9
- import { a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, h as isMetroRunning, p as signalProcessTreeAsync, r as killMetroTreeAsync, u as processCwds } from "./metro-Bu8LBfzS.mjs";
10
- import { S as withdrawDevServerStopRequest, Vt as endRecordedSession, Yn as resolveEasCliBin, b as requestDevServerStop, v as logVanishedSupervisor } from "./budget-dPGuhNai.mjs";
11
- import { a as decideStopAction, c as nativeRunWaitNotice, i as clearNativeRunCancel, l as requestNativeRunCancel, n as NATIVE_RUN_WAIT_MS, o as describeNativeRunHolder, s as nativeRunHolder, t as NATIVE_RUN_LOCK } from "./native-run-BmH7U8pr.mjs";
12
- import { A as teardownOwnedIosSim, O as teardownOwnedAvd, g as resolveSupervisorTarget, k as teardownOwnedBrowser, v as stopTunnel } from "./workspaces-CSV2Orf4.mjs";
13
- import { O as releaseWorkspaceLeasesAsync, y as fileLeaseIo } from "./activity-Dq3ZcdD8.mjs";
14
- import { i as stopHostedAndroid } from "./hosted-android-D4dweBof.mjs";
15
- import { r as stopHostedIos } from "./hosted-ios-Sn0djzg8.mjs";
16
- import { n as stopMacosApp } from "./stop-DhclRwOO.mjs";
17
- import { n as verifyCollectorOwnership } from "./ownership-DxlZGDcV.mjs";
18
- import { n as removePhoneReverses } from "./phone-reverses-BdsdesVF.mjs";
4
+ import { f as refuseNoProject, l as phaseLine, p as releasedLeaseFact, u as plural } from "./command-output-BBvS1H6v.mjs";
5
+ import { c as withWorkspaceStateLock, d as writeWorkspaceState, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-CPSp3mav.mjs";
6
+ import { A as clearWorkspaceLaunches, M as readMetroTunnel, O as clearManagedMetroTunnel, P as readRemoteSession, T as MODE_COMMAND, j as clearWorkspaceSupervisor, k as clearRemoteSession, n as findCommandWorkspace } from "./project-BiC68mIp.mjs";
7
+ import { t as macosAppPresent } from "./state-DPaM3u5K.mjs";
8
+ import { et as removeOwnedEmulatorMetroReverses } from "./android-Cjcj8MCw.mjs";
9
+ import { a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, h as isMetroRunning, p as signalProcessTreeAsync, r as killMetroTreeAsync, u as processCwds } from "./metro-1pJgCX4U.mjs";
10
+ import { S as withdrawDevServerStopRequest, Vt as endRecordedSession, Xn as resolveEasCliBin, b as requestDevServerStop, v as logVanishedSupervisor } from "./budget-HyShrIpL.mjs";
11
+ import { a as decideStopAction, c as nativeRunWaitNotice, i as clearNativeRunCancel, l as requestNativeRunCancel, n as NATIVE_RUN_WAIT_MS, o as describeNativeRunHolder, s as nativeRunHolder, t as NATIVE_RUN_LOCK } from "./native-run-D5OJsGwA.mjs";
12
+ import { A as teardownOwnedIosSim, O as teardownOwnedAvd, g as resolveSupervisorTarget, k as teardownOwnedBrowser, v as stopTunnel } from "./workspaces-C9w4aeXF.mjs";
13
+ import { O as releaseWorkspaceLeasesAsync, y as fileLeaseIo } from "./activity-BpjwrQXU.mjs";
14
+ import { i as stopHostedAndroid } from "./hosted-android-Bvb2-ZxD.mjs";
15
+ import { r as stopHostedIos } from "./hosted-ios-RtVcJH3u.mjs";
16
+ import { n as stopMacosApp } from "./stop-COP6PQqw.mjs";
17
+ import { n as verifyCollectorOwnership } from "./ownership-jxxz-19m.mjs";
18
+ import { n as removePhoneReverses } from "./phone-reverses-CYb7RRAx.mjs";
19
19
  import { hostedAndroidDeviceName, hostedAndroidRecords, hostedIosRecords, hostedNativeRecords, isJsonObject, parseHostedNativePlacement } from "@stim-cli/core/state";
20
20
  import chalk from "chalk";
21
21
  //#region src/commands/stop.ts
@@ -785,6 +785,7 @@ async function shutDownDevices(project, workspace, { teardownIos, teardownAvd, r
785
785
  ios: null,
786
786
  android: null
787
787
  };
788
+ const entries = [];
788
789
  for (const { slot, platforms } of projectDeviceSlots(project)) {
789
790
  const iosKey = slot === "default" ? "ios" : `ios:${slot}`;
790
791
  const androidKey = slot === "default" ? "android" : `android:${slot}`;
@@ -792,64 +793,82 @@ async function shutDownDevices(project, workspace, { teardownIos, teardownAvd, r
792
793
  const iosUdid = ios?.deviceUdid;
793
794
  const iosName = ios?.deviceName;
794
795
  if (iosUdid) {
795
- if (!ios?.owned) {
796
- device[iosKey] = {
797
- status: "skipped",
798
- kind: "not-owned",
799
- label: iosUdid,
800
- reason: "Stim does not own this device"
801
- };
802
- report(chalk.dim(phaseLine("device", `${iosUdid} is not Stim-owned, leaving it running`)));
803
- } else {
796
+ let result = null;
797
+ if (ios?.owned) {
804
798
  debugLog.log("stop.device.start", {
805
799
  platform: "ios",
806
800
  slot,
807
801
  deviceId: iosUdid
808
802
  });
809
- const result = await teardownIos(iosUdid, {
803
+ result = teardownIos(iosUdid, {
810
804
  del: false,
811
805
  label: iosName,
812
806
  workspace
807
+ }).then((outcome) => {
808
+ debugLog.log("stop.device.end", {
809
+ platform: "ios",
810
+ slot,
811
+ deviceId: iosUdid,
812
+ status: outcome.status
813
+ });
814
+ return outcome;
813
815
  });
814
- debugLog.log("stop.device.end", {
815
- platform: "ios",
816
- slot,
817
- deviceId: iosUdid,
818
- status: result.status
819
- });
820
- device[iosKey] = reportDevice(iosUdid, result, report, "ios");
821
816
  }
817
+ entries.push({
818
+ key: iosKey,
819
+ kind: "ios",
820
+ label: iosUdid,
821
+ result
822
+ });
822
823
  }
823
824
  const android = platforms.android;
824
825
  if (android?.avdName) {
825
- if (!android.owned) {
826
- device[androidKey] = {
827
- status: "skipped",
828
- kind: "not-owned",
829
- label: android.avdName,
830
- reason: "Stim does not own this device"
831
- };
832
- report(chalk.dim(phaseLine("device", `${android.avdName} is not Stim-owned, leaving it running`)));
833
- } else {
826
+ const avdName = android.avdName;
827
+ let result = null;
828
+ if (android.owned) {
834
829
  debugLog.log("stop.device.start", {
835
830
  platform: "android",
836
831
  slot,
837
- deviceId: android.avdName
832
+ deviceId: avdName
838
833
  });
839
- const result = await teardownAvd(android.avdName, {
834
+ result = teardownAvd(avdName, {
840
835
  del: false,
841
836
  workspace
837
+ }).then((outcome) => {
838
+ debugLog.log("stop.device.end", {
839
+ platform: "android",
840
+ slot,
841
+ deviceId: avdName,
842
+ status: outcome.status
843
+ });
844
+ return outcome;
842
845
  });
843
- debugLog.log("stop.device.end", {
844
- platform: "android",
845
- slot,
846
- deviceId: android.avdName,
847
- status: result.status
848
- });
849
- device[androidKey] = reportDevice(android.avdName, result, report, "android");
850
846
  }
847
+ entries.push({
848
+ key: androidKey,
849
+ kind: "android",
850
+ label: avdName,
851
+ result
852
+ });
851
853
  }
852
854
  }
855
+ const settled = await Promise.allSettled(entries.map((entry) => entry.result));
856
+ entries.forEach(({ key, kind, label }, index) => {
857
+ const outcome = settled[index];
858
+ if (outcome?.status === "rejected") return;
859
+ if (!outcome?.value) {
860
+ device[key] = {
861
+ status: "skipped",
862
+ kind: "not-owned",
863
+ label,
864
+ reason: "Stim does not own this device"
865
+ };
866
+ report(chalk.dim(phaseLine("device", `${label} is not Stim-owned, leaving it running`)));
867
+ return;
868
+ }
869
+ device[key] = reportDevice(label, outcome.value, report, kind);
870
+ });
871
+ for (const outcome of settled) if (outcome.status === "rejected") throw outcome.reason;
853
872
  return device;
854
873
  }
855
874
  function deviceShutdownRemedy(kind, label) {
@@ -1,20 +1,20 @@
1
1
  import { S as process_identity_exports, u as withWorkspaceProcessLock } from "./exec-VFRpu1iA.mjs";
2
2
  import { g as workspaceStateFile$1, m as workspaceLogsDir$1 } from "./paths-DQtTgsBf.mjs";
3
3
  import { G as projectDeviceSlots, T as setSupervisor, U as parseDeviceSlotKey, o as clearSupervisor, p as getProject } from "./config-BZhXY15H.mjs";
4
- import { c as withWorkspaceStateLock, d as writeWorkspaceState, n as clearWorkspaceStateKeys, o as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-CeBpIZgr.mjs";
5
- import { X as runnableMetroCommand, q as resolveProjectSettings } from "./settings-RKwY33wv.mjs";
6
- import { D as clearExpoMetroTunnel, E as MODE_EXPO, N as readPidFile, R as writePidFile, T as MODE_COMMAND, d as nativeProjectIntegration, j as clearWorkspaceSupervisor, v as detectIsExpo, w as MODE_BARE } from "./project-Dz-hWkb-.mjs";
7
- import { W as ownedAvdSerialResolver } from "./android-882m4hxX.mjs";
4
+ import { c as withWorkspaceStateLock, d as writeWorkspaceState, n as clearWorkspaceStateKeys, o as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-CPSp3mav.mjs";
5
+ import { J as resolveProjectSettings, Z as runnableMetroCommand } from "./settings-B5tCoq9N.mjs";
6
+ import { D as clearExpoMetroTunnel, E as MODE_EXPO, N as readPidFile, R as writePidFile, T as MODE_COMMAND, d as nativeProjectIntegration, j as clearWorkspaceSupervisor, v as detectIsExpo, w as MODE_BARE } from "./project-BiC68mIp.mjs";
7
+ import { W as ownedAvdSerialResolver } from "./android-Cjcj8MCw.mjs";
8
8
  import { r as createNdjsonWriter } from "./ndjson-CgE_o3Dl.mjs";
9
- import { d as parseWatchRoots, l as parseSubscriberNames, m as runWatchman, u as parseTriggerCount } from "./eas-session-ledger-Ck6YXPAO.mjs";
10
- import { A as workspaceBuildInProgress, _ as devServerStopRecord, g as devServerStopLevel, m as describeDevServerStop, x as vanishedSupervisorMessage } from "./budget-dPGuhNai.mjs";
11
- import { p as withIdleWorkspace } from "./workspaces-CSV2Orf4.mjs";
12
- import { S as parseLease, _ as workspaceDeviceLastUseAt, b as leaseIsExpired, r as createActivityReader, v as deviceLeasePath, w as parseWorkspaceLeases } from "./activity-Dq3ZcdD8.mjs";
13
- import { t as describeError } from "./errors-ccaPc4ox.mjs";
14
- import { f as probeHostedSession } from "./hosted-client-BBTVe3X6.mjs";
15
- import { o as watchWorkspaceState, t as clearHostedMetro } from "./metro-gateway-DtsOy-0P.mjs";
9
+ import { d as parseWatchRoots, l as parseSubscriberNames, m as runWatchman, u as parseTriggerCount } from "./eas-session-ledger-BMCA1gdO.mjs";
10
+ import { A as workspaceBuildInProgress, _ as devServerStopRecord, g as devServerStopLevel, m as describeDevServerStop, x as vanishedSupervisorMessage } from "./budget-HyShrIpL.mjs";
11
+ import { p as withIdleWorkspace } from "./workspaces-C9w4aeXF.mjs";
12
+ import { S as parseLease, _ as workspaceDeviceLastUseAt, b as leaseIsExpired, r as createActivityReader, v as deviceLeasePath, w as parseWorkspaceLeases } from "./activity-BpjwrQXU.mjs";
13
+ import { t as describeError } from "./errors-DHm_U5gv.mjs";
14
+ import { f as probeHostedSession } from "./hosted-client-rsRqysJc.mjs";
15
+ import { o as watchWorkspaceState, t as clearHostedMetro } from "./metro-gateway-Bp9gJQAN.mjs";
16
16
  import { t as relaunchWithLogFile } from "./detached-entry-KmieOKgN.mjs";
17
- import { n as dueIdleDevices, r as shutDownIdleDevices } from "./idle-shutdown-BInjLKqm.mjs";
17
+ import { n as dueIdleDevices, r as shutDownIdleDevices } from "./idle-shutdown-BIyfl0Zj.mjs";
18
18
  import { t as triggerMaintenance } from "./trigger-CBMe2YLH.mjs";
19
19
  import { existsSync, readFileSync, realpathSync, statSync } from "node:fs";
20
20
  import { dirname, isAbsolute, join, resolve, sep } from "node:path";
@@ -629,7 +629,7 @@ async function runSupervisor({ root, port, tunnel = false, resetCache = false, i
629
629
  try {
630
630
  let start;
631
631
  if (command) {
632
- const startServer = startCommand ?? (await import("./server-command-C0pmjNdG.mjs")).startCommandServer;
632
+ const startServer = startCommand ?? (await import("./server-command-CaBbDNU2.mjs")).startCommandServer;
633
633
  start = (opts) => startServer({
634
634
  ...opts,
635
635
  command
@@ -1,9 +1,9 @@
1
1
  import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
2
  import { a as killOnAbort } from "./operation-exec-CUZifp6Z.mjs";
3
- import { C as emulatorDiskSpaceRemedy, E as findBuildTool, Q as profileNeedsFoldFeature, R as memoizeEmulatorProbe, T as extractEmulatorFailure, X as pickDefaultSystemImage, c as androidPoolNoCandidatesRefusal, k as hostSystemImageArch, l as androidSystemImageAbi, o as androidHome, s as androidPoolCandidates, w as emulatorFailureRemedy } from "./android-882m4hxX.mjs";
4
- import { jn as pickDevClientScheme } from "./budget-dPGuhNai.mjs";
5
- import { d as unknownAndroidSystemImageRefusal, s as layerNote, u as unknownAndroidDeviceProfileRefusal } from "./device-capacity-Ic-kdmEV.mjs";
6
- import { t as devClientScheme } from "./dev-client-w_fok0Ek.mjs";
3
+ import { C as emulatorDiskSpaceRemedy, E as findBuildTool, Q as profileNeedsFoldFeature, R as memoizeEmulatorProbe, T as extractEmulatorFailure, X as pickDefaultSystemImage, c as androidPoolNoCandidatesRefusal, k as hostSystemImageArch, l as androidSystemImageAbi, o as androidHome, s as androidPoolCandidates, w as emulatorFailureRemedy } from "./android-Cjcj8MCw.mjs";
4
+ import { Mn as pickDevClientScheme } from "./budget-HyShrIpL.mjs";
5
+ import { d as unknownAndroidSystemImageRefusal, s as layerNote, u as unknownAndroidDeviceProfileRefusal } from "./device-capacity-ZYaRALv5.mjs";
6
+ import { t as devClientScheme } from "./dev-client-CHoXXZeg.mjs";
7
7
  import { existsSync, readFileSync, readdirSync } from "node:fs";
8
8
  import { relative } from "node:path";
9
9
  //#region src/commands/android/support.ts
@@ -1,13 +1,13 @@
1
1
  import { m as workspaceLogsDir } from "./paths-DQtTgsBf.mjs";
2
- import { h as shortUdid, l as phaseLine } from "./command-output-DxC0k2rk.mjs";
3
- import { a as SETTING_SHAPE_REMEDY, b as iosProjectDirSettingError, et as settingShapeErrors, it as unknownSettingKeys, p as cacheProviderSettingError, y as iosProjectDirSetting } from "./settings-RKwY33wv.mjs";
4
- import { j as parseIosSimulatorApp } from "./ios-CVUFFZ6C.mjs";
5
- import { p as resolveOptimizations } from "./errors-ccaPc4ox.mjs";
6
- import { y as describeDiagnostic } from "./xcode-DHu41qQ4.mjs";
7
- import { c as resolveBuildPlacement } from "./selection-BLtvaqxc.mjs";
8
- import { l as parseDeviceWait } from "./device-lease-run-DUtkbqBQ.mjs";
9
- import { f as unknownIosDeviceTypeRefusal, p as unknownIosRuntimeRefusal, s as layerNote, t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-Ic-kdmEV.mjs";
10
- import { t as IosDeviceMismatchError } from "./device-ios-DzpSlZyd.mjs";
2
+ import { h as shortUdid, l as phaseLine } from "./command-output-BBvS1H6v.mjs";
3
+ import { a as SETTING_SHAPE_REMEDY, at as unknownSettingKeys, b as iosProjectDirSettingError, p as cacheProviderSettingError, tt as settingShapeErrors, y as iosProjectDirSetting } from "./settings-B5tCoq9N.mjs";
4
+ import { M as parseIosSimulatorApp } from "./ios-BQzvJlzw.mjs";
5
+ import { p as resolveOptimizations } from "./errors-DHm_U5gv.mjs";
6
+ import { y as describeDiagnostic } from "./xcode-CiIIDnuD.mjs";
7
+ import { c as resolveBuildPlacement } from "./selection-D5cxEl3t.mjs";
8
+ import { l as parseDeviceWait } from "./device-lease-run-ogEeJ62K.mjs";
9
+ import { f as unknownIosDeviceTypeRefusal, p as unknownIosRuntimeRefusal, s as layerNote, t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-ZYaRALv5.mjs";
10
+ import { t as IosDeviceMismatchError } from "./device-ios-DkHBrmvH.mjs";
11
11
  import { basename, join } from "node:path";
12
12
  import chalk from "chalk";
13
13
  function buildLogFile(root) {
@@ -115,7 +115,7 @@ function resolveSimulatorAppFlag(flag, physical, remoteBackend, automatic = fals
115
115
  } };
116
116
  return { simulatorApp };
117
117
  }
118
- async function deviceModelRefusal({ slot, deviceTypeFlag, runtimeFlag, deviceType, runtime, deviceTypeOrigin = null, runtimeOrigin = null, physical, remoteBackend, hosted = false, listRuntimes, signal }) {
118
+ async function deviceModelRefusal({ slot, deviceTypeFlag, runtimeFlag, deviceType, runtime, deviceTypeOrigin = null, runtimeOrigin = null, physical, remoteBackend, hosted = false, listRuntimes, signal, snapshot }) {
119
119
  if (slot && slot !== "default" && remoteBackend) return {
120
120
  code: "STIM_BAD_ARG",
121
121
  message: "Named slots currently support local simulators and physical devices.",
@@ -145,7 +145,10 @@ async function deviceModelRefusal({ slot, deviceTypeFlag, runtimeFlag, deviceTyp
145
145
  if (!deviceType && !runtime) return null;
146
146
  let runtimes;
147
147
  try {
148
- runtimes = await listRuntimes({ signal });
148
+ runtimes = await listRuntimes({
149
+ signal,
150
+ snapshot
151
+ });
149
152
  } catch (error) {
150
153
  return {
151
154
  code: "STIM_NO_DEVICE",
@@ -1,6 +1,6 @@
1
1
  import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
2
  import { s as gitAsync } from "./operation-exec-CUZifp6Z.mjs";
3
- import { n as buildCacheKey } from "./build-cache-HFUQ9eLz.mjs";
3
+ import { n as buildCacheKey } from "./build-cache-CKCzxzxA.mjs";
4
4
  import { n as fingerprintNativeInputs, r as manifestDigest } from "./native-inputs-TRTTTRxt.mjs";
5
5
  import { a as sourceManifest, r as nativeFileDigest } from "./native-source-D-4Dh4JU.mjs";
6
6
  import { createHash } from "node:crypto";
@@ -1,16 +1,16 @@
1
1
  import { T as trackReportResource, _ as spawnDeclared, t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
2
  import { i as sharedBuildCache } from "./paths-DQtTgsBf.mjs";
3
- import { G as resolveCacheProviderConfig, L as projectSettingsContextAsync, Nt as repoRootAsync, tt as settingValueAt } from "./settings-RKwY33wv.mjs";
3
+ import { K as resolveCacheProviderConfig, Pt as repoRootAsync, R as projectSettingsContextAsync, nt as settingValueAt } from "./settings-B5tCoq9N.mjs";
4
4
  import { r as register } from "./cache-manifest-BPXRONJz.mjs";
5
- import { d as runCancellationSignal } from "./native-run-BmH7U8pr.mjs";
6
- import "./build-cache-HFUQ9eLz.mjs";
7
- import { l as artifactCachePolicy, p as resolveOptimizations } from "./errors-ccaPc4ox.mjs";
8
- import { l as macosToolchainAsync } from "./toolchain-D3bmRMia.mjs";
5
+ import { d as runCancellationSignal } from "./native-run-D5OJsGwA.mjs";
6
+ import "./build-cache-CKCzxzxA.mjs";
7
+ import { l as artifactCachePolicy, p as resolveOptimizations } from "./errors-DHm_U5gv.mjs";
8
+ import { l as macosToolchainAsync } from "./toolchain-VzLJzZ7O.mjs";
9
9
  import { r as nativeFileDigest } from "./native-source-D-4Dh4JU.mjs";
10
- import { a as validateInfoPlist, i as stageBundle, n as resolveBundleExtras, r as setBundleName, t as reidentifyBundle } from "./stage-ERTMh88n.mjs";
10
+ import { a as validateInfoPlist, i as stageBundle, n as resolveBundleExtras, r as setBundleName, t as reidentifyBundle } from "./stage-D8xlRU2D.mjs";
11
11
  import { t as validateMacosArtifactPlatform } from "./artifact-platform-CMRc0M_r.mjs";
12
- import { t as logLines } from "./run-BIwoU44q.mjs";
13
- import { n as swiftpmArtifactInputs, r as swiftpmArtifactSnapshot, t as readSwiftpmArtifactToolchain } from "./swiftpm-artifact-inputs-BWYPj9Sn.mjs";
12
+ import { t as logLines } from "./run-BtzE09Dl.mjs";
13
+ import { n as swiftpmArtifactInputs, r as swiftpmArtifactSnapshot, t as readSwiftpmArtifactToolchain } from "./swiftpm-artifact-inputs-iY9fsmOc.mjs";
14
14
  import { createHash } from "node:crypto";
15
15
  import { createReadStream, createWriteStream, existsSync, realpathSync } from "node:fs";
16
16
  import { tmpdir } from "node:os";
@@ -1,2 +1,2 @@
1
- import { c as macosToolchain, l as macosToolchainAsync } from "./toolchain-D3bmRMia.mjs";
1
+ import { c as macosToolchain, l as macosToolchainAsync } from "./toolchain-VzLJzZ7O.mjs";
2
2
  export { macosToolchain, macosToolchainAsync };