stim 1.20.1 → 1.20.2

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 (157) hide show
  1. package/README.md +6 -3
  2. package/dist/{activity-BaMpUQ4-.mjs → activity-BSV745Kz.mjs} +4 -4
  3. package/dist/{agent-device-usage-output-VPaOgGaF.mjs → agent-device-usage-output-Dzgv6lgR.mjs} +5 -6
  4. package/dist/{android-CLbBJ2ve.mjs → android-DCKZrNvV.mjs} +37 -38
  5. package/dist/{android-eXfIjKJr.mjs → android-Dlzxshgp.mjs} +5 -5
  6. package/dist/{android-CZh6ElG5.mjs → android-HqP1_vB_.mjs} +3 -3
  7. package/dist/{android-DE8-JfGW.mjs → android-Mz_Inn3w.mjs} +10 -10
  8. package/dist/{android-cas-BFpS84v2.mjs → android-cas-Bl-cLJBk.mjs} +4 -4
  9. package/dist/android-cas-compiler.mjs +1 -1
  10. package/dist/{api-zuX3ynYN.mjs → api-qvOzWyfO.mjs} +1 -1
  11. package/dist/api-run.mjs +19 -21
  12. package/dist/api.mjs +1 -1
  13. package/dist/{app-install-Cg9YJy3x.mjs → app-install-BIKtMfPq.mjs} +71 -48
  14. package/dist/{artifact-DXk_Fle_.mjs → artifact-D3czlUvT.mjs} +13 -13
  15. package/dist/{artifact-Ctb2jpw6.mjs → artifact-HSwkIWEQ.mjs} +12 -12
  16. package/dist/{browser-web-xQWC2RWl.mjs → browser-web-CA-F1GQo.mjs} +18 -18
  17. package/dist/{budget-RFbwFpG5.mjs → budget-f7516Zk0.mjs} +23 -26
  18. package/dist/{build-COBA1tBc.mjs → build-DYDbfkk5.mjs} +28 -33
  19. package/dist/{build-plan-CRjAA6Qi.mjs → build-plan-B7SZsc2N.mjs} +17 -17
  20. package/dist/{cache-manifest-qA3dT2x2.mjs → cache-manifest-XH-fvDUj.mjs} +10 -5
  21. package/dist/cache-manifest.mjs +1 -1
  22. package/dist/cancellation-C_22VQTH.mjs +24 -0
  23. package/dist/{ccache-CtbqWxIC.mjs → ccache-zdKiYQ3E.mjs} +7 -7
  24. package/dist/{chrome-Dp2lMLBe.mjs → chrome-BnzZMqsR.mjs} +1 -1
  25. package/dist/{cli-sGqlPu1n.mjs → cli-CLP3diBm.mjs} +20 -20
  26. package/dist/cli.mjs +1 -1
  27. package/dist/{client-zqjFd79D.mjs → client-qQAaXSUs.mjs} +21 -29
  28. package/dist/collector-run.d.mts +7 -6
  29. package/dist/collector-run.mjs +6 -7
  30. package/dist/{command-output-CPDq_90S.mjs → command-output-BTy8hZ0F.mjs} +1 -1
  31. package/dist/{config-D0LhTY3S.mjs → config-BYDxlMY3.mjs} +43 -5
  32. package/dist/{created-devices-CXBMtoj5.mjs → created-devices-Dzd5C2LF.mjs} +2 -2
  33. package/dist/{dependency-state-B2m8eqsS.mjs → dependency-state-DG0p31-y.mjs} +2 -2
  34. package/dist/{detached-entry-BXq4fIl-.mjs → detached-entry-B9C_zeQC.mjs} +1 -1
  35. package/dist/{dev-client-BqYjMIaC.mjs → dev-client-DAWVIGBu.mjs} +2 -2
  36. package/dist/{device-D4DqjSZZ.mjs → device-BECOiufl.mjs} +13 -14
  37. package/dist/{device-BgNj-qVj.mjs → device-DuiPJQSn.mjs} +8 -8
  38. package/dist/{device-capacity-DrwHwR97.mjs → device-capacity-CBUAcRyQ.mjs} +10 -11
  39. package/dist/device-host-worker.mjs +16 -17
  40. package/dist/{device-ios-DE8KJd3b.mjs → device-ios-COSi6oS1.mjs} +12 -15
  41. package/dist/{device-lease-C309csaB.mjs → device-lease-BX1sJQ2E.mjs} +12 -16
  42. package/dist/{device-lease-run-Baelt3nc.mjs → device-lease-run-Cw2M4z51.mjs} +4 -4
  43. package/dist/{device-pool-DtK9S6AD.mjs → device-pool-Bf-pOhSw.mjs} +3 -3
  44. package/dist/{device-remote-DjsNw8DD.mjs → device-remote-xRT0Vmo9.mjs} +14 -14
  45. package/dist/{doctor-DiP9HsIP.mjs → doctor-CB8oZKCk.mjs} +13 -13
  46. package/dist/{doctor-Dunu3Nv1.mjs → doctor-kfMBnUw6.mjs} +78 -69
  47. package/dist/{doctor-watchman-XJzT8tK-.mjs → doctor-watchman-BRyV2adA.mjs} +7 -9
  48. package/dist/{eas-build-0gadvrca.mjs → eas-build-JyfqyHfC.mjs} +5 -5
  49. package/dist/{eas-session-ledger-DJDeL4Uq.mjs → eas-session-ledger-Cm0Gwq2F.mjs} +6 -4
  50. package/dist/{error-diagnostics-BhQtoLrZ.mjs → error-diagnostics-BR677IDM.mjs} +10 -10
  51. package/dist/{exec-B81Qodjn.mjs → exec-DqKo9GKJ.mjs} +22 -8
  52. package/dist/{gc-D5cz5G0k.mjs → gc-qWOMdnER.mjs} +74 -23
  53. package/dist/git-DDfFzkMm.mjs +45 -0
  54. package/dist/{gradle-CZZo1TSA.mjs → gradle-DSrXb6lG.mjs} +6 -6
  55. package/dist/{guide-DakjcoUt.mjs → guide-G9cAbVAc.mjs} +56 -18
  56. package/dist/{hosted-android-C-D8Dj0_.mjs → hosted-android-C3MHGld1.mjs} +3 -3
  57. package/dist/{hosted-client--hNFgixu.mjs → hosted-client-ZEKpS9vw.mjs} +19 -11
  58. package/dist/{hosted-ios-Chx9XQyI.mjs → hosted-ios-l-o3iM9J.mjs} +1 -1
  59. package/dist/{hosted-logs-Bkz0Hxzh.mjs → hosted-logs-EzQM7-3Z.mjs} +7 -7
  60. package/dist/{hosted-macos-ckTjN-0V.mjs → hosted-macos-BACVAVqE.mjs} +10 -8
  61. package/dist/{hosted-native-3KXZ5-qn.mjs → hosted-native-A4s1QPXe.mjs} +13 -11
  62. package/dist/{idle-shutdown-DhAUyf5s.mjs → idle-shutdown-DtxhPTKe.mjs} +7 -7
  63. package/dist/{ios-BDBN-xpf.mjs → ios-BwVCF7oA.mjs} +8 -8
  64. package/dist/{ios-CQ8bHQXB.mjs → ios-Ce7bc7br.mjs} +29 -29
  65. package/dist/{ios-o896T9PE.mjs → ios-RkW4pnQf.mjs} +6 -6
  66. package/dist/{ios-device-B1B14xND.mjs → ios-device-B5veSDDQ.mjs} +1 -1
  67. package/dist/{ios-device-BWHKGaJq.mjs → ios-device-D7pi2Sca.mjs} +14 -14
  68. package/dist/{ios-VGvNdsv2.mjs → ios-nOLJGVdy.mjs} +1 -1
  69. package/dist/{ios-project-BeOXKPt2.mjs → ios-project-K9hY_Jab.mjs} +8 -8
  70. package/dist/{ios-state-BsXMwo5y.mjs → ios-state-CBLe1xYw.mjs} +1 -1
  71. package/dist/{js-swap-Z_mSuRrx.mjs → js-swap-Bb3nsS07.mjs} +13 -13
  72. package/dist/{launch-BootbMk4.mjs → launch-C3qJ6Agb.mjs} +46 -45
  73. package/dist/{launch-V1zqiOYn.mjs → launch-F4sOqAhB.mjs} +21 -21
  74. package/dist/{launch-verify-Dl78EVgR.mjs → launch-verify-B6Q8hZP-.mjs} +11 -11
  75. package/dist/{logs-Bh4eqCCc.mjs → logs-BGrEUaEs.mjs} +10 -11
  76. package/dist/{macos-D7irBW3A.mjs → macos-Ch5VJmcS.mjs} +40 -24
  77. package/dist/macos-D7uDvO-z.mjs +2 -0
  78. package/dist/macos-run.mjs +1 -1
  79. package/dist/maintenance-run.mjs +7 -7
  80. package/dist/{metro-_ZIE3Axg.mjs → metro-DnCEjCxs.mjs} +8 -9
  81. package/dist/{metro-gateway-BzlQZQmU.mjs → metro-gateway-CX9Xlkq2.mjs} +3 -3
  82. package/dist/{miss-reason-SuTptY-I.mjs → miss-reason-mKzZ4VvN.mjs} +3 -3
  83. package/dist/{named-ports-O1TIl7tx.mjs → named-ports-4WopRPg-.mjs} +4 -5
  84. package/dist/{native-android-D94RlJ-X.mjs → native-android-D5qc3-_v.mjs} +10 -10
  85. package/dist/{native-gradle-inputs-BQnIdAlL.mjs → native-gradle-inputs-BsLRrl7u.mjs} +3 -10
  86. package/dist/{native-runtime-D024BAvm.mjs → native-runtime-k8dTIrbK.mjs} +7 -8
  87. package/dist/{native-xcode-inputs-UElfGs59.mjs → native-xcode-inputs-CykopJdM.mjs} +7 -8
  88. package/dist/{native-xcode-ios-CjS-nDVY.mjs → native-xcode-ios-Bbf30Gm0.mjs} +15 -15
  89. package/dist/offload-worker.mjs +34 -38
  90. package/dist/{ownership-BrjepDiv.mjs → ownership-DCtw_2IA.mjs} +3 -3
  91. package/dist/{page-Bv9s2KwY.mjs → page-DRHy329N.mjs} +1 -1
  92. package/dist/{placement-log-BItXET1x.mjs → placement-log-MOfPVgaM.mjs} +1 -1
  93. package/dist/{plan-Jwu_vr-F.mjs → plan-C4TjdPsR.mjs} +10 -10
  94. package/dist/{plan-placement-B466UYMU.mjs → plan-placement-V0TdzYXp.mjs} +3 -3
  95. package/dist/{ports-BFRL6JTj.mjs → ports-DdSUicVo.mjs} +3 -3
  96. package/dist/{prebuild-DB_zLOLc.mjs → prebuild-DYbucPXy.mjs} +7 -8
  97. package/dist/{preview-BRLFRhTz.mjs → preview-78a9kR_-.mjs} +31 -24
  98. package/dist/{project-DX8fXyw_.mjs → project-_phNIJfs.mjs} +15 -16
  99. package/dist/{pull-request-vOhLNmIb.mjs → pull-request-CQ8sPbZa.mjs} +5 -18
  100. package/dist/pull-requests.mjs +1 -1
  101. package/dist/{react-native-android-CuXM3QS8.mjs → react-native-android-CM1XRDwv.mjs} +34 -30
  102. package/dist/{react-native-build-JUF31S8U.mjs → react-native-build-CtCccJtb.mjs} +6 -6
  103. package/dist/{react-native-doctor-BQHqiXaQ.mjs → react-native-doctor-CfRnFfjs.mjs} +5 -5
  104. package/dist/{react-native-ios-DtVO4qf2.mjs → react-native-ios-Dhq_eiYQ.mjs} +14 -14
  105. package/dist/{recordings-Bk-VivUV.mjs → recordings-D0d5aQt0.mjs} +1 -1
  106. package/dist/{reload-D9V7D8gP.mjs → reload-C8JhxjSh.mjs} +17 -17
  107. package/dist/{remote-CZiTijxG.mjs → remote-BiR6aYjy.mjs} +7 -7
  108. package/dist/{remote-cache-fxcl5C-L.mjs → remote-cache-OyOyVIS3.mjs} +4 -4
  109. package/dist/{result-BrfgXtdO.mjs → result-CaJg5Iat.mjs} +8 -8
  110. package/dist/{run-ClC8UVB5.mjs → run-BtPgpKks.mjs} +3 -3
  111. package/dist/{server-bare-dWjAarki.mjs → server-bare-R2m_gsH8.mjs} +3 -3
  112. package/dist/{server-command-DnJYLnr4.mjs → server-command-CTtCkmcQ.mjs} +5 -5
  113. package/dist/server-expo-Bigriskl.mjs +2 -0
  114. package/dist/{server-expo-CUuzP9Mp.mjs → server-expo-DsguMGUF.mjs} +5 -10
  115. package/dist/{settings-Bbztm4oV.mjs → settings-B717odTD.mjs} +74 -115
  116. package/dist/{settings-BuKMOANA.mjs → settings-BORNaaCO.mjs} +5 -5
  117. package/dist/{simslim-ChMfe8rg.mjs → simslim-CCr3rE-A.mjs} +2 -3
  118. package/dist/{slot-launch-CeCRr6MK.mjs → slot-launch-DPt0m9Nd.mjs} +6 -6
  119. package/dist/{spawn-claims-Kqiifsk2.mjs → spawn-claims-DVS5RkMS.mjs} +1 -1
  120. package/dist/{stage-BNKKdDNc.mjs → stage-KNTQopqv.mjs} +9 -9
  121. package/dist/{start-CRkG-mZ7.mjs → start-BWqzODpb.mjs} +19 -20
  122. package/dist/{start-mh6bS27z.mjs → start-TXeMmmO2.mjs} +1 -1
  123. package/dist/{state-BUpAmt2r.mjs → state-CG_OFoaA.mjs} +2 -2
  124. package/dist/{state-lqxdOH_g.mjs → state-D1Icyjlu.mjs} +5 -5
  125. package/dist/{stats-CaB1MxMi.mjs → stats-BoY5sEPU.mjs} +5 -5
  126. package/dist/{status-BDGHwkCs.mjs → status-BTA7kKiQ.mjs} +1 -1
  127. package/dist/{status-C7vzkInu.mjs → status-WgFbkRzj.mjs} +30 -47
  128. package/dist/{status-watch-ZaVqRdtW.mjs → status-watch-C23ILtf9.mjs} +4 -4
  129. package/dist/{stim-desktop-8GQX2OV8.mjs → stim-desktop-BzBN2Em2.mjs} +1 -1
  130. package/dist/{stop-BO80KJoT.mjs → stop-BNmBMi1F.mjs} +18 -19
  131. package/dist/{stop-Cftw_sXJ.mjs → stop-DPEhunlw.mjs} +6 -6
  132. package/dist/{stop-BU7JaFCg.mjs → stop-DR6VoDIk.mjs} +2 -2
  133. package/dist/supervisor-run.mjs +16 -17
  134. package/dist/{support-Co0wk8Cv.mjs → support-CwjbFs9H.mjs} +9 -9
  135. package/dist/{support-Ca6PZbpr.mjs → support-DMTqj3Hm.mjs} +6 -6
  136. package/dist/{swiftpm-macos-siFSkmCO.mjs → swiftpm-macos-DRNVJWlb.mjs} +9 -9
  137. package/dist/{tailnet-D7-tE_ug.mjs → tailnet-Dh-qiYzG.mjs} +5 -5
  138. package/dist/toolchain-BFkAcstd.mjs +2 -0
  139. package/dist/{toolchain-SqehyPLw.mjs → toolchain-DxSsNssu.mjs} +10 -10
  140. package/dist/trigger-9_USgmxz.mjs +2 -0
  141. package/dist/{trigger-C0MWBi8O.mjs → trigger-CigAYjeL.mjs} +2 -2
  142. package/dist/{warm-progress-5FAXkXIg.mjs → warm-progress-BuY-Fvfn.mjs} +43 -61
  143. package/dist/{watchman-CqmaGcIb.mjs → watchman-CPQFZLXY.mjs} +6 -6
  144. package/dist/{web-BTjzE8mc.mjs → web-BDBMxDpx.mjs} +9 -9
  145. package/dist/web-Dq-i3wzJ.mjs +2 -0
  146. package/dist/web-run.mjs +14 -14
  147. package/dist/{workspace-state-CvgTFe-h.mjs → workspace-state-DJt_MMvf.mjs} +13 -3
  148. package/dist/{workspaces-C4kqIOlx.mjs → workspaces-C36s2jb9.mjs} +15 -16
  149. package/dist/{worktree-DtRsh6go.mjs → worktree-CgvJYJ-Q.mjs} +94 -87
  150. package/dist/{worktree-Cgnm6vZt.mjs → worktree-DpLdCHga.mjs} +1 -1
  151. package/package.json +5 -5
  152. package/dist/macos-kivF8qKz.mjs +0 -2
  153. package/dist/process-identity-Biv3arCO.mjs +0 -40
  154. package/dist/server-expo-Dvkd7JcF.mjs +0 -2
  155. package/dist/toolchain-B12psPA2.mjs +0 -2
  156. package/dist/trigger-SHLOWJ4O.mjs +0 -2
  157. package/dist/web-CHN5gh34.mjs +0 -2
@@ -1,20 +1,21 @@
1
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
2
- import { H as projectDeviceSlots, M as isOnMountedVolume, N as listMountedVolumes, P as measuredDirectorySize, _ as loadConfig$1, p as getProject } from "./config-D0LhTY3S.mjs";
3
- import { n as readManifest } from "./cache-manifest-qA3dT2x2.mjs";
4
- import { At as sourceCheckoutOf, Dt as resolveFullRef, E as maintenanceKeepSetting, K as resolveProjectSettings, gt as hasPopulatedSubmodules, jt as unpushedCommits, pt as dirtyPaths, vt as hasUncommittedWork, xt as listWorktrees } from "./settings-Bbztm4oV.mjs";
5
- import { h as listBuildLocks, i as listLeaseFiles, r as leaseIsExpired } from "./device-lease-C309csaB.mjs";
6
- import { E as workspaceStateFile, r as readWorkspaceState$1, s as workspaceLastUsed, w as workspaceLogsDir$1 } from "./workspace-state-CvgTFe-h.mjs";
7
- import { o as formatLongDuration, u as plural } from "./command-output-CPDq_90S.mjs";
8
- import { r as findProjectRoot } from "./project-DX8fXyw_.mjs";
9
- import { ft as readParked, z as ownedAvdSerialResolver } from "./android-DE8-JfGW.mjs";
10
- import { C as recordGcResult, I as listBuildSlots, T as canonicalPath, a as collectWorkspaceOutputs, c as listWorkspaceDirs, i as collectOrphanedWorkspaces, p as workspaceInUse, s as isInsideWorkspaces } from "./workspaces-C4kqIOlx.mjs";
11
- import { _ as DEVICE_LIST_TIMEOUT_MS, at as discoverCaches, c as readVolumeSpace, i as enforceBudget, l as resolveBudget, nt as phase, o as machineNumber, r as cacheLabel, u as trimmableCaches, z as planCacheEmptying } from "./budget-RFbwFpG5.mjs";
1
+ import { F as listMountedVolumes, I as measuredDirectorySize, P as isOnMountedVolume, W as projectDeviceSlots, _ as loadConfig$1, p as getProject } from "./config-BYDxlMY3.mjs";
2
+ import { n as isTimeoutError } from "./exec-DqKo9GKJ.mjs";
3
+ import { r as gitQuiet } from "./git-DDfFzkMm.mjs";
4
+ import { n as readManifest } from "./cache-manifest-XH-fvDUj.mjs";
5
+ import { E as maintenanceKeepSetting, K as resolveProjectSettings, Mt as unpushedCommits, Ot as resolveFullRef, St as listWorktrees, _t as hasPopulatedSubmodules, jt as sourceCheckoutOf, mt as dirtyPaths, yt as hasUncommittedWork } from "./settings-B717odTD.mjs";
6
+ import { h as listBuildLocks, i as listLeaseFiles, r as leaseIsExpired } from "./device-lease-BX1sJQ2E.mjs";
7
+ import { E as workspaceStateFile, r as readWorkspaceState$1, s as workspaceLastUsed, w as workspaceLogsDir$1 } from "./workspace-state-DJt_MMvf.mjs";
8
+ import { o as formatLongDuration, u as plural } from "./command-output-BTy8hZ0F.mjs";
9
+ import { r as findProjectRoot } from "./project-_phNIJfs.mjs";
10
+ import { ft as readParked, z as ownedAvdSerialResolver } from "./android-Mz_Inn3w.mjs";
11
+ import { C as recordGcResult, I as listBuildSlots, T as canonicalPath, a as collectWorkspaceOutputs, c as listWorkspaceDirs, i as collectOrphanedWorkspaces, p as workspaceInUse, s as isInsideWorkspaces } from "./workspaces-C36s2jb9.mjs";
12
+ import { _ as DEVICE_LIST_TIMEOUT_MS, at as discoverCaches, c as readVolumeSpace, i as enforceBudget, l as resolveBudget, nt as phase, o as machineNumber, r as cacheLabel, u as trimmableCaches, z as planCacheEmptying } from "./budget-f7516Zk0.mjs";
12
13
  import { s as metroStoreRoot } from "./errors-DzkMYh8Q.mjs";
13
- import { P as readHostMemoryPressure, d as listAllIosSims } from "./ios-o896T9PE.mjs";
14
- import { n as describePullRequest, o as pullRequestLookups, r as endedPullRequest } from "./pull-request-vOhLNmIb.mjs";
14
+ import { P as readHostMemoryPressure, d as listAllIosSims } from "./ios-RkW4pnQf.mjs";
15
+ import { n as describePullRequest, o as pullRequestLookups, r as endedPullRequest } from "./pull-request-CQ8sPbZa.mjs";
15
16
  import { t as resolveMaintenanceSettings } from "./settings-Djl-mpjX.mjs";
16
- import { o as fetchDefaultBranch, s as mergeState } from "./warm-progress-5FAXkXIg.mjs";
17
- import { a as matchWorktreeEntry, i as excludeWatchmanCookies, p as removeWorktreeTarget, r as excludePodChurn, s as reclaimKeys } from "./worktree-DtRsh6go.mjs";
17
+ import { o as fetchDefaultBranch, s as mergeState } from "./warm-progress-BuY-Fvfn.mjs";
18
+ import { a as matchWorktreeEntry, i as excludeWatchmanCookies, p as removeWorktreeTarget, r as excludePodChurn, s as reclaimKeys } from "./worktree-CgvJYJ-Q.mjs";
18
19
  import { existsSync } from "node:fs";
19
20
  import { basename, isAbsolute, join, sep } from "node:path";
20
21
  import { isAbsolute as isAbsolute$1, join as join$1 } from "path";
@@ -202,6 +203,7 @@ function removalBlocker(facts, olderThan) {
202
203
  const merged = facts.merge?.merged ? facts.merge : null;
203
204
  const ended = endedPullRequest(facts.pullRequest);
204
205
  if (facts.unpushed.length && !merged?.coversUnpushed && ended?.state !== "merged") return skip("unpushed", `unpushed: ${plural(facts.unpushed.length, "commit")} on no remote or other branch`);
206
+ if (facts.submodules === null) return skip("submodules", "initialized submodules could not be checked");
205
207
  if (facts.submodules) return skip("submodules", "initialized submodules");
206
208
  if (merged || ended) return null;
207
209
  const notMerged = facts.merge && !facts.merge.merged ? facts.merge : null;
@@ -308,10 +310,7 @@ function logFiles$1(key) {
308
310
  }
309
311
  }
310
312
  function worktreeActivityOf(path, keys) {
311
- const gitDir = getExecutor().runFileQuiet("git", [
312
- "--no-optional-locks",
313
- "-C",
314
- path,
313
+ const gitDir = gitQuiet(path, [
315
314
  "rev-parse",
316
315
  "--path-format=absolute",
317
316
  "--git-dir"
@@ -351,11 +350,19 @@ function graceMsSetting() {
351
350
  }
352
351
  return (value ?? 0) * MINUTE_MS;
353
352
  }
353
+ function unlessTimedOut(read, unknown) {
354
+ try {
355
+ return read();
356
+ } catch (error) {
357
+ if (isTimeoutError(error)) return unknown;
358
+ throw error;
359
+ }
360
+ }
354
361
  function porcelainOf(path, gitAnswered) {
355
362
  if (gitAnswered === null) return null;
356
363
  if (!gitAnswered) return [];
357
- const lines = dirtyPaths(path, { limit: Infinity });
358
- return lines.length ? lines : null;
364
+ const lines = unlessTimedOut(() => dirtyPaths(path, { limit: Infinity }), null);
365
+ return lines?.length ? lines : null;
359
366
  }
360
367
  function candidateRoots() {
361
368
  const registered = Object.keys(loadConfig$1()?.projects ?? {}).filter(isAbsolute$1);
@@ -429,15 +436,15 @@ async function collectWorktreeSweep({ idle, olderThan, now }) {
429
436
  const idleDays = idleDaysOf(keys, now);
430
437
  const linked = !("refusal" in source) && entry !== null && source.path !== entry.path;
431
438
  const activity = linked && grace.ms > 0 ? worktreeActivityOf(path, keys) : null;
432
- const gitAnswered = linked ? hasUncommittedWork(path) : null;
439
+ const gitAnswered = linked ? unlessTimedOut(() => hasUncommittedWork(path), null) : null;
433
440
  const head = linked ? resolveFullRef(path, "HEAD") : null;
434
441
  const facts = {
435
442
  source: "refusal" in source ? source : linked ? "linked" : "source",
436
443
  bare: Boolean(entry?.bare),
437
444
  locked: Boolean(entry?.locked),
438
445
  porcelain: porcelainOf(path, gitAnswered),
439
- unpushed: linked ? unpushedCommits(path) : null,
440
- submodules: linked && hasPopulatedSubmodules(path),
446
+ unpushed: linked ? unlessTimedOut(() => unpushedCommits(path), null) : null,
447
+ submodules: linked ? unlessTimedOut(() => hasPopulatedSubmodules(path), null) : false,
441
448
  inUse: [],
442
449
  idleDays,
443
450
  merge: null,
@@ -1,7 +1,6 @@
1
- import { t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
2
- import { B as parseDeviceSlotKey, R as deviceSlotKey, _ as loadConfig$1, g as isPathPrefix, l as findEnclosingWorktreeRoot, p as getProject } from "./config-D0LhTY3S.mjs";
3
- import { $ as settingValueAt, Et as repoRoot, G as resolveIosProjectDir, U as resolveAndroidLayout, rt as webSettings } from "./settings-Bbztm4oV.mjs";
4
- import { E as workspaceStateFile, a as updateWorkspaceState, o as withWorkspaceStateLock, r as readWorkspaceState$1, t as clearWorkspaceStateKey, v as supervisorPidFile } from "./workspace-state-CvgTFe-h.mjs";
1
+ import { B as deviceSlotKey, H as parseDeviceSlotKey, _ as loadConfig$1, g as isPathPrefix, k as process_identity_exports, l as findEnclosingWorktreeRoot, p as getProject } from "./config-BYDxlMY3.mjs";
2
+ import { $ as settingValueAt, Dt as repoRoot, G as resolveIosProjectDir, U as resolveAndroidLayout, rt as webSettings } from "./settings-B717odTD.mjs";
3
+ import { E as workspaceStateFile, a as updateWorkspaceState, o as withWorkspaceStateLock, r as readWorkspaceState$1, t as clearWorkspaceStateKey, v as supervisorPidFile } from "./workspace-state-DJt_MMvf.mjs";
5
4
  import { existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, rmSync, statSync, writeFileSync } from "node:fs";
6
5
  import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
7
6
  import { basename as basename$1, dirname as dirname$1, join as join$1, resolve as resolve$1 } from "path";
@@ -307,8 +306,8 @@ const nativeAndroidIntegration = {
307
306
  application: true,
308
307
  platforms: () => ["android"],
309
308
  validate: (operation) => operation === "android" ? null : void 0,
310
- android: async () => (await import("./native-android-D94RlJ-X.mjs")).nativeAndroidProject(root),
311
- doctor: async () => (await import("./native-android-D94RlJ-X.mjs")).nativeAndroidDoctor(root)
309
+ android: async () => (await import("./native-android-D5qc3-_v.mjs")).nativeAndroidProject(root),
310
+ doctor: async () => (await import("./native-android-D5qc3-_v.mjs")).nativeAndroidDoctor(root)
312
311
  };
313
312
  }
314
313
  };
@@ -736,8 +735,8 @@ const nativeXcodeProjectIntegration = {
736
735
  application: problem === null,
737
736
  platforms: () => problem ? [] : ["ios"],
738
737
  validate: (operation) => operation === "ios" ? problem : void 0,
739
- ios: async () => (await import("./native-xcode-ios-CjS-nDVY.mjs")).nativeXcodeIosProject(root),
740
- doctor: async () => (await import("./native-xcode-ios-CjS-nDVY.mjs")).nativeXcodeDoctor(root)
738
+ ios: async () => (await import("./native-xcode-ios-Bbf30Gm0.mjs")).nativeXcodeIosProject(root),
739
+ doctor: async () => (await import("./native-xcode-ios-Bbf30Gm0.mjs")).nativeXcodeDoctor(root)
741
740
  };
742
741
  }
743
742
  };
@@ -942,7 +941,7 @@ function createProjectRegistry(integrations) {
942
941
  //#region src/integrations/projects.ts
943
942
  const expo = {
944
943
  mode: MODE_EXPO,
945
- loadDevServer: async () => (await import("./server-expo-Dvkd7JcF.mjs")).startExpoServer,
944
+ loadDevServer: async () => (await import("./server-expo-Bigriskl.mjs")).startExpoServer,
946
945
  platforms(root) {
947
946
  const appJson = readAppJson(root);
948
947
  const config = appJson?.expo ?? appJson;
@@ -962,7 +961,7 @@ const expo = {
962
961
  };
963
962
  const reactNative = {
964
963
  mode: MODE_BARE,
965
- loadDevServer: async () => (await import("./server-bare-dWjAarki.mjs")).startBareServer,
964
+ loadDevServer: async () => (await import("./server-bare-R2m_gsH8.mjs")).startBareServer,
966
965
  platforms(root, { context, settings }) {
967
966
  if (!declaresAppDependency(readPackageJson(root))) return [];
968
967
  const platforms = [];
@@ -992,9 +991,9 @@ const projectRegistry = createProjectRegistry([
992
991
  ownedRoots: problem === null ? [join(root, "ios"), join(root, "android")] : [],
993
992
  platforms: (resolved) => nativeProjectIntegration(root).platforms(root, resolved),
994
993
  validate: (operation) => operation === "ios" || operation === "android" || operation === "dev-server" ? problem : void 0,
995
- ios: async (settings) => (await import("./react-native-ios-DtVO4qf2.mjs")).reactNativeIosProject(root, settings),
996
- android: async (resolved) => (await import("./react-native-android-CuXM3QS8.mjs")).reactNativeAndroidProject(root, resolved),
997
- doctor: async () => (await import("./react-native-doctor-BQHqiXaQ.mjs")).reactNativeProjectDoctor(root)
994
+ ios: async (settings) => (await import("./react-native-ios-Dhq_eiYQ.mjs")).reactNativeIosProject(root, settings),
995
+ android: async (resolved) => (await import("./react-native-android-CM1XRDwv.mjs")).reactNativeAndroidProject(root, resolved),
996
+ doctor: async () => (await import("./react-native-doctor-CfRnFfjs.mjs")).reactNativeProjectDoctor(root)
998
997
  };
999
998
  }
1000
999
  },
@@ -1008,9 +1007,9 @@ const projectRegistry = createProjectRegistry([
1008
1007
  application: true,
1009
1008
  platforms: ({ settings }) => settingValueAt(settings, "macos.product") && settingValueAt(settings, "macos.infoPlist") ? ["macos"] : [],
1010
1009
  validate: (operation) => operation === "macos" ? null : void 0,
1011
- macos: async () => (await import("./swiftpm-macos-siFSkmCO.mjs")).swiftpmMacosProject(root),
1010
+ macos: async () => (await import("./swiftpm-macos-DRNVJWlb.mjs")).swiftpmMacosProject(root),
1012
1011
  doctor: async () => {
1013
- const { macosToolchain } = await import("./toolchain-B12psPA2.mjs");
1012
+ const { macosToolchain } = await import("./toolchain-BFkAcstd.mjs");
1014
1013
  return {
1015
1014
  inspect: () => [],
1016
1015
  offloadTargets: ({ options: { host = process.platform, platform } }) => host === "darwin" && platform === void 0 ? async () => [{
@@ -1030,7 +1029,7 @@ const projectRegistry = createProjectRegistry([
1030
1029
  application: false,
1031
1030
  platforms: ({ settings }) => webSettings(settings).url !== null ? ["web"] : [],
1032
1031
  validate: (operation) => operation === "web" ? null : void 0,
1033
- web: async () => (await import("./browser-web-xQWC2RWl.mjs")).browserWebProject(root)
1032
+ web: async () => (await import("./browser-web-CA-F1GQo.mjs")).browserWebProject(root)
1034
1033
  };
1035
1034
  }
1036
1035
  },
@@ -1,4 +1,5 @@
1
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
1
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
2
+ import { n as gitAsync, r as gitQuiet } from "./git-DDfFzkMm.mjs";
2
3
  //#region src/workspace/pull-request.ts
3
4
  const GH_TIMEOUT_MS = 2e4;
4
5
  const GH_ENV = {
@@ -141,10 +142,7 @@ function ghFailure(error, command) {
141
142
  };
142
143
  }
143
144
  function ancestry(cwd) {
144
- const exec = getExecutor();
145
- return (ancestor, descendant) => exec.runFileQuiet("git", [
146
- "-C",
147
- cwd,
145
+ return (ancestor, descendant) => gitQuiet(cwd, [
148
146
  "merge-base",
149
147
  "--is-ancestor",
150
148
  ancestor,
@@ -161,12 +159,7 @@ function parseRemoteRepo(url) {
161
159
  return owner && name ? `${owner.toLowerCase()}/${name.toLowerCase()}` : null;
162
160
  }
163
161
  function localRemoteRepos(cwd) {
164
- const out = getExecutor().runFileQuiet("git", [
165
- "-C",
166
- cwd,
167
- "remote",
168
- "-v"
169
- ]);
162
+ const out = gitQuiet(cwd, ["remote", "-v"]);
170
163
  const repos = /* @__PURE__ */ new Set();
171
164
  for (const line of out ? out.split("\n") : []) {
172
165
  const url = /^\S+\s+(\S+)\s+\((?:fetch|push)\)$/.exec(line)?.[1];
@@ -291,17 +284,11 @@ function describePullRequest(pr) {
291
284
  function worktreePullRequests() {
292
285
  const lookup = pullRequestLookups();
293
286
  return async (worktrees) => {
294
- const exec = getExecutor();
295
287
  const repos = /* @__PURE__ */ new Map();
296
288
  for (const { path, branch, repository } of worktrees) {
297
289
  let head;
298
290
  try {
299
- head = (await exec.runFileAsync("git", [
300
- "-C",
301
- path,
302
- "rev-parse",
303
- "HEAD"
304
- ], { timeoutMs: 5e3 })).trim();
291
+ head = (await gitAsync(path, ["rev-parse", "HEAD"], { timeoutMs: 5e3 })).trim();
305
292
  } catch {
306
293
  continue;
307
294
  }
@@ -1,2 +1,2 @@
1
- import { a as pullRequestLookup, c as worktreePullRequests, i as parseRemoteRepo, n as describePullRequest, o as pullRequestLookups, r as endedPullRequest, s as selectPullRequest, t as checkCounts } from "./pull-request-vOhLNmIb.mjs";
1
+ import { a as pullRequestLookup, c as worktreePullRequests, i as parseRemoteRepo, n as describePullRequest, o as pullRequestLookups, r as endedPullRequest, s as selectPullRequest, t as checkCounts } from "./pull-request-CQ8sPbZa.mjs";
2
2
  export { checkCounts, describePullRequest, endedPullRequest, parseRemoteRepo, pullRequestLookup, pullRequestLookups, selectPullRequest, worktreePullRequests };
@@ -1,28 +1,28 @@
1
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
2
- import { W as validateDeviceSlot, p as getProject, z as deviceSlotPlatforms } from "./config-D0LhTY3S.mjs";
3
- import { Ft as removeTemporaryEntry, L as publicUrlSetting, Pt as makeTemporaryDirectory, U as resolveAndroidLayout, V as remoteEasFallbackSetting, Z as settingOriginScope, et as settingsLayers, m as defaultAndroidLayout, tt as tunnelModeSetting, z as realpathInside } from "./settings-Bbztm4oV.mjs";
4
- import { B as captureAssetManifest, D as fingerprintProject, E as fingerprintDiffRecord, F as storedAssetManifest, H as readAssetManifest, L as untrackedMissLine, M as refingerprintAfterMutation, N as resolveBuild, O as inputsChangedDuringBuild, P as storeBuild, R as untrackedNativeFiles, S as configInputsChanged, T as filesystemBuildCapability, V as compareAssetManifests, b as buildCacheKey, x as changedDuringBuildLine, z as assetDiffReason } from "./device-lease-C309csaB.mjs";
5
- import { r as readWorkspaceState } from "./workspace-state-CvgTFe-h.mjs";
1
+ import { K as validateDeviceSlot, V as deviceSlotPlatforms, p as getProject } from "./config-BYDxlMY3.mjs";
2
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
3
+ import { Ft as makeTemporaryDirectory, It as removeTemporaryEntry, L as publicUrlSetting, U as resolveAndroidLayout, V as remoteEasFallbackSetting, Z as settingOriginScope, et as settingsLayers, m as defaultAndroidLayout, tt as tunnelModeSetting, z as realpathInside } from "./settings-B717odTD.mjs";
4
+ import { B as captureAssetManifest, D as fingerprintProject, E as fingerprintDiffRecord, F as storedAssetManifest, H as readAssetManifest, L as untrackedMissLine, M as refingerprintAfterMutation, N as resolveBuild, O as inputsChangedDuringBuild, P as storeBuild, R as untrackedNativeFiles, S as configInputsChanged, T as filesystemBuildCapability, V as compareAssetManifests, b as buildCacheKey, x as changedDuringBuildLine, z as assetDiffReason } from "./device-lease-BX1sJQ2E.mjs";
5
+ import { r as readWorkspaceState } from "./workspace-state-DJt_MMvf.mjs";
6
6
  import { r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
7
- import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-CPDq_90S.mjs";
8
- import { _ as detectIsExpo } from "./project-DX8fXyw_.mjs";
9
- import { A as listAvds, B as ownedAvdSystemImage, D as hostSystemImageArch, I as ownedAvdDirectory, T as findBuildTool, W as pickDefaultSystemImage, j as listInstalledSystemImages, l as androidSystemImageAbi, r as androidBuildToolName } from "./android-DE8-JfGW.mjs";
10
- import { It as statsProjectKey } from "./budget-RFbwFpG5.mjs";
11
- import { t as cleanLine } from "./server-expo-CUuzP9Mp.mjs";
12
- import { c as loadProjectProvider, i as checkEasAuth, p as resolveRemote } from "./remote-cache-fxcl5C-L.mjs";
13
- import { h as detectAppIds, m as detectAndroidPackage } from "./start-CRkG-mZ7.mjs";
14
- import { n as fingerprintErrorMissReason, t as explainBuildMiss } from "./miss-reason-SuTptY-I.mjs";
15
- import { o as resolveCcache } from "./ccache-CtbqWxIC.mjs";
16
- import { M as startBuildHeartbeat, P as tailLines, n as androidToolchain, t as androidRequirements, y as HEARTBEAT_INTERVAL_MS } from "./toolchain-SqehyPLw.mjs";
17
- import { a as PLATFORM, c as androidGradleProject, h as displayPath, i as NO_FINGERPRINT, l as androidJobLayout, o as androidBuildOptions, r as NO_DEVICE } from "./support-Ca6PZbpr.mjs";
18
- import { i as AndroidRecipeRefusal, r as resolveAndroidRunPlan } from "./plan-Jwu_vr-F.mjs";
19
- import { c as readProductFlavors, n as buildAndroid, s as productFlavorRefusal } from "./react-native-build-JUF31S8U.mjs";
20
- import { n as planFlagRefusal, o as checkEasFallback, r as planPayload, t as planCachedBuild } from "./build-plan-CRjAA6Qi.mjs";
21
- import { i as planEasDevelopmentBuild } from "./eas-build-0gadvrca.mjs";
22
- import { n as androidProcessRuntime, t as androidMetroRuntime } from "./launch-V1zqiOYn.mjs";
23
- import { i as staleNativeDirRefusal, n as recordPrebuild, r as runPrebuild, t as planPrebuild } from "./prebuild-DB_zLOLc.mjs";
24
- import { n as detectEntryFile, r as refreshUpdatesManifestFile, t as UPDATES_MANIFEST_NAME } from "./js-swap-Z_mSuRrx.mjs";
25
- import { t as planHostedDevice } from "./plan-placement-B466UYMU.mjs";
7
+ import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BTy8hZ0F.mjs";
8
+ import { _ as detectIsExpo } from "./project-_phNIJfs.mjs";
9
+ import { A as listAvds, B as ownedAvdSystemImage, D as hostSystemImageArch, I as ownedAvdDirectory, T as findBuildTool, W as pickDefaultSystemImage, j as listInstalledSystemImages, l as androidSystemImageAbi, r as androidBuildToolName } from "./android-Mz_Inn3w.mjs";
10
+ import { It as statsProjectKey } from "./budget-f7516Zk0.mjs";
11
+ import { t as cleanLine } from "./server-expo-DsguMGUF.mjs";
12
+ import { c as loadProjectProvider, i as checkEasAuth, p as resolveRemote } from "./remote-cache-OyOyVIS3.mjs";
13
+ import { h as detectAppIds, m as detectAndroidPackage } from "./start-BWqzODpb.mjs";
14
+ import { n as fingerprintErrorMissReason, t as explainBuildMiss } from "./miss-reason-mKzZ4VvN.mjs";
15
+ import { o as resolveCcache } from "./ccache-zdKiYQ3E.mjs";
16
+ import { M as startBuildHeartbeat, P as tailLines, n as androidToolchain, t as androidRequirements, y as HEARTBEAT_INTERVAL_MS } from "./toolchain-DxSsNssu.mjs";
17
+ import { a as PLATFORM, c as androidGradleProject, h as displayPath, i as NO_FINGERPRINT, l as androidJobLayout, o as androidBuildOptions, r as NO_DEVICE } from "./support-DMTqj3Hm.mjs";
18
+ import { i as AndroidRecipeRefusal, r as resolveAndroidRunPlan } from "./plan-C4TjdPsR.mjs";
19
+ import { c as readProductFlavors, n as buildAndroid, s as productFlavorRefusal } from "./react-native-build-CtCccJtb.mjs";
20
+ import { n as planFlagRefusal, o as checkEasFallback, r as planPayload, t as planCachedBuild } from "./build-plan-B7SZsc2N.mjs";
21
+ import { i as planEasDevelopmentBuild } from "./eas-build-JyfqyHfC.mjs";
22
+ import { n as androidProcessRuntime, t as androidMetroRuntime } from "./launch-F4sOqAhB.mjs";
23
+ import { i as staleNativeDirRefusal, n as recordPrebuild, r as runPrebuild, t as planPrebuild } from "./prebuild-DYbucPXy.mjs";
24
+ import { n as detectEntryFile, r as refreshUpdatesManifestFile, t as UPDATES_MANIFEST_NAME } from "./js-swap-Bb3nsS07.mjs";
25
+ import { t as planHostedDevice } from "./plan-placement-V0TdzYXp.mjs";
26
26
  import { constants, copyFileSync, existsSync, mkdirSync, readFileSync, renameSync } from "node:fs";
27
27
  import { basename, dirname, isAbsolute, join, relative } from "node:path";
28
28
  import { loadCacheProvider } from "@stim-cli/cache";
@@ -299,7 +299,7 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
299
299
  e.runFile(hermesc, androidHermescArgs({
300
300
  bundle: bundleOutput,
301
301
  out: hbc
302
- }));
302
+ }), { timeoutMs: "unbounded" });
303
303
  renameSync(hbc, bundleOutput);
304
304
  hermes = true;
305
305
  } catch (err) {
@@ -336,7 +336,10 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
336
336
  "--file",
337
337
  work,
338
338
  `assets/${UPDATES_MANIFEST_NAME}`
339
- ], { cwd: stage });
339
+ ], {
340
+ cwd: stage,
341
+ timeoutMs: "unbounded"
342
+ });
340
343
  if (exists(updatesManifest)) refreshUpdatesManifestFile(updatesManifest, now());
341
344
  } catch (err) {
342
345
  return fail("updates", `could not refresh the expo-updates manifest from ${work}: ${describe(err)}`);
@@ -350,7 +353,7 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
350
353
  "-C",
351
354
  stage,
352
355
  "assets"
353
- ]);
356
+ ], { timeoutMs: "unbounded" });
354
357
  } catch (err) {
355
358
  return fail("zip", `${jar} --update ${work} failed: ${describe(err)}`);
356
359
  }
@@ -361,7 +364,7 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
361
364
  buildToolsMajor: tools.major,
362
365
  input: work,
363
366
  output: final
364
- }));
367
+ }), { timeoutMs: "unbounded" });
365
368
  } catch (err) {
366
369
  return fail("zipalign", `zipalign failed on ${work}: ${describe(err)}`);
367
370
  }
@@ -374,7 +377,8 @@ async function swapApkBundle({ root, isExpo, cachedApkPath, keystore, logWriter
374
377
  e.runFile(signer.path, apksignerArgs({
375
378
  keystore,
376
379
  apkPath: final
377
- }), keystore.password === null ? void 0 : {
380
+ }), keystore.password === null ? { timeoutMs: "unbounded" } : {
381
+ timeoutMs: "unbounded",
378
382
  env: { [KEYSTORE_PASSWORD_ENV]: keystore.password },
379
383
  redact: [keystore.password]
380
384
  });
@@ -403,7 +407,7 @@ function copyApk(e, from, to, platform) {
403
407
  "-c",
404
408
  from,
405
409
  to
406
- ]);
410
+ ], { timeoutMs: "unbounded" });
407
411
  return;
408
412
  } catch {}
409
413
  copyFileSync(from, to, constants.COPYFILE_FICLONE);
@@ -1,10 +1,10 @@
1
- import { r as register } from "./cache-manifest-qA3dT2x2.mjs";
2
- import { g as sharedCompilationCache } from "./workspace-state-CvgTFe-h.mjs";
3
- import { l as phaseLine } from "./command-output-CPDq_90S.mjs";
4
- import { S as resolvePackageJson } from "./project-DX8fXyw_.mjs";
1
+ import { r as register } from "./cache-manifest-XH-fvDUj.mjs";
2
+ import { g as sharedCompilationCache } from "./workspace-state-DJt_MMvf.mjs";
3
+ import { l as phaseLine } from "./command-output-BTy8hZ0F.mjs";
4
+ import { S as resolvePackageJson } from "./project-_phNIJfs.mjs";
5
5
  import { p as resolveOptimizations } from "./errors-DzkMYh8Q.mjs";
6
- import { a as buildGradle, i as assembleTaskFor, n as BUILD_ERROR, o as parseProductFlavors, s as variantNameOf, t as ASSEMBLE_TASK } from "./gradle-CZZo1TSA.mjs";
7
- import { C as compilationCacheSettings, N as swiftPrefixMappingSupported, O as pickXcodeProject, T as detectXcodeMajor, b as SWIFT_PREFIX_MAPPING_MIN_SWIFT, w as detectSwiftVersion, x as buildXcode } from "./toolchain-SqehyPLw.mjs";
6
+ import { a as buildGradle, i as assembleTaskFor, n as BUILD_ERROR, o as parseProductFlavors, s as variantNameOf, t as ASSEMBLE_TASK } from "./gradle-DSrXb6lG.mjs";
7
+ import { C as compilationCacheSettings, N as swiftPrefixMappingSupported, O as pickXcodeProject, T as detectXcodeMajor, b as SWIFT_PREFIX_MAPPING_MIN_SWIFT, w as detectSwiftVersion, x as buildXcode } from "./toolchain-DxSsNssu.mjs";
8
8
  import { existsSync, readFileSync, readdirSync } from "node:fs";
9
9
  import { join, relative } from "node:path";
10
10
  import chalk from "chalk";
@@ -1,8 +1,8 @@
1
- import { G as resolveIosProjectDir, U as resolveAndroidLayout } from "./settings-Bbztm4oV.mjs";
2
- import { l as phaseLine } from "./command-output-CPDq_90S.mjs";
3
- import { _ as detectIsExpo } from "./project-DX8fXyw_.mjs";
4
- import { I as bundlerPin, i as iosToolchainAsync, n as androidToolchain, t as androidRequirements } from "./toolchain-SqehyPLw.mjs";
5
- import { a as repairCxxLauncherState, n as detectLinkedLibraryGitMetadata, r as reactNativeDoctorFindings, t as detectFingerprintParity } from "./doctor-Dunu3Nv1.mjs";
1
+ import { G as resolveIosProjectDir, U as resolveAndroidLayout } from "./settings-B717odTD.mjs";
2
+ import { l as phaseLine } from "./command-output-BTy8hZ0F.mjs";
3
+ import { _ as detectIsExpo } from "./project-_phNIJfs.mjs";
4
+ import { I as bundlerPin, i as iosToolchainAsync, n as androidToolchain, t as androidRequirements } from "./toolchain-DxSsNssu.mjs";
5
+ import { a as repairCxxLauncherState, n as detectLinkedLibraryGitMetadata, r as reactNativeDoctorFindings, t as detectFingerprintParity } from "./doctor-kfMBnUw6.mjs";
6
6
  import { existsSync } from "node:fs";
7
7
  //#region src/integrations/react-native-doctor.ts
8
8
  function reactNativeProjectDoctor(root) {
@@ -1,18 +1,18 @@
1
- import { G as resolveIosProjectDir, H as remoteIosSetting, L as publicUrlSetting, Q as settingShapeErrors, V as remoteEasFallbackSetting, a as SETTING_SHAPE_REMEDY, p as cacheProviderSettingError, tt as tunnelModeSetting } from "./settings-Bbztm4oV.mjs";
2
- import { E as fingerprintDiffRecord, L as untrackedMissLine, M as refingerprintAfterMutation, O as inputsChangedDuringBuild, S as configInputsChanged, T as filesystemBuildCapability, b as buildCacheKey, x as changedDuringBuildLine } from "./device-lease-C309csaB.mjs";
3
- import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-CPDq_90S.mjs";
4
- import { It as statsProjectKey } from "./budget-RFbwFpG5.mjs";
1
+ import { G as resolveIosProjectDir, H as remoteIosSetting, L as publicUrlSetting, Q as settingShapeErrors, V as remoteEasFallbackSetting, a as SETTING_SHAPE_REMEDY, p as cacheProviderSettingError, tt as tunnelModeSetting } from "./settings-B717odTD.mjs";
2
+ import { E as fingerprintDiffRecord, L as untrackedMissLine, M as refingerprintAfterMutation, O as inputsChangedDuringBuild, S as configInputsChanged, T as filesystemBuildCapability, b as buildCacheKey, x as changedDuringBuildLine } from "./device-lease-BX1sJQ2E.mjs";
3
+ import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BTy8hZ0F.mjs";
4
+ import { It as statsProjectKey } from "./budget-f7516Zk0.mjs";
5
5
  import { d as optimizationBuildProfile, l as artifactCachePolicy, p as resolveOptimizations } from "./errors-DzkMYh8Q.mjs";
6
- import { n as fingerprintErrorMissReason, t as explainBuildMiss } from "./miss-reason-SuTptY-I.mjs";
7
- import { I as bundlerPin, r as iosToolchain } from "./toolchain-SqehyPLw.mjs";
8
- import { r as planPayload, t as planCachedBuild } from "./build-plan-CRjAA6Qi.mjs";
9
- import { i as planEasDevelopmentBuild, n as easDeviceBuildRemedy } from "./eas-build-0gadvrca.mjs";
10
- import { i as staleNativeDirRefusal, n as recordPrebuild } from "./prebuild-DB_zLOLc.mjs";
11
- import { a as deviceModelRefusal, c as iosProjectPathError, f as podAction, h as resolveDeviceType, l as iosProviderRunOptions, m as resolveConfiguration, u as isReleaseConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-Co0wk8Cv.mjs";
12
- import { t as IosRecipeRefusal } from "./ios-project-BeOXKPt2.mjs";
13
- import { i as hostedIosSelectors } from "./remote-CZiTijxG.mjs";
14
- import { c as copyAppAside, i as DEFAULT_DEPS, n as iosMetroRuntime, r as iosProcessRuntime, u as writeIpTxt } from "./launch-BootbMk4.mjs";
15
- import { t as planHostedDevice } from "./plan-placement-B466UYMU.mjs";
6
+ import { n as fingerprintErrorMissReason, t as explainBuildMiss } from "./miss-reason-mKzZ4VvN.mjs";
7
+ import { I as bundlerPin, r as iosToolchain } from "./toolchain-DxSsNssu.mjs";
8
+ import { r as planPayload, t as planCachedBuild } from "./build-plan-B7SZsc2N.mjs";
9
+ import { i as planEasDevelopmentBuild, n as easDeviceBuildRemedy } from "./eas-build-JyfqyHfC.mjs";
10
+ import { i as staleNativeDirRefusal, n as recordPrebuild } from "./prebuild-DYbucPXy.mjs";
11
+ import { a as deviceModelRefusal, c as iosProjectPathError, f as podAction, h as resolveDeviceType, l as iosProviderRunOptions, m as resolveConfiguration, u as isReleaseConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-CwjbFs9H.mjs";
12
+ import { t as IosRecipeRefusal } from "./ios-project-K9hY_Jab.mjs";
13
+ import { i as hostedIosSelectors } from "./remote-BiR6aYjy.mjs";
14
+ import { c as copyAppAside, i as DEFAULT_DEPS, n as iosMetroRuntime, r as iosProcessRuntime, u as writeIpTxt } from "./launch-C3qJ6Agb.mjs";
15
+ import { t as planHostedDevice } from "./plan-placement-V0TdzYXp.mjs";
16
16
  import { rmSync } from "node:fs";
17
17
  import chalk from "chalk";
18
18
  //#region src/integrations/react-native-ios-plan.ts
@@ -1,4 +1,4 @@
1
- import { ht as gitCommonDirOnDisk } from "./settings-Bbztm4oV.mjs";
1
+ import { gt as gitCommonDirOnDisk } from "./settings-B717odTD.mjs";
2
2
  import { existsSync, rmSync } from "node:fs";
3
3
  import { loadConfig, recordingEnabled, workspaceRecordingsDir } from "@stim-cli/core/state";
4
4
  //#region src/workspace/recordings.ts
@@ -1,17 +1,17 @@
1
- import { B as parseDeviceSlotKey, p as getProject, z as deviceSlotPlatforms } from "./config-D0LhTY3S.mjs";
2
- import { i as recordWorkspaceUse, r as readWorkspaceState$1 } from "./workspace-state-CvgTFe-h.mjs";
3
- import { f as refuseNoProject, l as phaseLine } from "./command-output-CPDq_90S.mjs";
4
- import { F as readWorkspaceLaunches, n as findCommandWorkspace } from "./project-DX8fXyw_.mjs";
5
- import { J as resolveOwnedAvdSerial } from "./android-DE8-JfGW.mjs";
6
- import { u as resolveProjectMetro } from "./metro-_ZIE3Axg.mjs";
7
- import { o as readWebRecord, r as cdpEndpoint, u as webFacts } from "./state-lqxdOH_g.mjs";
8
- import { E as resolveOwnedIosSim } from "./ios-o896T9PE.mjs";
9
- import { p as ensureMetroReverse, s as androidAppProcess, v as iosAppProcess } from "./app-install-Cg9YJy3x.mjs";
10
- import { u as probeHostedSession } from "./hosted-client--hNFgixu.mjs";
11
- import { r as readHostedNative } from "./ios-state-BsXMwo5y.mjs";
12
- import { r as reopenHostedAndroidMetro } from "./hosted-android-C-D8Dj0_.mjs";
13
- import { n as nativeRunCommand } from "./slot-launch-CeCRr6MK.mjs";
14
- import { n as sendToOwnedPage, t as liveWebRecord } from "./page-Bv9s2KwY.mjs";
1
+ import { H as parseDeviceSlotKey, V as deviceSlotPlatforms, p as getProject } from "./config-BYDxlMY3.mjs";
2
+ import { i as recordWorkspaceUse, r as readWorkspaceState$1 } from "./workspace-state-DJt_MMvf.mjs";
3
+ import { f as refuseNoProject, l as phaseLine } from "./command-output-BTy8hZ0F.mjs";
4
+ import { F as readWorkspaceLaunches, n as findCommandWorkspace } from "./project-_phNIJfs.mjs";
5
+ import { J as resolveOwnedAvdSerial } from "./android-Mz_Inn3w.mjs";
6
+ import { u as resolveProjectMetro } from "./metro-DnCEjCxs.mjs";
7
+ import { o as readWebRecord, r as cdpEndpoint, u as webFacts } from "./state-D1Icyjlu.mjs";
8
+ import { E as resolveOwnedIosSim } from "./ios-RkW4pnQf.mjs";
9
+ import { m as ensureMetroReverse, s as androidAppProcess, y as iosAppProcess } from "./app-install-BIKtMfPq.mjs";
10
+ import { d as probeHostedSession } from "./hosted-client-ZEKpS9vw.mjs";
11
+ import { r as readHostedNative } from "./ios-state-CBLe1xYw.mjs";
12
+ import { r as reopenHostedAndroidMetro } from "./hosted-android-C3MHGld1.mjs";
13
+ import { n as nativeRunCommand } from "./slot-launch-DPt0m9Nd.mjs";
14
+ import { n as sendToOwnedPage, t as liveWebRecord } from "./page-DRHy329N.mjs";
15
15
  import { hostedAndroidDeviceName, hostedNativeRecords } from "@stim-cli/core/state";
16
16
  import chalk from "chalk";
17
17
  import { WebSocket } from "ws";
@@ -193,12 +193,12 @@ async function reloadBrowser(browser, metroPort, d) {
193
193
  };
194
194
  }
195
195
  function processFailure(platform, record, d, slot = "default") {
196
- const process = platform === "ios" ? d.iosProcess(record.deviceId, record.appId) : d.androidProcess(record.deviceId, record.appId);
197
- if (process === void 0) {
196
+ const { state } = platform === "ios" ? d.iosProcess(record.deviceId, record.appId) : d.androidProcess(record.deviceId, record.appId);
197
+ if (state === "unknown") {
198
198
  const probe = platform === "ios" ? `xcrun simctl spawn ${record.deviceId} launchctl list` : `adb -s ${record.deviceId} shell pidof ${record.appId}`;
199
199
  return failure("STIM_RELOAD_PROBE_FAILED", `Stim could not determine whether ${record.appId} is running on ${record.deviceId}.`, `Run \`${probe}\` and retry when the device tool responds.`);
200
200
  }
201
- if (process === null) return failure("STIM_RELOAD_STOPPED", `${record.appId} is not running on ${record.deviceId}.`, `Run \`${nativeRunCommand(platform, slot)}\` to launch it.`);
201
+ if (state === "stopped") return failure("STIM_RELOAD_STOPPED", `${record.appId} is not running on ${record.deviceId}.`, `Run \`${nativeRunCommand(platform, slot)}\` to launch it.`);
202
202
  return null;
203
203
  }
204
204
  function inspectTarget(platform, record, project, d, slot = "default") {
@@ -1,10 +1,10 @@
1
- import { z as deviceSlotPlatforms } from "./config-D0LhTY3S.mjs";
2
- import { F as parseIosRemote, H as remoteIosSetting, L as publicUrlSetting, V as remoteEasFallbackSetting, tt as tunnelModeSetting } from "./settings-Bbztm4oV.mjs";
3
- import { l as phaseLine } from "./command-output-CPDq_90S.mjs";
4
- import { n as devicePlacementRecord } from "./placement-log-BItXET1x.mjs";
5
- import { c as devicePlacementLine } from "./build-plan-CRjAA6Qi.mjs";
6
- import "./device-remote-DjsNw8DD.mjs";
7
- import { b as resolveSimulatorAppFlag } from "./support-Co0wk8Cv.mjs";
1
+ import { V as deviceSlotPlatforms } from "./config-BYDxlMY3.mjs";
2
+ import { F as parseIosRemote, H as remoteIosSetting, L as publicUrlSetting, V as remoteEasFallbackSetting, tt as tunnelModeSetting } from "./settings-B717odTD.mjs";
3
+ import { l as phaseLine } from "./command-output-BTy8hZ0F.mjs";
4
+ import { n as devicePlacementRecord } from "./placement-log-MOfPVgaM.mjs";
5
+ import { c as devicePlacementLine } from "./build-plan-B7SZsc2N.mjs";
6
+ import "./device-remote-xRT0Vmo9.mjs";
7
+ import { b as resolveSimulatorAppFlag } from "./support-CwjbFs9H.mjs";
8
8
  import chalk from "chalk";
9
9
  //#region src/commands/ios/remote.ts
10
10
  function resolveIosRemote({ opts, settings, physical, recorded }) {
@@ -1,9 +1,9 @@
1
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
2
- import { w as workspaceLogsDir } from "./workspace-state-CvgTFe-h.mjs";
1
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
2
+ import { w as workspaceLogsDir } from "./workspace-state-DJt_MMvf.mjs";
3
3
  import { n as stripAnsi } from "./process-output-Fpl8PYi8.mjs";
4
- import { S as resolvePackageJson } from "./project-DX8fXyw_.mjs";
4
+ import { S as resolvePackageJson } from "./project-_phNIJfs.mjs";
5
5
  import { r as createNdjsonWriter } from "./ndjson-GOnbyvso.mjs";
6
- import { n as expoBinFromPackage, r as expoBinPath, s as findBinUpward } from "./server-expo-CUuzP9Mp.mjs";
6
+ import { n as expoBinFromPackage, r as expoBinPath, s as findBinUpward } from "./server-expo-DsguMGUF.mjs";
7
7
  import { createRequire } from "node:module";
8
8
  import { existsSync, readFileSync } from "node:fs";
9
9
  import { join } from "node:path";
@@ -1,11 +1,11 @@
1
- import { y as workspaceAgentDeviceDir } from "./workspace-state-CvgTFe-h.mjs";
2
- import { i as formatDuration, l as phaseLine } from "./command-output-CPDq_90S.mjs";
3
- import { i as workspaceLinkLine } from "./stim-desktop-8GQX2OV8.mjs";
4
- import { Dt as recordFinishedBuild } from "./budget-RFbwFpG5.mjs";
5
- import { a as easAuthNote, n as UPLOAD_TIMEOUT_MS, r as cacheLevel, s as isEasAuthFailureText } from "./remote-cache-fxcl5C-L.mjs";
6
- import "./launch-verify-Dl78EVgR.mjs";
7
- import { n as CCACHE_UNAVAILABLE, r as ccacheActivityLine } from "./ccache-CtbqWxIC.mjs";
8
- import { a as PLATFORM } from "./support-Ca6PZbpr.mjs";
1
+ import { y as workspaceAgentDeviceDir } from "./workspace-state-DJt_MMvf.mjs";
2
+ import { i as formatDuration, l as phaseLine } from "./command-output-BTy8hZ0F.mjs";
3
+ import { i as workspaceLinkLine } from "./stim-desktop-BzBN2Em2.mjs";
4
+ import { Dt as recordFinishedBuild } from "./budget-f7516Zk0.mjs";
5
+ import { a as easAuthNote, n as UPLOAD_TIMEOUT_MS, r as cacheLevel, s as isEasAuthFailureText } from "./remote-cache-OyOyVIS3.mjs";
6
+ import "./launch-verify-B6Q8hZP-.mjs";
7
+ import { n as CCACHE_UNAVAILABLE, r as ccacheActivityLine } from "./ccache-zdKiYQ3E.mjs";
8
+ import { a as PLATFORM } from "./support-DMTqj3Hm.mjs";
9
9
  import { buildDiagnostics } from "@stim-cli/core/state";
10
10
  import chalk from "chalk";
11
11
  //#region src/commands/android/result.ts
@@ -1,7 +1,7 @@
1
- import { n as ownership_claim_exports, t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
2
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
1
+ import { j as ownership_claim_exports, k as process_identity_exports } from "./config-BYDxlMY3.mjs";
2
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
3
3
  import { r as createNdjsonWriter } from "./ndjson-GOnbyvso.mjs";
4
- import { a as macosRuntimeClaim, i as macosProcess, r as macosLogFile, s as updateMacosRecord } from "./state-BUpAmt2r.mjs";
4
+ import { a as macosRuntimeClaim, i as macosProcess, r as macosLogFile, s as updateMacosRecord } from "./state-CG_OFoaA.mjs";
5
5
  import { readMacosRecord } from "@stim-cli/core/state";
6
6
  import { LOG_ROTATE_BYTES } from "@stim-cli/core";
7
7
  import { StringDecoder } from "node:string_decoder";
@@ -1,6 +1,6 @@
1
- import { i as __require, r as __commonJSMin } from "./process-identity-Biv3arCO.mjs";
2
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
3
- import { K as resolveProjectSettings } from "./settings-Bbztm4oV.mjs";
1
+ import { J as __require, q as __commonJSMin } from "./config-BYDxlMY3.mjs";
2
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
3
+ import { K as resolveProjectSettings } from "./settings-B717odTD.mjs";
4
4
  import { c as registerMetroStore, f as resolveMetroSharedCache, n as supervisorError, r as appendCacheStore, s as metroStoreRoot } from "./errors-DzkMYh8Q.mjs";
5
5
  import { createRequire } from "node:module";
6
6
  import { isAbsolute, join, relative, sep } from "node:path";
@@ -1,9 +1,9 @@
1
- import { t as getExecutor } from "./exec-B81Qodjn.mjs";
2
- import { n as METRO_COMMAND_PORT } from "./settings-Bbztm4oV.mjs";
3
- import { w as MODE_COMMAND } from "./project-DX8fXyw_.mjs";
4
- import { d as signalProcessTree } from "./metro-_ZIE3Axg.mjs";
1
+ import { t as getExecutor } from "./exec-DqKo9GKJ.mjs";
2
+ import { n as METRO_COMMAND_PORT } from "./settings-B717odTD.mjs";
3
+ import { w as MODE_COMMAND } from "./project-_phNIJfs.mjs";
4
+ import { d as signalProcessTree } from "./metro-DnCEjCxs.mjs";
5
5
  import { r as createNdjsonWriter } from "./ndjson-GOnbyvso.mjs";
6
- import { f as recordFromLine, m as superviseChildServer } from "./server-expo-CUuzP9Mp.mjs";
6
+ import { f as recordFromLine, m as superviseChildServer } from "./server-expo-DsguMGUF.mjs";
7
7
  import { join } from "node:path";
8
8
  import { LOG_ROTATE_BYTES } from "@stim-cli/core";
9
9
  //#region src/supervisor/server-command.ts
@@ -0,0 +1,2 @@
1
+ import { p as startExpoServer } from "./server-expo-DsguMGUF.mjs";
2
+ export { startExpoServer };