stim 1.31.0 → 1.32.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 (115) hide show
  1. package/dist/{acquire-artifact-P84h3ssa.mjs → acquire-artifact-CI9fIokp.mjs} +1 -1
  2. package/dist/{act-lcOIEy32.mjs → act-BfChMxcU.mjs} +62 -13
  3. package/dist/{activity-Dw4N_RFe.mjs → activity-yjH7Q3zn.mjs} +1 -1
  4. package/dist/{agent-device-usage-output-Boie2yB-.mjs → agent-device-usage-output-DO412bsG.mjs} +3 -3
  5. package/dist/{android-DhiWSOFU.mjs → android-BNm5A40S.mjs} +29 -29
  6. package/dist/{android-aIuJZoDu.mjs → android-D56S_GX3.mjs} +5 -5
  7. package/dist/api.mjs +21 -21
  8. package/dist/{artifact-ta3xA0c4.mjs → artifact-C8Nvp07y.mjs} +10 -10
  9. package/dist/{artifact-Cr34-Yyy.mjs → artifact-k1x9Jrn0.mjs} +10 -10
  10. package/dist/{auto-placement-DtTRG0rk.mjs → auto-placement--nfdQ9rp.mjs} +5 -5
  11. package/dist/{browser-web-DuULNZrS.mjs → browser-web-6RDAeH0z.mjs} +5 -5
  12. package/dist/{build-BpFFbdXD.mjs → build-VXX_dtl5.mjs} +15 -15
  13. package/dist/{build-plan-DH1rT11x.mjs → build-plan-BK34X2iY.mjs} +4 -4
  14. package/dist/{ccache-DVDO2ocE.mjs → ccache-BrwGIxmV.mjs} +7 -7
  15. package/dist/{cli-C0jjwTuM.mjs → cli-Jc7obreB.mjs} +17 -17
  16. package/dist/cli.mjs +1 -1
  17. package/dist/{client-DhJOvSvh.mjs → client-lDmA-5jx.mjs} +3 -3
  18. package/dist/{command-output-VrXd6qPX.mjs → command-output-CfPW1bKP.mjs} +1 -1
  19. package/dist/{dependencies-DIU-5rnG.mjs → dependencies-DkZ8681S.mjs} +28 -28
  20. package/dist/{dev-client-DeAg0fso.mjs → dev-client-eDZy6RoX.mjs} +2 -2
  21. package/dist/{device-DuNLOlR6.mjs → device-CTozKhU0.mjs} +6 -6
  22. package/dist/{device-C2WsPgFt.mjs → device-CeIikWac.mjs} +8 -8
  23. package/dist/{device-android-BjhH0Ru3.mjs → device-android-zgD9We85.mjs} +3 -3
  24. package/dist/{device-capacity-Du5wBTNJ.mjs → device-capacity-Bki6B-7h.mjs} +3 -3
  25. package/dist/device-host-worker.mjs +7 -7
  26. package/dist/{device-ios-CUYUhSYO.mjs → device-ios-TE5ejeXx.mjs} +3 -3
  27. package/dist/{device-lease-run-CHXQEn-7.mjs → device-lease-run-DeNGjJZM.mjs} +3 -3
  28. package/dist/{device-pool-kUHO7MHO.mjs → device-pool-mjyUYaau.mjs} +2 -2
  29. package/dist/{device-provision-e7bKS7lx.mjs → device-provision-j_B7G0e6.mjs} +6 -6
  30. package/dist/{doctor-hva3sd9f.mjs → doctor-BlrcoQ7B.mjs} +10 -10
  31. package/dist/{doctor-B6kIVgU9.mjs → doctor-CNZuvTSe.mjs} +1 -1
  32. package/dist/{doctor-BGcsAgAV.mjs → doctor-sSLtn-j1.mjs} +11 -11
  33. package/dist/{doctor-watchman-DJY550yz.mjs → doctor-watchman-CCuboyj1.mjs} +2 -2
  34. package/dist/{eas-build-CBFgseh1.mjs → eas-build-CaG-Sfs9.mjs} +2 -2
  35. package/dist/{eas-fallback-DFXdz4d6.mjs → eas-fallback-BpX1lpco.mjs} +2 -2
  36. package/dist/{eas-session-ledger-aFBLTZr2.mjs → eas-session-ledger-B-nTfdfk.mjs} +1 -1
  37. package/dist/{error-diagnostics-CCsq_3uG.mjs → error-diagnostics-q56Im4D8.mjs} +3 -3
  38. package/dist/{gc-DASUa3Z_.mjs → gc-By2Kc-Ek.mjs} +2 -2
  39. package/dist/{gc-B0K4d_PL.mjs → gc-Dv6nb9nf.mjs} +10 -10
  40. package/dist/{guide-Civo5-zV.mjs → guide-CwpsGWTJ.mjs} +71 -22
  41. package/dist/{hosted-android-CH1Sm4wo.mjs → hosted-android-c5nPJA6S.mjs} +3 -3
  42. package/dist/{hosted-client-5ur3YpxY.mjs → hosted-client-Hs-fD4L3.mjs} +2 -2
  43. package/dist/{hosted-logs-BYg4yeti.mjs → hosted-logs-BteXG8rm.mjs} +12 -6
  44. package/dist/{hosted-logs-sync-BPe8xnMu.mjs → hosted-logs-sync-B8bjLEMs.mjs} +4 -4
  45. package/dist/{hosted-macos-BagT0Gn3.mjs → hosted-macos-B4byscei.mjs} +4 -4
  46. package/dist/{hosted-native-kaR4nUHk.mjs → hosted-native-Bh9IJ_t5.mjs} +5 -5
  47. package/dist/{idle-shutdown-BWHQ7mQG.mjs → idle-shutdown-BaeCo4ps.mjs} +3 -3
  48. package/dist/{ios-BKR-Dq46.mjs → ios-D1XKSITX.mjs} +8 -8
  49. package/dist/{ios-DUL68MI5.mjs → ios-D3oK9-O4.mjs} +22 -22
  50. package/dist/{ios-device-Dz8gFZ0K.mjs → ios-device-D7Gi3e1I.mjs} +1 -1
  51. package/dist/{ios-project-Br1tVYWX.mjs → ios-project-DDQlX_jX.mjs} +5 -5
  52. package/dist/{js-swap-BfG8XpyS.mjs → js-swap-C8N5DXHl.mjs} +3 -3
  53. package/dist/{launch-CrGndh8T.mjs → launch-DxpvL6il.mjs} +12 -12
  54. package/dist/{lightened-DZ9Ip0T3.mjs → lightened-Df6II_XI.mjs} +2 -2
  55. package/dist/{logs-DpIKWT3A.mjs → logs-CuWJWF88.mjs} +5 -5
  56. package/dist/{logs-C-hfMsxK.mjs → logs-zv3ge7c6.mjs} +3 -3
  57. package/dist/{macos-DZ9ZSolN.mjs → macos-C6U-4Iip.mjs} +14 -14
  58. package/dist/{macos-DNmKwfDy.mjs → macos-CbRZheLw.mjs} +1 -1
  59. package/dist/maintenance-run.mjs +3 -3
  60. package/dist/{metro-request-RDhyx85c.mjs → metro-request-DODHNXCN.mjs} +7 -1
  61. package/dist/{native-android-DExhFqR6.mjs → native-android-9dVFqvTT.mjs} +10 -10
  62. package/dist/{native-gradle-artifact-inputs-Bcmbdc23.mjs → native-gradle-artifact-inputs-BlY97pt8.mjs} +1 -1
  63. package/dist/{native-runtime-D4qgnjK_.mjs → native-runtime-DQfxW5Au.mjs} +3 -3
  64. package/dist/{native-xcode-inputs-EWma1lXh.mjs → native-xcode-inputs-tDuUvSU8.mjs} +1 -1
  65. package/dist/{native-xcode-ios-Y6rzmWTc.mjs → native-xcode-ios-CG-PD-7g.mjs} +11 -11
  66. package/dist/offload-worker.mjs +13 -13
  67. package/dist/{phone-reverses-Drj5QQCh.mjs → phone-reverses-CnNwdz9A.mjs} +1 -1
  68. package/dist/{placement-log-CFT8SnlS.mjs → placement-log-CRL0IY-k.mjs} +1 -1
  69. package/dist/{plan-placement-DhKCH_wF.mjs → plan-placement-2imvnlWP.mjs} +4 -4
  70. package/dist/{ports-BNtJ5DCj.mjs → ports-CKktj5lV.mjs} +1 -1
  71. package/dist/{prebuild-D0hvmO4j.mjs → prebuild-CyNrUWgV.mjs} +5 -5
  72. package/dist/{project-DCLkDM8C.mjs → project-Crtcbfl0.mjs} +11 -11
  73. package/dist/{react-native-android-Dp7vctEA.mjs → react-native-android-Cabe2YER.mjs} +17 -17
  74. package/dist/{react-native-build-vK2lFYfN.mjs → react-native-build-DhWBUV_H.mjs} +4 -4
  75. package/dist/{react-native-doctor-BtWzwZHU.mjs → react-native-doctor-D-twmBon.mjs} +4 -4
  76. package/dist/{react-native-ios-DW1Ax3Yv.mjs → react-native-ios-u_ley41B.mjs} +12 -12
  77. package/dist/{reload-B-d7-CsI.mjs → reload-D2TpUlns.mjs} +6 -6
  78. package/dist/{reload-BS_ntVV_.mjs → reload-f9hvEHE9.mjs} +1 -1
  79. package/dist/{remote-DScVlaMz.mjs → remote-BsBAjlD2.mjs} +6 -6
  80. package/dist/{result-Epkl6gyG.mjs → result-EOsWV6sp.mjs} +10 -10
  81. package/dist/{selection-C95m--1_.mjs → selection-C4ZQz_ER.mjs} +1 -1
  82. package/dist/{server-command-B1gDRJB2.mjs → server-command-BMyKtnjH.mjs} +2 -2
  83. package/dist/{server-expo-CP4dURQp.mjs → server-expo-BLxcN2x2.mjs} +1 -1
  84. package/dist/server-expo-DwR3eD-a.mjs +2 -0
  85. package/dist/{settings-CjTRNCi3.mjs → settings-jeS0WmUF.mjs} +2 -2
  86. package/dist/{settings-payload-zf5EnCTg.mjs → settings-payload-CrX933Xi.mjs} +1 -1
  87. package/dist/{settings-write-Fe0K6BeC.mjs → settings-write-DMcT23Kl.mjs} +2 -2
  88. package/dist/settings.schema.json +2 -2
  89. package/dist/{slot-launch-B4MHzVX2.mjs → slot-launch-CSpQcFZw.mjs} +2 -2
  90. package/dist/{stage-DDrnM0CY.mjs → stage-Cf9uSM1a.mjs} +1 -1
  91. package/dist/{start-LSwIFlBv.mjs → start-CLN_r9EG.mjs} +5 -5
  92. package/dist/{start-BXl5tkv8.mjs → start-CquYgzVf.mjs} +1 -1
  93. package/dist/{stats-EgpYD536.mjs → stats-BVEZuSlg.mjs} +3 -3
  94. package/dist/{status-DBMD7ZQT.mjs → status-Bhdy07v0.mjs} +1 -1
  95. package/dist/{status-BLDvhatv.mjs → status-D0ruTmPl.mjs} +12 -12
  96. package/dist/{status-watch-BwG4lJ1q.mjs → status-watch-DSu_hhg6.mjs} +1 -1
  97. package/dist/status-worker.mjs +1 -1
  98. package/dist/{stop-BfNhzvXO.mjs → stop-B616ZyTv.mjs} +2 -2
  99. package/dist/{stop-4SAV_RR8.mjs → stop-RZqER_Ww.mjs} +2 -2
  100. package/dist/{stop-WyrZQuX6.mjs → stop-W4DK8qZq.mjs} +9 -9
  101. package/dist/supervisor-run.mjs +131 -39
  102. package/dist/{support-Cs24xRQa.mjs → support-NxnD8QXd.mjs} +6 -6
  103. package/dist/{support-Cffz6_Ft.mjs → support-S_5nkkzs.mjs} +3 -3
  104. package/dist/{swiftpm-macos-D0CzQtpp.mjs → swiftpm-macos-Gtq9bNQb.mjs} +2 -2
  105. package/dist/{toolchain-BEra9AIX.mjs → toolchain-B2bN8jEo.mjs} +1 -1
  106. package/dist/{toolchain-CGdgD4x4.mjs → toolchain-Bnm8vUCV.mjs} +2 -2
  107. package/dist/{web-BE89ONcc.mjs → web-BdWG8b5_.mjs} +3 -3
  108. package/dist/web-DwuluWJt.mjs +2 -0
  109. package/dist/web-run.mjs +1 -1
  110. package/dist/{workspaces-BNEyJ1B_.mjs → workspaces-C59v9bpD.mjs} +6 -5
  111. package/dist/{worktree-BTrii9e_.mjs → worktree-CinoSsGy.mjs} +10 -10
  112. package/dist/{worktree-DB3Ypdj6.mjs → worktree-K9F50fD_.mjs} +1 -1
  113. package/package.json +7 -7
  114. package/dist/server-expo-D3k9mvP8.mjs +0 -2
  115. package/dist/web-DQPxvFVD.mjs +0 -2
@@ -1,5 +1,5 @@
1
1
  import { l as WorkspaceProcessCleanupError } from "./exec-aULwtNly.mjs";
2
- import { I as waitForSharedBuild } from "./activity-Dw4N_RFe.mjs";
2
+ import { I as waitForSharedBuild } from "./activity-yjH7Q3zn.mjs";
3
3
  import { rmSync } from "node:fs";
4
4
  //#region src/engine/artifact-lifecycle.ts
5
5
  async function runArtifactLifecycle(phases) {
@@ -1,33 +1,34 @@
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-3bF4TB8P.mjs";
3
3
  import { F as formatBytes, I as isOnMountedVolume, K as projectDeviceSlots, L as listMountedVolumes, P as directorySizeAsync, R as measuredDirectorySizeAsync, m as getProject, v as loadConfig$1 } from "./config-D5qNWJEP.mjs";
4
- import { o as formatLongDuration, u as plural } from "./command-output-VrXd6qPX.mjs";
4
+ import { o as formatLongDuration, u as plural } from "./command-output-CfPW1bKP.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-C6UTYW2K.mjs";
7
- import { P as readRemoteSession, i as findProjectRoot$1 } from "./project-DCLkDM8C.mjs";
7
+ import { P as readRemoteSession, i as findProjectRoot$1 } from "./project-Crtcbfl0.mjs";
8
8
  import { A as getAvdNameForSerialAsync, L as listAvds, N as listAdbDevices, P as listAdbDevicesAsync, R as listAvdsAsync, U as ownedAvdDirectory, k as getAvdNameForSerial, q as ownedAvdSerialResolverAsync, xt as readParked } from "./android-DsEj2CCs.mjs";
9
9
  import { c as pidExists } from "./metro-mKHEMO-a.mjs";
10
- import { A as diskPressureLevel, G as planCacheEmptying, N as lowestFree, P as protectWindowMs, X as collectGradleVersions, Z as deleteGradleVersion, Zn as collectMemoryReport, _ as resolveBudget, at as DEVICE_LIST_TIMEOUT_MS, ct as collectParkedSims, d as enforceBudget, dr as pruneCache, dt as deleteProjectDevices, j as levelFloors, lt as deleteParkedAvds, mt as deviceSweepIsScoped, nr as memorySweepIsScoped, nt as waitForGradleExit, or as stopIdleGradleDaemons, p as machineNumber, sr as phase, st as collectParkedAvds, u as cacheLabel, ur as discoverCaches, ut as deleteParkedSims, v as trimmableCaches, vt as findStaleProjectDevices, y as stopOwnedMetro, z as emptyCaches } from "./ccache-DVDO2ocE.mjs";
10
+ import { A as diskPressureLevel, G as planCacheEmptying, N as lowestFree, P as protectWindowMs, X as collectGradleVersions, Z as deleteGradleVersion, Zn as collectMemoryReport, _ as resolveBudget, at as DEVICE_LIST_TIMEOUT_MS, ct as collectParkedSims, d as enforceBudget, dr as pruneCache, dt as deleteProjectDevices, j as levelFloors, lt as deleteParkedAvds, mt as deviceSweepIsScoped, nr as memorySweepIsScoped, nt as waitForGradleExit, or as stopIdleGradleDaemons, p as machineNumber, sr as phase, st as collectParkedAvds, u as cacheLabel, ur as discoverCaches, ut as deleteParkedSims, v as trimmableCaches, vt as findStaleProjectDevices, y as stopOwnedMetro, z as emptyCaches } from "./ccache-BrwGIxmV.mjs";
11
11
  import { o as readWebRecord, u as webFacts } from "./state-CM_HvvkS.mjs";
12
12
  import { a as unregister, n as readManifest } from "./cache-manifest-CfiEny4T.mjs";
13
- import { B as workspaceBuildInProgress, Et as GC_OUTPUT, F as collectOwnedDeviceActivityAsync, Ot as takeGcResults, P as collectOwnedDeviceActivity, a as collectOrphanedWorkspaces, b as workspaceInUseAsync, c as isInsideWorkspaces, d as recentNativeUseReason, g as ARTIFACT_DIRS, h as workspaceDirRemoved, i as clearWorkspaceOutputs, jt as readConcurrency, kt as eachLimited, l as keptByLock, m as workspaceBuildReasons, o as collectWorkspaceOutputs, s as deleteOrphanedWorkspaces, t as LIGHTEN_AFTER_MS, u as listWorkspaceDirs, v as withIdleWorkspace, x as resolveSupervisorTarget, y as workspaceInUse } from "./workspaces-BNEyJ1B_.mjs";
13
+ import { B as workspaceBuildInProgress, Et as GC_OUTPUT, F as collectOwnedDeviceActivityAsync, Ot as takeGcResults, P as collectOwnedDeviceActivity, a as collectOrphanedWorkspaces, b as workspaceInUseAsync, c as isInsideWorkspaces, d as recentNativeUseReason, g as ARTIFACT_DIRS, h as workspaceDirRemoved, i as clearWorkspaceOutputs, jt as readConcurrency, kt as eachLimited, l as keptByLock, m as workspaceBuildReasons, o as collectWorkspaceOutputs, s as deleteOrphanedWorkspaces, t as LIGHTEN_AFTER_MS, u as listWorkspaceDirs, v as withIdleWorkspace, x as resolveSupervisorTarget, y as workspaceInUse } from "./workspaces-C59v9bpD.mjs";
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-Dw4N_RFe.mjs";
15
+ import { N as listBuildLocks, _ as workspaceDeviceLastUseAt, b as leaseIsExpired, g as workspaceActivity, x as listLeaseFiles } from "./activity-yjH7Q3zn.mjs";
16
16
  import { d as listAllIosSims, f as listAllIosSimsAsync } from "./ios-CdAV4-1E.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-WyrZQuX6.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-BTrii9e_.mjs";
19
+ import { p as probeHostedSession } from "./hosted-client-Hs-fD4L3.mjs";
20
+ import { o as runStop } from "./stop-W4DK8qZq.mjs";
21
+ import { D as stimCliUseOf, E as stimCliEntries, M as worktreeArchiveLimits, T as serviceRunningFrom, _ as cacheBlocked, a as nestedWorktrees, b as measurePressure, i as excludeWatchmanCookies, o as porcelainPath, p as removeWorktreeTarget, r as excludePodChurn, s as reclaimKeys, v as measureDisk, w as uncommittedActivityOf, x as measurePressureAsync, y as measureDiskAsync } from "./worktree-CinoSsGy.mjs";
21
22
  import { n as describePullRequest, r as endedPullRequest, s as pullRequestLookups } from "./pull-request-BzLmzAIQ.mjs";
22
23
  import { a as lastFetchedAtAsync, c as mergeStateAsync, f as recordPullRequestLookup, i as fetchDefaultBranchAsync, o as localDefaultBranchAsync, r as FETCH_FRESH_MS } from "./warm-progress-_aTMvkIH.mjs";
23
- import { a as restoreProblem, r as recordLightened, t as finishLightened } from "./lightened-DZ9Ip0T3.mjs";
24
- import { i as writeIdleShutdownEvent, n as dueIdleDevices, r as shutDownIdleDevices } from "./idle-shutdown-BWHQ7mQG.mjs";
24
+ import { a as restoreProblem, r as recordLightened, t as finishLightened } from "./lightened-Df6II_XI.mjs";
25
+ import { i as writeIdleShutdownEvent, n as dueIdleDevices, r as shutDownIdleDevices } from "./idle-shutdown-BaeCo4ps.mjs";
25
26
  import { readClaimSet } from "@stim-cli/core/ownership-claim";
26
27
  import { existsSync, lstatSync, readFileSync, readdirSync, readlinkSync, realpathSync, rmSync, statSync } from "node:fs";
27
28
  import { tmpdir } from "node:os";
28
29
  import { basename, dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
29
30
  import { buildCacheRoot, configDir, metroCacheRoot, rotatedLogPath } from "@stim-cli/core";
30
- import { LAST_BUILD_KEYS, MAINTENANCE_LOG_NAME, coerceSettingText, deviceViewersDir, lastNativeUseFrom, loadConfig, parseNdjsonText, readBuildHistory, readJsonObject, readMaintenanceState, readPullRequestCache, settingDefinition, settingValueError, sharedCompilationCache } from "@stim-cli/core/state";
31
+ import { LAST_BUILD_KEYS, MAINTENANCE_LOG_NAME, coerceSettingText, deviceViewersDir, hostedNativeRecords, lastNativeUseFrom, loadConfig, parseHostedNativePlacement, parseNdjsonText, readBuildHistory, readJsonObject, readMacosRecord, readMaintenanceState, readPullRequestCache, settingDefinition, settingValueError, sharedCompilationCache, unreadableHostedNative } from "@stim-cli/core/state";
31
32
  import { isAbsolute as isAbsolute$1, join as join$1 } from "path";
32
33
  import chalk from "chalk";
33
34
  import { existsSync as existsSync$1, readdirSync as readdirSync$1, statSync as statSync$1 } from "fs";
@@ -1554,6 +1555,47 @@ async function idleStopHours(root, env, operation) {
1554
1555
  const error = settingValueError(setting, value);
1555
1556
  return error || typeof value !== "number" ? { invalid: `${fromEnv ? setting.env : SETTING} is invalid: expected ${error ?? "a number"}` } : { hours: value };
1556
1557
  }
1558
+ function hostedFacts(root) {
1559
+ const placements = [];
1560
+ const unreadable = [];
1561
+ for (const platform of ["ios", "android"]) for (const [slot, record] of Object.entries(hostedNativeRecords(readWorkspaceState$1(root), platform))) {
1562
+ const placement = parseHostedNativePlacement(record, platform);
1563
+ if (placement) {
1564
+ const label = platform === "ios" ? "iOS simulator" : "Android emulator";
1565
+ placements.push({
1566
+ label,
1567
+ machine: placement.machine,
1568
+ session: placement.session,
1569
+ platform
1570
+ });
1571
+ } else unreadable.push(unreadableHostedNative(slot, platform));
1572
+ }
1573
+ const host = readMacosRecord(root)?.host;
1574
+ if (host) placements.push({
1575
+ label: "macOS app",
1576
+ machine: host.machine,
1577
+ session: host.session
1578
+ });
1579
+ return {
1580
+ placements,
1581
+ unreadable
1582
+ };
1583
+ }
1584
+ async function hostedKeepReasons(facts) {
1585
+ const keep = [...facts.unreadable];
1586
+ if (keep.length) return keep;
1587
+ for (const { label, machine, session, platform } of facts.placements) {
1588
+ const probe = await probeHostedSession({
1589
+ machine,
1590
+ session,
1591
+ platform
1592
+ }, { ttlMs: 0 });
1593
+ if (probe.state === "ready" || probe.state === "stopped") continue;
1594
+ const why = probe.state === "unreachable" ? `${machine} did not answer: ${probe.reason.replace(/\.+$/, "")}` : `${machine} cannot confirm it${probe.notice ? `: ${probe.notice.replace(/\.+$/, "")}` : ""}`;
1595
+ keep.push(`its hosted ${label} session ${session} is not confirmed: ${why}`);
1596
+ }
1597
+ return keep;
1598
+ }
1557
1599
  function deviceKeepReason(device, platform) {
1558
1600
  const { activity } = device;
1559
1601
  const what = `its ${device.kind === "ios" ? "simulator" : "emulator"} ${device.name}`;
@@ -1628,7 +1670,9 @@ function unreadableViewers() {
1628
1670
  async function keepReasons(root, devices, { now, platform, locked, operation }) {
1629
1671
  const checks = {
1630
1672
  devServer: false,
1631
- nativeRun: !locked
1673
+ nativeRun: !locked,
1674
+ hosted: false,
1675
+ hostedMacos: false
1632
1676
  };
1633
1677
  const keep = operation ? await workspaceInUseAsync(root, checks, operation.signal, operation) : workspaceInUse(root, checks);
1634
1678
  if (workspaceBuildInProgress(root)) keep.push("a build is in progress");
@@ -1703,6 +1747,7 @@ async function idleStopEvidence(root, devices, { now, idleMs, platform = process
1703
1747
  basis: "Metro request",
1704
1748
  at: metro
1705
1749
  });
1750
+ if (!activity.some(({ at }) => now - at < idleMs)) keep.push(...await hostedKeepReasons(hostedFacts(root)));
1706
1751
  return {
1707
1752
  activity,
1708
1753
  keep
@@ -1756,7 +1801,9 @@ async function candidate(path, env, devices, operation) {
1756
1801
  const slots = projectDeviceSlots(project);
1757
1802
  const ownsIos = slots.some(({ platforms }) => platforms.ios?.owned === true);
1758
1803
  const owns = ownsIos || slots.some(({ platforms }) => platforms.android?.owned === true);
1759
- if (!owns && (supervisor.status === "none" || supervisor.status === "stale")) return null;
1804
+ const hosted = hostedFacts(path);
1805
+ const isHosted = hosted.placements.length > 0 || hosted.unreadable.length > 0;
1806
+ if (!owns && !isHosted && (supervisor.status === "none" || supervisor.status === "stale")) return null;
1760
1807
  const setting = await idleStopHours(path, env, operation);
1761
1808
  if ("invalid" in setting) return { skip: setting.invalid };
1762
1809
  if (setting.hours === 0) return null;
@@ -1771,7 +1818,7 @@ async function candidate(path, env, devices, operation) {
1771
1818
  if (supervisor.status === "ours" && readWorkspaceState$1(path)?.supervisor?.mode === "command-child") return { skip: "its dev server runs metro.command, whose bundle and HMR requests Stim cannot see" };
1772
1819
  if (supervisor.status === "ours" && readWorkspaceState$1(path)?.supervisor?.hmrUpdates !== true) return { skip: "its dev server does not report HMR updates to Stim: an Expo SDK before 54, or a server an older Stim started, which stim stop and stim start restart" };
1773
1820
  const avdNames = slots.flatMap(({ platforms }) => platforms.android?.owned && platforms.android.avdName ? [platforms.android.avdName] : []);
1774
- if (supervisor.status !== "ours" && booted.length === 0) return null;
1821
+ if (supervisor.status !== "ours" && booted.length === 0 && !isHosted) return null;
1775
1822
  const orphan = supervisor.status === "stale" ? survivingServer(readWorkspaceState$1(path)?.supervisor) : null;
1776
1823
  if (orphan) return { skip: orphan };
1777
1824
  const seen = new Set(booted.flatMap((device) => device.kind === "android" ? [device.id] : []));
@@ -1910,6 +1957,8 @@ async function stopIdleWorkspace(action, { protectedRoot, devices, operation, en
1910
1957
  }, {
1911
1958
  purpose: "automatic maintenance",
1912
1959
  devServer: false,
1960
+ hosted: false,
1961
+ hostedMacos: false,
1913
1962
  operation
1914
1963
  });
1915
1964
  return run.ran ? run.value : kept$1(`in use: ${run.reasons.join("; ")}`);
@@ -1,7 +1,7 @@
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-3bF4TB8P.mjs";
3
3
  import { H as deviceSlotKey, J as validateDeviceSlot, W as parseDeviceSlotKey, d as getConfigDir } from "./config-D5qNWJEP.mjs";
4
- import { a as formatElapsed, i as formatDuration, m as shortHash } from "./command-output-VrXd6qPX.mjs";
4
+ import { a as formatElapsed, i as formatDuration, m as shortHash } from "./command-output-CfPW1bKP.mjs";
5
5
  import { n as runOperationFileQuiet } from "./operation-exec-Dp4FuIGR.mjs";
6
6
  import { C as resolveBuild } from "./build-cache-BsKim4V7.mjs";
7
7
  import { randomBytes } from "node:crypto";
@@ -1,8 +1,8 @@
1
1
  import { S as process_identity_exports } from "./exec-aULwtNly.mjs";
2
2
  import { F as formatBytes } from "./config-D5qNWJEP.mjs";
3
- import { o as formatLongDuration } from "./command-output-VrXd6qPX.mjs";
4
- import { bt as measureDu, u as listWorkspaceDirs, xt as writeUsageCache, yt as canonical } from "./workspaces-BNEyJ1B_.mjs";
5
- import { c as parseAgentDeviceRecord, o as envDir, u as processMatches } from "./activity-Dw4N_RFe.mjs";
3
+ import { o as formatLongDuration } from "./command-output-CfPW1bKP.mjs";
4
+ import { bt as measureDu, u as listWorkspaceDirs, xt as writeUsageCache, yt as canonical } from "./workspaces-C59v9bpD.mjs";
5
+ import { c as parseAgentDeviceRecord, o as envDir, u as processMatches } from "./activity-yjH7Q3zn.mjs";
6
6
  import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
7
7
  import { homedir } from "node:os";
8
8
  import { isAbsolute, join, relative, sep } from "node:path";
@@ -1,43 +1,43 @@
1
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-3bF4TB8P.mjs";
3
3
  import { D as upsertProject, G as parseDeviceSlotOption, J as validateDeviceSlot, U as deviceSlotPlatforms, V as deviceSlotFileKey, k as withConfigLockAsync$1, m as getProject, u as getConcurrencyLimits } from "./config-D5qNWJEP.mjs";
4
- import { _ as stepTimer, f as refuseNoProject, g as stepClock, i as formatDuration, l as phaseLine } from "./command-output-VrXd6qPX.mjs";
4
+ import { _ as stepTimer, f as refuseNoProject, g as stepClock, i as formatDuration, l as phaseLine } from "./command-output-CfPW1bKP.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-C6UTYW2K.mjs";
6
- import { f as projectRegistry, i as findProjectRoot$1, l as projectShortcut, t as NO_PROJECT_REFUSAL, z as writeWorkspaceLaunchAsync } from "./project-DCLkDM8C.mjs";
6
+ import { f as projectRegistry, i as findProjectRoot$1, l as projectShortcut, t as NO_PROJECT_REFUSAL, z as writeWorkspaceLaunchAsync } from "./project-Crtcbfl0.mjs";
7
7
  import { $ as probeEmulatorSerial, E as emulatorProbeSession, M as isEmulatorToolAbsent, P as listAdbDevicesAsync, Z as physicalDeviceModel, a as androidDeviceAbi, at as resolvePhysicalDevice, it as resolveOwnedAvdSerialAsync, kt as configuredAndroidEmulatorApp, ut as waitForBoot, v as avdStorageExists, z as listInstalledSystemImages } from "./android-DsEj2CCs.mjs";
8
8
  import { c as pidExists, d as resolveProjectMetro } from "./metro-mKHEMO-a.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-DVDO2ocE.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-BNEyJ1B_.mjs";
12
- import { $ as cancelledFailure, ct as withNativeBuildRun, ot as runCancellation, st as runCancellationSignal } from "./toolchain-CGdgD4x4.mjs";
13
- import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-Dw4N_RFe.mjs";
10
+ import { An as checkEasAuth, At as ensureRemoteBootOwned, En as runProcessOperation, Et as binOnPath, Jt as verifyLaunch, Ln as resolveEasCliBin, Mt as remoteAndroidDeps, Pt as resolveRemoteContext, Qt as DEFAULT_METRO_PORT, Rn as resolveRemote, Zt as ADB_INSTALL_TIMEOUT_MS, c as budgetGate, kt as ensureMetroReachable, ln as installAndroidApp, mn as launchAndroidReleaseApp, pn as launchAndroidApp, qn as ownedSessionName, qt as verifyAndroidReleaseLaunch, t as CCACHE_NOT_RUN, wn as exitAfterFlush, zn as uploadRemote } from "./ccache-BrwGIxmV.mjs";
11
+ import { $ as tapBuildLog, H as NO_BUILD_PROGRESS, Q as startBuildProgress, St as acquireBuildSlot, Tt as releaseBuildSlot, Z as runFailureRecord, ct as recordRunStats, et as thrownRunFailureRecord, it as readRunEstimates, lt as statsProjectKey$1, ot as recordCapacityRefusal, rt as createRunRecorder } from "./workspaces-C59v9bpD.mjs";
12
+ import { $ as cancelledFailure, ct as withNativeBuildRun, ot as runCancellation, st as runCancellationSignal } from "./toolchain-Bnm8vUCV.mjs";
13
+ import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-yjH7Q3zn.mjs";
14
14
  import { T as storedAppId } from "./build-cache-BsKim4V7.mjs";
15
- import { S as setRemoteLogSink } from "./client-DhJOvSvh.mjs";
16
- import { d as resolveBuildPlacement, s as parseBuildMachineOption } from "./selection-C95m--1_.mjs";
17
- import { r as hostedMetroSettings } from "./metro-request-RDhyx85c.mjs";
15
+ import { S as setRemoteLogSink } from "./client-lDmA-5jx.mjs";
16
+ import { d as resolveBuildPlacement, s as parseBuildMachineOption } from "./selection-C4ZQz_ER.mjs";
17
+ import { i as hostedMetroSettings } from "./metro-request-DODHNXCN.mjs";
18
18
  import { a as writeHostedAndroidAsync, i as writeDevicePlacementAsync, t as readHostedAndroid } from "./ios-state-BEIJRJ7P.mjs";
19
- import { n as prepareHostedAndroid, t as placeHostedAndroid } from "./hosted-android-CH1Sm4wo.mjs";
19
+ import { n as prepareHostedAndroid, t as placeHostedAndroid } from "./hosted-android-c5nPJA6S.mjs";
20
20
  import { n as verifyCollectorOwnership } from "./ownership-CCfiBfOP.mjs";
21
- import { i as restoreLightenedDependencies, n as printLightenedFailure } from "./lightened-DZ9Ip0T3.mjs";
22
- import { c as startDevServer } from "./start-LSwIFlBv.mjs";
23
- import { a as acquireRunLease, d as runLease, f as waitFlagConflict, o as leaseExpiryText, u as releaseLeaseOnAbort } from "./device-lease-run-CHXQEn-7.mjs";
24
- import { n as DeviceAdmissionRefusal, r as checkDeviceCapacity } from "./device-capacity-Du5wBTNJ.mjs";
25
- import { a as resolveEasDevelopmentBuild, r as isEasBuildFailure } from "./eas-build-CBFgseh1.mjs";
26
- import { t as followHostedLaunchLogs } from "./hosted-logs-sync-BPe8xnMu.mjs";
27
- import { f as settleFingerprintCheck } from "./prebuild-D0hvmO4j.mjs";
28
- import { i as launchOutcomeRecord, n as ensureWorkspaceStorageSafely, r as isPhysicalDeviceRequest, t as ensureDevServer } from "./native-runtime-D4qgnjK_.mjs";
29
- import { n as devicePlacementRecord } from "./placement-log-CFT8SnlS.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-Cffz6_Ft.mjs";
31
- import { t as acquireAndroidArtifact } from "./artifact-ta3xA0c4.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-Epkl6gyG.mjs";
33
- import { n as devicePlacementLine, t as automaticDevicePlacement } from "./auto-placement-DtTRG0rk.mjs";
34
- import { i as verifyAndroidMetroRun, r as finishAndroidRun } from "./launch-CrGndh8T.mjs";
35
- import { t as checkEasFallback } from "./eas-fallback-DFXdz4d6.mjs";
36
- import { i as warmMetro, n as ensureBooted, r as ensureOwnedDevice, t as didSetUpDevice } from "./device-DuNLOlR6.mjs";
37
- import { a as AvdBootError, o as AvdRecoveryError } from "./device-android-BjhH0Ru3.mjs";
38
- import { t as selectFromPool } from "./device-pool-kUHO7MHO.mjs";
21
+ import { i as restoreLightenedDependencies, n as printLightenedFailure } from "./lightened-Df6II_XI.mjs";
22
+ import { c as startDevServer } from "./start-CLN_r9EG.mjs";
23
+ import { a as acquireRunLease, d as runLease, f as waitFlagConflict, o as leaseExpiryText, u as releaseLeaseOnAbort } from "./device-lease-run-DeNGjJZM.mjs";
24
+ import { n as DeviceAdmissionRefusal, r as checkDeviceCapacity } from "./device-capacity-Bki6B-7h.mjs";
25
+ import { a as resolveEasDevelopmentBuild, r as isEasBuildFailure } from "./eas-build-CaG-Sfs9.mjs";
26
+ import { t as followHostedLaunchLogs } from "./hosted-logs-sync-B8bjLEMs.mjs";
27
+ import { f as settleFingerprintCheck } from "./prebuild-CyNrUWgV.mjs";
28
+ import { i as launchOutcomeRecord, n as ensureWorkspaceStorageSafely, r as isPhysicalDeviceRequest, t as ensureDevServer } from "./native-runtime-DQfxW5Au.mjs";
29
+ import { n as devicePlacementRecord } from "./placement-log-CRL0IY-k.mjs";
30
+ import { S as pooledAndroidDevice, a as PLATFORM, b as noDeviceDiagnostic, g as dumpApkManifest, h as displayPath, o as androidBuildOptions, p as apkPackage, r as NO_DEVICE, s as androidDevClientScheme } from "./support-S_5nkkzs.mjs";
31
+ import { t as acquireAndroidArtifact } from "./artifact-C8Nvp07y.mjs";
32
+ import { a as persistLastBuild, c as androidDeviceSelectorRefusal, i as logPostBuildFailure, n as finishAndroidUpload, o as persistThrownBuild, s as reportAndroidResult, u as resolveAndroidRunPlan } from "./result-EOsWV6sp.mjs";
33
+ import { n as devicePlacementLine, t as automaticDevicePlacement } from "./auto-placement--nfdQ9rp.mjs";
34
+ import { i as verifyAndroidMetroRun, r as finishAndroidRun } from "./launch-DxpvL6il.mjs";
35
+ import { t as checkEasFallback } from "./eas-fallback-BpX1lpco.mjs";
36
+ import { i as warmMetro, n as ensureBooted, r as ensureOwnedDevice, t as didSetUpDevice } from "./device-CTozKhU0.mjs";
37
+ import { a as AvdBootError, o as AvdRecoveryError } from "./device-android-zgD9We85.mjs";
38
+ import { t as selectFromPool } from "./device-pool-mjyUYaau.mjs";
39
39
  import { t as unsupportedPlan } from "./project-plan-BPwbLwQu.mjs";
40
- import { a as refusePlan, i as printPlan, n as planFlagRefusal } from "./build-plan-DH1rT11x.mjs";
40
+ import { a as refusePlan, i as printPlan, n as planFlagRefusal } from "./build-plan-BK34X2iY.mjs";
41
41
  import { join } from "node:path";
42
42
  import { workspaceId } from "@stim-cli/core";
43
43
  import { hostedAndroidStatus, parseMachine } from "@stim-cli/core/state";
@@ -1,6 +1,6 @@
1
- import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-VrXd6qPX.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-Cffz6_Ft.mjs";
3
- import { r as lastBuildRecord, t as androidFacts } from "./result-Epkl6gyG.mjs";
4
- import { i as runAndroidOperation, n as registerAndroid, r as runAndroid, t as androidCommand } from "./android-DhiWSOFU.mjs";
5
- import { a as collectorLogFile, o as killPreviousCollector, s as startCollector } from "./launch-CrGndh8T.mjs";
1
+ import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-CfPW1bKP.mjs";
2
+ import { E as resolveVariant, T as resolveSystemImage, _ as findAapt, b as noDeviceDiagnostic, d as androidVariantSetting, f as apkDevClientFacts, g as dumpApkManifest, h as displayPath, i as NO_FINGERPRINT, p as apkPackage, r as NO_DEVICE, s as androidDevClientScheme, u as androidSystemImageSetting, x as parseXmltree, y as isReleaseVariant } from "./support-S_5nkkzs.mjs";
3
+ import { r as lastBuildRecord, t as androidFacts } from "./result-EOsWV6sp.mjs";
4
+ import { i as runAndroidOperation, n as registerAndroid, r as runAndroid, t as androidCommand } from "./android-BNm5A40S.mjs";
5
+ import { a as collectorLogFile, o as killPreviousCollector, s as startCollector } from "./launch-DxpvL6il.mjs";
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 };
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-3bF4TB8P.mjs";
3
3
  import { D as upsertProject, J as validateDeviceSlot, b as refuseRelativeStimPaths, k as withConfigLockAsync$1, m as getProject } from "./config-D5qNWJEP.mjs";
4
- import { l as phaseLine } from "./command-output-VrXd6qPX.mjs";
4
+ import { l as phaseLine } from "./command-output-CfPW1bKP.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-C6UTYW2K.mjs";
6
- import { c as projectProblem, f as projectRegistry, i as findProjectRoot$1, r as findCommandWorkspaceAsync, t as NO_PROJECT_REFUSAL } from "./project-DCLkDM8C.mjs";
6
+ import { c as projectProblem, f as projectRegistry, i as findProjectRoot$1, r as findCommandWorkspaceAsync, t as NO_PROJECT_REFUSAL } from "./project-Crtcbfl0.mjs";
7
7
  import { n as macosDir } from "./state-CiflgxTP.mjs";
8
8
  import { c as ensureHomeIdentity, s as workspaceShareURL } from "./stim-desktop-1XxET4S8.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-BNEyJ1B_.mjs";
11
- import { ct as withNativeBuildRun, st as runCancellationSignal } from "./toolchain-CGdgD4x4.mjs";
12
- import { d as resolveBuildPlacement } from "./selection-C95m--1_.mjs";
13
- import { c as stopWorkspaceNow } from "./stop-WyrZQuX6.mjs";
14
- import { r as runReload } from "./reload-B-d7-CsI.mjs";
15
- import { m as warmWorktreeTarget, p as removeWorktreeTarget } from "./worktree-BTrii9e_.mjs";
16
- import { i as restoreLightenedDependencies } from "./lightened-DZ9Ip0T3.mjs";
17
- import { c as startDevServer } from "./start-LSwIFlBv.mjs";
18
- import { s as recordDoctorCheck } from "./doctor-watchman-DJY550yz.mjs";
19
- import { c as readSettingsPayload, s as readSettingsContext, t as SettingsRefusal } from "./settings-payload-zf5EnCTg.mjs";
20
- import { a as readDoctorReport } from "./doctor-BGcsAgAV.mjs";
21
- import { i as readGcReport, n as executeGc, o as withGcMaintenanceClaim } from "./gc-B0K4d_PL.mjs";
22
- import { r as readWorkspaceLogs, t as followWorkspaceLogs } from "./logs-C-hfMsxK.mjs";
10
+ import { $ as tapBuildLog, Q as startBuildProgress, X as recordFinishedBuild, tt as errorRemedy } from "./workspaces-C59v9bpD.mjs";
11
+ import { ct as withNativeBuildRun, st as runCancellationSignal } from "./toolchain-Bnm8vUCV.mjs";
12
+ import { d as resolveBuildPlacement } from "./selection-C4ZQz_ER.mjs";
13
+ import { c as stopWorkspaceNow } from "./stop-W4DK8qZq.mjs";
14
+ import { r as runReload } from "./reload-D2TpUlns.mjs";
15
+ import { m as warmWorktreeTarget, p as removeWorktreeTarget } from "./worktree-CinoSsGy.mjs";
16
+ import { i as restoreLightenedDependencies } from "./lightened-Df6II_XI.mjs";
17
+ import { c as startDevServer } from "./start-CLN_r9EG.mjs";
18
+ import { s as recordDoctorCheck } from "./doctor-watchman-CCuboyj1.mjs";
19
+ import { c as readSettingsPayload, s as readSettingsContext, t as SettingsRefusal } from "./settings-payload-CrX933Xi.mjs";
20
+ import { a as readDoctorReport } from "./doctor-sSLtn-j1.mjs";
21
+ import { i as readGcReport, n as executeGc, o as withGcMaintenanceClaim } from "./gc-Dv6nb9nf.mjs";
22
+ import { r as readWorkspaceLogs, t as followWorkspaceLogs } from "./logs-zv3ge7c6.mjs";
23
23
  import { t as readProjectStats } from "./stats-report-B86Cv7Uc.mjs";
24
- import { n as buildAndroidOperation, t as buildIosOperation } from "./build-BpFFbdXD.mjs";
25
- import { a as readAndroidBuildPlan, i as runAndroidOperation } from "./android-DhiWSOFU.mjs";
26
- import { i as readIosBuildPlan, r as runIosOperation } from "./ios-DUL68MI5.mjs";
27
- import { a as buildMacosBundle, i as planMacos, n as runMacos } from "./macos-DZ9ZSolN.mjs";
28
- import { t as runWeb } from "./web-BE89ONcc.mjs";
29
- import { t as mutateSetting } from "./settings-write-Fe0K6BeC.mjs";
24
+ import { n as buildAndroidOperation, t as buildIosOperation } from "./build-VXX_dtl5.mjs";
25
+ import { a as readAndroidBuildPlan, i as runAndroidOperation } from "./android-BNm5A40S.mjs";
26
+ import { i as readIosBuildPlan, r as runIosOperation } from "./ios-D3oK9-O4.mjs";
27
+ import { a as buildMacosBundle, i as planMacos, n as runMacos } from "./macos-C6U-4Iip.mjs";
28
+ import { t as runWeb } from "./web-BdWG8b5_.mjs";
29
+ import { t as mutateSetting } from "./settings-write-DMcT23Kl.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,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-3bF4TB8P.mjs";
3
- import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-VrXd6qPX.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-DVDO2ocE.mjs";
5
- import { $ as cancelledFailure, st as runCancellationSignal } from "./toolchain-CGdgD4x4.mjs";
3
+ import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-CfPW1bKP.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-BrwGIxmV.mjs";
5
+ import { $ as cancelledFailure, st as runCancellationSignal } from "./toolchain-Bnm8vUCV.mjs";
6
6
  import { b as providerDownloadPath, y as prepareProviderDownloadDir } from "./build-cache-BsKim4V7.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-DhJOvSvh.mjs";
8
- import { a as missingPackageManagerRemedy, i as fingerprintMismatchRemedy, l as requireLocalBuild, n as automaticBuild, o as namedBuildMachine, t as OffloadRefusal } from "./selection-C95m--1_.mjs";
9
- import { f as formatDiagnostic } from "./react-native-build-vK2lFYfN.mjs";
10
- import { u as skippedMissReason } from "./prebuild-D0hvmO4j.mjs";
11
- import { t as buildPlacementRecord } from "./placement-log-CFT8SnlS.mjs";
12
- import { n as settleArtifactUploads, t as acquireArtifact } from "./acquire-artifact-P84h3ssa.mjs";
13
- import { a as PLATFORM, h as displayPath } from "./support-Cffz6_Ft.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-lDmA-5jx.mjs";
8
+ import { a as missingPackageManagerRemedy, i as fingerprintMismatchRemedy, l as requireLocalBuild, n as automaticBuild, o as namedBuildMachine, t as OffloadRefusal } from "./selection-C4ZQz_ER.mjs";
9
+ import { f as formatDiagnostic } from "./react-native-build-DhWBUV_H.mjs";
10
+ import { u as skippedMissReason } from "./prebuild-CyNrUWgV.mjs";
11
+ import { t as buildPlacementRecord } from "./placement-log-CRL0IY-k.mjs";
12
+ import { n as settleArtifactUploads, t as acquireArtifact } from "./acquire-artifact-CI9fIokp.mjs";
13
+ import { a as PLATFORM, h as displayPath } from "./support-S_5nkkzs.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,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-3bF4TB8P.mjs";
3
- import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-VrXd6qPX.mjs";
4
- import { Dn as RESOLVE_TIMEOUT_MS, Mn as isEasAuthFailureText, jn as easAuthNote } from "./ccache-DVDO2ocE.mjs";
5
- import { $ as cancelledFailure, A as COMPILATION_CACHE_NOT_RUN, F as compilationCacheActivityLine, st as runCancellationSignal } from "./toolchain-CGdgD4x4.mjs";
3
+ import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-CfPW1bKP.mjs";
4
+ import { Dn as RESOLVE_TIMEOUT_MS, Mn as isEasAuthFailureText, jn as easAuthNote } from "./ccache-BrwGIxmV.mjs";
5
+ import { $ as cancelledFailure, A as COMPILATION_CACHE_NOT_RUN, F as compilationCacheActivityLine, st as runCancellationSignal } from "./toolchain-Bnm8vUCV.mjs";
6
6
  import { T as storedAppId, b as providerDownloadPath, x as providerUploadOutcome, y as prepareProviderDownloadDir } from "./build-cache-BsKim4V7.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-DhJOvSvh.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-C95m--1_.mjs";
9
- import { S as xcodeFailureReport, p as printDiagnostics } from "./support-Cs24xRQa.mjs";
10
- import { f as settleFingerprintCheck, u as skippedMissReason } from "./prebuild-D0hvmO4j.mjs";
11
- import { t as buildPlacementRecord } from "./placement-log-CFT8SnlS.mjs";
12
- import { n as settleArtifactUploads, t as acquireArtifact } from "./acquire-artifact-P84h3ssa.mjs";
13
- import { r as finishIosUpload, t as IosRecipeRefusal } from "./ios-project-Br1tVYWX.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-lDmA-5jx.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-C4ZQz_ER.mjs";
9
+ import { S as xcodeFailureReport, p as printDiagnostics } from "./support-NxnD8QXd.mjs";
10
+ import { f as settleFingerprintCheck, u as skippedMissReason } from "./prebuild-CyNrUWgV.mjs";
11
+ import { t as buildPlacementRecord } from "./placement-log-CRL0IY-k.mjs";
12
+ import { n as settleArtifactUploads, t as acquireArtifact } from "./acquire-artifact-CI9fIokp.mjs";
13
+ import { r as finishIosUpload, t as IosRecipeRefusal } from "./ios-project-DDQlX_jX.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,11 +1,11 @@
1
1
  import { m as getProject, v as loadConfig$1 } from "./config-D5qNWJEP.mjs";
2
- import { m as peekBudget } from "./ccache-DVDO2ocE.mjs";
2
+ import { m as peekBudget } from "./ccache-BrwGIxmV.mjs";
3
3
  import { z as readHostMemoryPressureAsync } from "./ios-CdAV4-1E.mjs";
4
- import { _ as hostingMachines, o as namedBuildMachine, u as resolveBuildMachine } from "./selection-C95m--1_.mjs";
5
- import { c as call, l as connectHost, m as requireHostedAppMode } from "./hosted-client-5ur3YpxY.mjs";
4
+ import { _ as hostingMachines, o as namedBuildMachine, u as resolveBuildMachine } from "./selection-C4ZQz_ER.mjs";
5
+ import { c as call, l as connectHost, m as requireHostedAppMode } from "./hosted-client-Hs-fD4L3.mjs";
6
6
  import { c as writeHostedNativeAsync, r as readHostedNative } from "./ios-state-BEIJRJ7P.mjs";
7
- import { i as prepareHostedNative } from "./hosted-native-kaR4nUHk.mjs";
8
- import { d as peekDeviceSlots, t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-Du5wBTNJ.mjs";
7
+ import { i as prepareHostedNative } from "./hosted-native-Bh9IJ_t5.mjs";
8
+ import { d as peekDeviceSlots, t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-Bki6B-7h.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";
@@ -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-3bF4TB8P.mjs";
3
3
  import { m as getProject } from "./config-D5qNWJEP.mjs";
4
- import { l as phaseLine } from "./command-output-VrXd6qPX.mjs";
4
+ import { l as phaseLine } from "./command-output-CfPW1bKP.mjs";
5
5
  import { N as metroPortSetting, a as SETTING_SHAPE_REMEDY, ct as webSettings } from "./settings-C6UTYW2K.mjs";
6
- import { b as isPackageResolvable, v as detectIsExpo } from "./project-DCLkDM8C.mjs";
6
+ import { b as isPackageResolvable, v as detectIsExpo } from "./project-Crtcbfl0.mjs";
7
7
  import { d as resolveProjectMetro } from "./metro-mKHEMO-a.mjs";
8
8
  import { c as readNdjsonGenerations$1 } from "./ndjson-CrjIsGzw.mjs";
9
- import { Wt as readMetroRecords } from "./ccache-DVDO2ocE.mjs";
9
+ import { Wt as readMetroRecords } from "./ccache-BrwGIxmV.mjs";
10
10
  import { f as webLogFile, m as webSupervisorLogFile, o as readWebRecord, s as updateWebRecord } from "./state-CM_HvvkS.mjs";
11
- import { ft as teardownBrowserHeld, x as resolveSupervisorTarget } from "./workspaces-BNEyJ1B_.mjs";
11
+ import { ft as teardownBrowserHeld, x as resolveSupervisorTarget } from "./workspaces-C59v9bpD.mjs";
12
12
  import { i as reserveBrowserPort, n as getNamedPort } from "./named-ports-B0hCk2v-.mjs";
13
13
  import { n as sendToOwnedPage, t as liveWebRecord } from "./page-CQJlcj3x.mjs";
14
- import { o as resolveWorkspaceMetroPort } from "./start-LSwIFlBv.mjs";
14
+ import { o as resolveWorkspaceMetroPort } from "./start-CLN_r9EG.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";
@@ -1,28 +1,28 @@
1
1
  import { c as throwIfCancelled, s as cancelledError, x as withDrainingCancellation } from "./exec-aULwtNly.mjs";
2
2
  import { E as workspaceDir, a as recordWorkspaceUseAsync, k as workspaceLogsDir } from "./workspace-state-3bF4TB8P.mjs";
3
3
  import { D as upsertProject, k as withConfigLockAsync, m as getProject, u as getConcurrencyLimits } from "./config-D5qNWJEP.mjs";
4
- import { l as phaseLine } from "./command-output-VrXd6qPX.mjs";
4
+ import { l as phaseLine } from "./command-output-CfPW1bKP.mjs";
5
5
  import { J as resolveCacheProviderConfig, Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY } from "./settings-C6UTYW2K.mjs";
6
- import { f as projectRegistry, v as detectIsExpo } from "./project-DCLkDM8C.mjs";
6
+ import { f as projectRegistry, v as detectIsExpo } from "./project-Crtcbfl0.mjs";
7
7
  import { s as workspaceShareURL } from "./stim-desktop-1XxET4S8.mjs";
8
8
  import { j as hostSystemImageArch } from "./android-DsEj2CCs.mjs";
9
9
  import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
10
- import { An as checkEasAuth, Rn as resolveRemote, zn as uploadRemote } from "./ccache-DVDO2ocE.mjs";
11
- import { $ as tapBuildLog, Q as startBuildProgress, St as acquireBuildSlot, Tt as releaseBuildSlot, X as recordFinishedBuild, ct as recordRunStats, it as readRunEstimates, lt as statsProjectKey, rt as createRunRecorder } from "./workspaces-BNEyJ1B_.mjs";
12
- import { H as readBundleId, ct as withNativeBuildRun, st as runCancellationSignal } from "./toolchain-CGdgD4x4.mjs";
13
- import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-Dw4N_RFe.mjs";
10
+ import { An as checkEasAuth, Rn as resolveRemote, zn as uploadRemote } from "./ccache-BrwGIxmV.mjs";
11
+ import { $ as tapBuildLog, Q as startBuildProgress, St as acquireBuildSlot, Tt as releaseBuildSlot, X as recordFinishedBuild, ct as recordRunStats, it as readRunEstimates, lt as statsProjectKey, rt as createRunRecorder } from "./workspaces-C59v9bpD.mjs";
12
+ import { H as readBundleId, ct as withNativeBuildRun, st as runCancellationSignal } from "./toolchain-Bnm8vUCV.mjs";
13
+ import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-yjH7Q3zn.mjs";
14
14
  import { T as storedAppId, x as providerUploadOutcome } from "./build-cache-BsKim4V7.mjs";
15
15
  import { m as listIosRuntimes } from "./ios-CdAV4-1E.mjs";
16
16
  import { d as optimizationBuildProfile, l as artifactCachePolicy } from "./errors-DHm_U5gv.mjs";
17
- import { S as setRemoteLogSink } from "./client-DhJOvSvh.mjs";
18
- import { d as resolveBuildPlacement } from "./selection-C95m--1_.mjs";
19
- import { c as iosProjectPathError, g as resolveIosBuildSetup, m as resolveConfiguration, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-Cs24xRQa.mjs";
20
- import { f as settleFingerprintCheck } from "./prebuild-D0hvmO4j.mjs";
21
- import { n as ensureWorkspaceStorageSafely } from "./native-runtime-D4qgnjK_.mjs";
22
- import { t as acquireAndroidArtifact } from "./artifact-ta3xA0c4.mjs";
23
- import { a as persistLastBuild, l as resolveAndroidBuildPlan, n as finishAndroidUpload } from "./result-Epkl6gyG.mjs";
24
- import { o as lastBuildRecord } from "./ios-project-Br1tVYWX.mjs";
25
- import { t as acquireIosArtifact } from "./artifact-Cr34-Yyy.mjs";
17
+ import { S as setRemoteLogSink } from "./client-lDmA-5jx.mjs";
18
+ import { d as resolveBuildPlacement } from "./selection-C4ZQz_ER.mjs";
19
+ import { c as iosProjectPathError, g as resolveIosBuildSetup, m as resolveConfiguration, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-NxnD8QXd.mjs";
20
+ import { f as settleFingerprintCheck } from "./prebuild-CyNrUWgV.mjs";
21
+ import { n as ensureWorkspaceStorageSafely } from "./native-runtime-DQfxW5Au.mjs";
22
+ import { t as acquireAndroidArtifact } from "./artifact-C8Nvp07y.mjs";
23
+ import { a as persistLastBuild, l as resolveAndroidBuildPlan, n as finishAndroidUpload } from "./result-EOsWV6sp.mjs";
24
+ import { o as lastBuildRecord } from "./ios-project-DDQlX_jX.mjs";
25
+ import { t as acquireIosArtifact } from "./artifact-k1x9Jrn0.mjs";
26
26
  import { constants, promises } from "node:fs";
27
27
  import { basename, join } from "node:path";
28
28
  import { hostSimulatorArch } from "@stim-cli/core";
@@ -1,10 +1,10 @@
1
1
  import { T as trackReportResource } from "./exec-aULwtNly.mjs";
2
- import { i as formatDuration, l as phaseLine, m as shortHash, u as plural } from "./command-output-VrXd6qPX.mjs";
2
+ import { i as formatDuration, l as phaseLine, m as shortHash, u as plural } from "./command-output-CfPW1bKP.mjs";
3
3
  import { an as makeTemporaryDirectory, sn as removeTemporaryEntryAsync } from "./settings-C6UTYW2K.mjs";
4
- import { jn as easAuthNote } from "./ccache-DVDO2ocE.mjs";
5
- import { at as readStats, q as estimateBuild } from "./workspaces-BNEyJ1B_.mjs";
4
+ import { jn as easAuthNote } from "./ccache-BrwGIxmV.mjs";
5
+ import { at as readStats, q as estimateBuild } from "./workspaces-C59v9bpD.mjs";
6
6
  import { s as entryDir, t as artifactIn } from "./build-cache-BsKim4V7.mjs";
7
- import { l as predictBuildMiss, o as staleNativeDirRefusal } from "./prebuild-D0hvmO4j.mjs";
7
+ import { l as predictBuildMiss, o as staleNativeDirRefusal } from "./prebuild-CyNrUWgV.mjs";
8
8
  import chalk from "chalk";
9
9
  import { PROVIDER_LOAD_TIMEOUT_ENV, PROVIDER_LOAD_TIMEOUT_MS, buildResolveTimeoutMs, resolveTieredBuild, timeoutFromEnv } from "@stim-cli/cache";
10
10
  //#region src/commands/build-plan.ts
@@ -2,23 +2,23 @@ import { D as ownership_claim_exports, E as debugLog, S as process_identity_expo
2
2
  import { D as workspaceId$1, E as workspaceDir, M as withDirLock$1, b as sharedCcache$1, d as writeWorkspaceState, j as workspaceStateFile$1, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, r as readWorkspaceState$1, t as clearWorkspaceStateKey, y as sharedBuildCache } from "./workspace-state-3bF4TB8P.mjs";
3
3
  import { F as formatBytes, I as isOnMountedVolume, K as projectDeviceSlots, N as directorySize, P as directorySizeAsync, R as measuredDirectorySizeAsync, U as deviceSlotPlatforms, a as clearDevice, d as getConfigDir, k as withConfigLockAsync$1, m as getProject, o as clearSupervisor, v as loadConfig$1, z as volumeRootFor } from "./config-D5qNWJEP.mjs";
4
4
  import { n as stripAnsi } from "./process-output-Fpl8PYi8.mjs";
5
- import { a as formatElapsed, l as phaseLine, o as formatLongDuration, s as isAppLaunchError, u as plural } from "./command-output-VrXd6qPX.mjs";
5
+ import { a as formatElapsed, l as phaseLine, o as formatLongDuration, s as isAppLaunchError, u as plural } from "./command-output-CfPW1bKP.mjs";
6
6
  import { a as killOnAbort, n as runOperationFileQuiet, r as childEnvironment, t as runOperationFile } from "./operation-exec-Dp4FuIGR.mjs";
7
7
  import { Z as resolveProjectSettingsAsync, d as androidLayoutSetting, ft as planMetroReach, m as defaultAndroidLayout } from "./settings-C6UTYW2K.mjs";
8
- import { C as resolvePackageJson, M as readMetroTunnel, N as readPidFile, P as readRemoteSession, i as findProjectRoot$1, j as clearWorkspaceSupervisor, k as clearRemoteSession, s as ownedDeviceLabel, v as detectIsExpo } from "./project-DCLkDM8C.mjs";
8
+ import { C as resolvePackageJson, M as readMetroTunnel, N as readPidFile, P as readRemoteSession, i as findProjectRoot$1, j as clearWorkspaceSupervisor, k as clearRemoteSession, s as ownedDeviceLabel, v as detectIsExpo } from "./project-Crtcbfl0.mjs";
9
9
  import { R as listAvdsAsync, U as ownedAvdDirectory, X as parseAvdSystemImage, Y as parseAvdDeviceProfile, d as androidToolPath, ft as isStimOwnedAvd, gt as dropParked, m as avdIniPaths, o as androidHome, pt as isStimOwnedSim, q as ownedAvdSerialResolverAsync, xt as readParked, y as avdStorageRoots, z as listInstalledSystemImages } from "./android-DsEj2CCs.mjs";
10
10
  import { a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, h as isMetroRunning, r as killMetroTreeAsync, u as processCwds } from "./metro-mKHEMO-a.mjs";
11
11
  import { c as readNdjsonGenerations$1, i as createNdjsonWriter, r as createNdjsonTail } from "./ndjson-CrjIsGzw.mjs";
12
- import { T as formatSpace, a as removeEasSessionClaim, d as parseWatchRoots, f as parseWatchmanClients, i as recordEasSessionClaim, l as parseSubscriberNames, n as easMachineStateRoot$1, o as removeEasSessionClaimAsync, p as parseWatchmanPid, r as readEasSessionLedger$1, s as compareStimVersions, t as assertEasMachineRootWritable, u as parseTriggerCount, w as environmentState, y as capacity } from "./eas-session-ledger-aFBLTZr2.mjs";
12
+ import { T as formatSpace, a as removeEasSessionClaim, d as parseWatchRoots, f as parseWatchmanClients, i as recordEasSessionClaim, l as parseSubscriberNames, n as easMachineStateRoot$1, o as removeEasSessionClaimAsync, p as parseWatchmanPid, r as readEasSessionLedger$1, s as compareStimVersions, t as assertEasMachineRootWritable, u as parseTriggerCount, w as environmentState, y as capacity } from "./eas-session-ledger-B-nTfdfk.mjs";
13
13
  import { i as registeredCaches, r as register } from "./cache-manifest-CfiEny4T.mjs";
14
- import { At as mapLimited, B as workspaceBuildInProgress, Dt as createGcResults, Et as GC_OUTPUT, F as collectOwnedDeviceActivityAsync, L as idleShutdownCandidates, Mt as sizeConcurrency, N as collectIdleDevicesAsync, _t as teardownParkedIosSim, bt as measureDu, dt as eraseParkedIosSim, gt as teardownParkedAvd, ht as teardownOwnedIosSim, i as clearWorkspaceOutputs, l as keptByLock, o as collectWorkspaceOutputs, pt as teardownOwnedAvd, ut as eraseParkedAvd, v as withIdleWorkspace, vt as probePublicHttp, wt as listBuildSlots, x as resolveSupervisorTarget, xt as writeUsageCache, yt as canonical$1, z as shutDownIdleDevices } from "./workspaces-BNEyJ1B_.mjs";
14
+ import { At as mapLimited, B as workspaceBuildInProgress, Dt as createGcResults, Et as GC_OUTPUT, F as collectOwnedDeviceActivityAsync, L as idleShutdownCandidates, Mt as sizeConcurrency, N as collectIdleDevicesAsync, _t as teardownParkedIosSim, bt as measureDu, dt as eraseParkedIosSim, gt as teardownParkedAvd, ht as teardownOwnedIosSim, i as clearWorkspaceOutputs, l as keptByLock, o as collectWorkspaceOutputs, pt as teardownOwnedAvd, ut as eraseParkedAvd, v as withIdleWorkspace, vt as probePublicHttp, wt as listBuildSlots, x as resolveSupervisorTarget, xt as writeUsageCache, yt as canonical$1, z as shutDownIdleDevices } from "./workspaces-C59v9bpD.mjs";
15
15
  import { t as canonicalPath } from "./paths-BsJMoPP2.mjs";
16
- import { it as nativeRunWaitNotice, st as runCancellationSignal, ut as claimForEmptying } from "./toolchain-CGdgD4x4.mjs";
17
- import { N as listBuildLocks, b as leaseIsExpired, g as workspaceActivity, o as envDir, p as readHostProcessTableAsync, x as listLeaseFiles } from "./activity-Dw4N_RFe.mjs";
16
+ import { it as nativeRunWaitNotice, st as runCancellationSignal, ut as claimForEmptying } from "./toolchain-Bnm8vUCV.mjs";
17
+ import { N as listBuildLocks, b as leaseIsExpired, g as workspaceActivity, o as envDir, p as readHostProcessTableAsync, x as listLeaseFiles } from "./activity-yjH7Q3zn.mjs";
18
18
  import { l as expoConfigContents } from "./build-cache-BsKim4V7.mjs";
19
19
  import { G as deviceHoldsBundle, O as sanitizeDeviceLabel, W as deviceHoldsApk, b as parseSimctlList, f as listAllIosSimsAsync, g as listUserApps, j as uninstallIosApp, p as listIosDeviceTypesAsync, u as iosSimulatorFailureAdvice, y as parseRuntimeVersion } from "./ios-CdAV4-1E.mjs";
20
20
  import { n as supervisorError } from "./errors-DHm_U5gv.mjs";
21
- import { c as findBinUpward, n as expoBinFromPackage, r as expoBinPath, s as expoTelemetryEnv } from "./server-expo-CP4dURQp.mjs";
21
+ import { c as findBinUpward, n as expoBinFromPackage, r as expoBinPath, s as expoTelemetryEnv } from "./server-expo-BLxcN2x2.mjs";
22
22
  import { t as DEV_MENU_LAUNCH_ARGS } from "./ios-device-CiBA-er9.mjs";
23
23
  import { t as resolveMaintenanceSettings } from "./settings-D9LtQaUw.mjs";
24
24
  import { createRequire } from "node:module";
@@ -5,23 +5,23 @@ import { runId, trace } from "@stim-cli/core/state";
5
5
  import { Command } from "commander";
6
6
  //#region bin/cli.ts
7
7
  const commands = /* @__PURE__ */ new Map([
8
- ["doctor", () => import("./doctor-B6kIVgU9.mjs")],
9
- ["worktree", () => import("./worktree-DB3Ypdj6.mjs")],
10
- ["start", () => import("./start-BXl5tkv8.mjs")],
11
- ["ports", () => import("./ports-BNtJ5DCj.mjs")],
12
- ["stop", () => import("./stop-4SAV_RR8.mjs")],
13
- ["ios", () => import("./ios-BKR-Dq46.mjs")],
14
- ["android", () => import("./android-aIuJZoDu.mjs")],
15
- ["web", () => import("./web-DQPxvFVD.mjs")],
16
- ["macos", () => import("./macos-DNmKwfDy.mjs")],
17
- ["reload", () => import("./reload-BS_ntVV_.mjs")],
18
- ["device", () => import("./device-C2WsPgFt.mjs")],
19
- ["logs", () => import("./logs-DpIKWT3A.mjs")],
20
- ["settings", () => import("./settings-CjTRNCi3.mjs")],
21
- ["status", () => import("./status-DBMD7ZQT.mjs")],
22
- ["stats", () => import("./stats-EgpYD536.mjs")],
23
- ["gc", () => import("./gc-DASUa3Z_.mjs")],
24
- ["guide", () => import("./guide-Civo5-zV.mjs")]
8
+ ["doctor", () => import("./doctor-CNZuvTSe.mjs")],
9
+ ["worktree", () => import("./worktree-K9F50fD_.mjs")],
10
+ ["start", () => import("./start-CquYgzVf.mjs")],
11
+ ["ports", () => import("./ports-CKktj5lV.mjs")],
12
+ ["stop", () => import("./stop-RZqER_Ww.mjs")],
13
+ ["ios", () => import("./ios-D1XKSITX.mjs")],
14
+ ["android", () => import("./android-D56S_GX3.mjs")],
15
+ ["web", () => import("./web-DwuluWJt.mjs")],
16
+ ["macos", () => import("./macos-CbRZheLw.mjs")],
17
+ ["reload", () => import("./reload-f9hvEHE9.mjs")],
18
+ ["device", () => import("./device-CeIikWac.mjs")],
19
+ ["logs", () => import("./logs-CuWJWF88.mjs")],
20
+ ["settings", () => import("./settings-jeS0WmUF.mjs")],
21
+ ["status", () => import("./status-Bhdy07v0.mjs")],
22
+ ["stats", () => import("./stats-BVEZuSlg.mjs")],
23
+ ["gc", () => import("./gc-By2Kc-Ek.mjs")],
24
+ ["guide", () => import("./guide-CwpsGWTJ.mjs")]
25
25
  ]);
26
26
  const pkg = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf-8"));
27
27
  const program = new Command();