stim 1.27.0 → 1.28.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 (137) hide show
  1. package/dist/{acquire-artifact-BKN2Yuhg.mjs → acquire-artifact-CKByBnTD.mjs} +1 -1
  2. package/dist/{act-ROviTF_t.mjs → act-8iswyfRa.mjs} +36 -18
  3. package/dist/{activity-Cd-ysFes.mjs → activity-DRMg4_mD.mjs} +3 -3
  4. package/dist/{agent-device-usage-output-C5nCKWp9.mjs → agent-device-usage-output-tE90fDdo.mjs} +3 -3
  5. package/dist/{android-Cd6w7_qw.mjs → android-CHmSU4B4.mjs} +40 -37
  6. package/dist/{android-DriNoAVy.mjs → android-CsPs-7Mg.mjs} +3 -3
  7. package/dist/{android-Deb9X3_Y.mjs → android-D577ApKG.mjs} +1 -1
  8. package/dist/{android--HBgpvpW.mjs → android-YWCbmkVK.mjs} +5 -5
  9. package/dist/{android-cas-D5e6ecUg.mjs → android-cas-_aDifWW0.mjs} +2 -2
  10. package/dist/api.d.mts +1 -1
  11. package/dist/api.mjs +24 -24
  12. package/dist/{apk-signed-tail-BHQHx3Rm.mjs → apk-signed-tail-CQbwM0qO.mjs} +2 -2
  13. package/dist/{artifact-faemIZv5.mjs → artifact-DYtHjxsn.mjs} +12 -12
  14. package/dist/{artifact-0AGJYB9O.mjs → artifact-bFkfD3vf.mjs} +12 -12
  15. package/dist/{auto-placement-z-H5pJza.mjs → auto-placement-BVqs8AJi.mjs} +7 -7
  16. package/dist/{browser-web-slD8AvLp.mjs → browser-web-BUaLcafY.mjs} +10 -10
  17. package/dist/{build-hS0QyFlQ.mjs → build-cQURy_KW.mjs} +20 -20
  18. package/dist/{build-cache-gBJ-WKzA.mjs → build-cache-CZULpXVl.mjs} +3 -3
  19. package/dist/{build-plan-CBqYbzYM.mjs → build-plan-CxoYfxsc.mjs} +6 -6
  20. package/dist/{ccache-BWTze1Ls.mjs → ccache-Bm_A1xX9.mjs} +15 -14
  21. package/dist/{cli-ftXDLto1.mjs → cli-CpbaLDa7.mjs} +17 -17
  22. package/dist/cli.mjs +1 -1
  23. package/dist/{client-xsdxrhWA.mjs → client-YxCer6ab.mjs} +39 -6
  24. package/dist/collector-run.mjs +3 -3
  25. package/dist/{command-output-Dj-WT4BP.mjs → command-output-C8R1KIvi.mjs} +1 -1
  26. package/dist/{dependencies-BGokZ-Ng.mjs → dependencies-DKeMzwXY.mjs} +35 -35
  27. package/dist/{dependency-state-C3OtgG94.mjs → dependency-state-CojA2o0t.mjs} +1 -1
  28. package/dist/{dev-client-BMca82xo.mjs → dev-client-D-BW5uiq.mjs} +2 -2
  29. package/dist/{device-tM41-TUq.mjs → device-CgXfbcz5.mjs} +11 -11
  30. package/dist/{device-capacity-6LP7QsaA.mjs → device-capacity-Cd8lMSn3.mjs} +85 -17
  31. package/dist/{device-BJm0irrq.mjs → device-eeK95Lir.mjs} +13 -13
  32. package/dist/device-host-worker.mjs +13 -11
  33. package/dist/{device-ios-534c14fz.mjs → device-ios-Cc9ulihb.mjs} +7 -7
  34. package/dist/{device-lease-run-DwsGfjUN.mjs → device-lease-run-Mtzp4THX.mjs} +3 -3
  35. package/dist/{device-pool-BnQqvs6o.mjs → device-pool-eRz6DtCg.mjs} +2 -2
  36. package/dist/{doctor-DyqE9n1J.mjs → doctor-Bz_ouYAW.mjs} +12 -12
  37. package/dist/{doctor-Dbx1ZpD2.mjs → doctor-C2QyhejJ.mjs} +1 -1
  38. package/dist/doctor-fingerprint.mjs +1 -1
  39. package/dist/{doctor-watchman-CxDbyrrt.mjs → doctor-watchman-BTW82PDC.mjs} +3 -3
  40. package/dist/{doctor-F-3VUUyN.mjs → doctor-xf7ht-5n.mjs} +17 -17
  41. package/dist/{eas-build-CjNSWmjo.mjs → eas-build-Dm6q68QY.mjs} +2 -2
  42. package/dist/{eas-fallback-9fqb46kW.mjs → eas-fallback-DajNpxf-.mjs} +3 -3
  43. package/dist/{eas-session-ledger-DrP4OuuM.mjs → eas-session-ledger-CBFo_Uo1.mjs} +35 -6
  44. package/dist/{error-diagnostics-snej9k4j.mjs → error-diagnostics-D1QfyJzQ.mjs} +7 -7
  45. package/dist/{gc-CGZ1Yg88.mjs → gc-DM5oMm-J.mjs} +17 -16
  46. package/dist/{gc-BRwAY3qT.mjs → gc-PLFwb0k4.mjs} +2 -2
  47. package/dist/{guide-_rfEh_zM.mjs → guide-C4I46XAk.mjs} +106 -42
  48. package/dist/{hosted-android-BMKzUNnY.mjs → hosted-android-DlaKLbW0.mjs} +5 -6
  49. package/dist/{hosted-client-D7Pk_Oo1.mjs → hosted-client-DDRm9hPJ.mjs} +43 -16
  50. package/dist/{hosted-logs-B1gqQuva.mjs → hosted-logs-bSebOKbz.mjs} +5 -5
  51. package/dist/{hosted-logs-sync-Dg3qrZmV.mjs → hosted-logs-sync-B0c53W_c.mjs} +5 -5
  52. package/dist/{hosted-macos-B9w4H8hc.mjs → hosted-macos-B7-8Pv4H.mjs} +5 -5
  53. package/dist/{hosted-native-CdgaiuyP.mjs → hosted-native-CDe33CSr.mjs} +11 -8
  54. package/dist/{idle-shutdown-Cbvo5KEh.mjs → idle-shutdown-CQ0QwU9J.mjs} +5 -5
  55. package/dist/{ios-E26qSpkb.mjs → ios-B1DYuOjh.mjs} +2 -2
  56. package/dist/{ios-Bk4mWbtS.mjs → ios-B1HvafEG.mjs} +8 -8
  57. package/dist/{ios-device-C_QkIf1Z.mjs → ios-device-B4elVFKi.mjs} +1 -1
  58. package/dist/{ios-project-D8Jcy_br.mjs → ios-project-CR4mZ7CH.mjs} +6 -6
  59. package/dist/{ios-state-BZ03NFgF.mjs → ios-state-BPHqMDdZ.mjs} +1 -1
  60. package/dist/{ios-B5HlVMhQ.mjs → ios-tg4tp3q1.mjs} +30 -28
  61. package/dist/{js-swap-Dg2a945i.mjs → js-swap-CVpSW1fn.mjs} +4 -4
  62. package/dist/{launch-CRyBeNsA.mjs → launch-DoySmhjz.mjs} +17 -17
  63. package/dist/{lightened-BCsdAGj_.mjs → lightened-DFAJgfIk.mjs} +4 -4
  64. package/dist/{logs-aJQb-RDg.mjs → logs-BGsW7iPe.mjs} +6 -6
  65. package/dist/{logs-CC_-ZzEE.mjs → logs-DI5ILkYB.mjs} +4 -4
  66. package/dist/{macos-DlCBhMw5.mjs → macos-Bo9st9Di.mjs} +18 -18
  67. package/dist/{macos-BGmTpnv9.mjs → macos-C12RMJQF.mjs} +1 -1
  68. package/dist/macos-run.mjs +1 -1
  69. package/dist/maintenance-run.mjs +4 -4
  70. package/dist/{metro-CvyD-xwe.mjs → metro-BnhXV2Mj.mjs} +1 -1
  71. package/dist/{metro-gateway-BnHdqMO_.mjs → metro-request-DXyKjVDF.mjs} +25 -46
  72. package/dist/{named-ports-BCyMWA6b.mjs → named-ports-Phoi2POD.mjs} +1 -1
  73. package/dist/{native-android-DlpxCyOP.mjs → native-android-vxgtLD7w.mjs} +14 -14
  74. package/dist/{native-gradle-artifact-inputs-C13qT7R_.mjs → native-gradle-artifact-inputs-BN96IVw8.mjs} +3 -3
  75. package/dist/{native-runtime-DqaIBO5w.mjs → native-runtime-DG4Rodzj.mjs} +6 -6
  76. package/dist/{native-xcode-inputs-B1W8SrxB.mjs → native-xcode-inputs-BKarCoKg.mjs} +2 -2
  77. package/dist/{native-xcode-ios-QPP0Rm68.mjs → native-xcode-ios-8A-efGa5.mjs} +14 -14
  78. package/dist/offload-worker.mjs +18 -18
  79. package/dist/{ownership-Bx-0cku-.mjs → ownership-DJCq48IJ.mjs} +2 -2
  80. package/dist/{phone-reverses-C9yAaKEv.mjs → phone-reverses-BzTa8g1F.mjs} +3 -3
  81. package/dist/{placement-log-BXUbiZM6.mjs → placement-log-Cvhta5ib.mjs} +1 -1
  82. package/dist/{plan-placement-UxnQjv5Z.mjs → plan-placement-WkZdccuN.mjs} +5 -5
  83. package/dist/{ports-uUrghqWN.mjs → ports-UV4mJgyC.mjs} +2 -2
  84. package/dist/{prebuild-BDpToDgR.mjs → prebuild-k8d_tqOq.mjs} +8 -8
  85. package/dist/{project-DYj-HVx6.mjs → project-Sui52ywT.mjs} +14 -14
  86. package/dist/{react-native-android-DDBccgJw.mjs → react-native-android-DANlGGQf.mjs} +21 -21
  87. package/dist/{react-native-build-DaK2IFyP.mjs → react-native-build-jUHnIfZ9.mjs} +6 -6
  88. package/dist/{react-native-doctor-B-Mw6DcR.mjs → react-native-doctor-DCWRjS7K.mjs} +5 -5
  89. package/dist/{react-native-ios-DjYwUF9U.mjs → react-native-ios-BwMsFMXi.mjs} +14 -14
  90. package/dist/{recordings-C20iUZfp.mjs → recordings-iy0mkm7b.mjs} +1 -1
  91. package/dist/{reload-DJBeF_rC.mjs → reload-Bj7QyuDy.mjs} +1 -1
  92. package/dist/{reload-fUdkH2_p.mjs → reload-c_uEyc_X.mjs} +13 -13
  93. package/dist/{remote-y6n99WMW.mjs → remote-DFlpAqdV.mjs} +8 -8
  94. package/dist/{result-CTqBw2Te.mjs → result-BIcXREyC.mjs} +14 -14
  95. package/dist/{run-DaCeNKRm.mjs → run-y2HwyNvg.mjs} +1 -1
  96. package/dist/{selection-Bs8phwhN.mjs → selection-CXgM_VK_.mjs} +2 -2
  97. package/dist/{server-bare-BOh-iZEj.mjs → server-bare-2N4vSRZG.mjs} +1 -1
  98. package/dist/{server-command-8CuA51Cv.mjs → server-command-qneHPcRI.mjs} +4 -4
  99. package/dist/{server-expo-ABQs2XFA.mjs → server-expo-Ccm9zB0o.mjs} +2 -2
  100. package/dist/server-expo-WulkyAwT.mjs +2 -0
  101. package/dist/{settings-BDVI8Ivc.mjs → settings-CY5JZlNN.mjs} +46 -2
  102. package/dist/{settings-CMHhQNwI.mjs → settings-Cfd_Q6ys.mjs} +2 -2
  103. package/dist/{settings-payload-cm60Zhib.mjs → settings-payload-DwQiEMCn.mjs} +2 -2
  104. package/dist/{settings-write-BdNRLlBn.mjs → settings-write-CJpjkeAd.mjs} +3 -3
  105. package/dist/{slot-launch-0l7RqSpr.mjs → slot-launch-BpmanOnk.mjs} +5 -5
  106. package/dist/{stage-F4cAfJGi.mjs → stage-CmugrSG5.mjs} +1 -1
  107. package/dist/{start-DcqnF9p8.mjs → start-CHH3zgIU.mjs} +1 -1
  108. package/dist/{start-DrPwER_2.mjs → start-DYLk6GXn.mjs} +8 -8
  109. package/dist/{state-BX1y5syV.mjs → state-B2QJbDwz.mjs} +2 -2
  110. package/dist/{state-CZxLyetD.mjs → state-BXC1Lfxw.mjs} +1 -1
  111. package/dist/{stats-GxuCbles.mjs → stats-DxKqhcGp.mjs} +3 -3
  112. package/dist/{status-BfnK9pUd.mjs → status-BHCkOZga.mjs} +46 -23
  113. package/dist/{status-Bj7ZYvvc.mjs → status-D_Ljc89p.mjs} +1 -1
  114. package/dist/{status-watch-BfabQn03.mjs → status-watch-BmsPqYSU.mjs} +17 -6
  115. package/dist/status-worker.mjs +1 -1
  116. package/dist/{stop-D-EAr25B.mjs → stop-D-dGE9gh.mjs} +14 -14
  117. package/dist/{stop-CH79S3IZ.mjs → stop-DQvE-P76.mjs} +9 -5
  118. package/dist/{stop-x1Yu3He4.mjs → stop-b2pouxAO.mjs} +2 -2
  119. package/dist/supervisor-run.mjs +232 -58
  120. package/dist/{support-CNg_YsOk.mjs → support-04IhBUTT.mjs} +4 -4
  121. package/dist/{support-Be0UeVZU.mjs → support-BtlJKjyQ.mjs} +11 -10
  122. package/dist/{swiftpm-artifact-inputs-uPqYvGBv.mjs → swiftpm-artifact-inputs-Cj2UpmPN.mjs} +1 -1
  123. package/dist/{swiftpm-macos-Ch4YjY_A.mjs → swiftpm-macos-BhF2stxY.mjs} +7 -7
  124. package/dist/{toolchain-CbCG6C5Z.mjs → toolchain-mLA_km-b.mjs} +4 -4
  125. package/dist/{toolchain-JYAOquPg.mjs → toolchain-qktiV8xc.mjs} +1 -1
  126. package/dist/{warm-progress-C0RsbngN.mjs → warm-progress-B0Vpuvpl.mjs} +3 -3
  127. package/dist/{web-Cq_AQ4DK.mjs → web-BYmK0TjL.mjs} +6 -6
  128. package/dist/web-CrVLVQZY.mjs +2 -0
  129. package/dist/web-run.mjs +4 -4
  130. package/dist/{workspace-state-BjqdjnJR.mjs → workspace-state-kIZrdlSg.mjs} +1 -1
  131. package/dist/{workspaces-DFbj07jp.mjs → workspaces-CmOcceDN.mjs} +105 -25
  132. package/dist/{worktree-COAJ3-OD.mjs → worktree-2dk5edza.mjs} +23 -44
  133. package/dist/worktree-nliAoHxB.mjs +2 -0
  134. package/package.json +7 -7
  135. package/dist/server-expo-Ba_Y21vB.mjs +0 -2
  136. package/dist/web-Je6abcpz.mjs +0 -2
  137. package/dist/worktree-JGUd_53L.mjs +0 -2
@@ -1,28 +1,28 @@
1
1
  import { c as throwIfCancelled, s as cancelledError, x as withDrainingCancellation } from "./exec-aULwtNly.mjs";
2
- import { E as workspaceDir, a as recordWorkspaceUseAsync, k as workspaceLogsDir } from "./workspace-state-BjqdjnJR.mjs";
2
+ import { E as workspaceDir, a as recordWorkspaceUseAsync, k as workspaceLogsDir } from "./workspace-state-kIZrdlSg.mjs";
3
3
  import { E as upsertProject, O as withConfigLockAsync, p as getProject, u as getConcurrencyLimits } from "./config-Cn94Jc0g.mjs";
4
- import { l as phaseLine } from "./command-output-Dj-WT4BP.mjs";
5
- import { J as resolveCacheProviderConfig, Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY } from "./settings-BDVI8Ivc.mjs";
6
- import { f as projectRegistry, v as detectIsExpo } from "./project-DYj-HVx6.mjs";
4
+ import { l as phaseLine } from "./command-output-C8R1KIvi.mjs";
5
+ import { J as resolveCacheProviderConfig, Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY } from "./settings-CY5JZlNN.mjs";
6
+ import { f as projectRegistry, v as detectIsExpo } from "./project-Sui52ywT.mjs";
7
7
  import { s as workspaceShareURL } from "./stim-desktop-CbWo21kb.mjs";
8
- import { k as hostSystemImageArch } from "./android-DriNoAVy.mjs";
8
+ import { k as hostSystemImageArch } from "./android-CsPs-7Mg.mjs";
9
9
  import { i as createNdjsonWriter } from "./ndjson-Dy2W4vRa.mjs";
10
- import { An as checkEasAuth, Rn as resolveRemote, zn as uploadRemote } from "./ccache-BWTze1Ls.mjs";
11
- import { X as tapBuildLog, Y as startBuildProgress, at as recordRunStats, et as createRunRecorder, ot as statsProjectKey, q as recordFinishedBuild, tt as readRunEstimates, xt as releaseBuildSlot, yt as acquireBuildSlot } from "./workspaces-DFbj07jp.mjs";
12
- import { V as readBundleId, ot as runCancellationSignal, st as withNativeBuildRun } from "./toolchain-CbCG6C5Z.mjs";
13
- import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-Cd-ysFes.mjs";
14
- import { T as storedAppId, x as providerUploadOutcome } from "./build-cache-gBJ-WKzA.mjs";
15
- import { m as listIosRuntimes } from "./ios-E26qSpkb.mjs";
10
+ import { An as checkEasAuth, Rn as resolveRemote, zn as uploadRemote } from "./ccache-Bm_A1xX9.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-CmOcceDN.mjs";
12
+ import { V as readBundleId, ot as runCancellationSignal, st as withNativeBuildRun } from "./toolchain-mLA_km-b.mjs";
13
+ import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-DRMg4_mD.mjs";
14
+ import { T as storedAppId, x as providerUploadOutcome } from "./build-cache-CZULpXVl.mjs";
15
+ import { m as listIosRuntimes } from "./ios-B1DYuOjh.mjs";
16
16
  import { d as optimizationBuildProfile, l as artifactCachePolicy } from "./errors-DHm_U5gv.mjs";
17
- import { S as setRemoteLogSink } from "./client-xsdxrhWA.mjs";
18
- import { d as resolveBuildPlacement } from "./selection-Bs8phwhN.mjs";
19
- import { c as iosProjectPathError, g as resolveIosBuildSetup, m as resolveConfiguration, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-Be0UeVZU.mjs";
20
- import { f as settleFingerprintCheck } from "./prebuild-BDpToDgR.mjs";
21
- import { n as ensureWorkspaceStorageSafely } from "./native-runtime-DqaIBO5w.mjs";
22
- import { t as acquireAndroidArtifact } from "./artifact-0AGJYB9O.mjs";
23
- import { a as persistLastBuild, l as resolveAndroidBuildPlan, n as finishAndroidUpload } from "./result-CTqBw2Te.mjs";
24
- import { o as lastBuildRecord } from "./ios-project-D8Jcy_br.mjs";
25
- import { t as acquireIosArtifact } from "./artifact-faemIZv5.mjs";
17
+ import { S as setRemoteLogSink } from "./client-YxCer6ab.mjs";
18
+ import { d as resolveBuildPlacement } from "./selection-CXgM_VK_.mjs";
19
+ import { c as iosProjectPathError, g as resolveIosBuildSetup, m as resolveConfiguration, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-BtlJKjyQ.mjs";
20
+ import { f as settleFingerprintCheck } from "./prebuild-k8d_tqOq.mjs";
21
+ import { n as ensureWorkspaceStorageSafely } from "./native-runtime-DG4Rodzj.mjs";
22
+ import { t as acquireAndroidArtifact } from "./artifact-bFkfD3vf.mjs";
23
+ import { a as persistLastBuild, l as resolveAndroidBuildPlan, n as finishAndroidUpload } from "./result-BIcXREyC.mjs";
24
+ import { o as lastBuildRecord } from "./ios-project-CR4mZ7CH.mjs";
25
+ import { t as acquireIosArtifact } from "./artifact-DYtHjxsn.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,9 +1,9 @@
1
1
  import { c as throwIfCancelled, t as getExecutor, x as withDrainingCancellation } from "./exec-aULwtNly.mjs";
2
- import { y as sharedBuildCache } from "./workspace-state-BjqdjnJR.mjs";
2
+ import { y as sharedBuildCache } from "./workspace-state-kIZrdlSg.mjs";
3
3
  import { a as killOnAbort, c as gitQuiet, o as git, r as childEnvironment, s as gitAsync } from "./operation-exec-Dp4FuIGR.mjs";
4
- import { m as defaultAndroidLayout } from "./settings-BDVI8Ivc.mjs";
4
+ import { m as defaultAndroidLayout } from "./settings-CY5JZlNN.mjs";
5
5
  import { r as register } from "./cache-manifest-DEjqGGat.mjs";
6
- import { r as writeSignedTail, t as computeSignedTail } from "./apk-signed-tail-BHQHx3Rm.mjs";
6
+ import { r as writeSignedTail, t as computeSignedTail } from "./apk-signed-tail-CQbwM0qO.mjs";
7
7
  import { createHash } from "node:crypto";
8
8
  import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
9
9
  import { join } from "node:path";
@@ -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-Dj-WT4BP.mjs";
3
- import { $t as makeTemporaryDirectory, tn as removeTemporaryEntryAsync } from "./settings-BDVI8Ivc.mjs";
4
- import { jn as easAuthNote } from "./ccache-BWTze1Ls.mjs";
5
- import { W as estimateBuild, nt as readStats } from "./workspaces-DFbj07jp.mjs";
6
- import { s as entryDir, t as artifactIn } from "./build-cache-gBJ-WKzA.mjs";
7
- import { l as predictBuildMiss, o as staleNativeDirRefusal } from "./prebuild-BDpToDgR.mjs";
2
+ import { i as formatDuration, l as phaseLine, m as shortHash, u as plural } from "./command-output-C8R1KIvi.mjs";
3
+ import { an as makeTemporaryDirectory, sn as removeTemporaryEntryAsync } from "./settings-CY5JZlNN.mjs";
4
+ import { jn as easAuthNote } from "./ccache-Bm_A1xX9.mjs";
5
+ import { at as readStats, q as estimateBuild } from "./workspaces-CmOcceDN.mjs";
6
+ import { s as entryDir, t as artifactIn } from "./build-cache-CZULpXVl.mjs";
7
+ import { l as predictBuildMiss, o as staleNativeDirRefusal } from "./prebuild-k8d_tqOq.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
@@ -1,24 +1,24 @@
1
1
  import { D as ownership_claim_exports, E as debugLog, S as process_identity_exports, b as operationState, c as throwIfCancelled, d as workspaceProcessLockError, l as WorkspaceProcessCleanupError, n as isTimeoutError, o as cancellableSleep, s as cancelledError, t as getExecutor, u as withWorkspaceProcessLock, y as isTermination } from "./exec-aULwtNly.mjs";
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-BjqdjnJR.mjs";
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-kIZrdlSg.mjs";
3
3
  import { F as isOnMountedVolume, G as projectDeviceSlots, H as deviceSlotPlatforms, L as measuredDirectorySizeAsync, M as directorySize, N as directorySizeAsync, O as withConfigLockAsync$1, P as formatBytes, R as volumeRootFor, _ as loadConfig$1, a as clearDevice, d as getConfigDir, o as clearSupervisor, p as getProject } from "./config-Cn94Jc0g.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-Dj-WT4BP.mjs";
5
+ import { a as formatElapsed, l as phaseLine, o as formatLongDuration, s as isAppLaunchError, u as plural } from "./command-output-C8R1KIvi.mjs";
6
6
  import { a as killOnAbort, n as runOperationFileQuiet, r as childEnvironment, t as runOperationFile } from "./operation-exec-Dp4FuIGR.mjs";
7
- import { Z as resolveProjectSettingsAsync, d as androidLayoutSetting, ft as planMetroReach, m as defaultAndroidLayout } from "./settings-BDVI8Ivc.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-DYj-HVx6.mjs";
9
- import { F as listAvdsAsync, G as ownedAvdSerialResolverAsync, I as listInstalledSystemImages, J as parseAvdSystemImage, V as ownedAvdDirectory, d as androidToolPath, dt as isStimOwnedSim, m as avdIniPaths, mt as dropParked, o as androidHome, q as parseAvdDeviceProfile, ut as isStimOwnedAvd, v as avdStorageRoots, yt as readParked } from "./android-DriNoAVy.mjs";
10
- import { a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, h as isMetroRunning, r as killMetroTreeAsync, u as processCwds } from "./metro-CvyD-xwe.mjs";
7
+ import { Z as resolveProjectSettingsAsync, d as androidLayoutSetting, ft as planMetroReach, m as defaultAndroidLayout } from "./settings-CY5JZlNN.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-Sui52ywT.mjs";
9
+ import { F as listAvdsAsync, G as ownedAvdSerialResolverAsync, I as listInstalledSystemImages, J as parseAvdSystemImage, V as ownedAvdDirectory, d as androidToolPath, dt as isStimOwnedSim, m as avdIniPaths, mt as dropParked, o as androidHome, q as parseAvdDeviceProfile, ut as isStimOwnedAvd, v as avdStorageRoots, yt as readParked } from "./android-CsPs-7Mg.mjs";
10
+ import { a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, h as isMetroRunning, r as killMetroTreeAsync, u as processCwds } from "./metro-BnhXV2Mj.mjs";
11
11
  import { c as readNdjsonGenerations$1, i as createNdjsonWriter, r as createNdjsonTail } from "./ndjson-Dy2W4vRa.mjs";
12
- import { C as environmentState, 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 formatSpace, y as capacity } from "./eas-session-ledger-DrP4OuuM.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-CBFo_Uo1.mjs";
13
13
  import { i as registeredCaches, r as register } from "./cache-manifest-DEjqGGat.mjs";
14
- import { A as collectIdleDevicesAsync, Ct as createGcResults, Et as mapLimited, I as shutDownIdleDevices, L as workspaceBuildInProgress, M as collectOwnedDeviceActivityAsync, Ot as sizeConcurrency, P as idleShutdownCandidates, St as GC_OUTPUT, _ as withIdleWorkspace, _t as measureDu, b as resolveSupervisorTarget, bt as listBuildSlots, ct as eraseParkedIosSim, ft as teardownOwnedIosSim, gt as canonical$1, ht as probePublicHttp, i as clearWorkspaceOutputs, mt as teardownParkedIosSim, o as collectWorkspaceOutputs, pt as teardownParkedAvd, st as eraseParkedAvd, ut as teardownOwnedAvd, vt as writeUsageCache } from "./workspaces-DFbj07jp.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-CmOcceDN.mjs";
15
15
  import { t as canonicalPath } from "./paths-BsJMoPP2.mjs";
16
- import { lt as claimForEmptying, ot as runCancellationSignal, rt as nativeRunWaitNotice } from "./toolchain-CbCG6C5Z.mjs";
17
- import { N as listBuildLocks, b as leaseIsExpired, g as workspaceActivity, o as envDir, p as readHostProcessTableAsync, x as listLeaseFiles } from "./activity-Cd-ysFes.mjs";
18
- import { l as expoConfigContents } from "./build-cache-gBJ-WKzA.mjs";
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-E26qSpkb.mjs";
16
+ import { lt as claimForEmptying, ot as runCancellationSignal, rt as nativeRunWaitNotice } from "./toolchain-mLA_km-b.mjs";
17
+ import { N as listBuildLocks, b as leaseIsExpired, g as workspaceActivity, o as envDir, p as readHostProcessTableAsync, x as listLeaseFiles } from "./activity-DRMg4_mD.mjs";
18
+ import { l as expoConfigContents } from "./build-cache-CZULpXVl.mjs";
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-B1DYuOjh.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-ABQs2XFA.mjs";
21
+ import { c as findBinUpward, n as expoBinFromPackage, r as expoBinPath, s as expoTelemetryEnv } from "./server-expo-Ccm9zB0o.mjs";
22
22
  import { t as DEV_MENU_LAUNCH_ARGS } from "./ios-device-CiBA-er9.mjs";
23
23
  import { t as resolveMaintenanceSettings } from "./settings-Djl-mpjX.mjs";
24
24
  import { createRequire } from "node:module";
@@ -8039,9 +8039,10 @@ async function reclaimWorkspaceOutputs({ root, dryRun, now, note, record, diskRe
8039
8039
  targets: clearable.map((entry) => entry.projectRoot),
8040
8040
  failures: 0
8041
8041
  };
8042
+ const locked = report.workspaces.filter((entry) => keptByLock(entry) && entry.projectRoot !== null && other(entry.projectRoot));
8042
8043
  const targets = [];
8043
8044
  let failures = 0;
8044
- for (const entry of clearable) {
8045
+ for (const entry of [...locked, ...clearable]) {
8045
8046
  const result = await clearWorkspaceOutputs({
8046
8047
  ...report,
8047
8048
  workspaces: [entry]
@@ -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-Dbx1ZpD2.mjs")],
9
- ["worktree", () => import("./worktree-JGUd_53L.mjs")],
10
- ["start", () => import("./start-DcqnF9p8.mjs")],
11
- ["ports", () => import("./ports-uUrghqWN.mjs")],
12
- ["stop", () => import("./stop-x1Yu3He4.mjs")],
13
- ["ios", () => import("./ios-Bk4mWbtS.mjs")],
14
- ["android", () => import("./android--HBgpvpW.mjs")],
15
- ["web", () => import("./web-Je6abcpz.mjs")],
16
- ["macos", () => import("./macos-BGmTpnv9.mjs")],
17
- ["reload", () => import("./reload-DJBeF_rC.mjs")],
18
- ["device", () => import("./device-BJm0irrq.mjs")],
19
- ["logs", () => import("./logs-aJQb-RDg.mjs")],
20
- ["settings", () => import("./settings-CMHhQNwI.mjs")],
21
- ["status", () => import("./status-Bj7ZYvvc.mjs")],
22
- ["stats", () => import("./stats-GxuCbles.mjs")],
23
- ["gc", () => import("./gc-BRwAY3qT.mjs")],
24
- ["guide", () => import("./guide-_rfEh_zM.mjs")]
8
+ ["doctor", () => import("./doctor-C2QyhejJ.mjs")],
9
+ ["worktree", () => import("./worktree-nliAoHxB.mjs")],
10
+ ["start", () => import("./start-CHH3zgIU.mjs")],
11
+ ["ports", () => import("./ports-UV4mJgyC.mjs")],
12
+ ["stop", () => import("./stop-b2pouxAO.mjs")],
13
+ ["ios", () => import("./ios-B1HvafEG.mjs")],
14
+ ["android", () => import("./android-YWCbmkVK.mjs")],
15
+ ["web", () => import("./web-CrVLVQZY.mjs")],
16
+ ["macos", () => import("./macos-C12RMJQF.mjs")],
17
+ ["reload", () => import("./reload-Bj7QyuDy.mjs")],
18
+ ["device", () => import("./device-eeK95Lir.mjs")],
19
+ ["logs", () => import("./logs-BGsW7iPe.mjs")],
20
+ ["settings", () => import("./settings-Cfd_Q6ys.mjs")],
21
+ ["status", () => import("./status-D_Ljc89p.mjs")],
22
+ ["stats", () => import("./stats-DxKqhcGp.mjs")],
23
+ ["gc", () => import("./gc-PLFwb0k4.mjs")],
24
+ ["guide", () => import("./guide-C4I46XAk.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();
package/dist/cli.mjs CHANGED
@@ -4,6 +4,6 @@ const encode = (version) => version.split(".", 3).reduce((sum, part) => sum * 1e
4
4
  if (encode(process.versions.node) < encode("22.12.0")) {
5
5
  process.stderr.write(`STIM_NODE_UNSUPPORTED: Stim needs Node 22.12.0 or later; this is Node ${process.versions.node} at ${process.execPath}. To run Stim where a project pins an older Node, see https://stim.appandflow.com/docs/requirements#older-node-pins\n`);
6
6
  process.exitCode = 1;
7
- } else import("./cli-ftXDLto1.mjs");
7
+ } else import("./cli-CpbaLDa7.mjs");
8
8
  //#endregion
9
9
  export {};
@@ -1,11 +1,11 @@
1
1
  import { C as reportSignal, E as debugLog, b as operationState, c as throwIfCancelled, t as getExecutor } from "./exec-aULwtNly.mjs";
2
2
  import { _ as loadConfig$1, ot as resolveEndpoint, st as sayHello, tt as openAuthenticated } from "./config-Cn94Jc0g.mjs";
3
3
  import { o as git, s as gitAsync } from "./operation-exec-Dp4FuIGR.mjs";
4
- import { G as planCacheEmptying, R as maintenanceLogger, n as CCACHE_UNAVAILABLE, t as CCACHE_NOT_RUN, ur as discoverCaches, z as emptyCaches } from "./ccache-BWTze1Ls.mjs";
4
+ import { G as planCacheEmptying, R as maintenanceLogger, n as CCACHE_UNAVAILABLE, t as CCACHE_NOT_RUN, ur as discoverCaches, z as emptyCaches } from "./ccache-Bm_A1xX9.mjs";
5
5
  import { t as canonicalPath } from "./paths-BsJMoPP2.mjs";
6
- import { A as COMPILATION_CACHE_UNAVAILABLE, E as readRubyVersion, a as cocoapodsDifference, k as COMPILATION_CACHE_NOT_RUN, ot as runCancellationSignal, s as iosToolchainAsync, v as toolchainMismatches, x as workerToolchain, y as toolchainNotes } from "./toolchain-CbCG6C5Z.mjs";
6
+ import { A as COMPILATION_CACHE_UNAVAILABLE, E as readRubyVersion, a as cocoapodsDifference, k as COMPILATION_CACHE_NOT_RUN, ot as runCancellationSignal, s as iosToolchainAsync, v as toolchainMismatches, x as workerToolchain, y as toolchainNotes } from "./toolchain-mLA_km-b.mjs";
7
7
  import { t as resolveMaintenanceSettings } from "./settings-Djl-mpjX.mjs";
8
- import { f as workerFailureReason, m as pairedMachines, o as namedBuildMachine, t as OffloadRefusal } from "./selection-Bs8phwhN.mjs";
8
+ import { f as workerFailureReason, m as pairedMachines, o as namedBuildMachine, t as OffloadRefusal } from "./selection-CXgM_VK_.mjs";
9
9
  import { n as fingerprintNativeInputs, r as manifestDigest } from "./native-inputs-TRTTTRxt.mjs";
10
10
  import { a as sourceManifest, i as nativeTransferManifest, n as gitVisiblePaths, r as nativeFileDigest, t as checkNativeTransferMembership } from "./native-source-D1AzWiuP.mjs";
11
11
  import { createHash, webcrypto } from "node:crypto";
@@ -599,7 +599,10 @@ var BuildConnection = class BuildConnection {
599
599
  writeWaiters = /* @__PURE__ */ new Set();
600
600
  progress = null;
601
601
  binary = null;
602
+ event = null;
603
+ dropped = null;
602
604
  closed = null;
605
+ lastWrite = Promise.resolve();
603
606
  heard = Date.now();
604
607
  watched = false;
605
608
  ended = false;
@@ -631,6 +634,7 @@ var BuildConnection = class BuildConnection {
631
634
  }
632
635
  if (!isJsonObject(message)) return;
633
636
  if (message.event === "build.progress") return this.progress?.(message);
637
+ if (typeof message.event === "string") return this.event?.(message);
634
638
  const resolve = typeof message.id === "number" ? this.pending.get(message.id) : void 0;
635
639
  if (resolve) {
636
640
  this.pending.delete(message.id);
@@ -655,6 +659,7 @@ var BuildConnection = class BuildConnection {
655
659
  message: this.closed
656
660
  }
657
661
  });
662
+ this.dropped?.(code);
658
663
  });
659
664
  socket.on("error", () => {});
660
665
  }
@@ -771,8 +776,11 @@ var BuildConnection = class BuildConnection {
771
776
  if (this.closed) return;
772
777
  let completed = false;
773
778
  let resume;
779
+ let written;
780
+ this.lastWrite = new Promise((resolve) => written = resolve);
774
781
  this.socket.send(frame, { binary: true }, () => {
775
782
  completed = true;
783
+ written?.();
776
784
  resume?.();
777
785
  });
778
786
  if (completed || this.closed || this.socket.bufferedAmount <= MAX_BUFFERED) return;
@@ -785,12 +793,31 @@ var BuildConnection = class BuildConnection {
785
793
  this.writeWaiters.add(wake);
786
794
  });
787
795
  }
796
+ /** Resolves once the last binary frame left this process, or at once when the connection has ended. */
797
+ flushed() {
798
+ return this.closed ? Promise.resolve() : this.lastWrite;
799
+ }
800
+ /** Stops reading frames from the machine until `resume()`, so the machine's sends wait on the network. */
801
+ pause() {
802
+ this.socket.pause();
803
+ }
804
+ resume() {
805
+ this.socket.resume();
806
+ }
788
807
  onProgress(listener) {
789
808
  this.progress = listener;
790
809
  }
791
810
  onBinary(listener) {
792
811
  this.binary = listener;
793
812
  }
813
+ /** Server events other than `build.progress`, such as `device-host.metro.link.open`. */
814
+ onEvent(listener) {
815
+ this.event = listener;
816
+ }
817
+ /** Called once with the close code when the machine or the network ends the connection; never after `close()` or `drop()`. */
818
+ onDropped(listener) {
819
+ this.dropped = listener;
820
+ }
794
821
  get failure() {
795
822
  return this.closed;
796
823
  }
@@ -802,14 +829,18 @@ var BuildConnection = class BuildConnection {
802
829
  this.heard = Date.now();
803
830
  this.watched = true;
804
831
  }
832
+ /** Stops treating silence as a dropped connection, as before `watch()`. */
833
+ unwatch() {
834
+ this.watched = false;
835
+ }
805
836
  /** Closes with a close frame, which tells the machine to cancel this connection's jobs. */
806
- close() {
837
+ close(code = 1e3) {
807
838
  if (this.ended) return;
808
839
  this.forget();
809
840
  if (this.socket.readyState === WebSocket.CLOSED) return;
810
841
  const timer = setTimeout(() => this.socket.terminate(), CLOSE_TIMEOUT_MS);
811
842
  this.socket.once("close", () => clearTimeout(timer));
812
- this.socket.close(1e3);
843
+ this.socket.close(code);
813
844
  }
814
845
  /** Ends the connection without a close frame, which leaves its jobs on the machine for a new connection. */
815
846
  drop() {
@@ -828,6 +859,8 @@ var BuildConnection = class BuildConnection {
828
859
  this.pending.clear();
829
860
  this.progress = null;
830
861
  this.binary = null;
862
+ this.event = null;
863
+ this.dropped = null;
831
864
  clearInterval(this.keepalive);
832
865
  this.socket.removeAllListeners("close");
833
866
  this.unregisterExitCleanup?.();
@@ -1251,7 +1284,7 @@ async function fetchArtifact({ connection, method, params, artifact, request, st
1251
1284
  if (badFrame) return { failure: "fetch: an artifact frame had another digest or could not be written here" };
1252
1285
  if (digest !== artifact.sha256 || declared.sha256 !== digest || declared.size !== received) return { failure: `fetch: the artifact's sha256 ${digest.slice(0, 12)} does not match ${String(artifact.sha256).slice(0, 12)}` };
1253
1286
  if (cacheHit) {
1254
- if ((await getExecutor().runFileAsync("tar", ["-tf", archive], { timeoutMs: 6e5 })).split("\n").filter(Boolean).some((member) => {
1287
+ if ((await getExecutor().runFileAsync("tar", ["-tf", archive], { timeoutMs: 6e5 })).split(/\r?\n/).filter(Boolean).some((member) => {
1255
1288
  const clean = member.replace(/^\.\//, "");
1256
1289
  return !(clean === name || clean.startsWith(`${name}/`)) || clean.split("/").includes("..");
1257
1290
  })) return { failure: "fetch: the archive contains paths outside its app" };
@@ -1,11 +1,11 @@
1
1
  import { S as process_identity_exports } from "./exec-aULwtNly.mjs";
2
- import { k as workspaceLogsDir } from "./workspace-state-BjqdjnJR.mjs";
2
+ import { k as workspaceLogsDir } from "./workspace-state-kIZrdlSg.mjs";
3
3
  import { V as deviceSlotKey, q as validateDeviceSlot } from "./config-Cn94Jc0g.mjs";
4
4
  import { t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
5
- import { c as watchAppPid, i as parseLogcatLine, o as startAndroidLogcat, s as waitForAppPid, t as androidClockOffset } from "./android-Deb9X3_Y.mjs";
5
+ import { c as watchAppPid, i as parseLogcatLine, o as startAndroidLogcat, s as waitForAppPid, t as androidClockOffset } from "./android-D577ApKG.mjs";
6
6
  import { i as createNdjsonWriter } from "./ndjson-Dy2W4vRa.mjs";
7
7
  import { a as startIosDeviceConsole, i as parseDeviceConsoleLine } from "./ios-device-CiBA-er9.mjs";
8
- import { a as unregisterCollector, i as registerCollector, r as readCollectors, t as collectorProcessTitle } from "./ownership-Bx-0cku-.mjs";
8
+ import { a as unregisterCollector, i as registerCollector, r as readCollectors, t as collectorProcessTitle } from "./ownership-DJCq48IJ.mjs";
9
9
  import { n as parseLogStreamLine, r as startIosLogStream, t as appNameFromBundleId } from "./ios-CsRVik64.mjs";
10
10
  import { existsSync } from "node:fs";
11
11
  import { isAbsolute, join, resolve } from "node:path";
@@ -1,5 +1,5 @@
1
1
  import { n as stripAnsi } from "./process-output-Fpl8PYi8.mjs";
2
- import { t as NO_PROJECT_REFUSAL } from "./project-DYj-HVx6.mjs";
2
+ import { t as NO_PROJECT_REFUSAL } from "./project-Sui52ywT.mjs";
3
3
  import { quotedPath as quotedPath$1 } from "@stim-cli/core";
4
4
  import chalk from "chalk";
5
5
  //#region src/diagnostics/launch-error-preview.ts
@@ -1,44 +1,44 @@
1
1
  import { o as cancellableSleep, t as getExecutor, x as withDrainingCancellation } from "./exec-aULwtNly.mjs";
2
- import { f as writeWorkspaceStateAsync, k as workspaceLogsDir, r as readWorkspaceState } from "./workspace-state-BjqdjnJR.mjs";
2
+ import { f as writeWorkspaceStateAsync, k as workspaceLogsDir, r as readWorkspaceState } from "./workspace-state-kIZrdlSg.mjs";
3
3
  import { B as deviceSlotFileKey, E as upsertProject, O as withConfigLockAsync, V as deviceSlotKey, p as getProject, u as getConcurrencyLimits, v as recordIosSchemeApprovals } from "./config-Cn94Jc0g.mjs";
4
- import { _ as stepTimer, c as launchErrorReport, i as formatDuration, l as phaseLine, n as appReadinessMessage, v as launchErrorPreview } from "./command-output-Dj-WT4BP.mjs";
5
- import { $t as makeTemporaryDirectory, J as resolveCacheProviderConfig, Lt as repoRootAsync, Q as resolveSettings, at as settingsLayers, dt as detectProviders, en as removeTemporaryEntry, nt as settingOriginScope, xt as gitCommonDirAsync } from "./settings-BDVI8Ivc.mjs";
6
- import { L as workspaceDevServerMode, f as projectRegistry, i as findProjectRoot, v as detectIsExpo, z as writeWorkspaceLaunchAsync } from "./project-DYj-HVx6.mjs";
4
+ import { _ as stepTimer, c as launchErrorReport, i as formatDuration, l as phaseLine, n as appReadinessMessage, v as launchErrorPreview } from "./command-output-C8R1KIvi.mjs";
5
+ import { J as resolveCacheProviderConfig, Q as resolveSettings, St as gitCommonDirAsync, Vt as repoRootAsync, an as makeTemporaryDirectory, at as settingsLayers, dt as detectProviders, nt as settingOriginScope, on as removeTemporaryEntry } from "./settings-CY5JZlNN.mjs";
6
+ import { L as workspaceDevServerMode, f as projectRegistry, i as findProjectRoot, v as detectIsExpo, z as writeWorkspaceLaunchAsync } from "./project-Sui52ywT.mjs";
7
7
  import { o as workspaceLinks } from "./stim-desktop-CbWo21kb.mjs";
8
- import { c as pidExists, d as resolveProjectMetro, f as signalProcessTree } from "./metro-CvyD-xwe.mjs";
8
+ import { c as pidExists, d as resolveProjectMetro, f as signalProcessTree } from "./metro-BnhXV2Mj.mjs";
9
9
  import { i as createNdjsonWriter } from "./ndjson-Dy2W4vRa.mjs";
10
- import { An as checkEasAuth, At as ensureRemoteBootOwned, Bt as RELEASE_VERIFY_WAIT_MS, Cn as gateMetroOrigin, Dt as bundleEntryPoint, Gt as unattributedLaunchLines, Ht as isBundleProof, It as LAUNCH_BUNDLING, Jt as verifyLaunch, Kt as unverifiedLaunchLines, Ln as resolveEasCliBin, Lt as LAUNCH_FATAL, Nn as loadProjectProvider, Nt as remoteIosDeps, Pt as resolveRemoteContext, Rn as resolveRemote, Rt as LAUNCH_UNVERIFIED, Sn as readRemoteSimulatorArch, Ut as readCollectorRecords, Wt as readMetroRecords, Yt as verifyReleaseLaunch, an as devClientUrl, c as budgetGate, dn as installIosApp, en as IOS_DEV_MENU_OFF_DEFAULTS_PLIST, fn as iosAppProcess, gn as restartedAppNote, hn as launchIosApp, in as clearOtherUserApps, kt as ensureMetroReachable, zn as uploadRemote } from "./ccache-BWTze1Ls.mjs";
11
- import { at as recordRunStats, rt as recordCapacityRefusal, tt as readRunEstimates, xt as releaseBuildSlot, yt as acquireBuildSlot } from "./workspaces-DFbj07jp.mjs";
12
- import { B as readBundleExecutable, H as resolveScheme, O as runPodInstall, T as readPodState, V as readBundleId, w as podsAreStale } from "./toolchain-CbCG6C5Z.mjs";
13
- import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-Cd-ysFes.mjs";
14
- import { A as untrackedNativeFiles, C as resolveBuild, c as evictBuild, m as fingerprintProject, w as storeBuild } from "./build-cache-gBJ-WKzA.mjs";
15
- import { d as listAllIosSims, h as listIosRuntimesAsync, r as clearIosAppData } from "./ios-E26qSpkb.mjs";
16
- import { n as readHostedIos, o as writeHostedIosAsync } from "./ios-state-BZ03NFgF.mjs";
17
- import { n as hostedMetroPortProbe } from "./hosted-native-CdgaiuyP.mjs";
18
- import { i as prepareHostedIos, r as placeHostedIos } from "./phone-reverses-C9yAaKEv.mjs";
19
- import { n as verifyCollectorOwnership } from "./ownership-Bx-0cku-.mjs";
20
- import { n as nativeRunCommand, r as siblingPlatformSlots, t as launchSlotScope } from "./slot-launch-0l7RqSpr.mjs";
21
- import { a as discoverXcodeProject, r as buildIos } from "./react-native-build-DaK2IFyP.mjs";
22
- import { c as startDevServer, g as detectBundleId } from "./start-DrPwER_2.mjs";
10
+ import { An as checkEasAuth, At as ensureRemoteBootOwned, Bt as RELEASE_VERIFY_WAIT_MS, Cn as gateMetroOrigin, Dt as bundleEntryPoint, Gt as unattributedLaunchLines, Ht as isBundleProof, It as LAUNCH_BUNDLING, Jt as verifyLaunch, Kt as unverifiedLaunchLines, Ln as resolveEasCliBin, Lt as LAUNCH_FATAL, Nn as loadProjectProvider, Nt as remoteIosDeps, Pt as resolveRemoteContext, Rn as resolveRemote, Rt as LAUNCH_UNVERIFIED, Sn as readRemoteSimulatorArch, Ut as readCollectorRecords, Wt as readMetroRecords, Yt as verifyReleaseLaunch, an as devClientUrl, c as budgetGate, dn as installIosApp, en as IOS_DEV_MENU_OFF_DEFAULTS_PLIST, fn as iosAppProcess, gn as restartedAppNote, hn as launchIosApp, in as clearOtherUserApps, kt as ensureMetroReachable, zn as uploadRemote } from "./ccache-Bm_A1xX9.mjs";
11
+ import { St as acquireBuildSlot, Tt as releaseBuildSlot, ct as recordRunStats, it as readRunEstimates, ot as recordCapacityRefusal } from "./workspaces-CmOcceDN.mjs";
12
+ import { B as readBundleExecutable, H as resolveScheme, O as runPodInstall, T as readPodState, V as readBundleId, w as podsAreStale } from "./toolchain-mLA_km-b.mjs";
13
+ import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-DRMg4_mD.mjs";
14
+ import { A as untrackedNativeFiles, C as resolveBuild, c as evictBuild, m as fingerprintProject, w as storeBuild } from "./build-cache-CZULpXVl.mjs";
15
+ import { d as listAllIosSims, h as listIosRuntimesAsync, r as clearIosAppData } from "./ios-B1DYuOjh.mjs";
16
+ import { n as readHostedIos, o as writeHostedIosAsync } from "./ios-state-BPHqMDdZ.mjs";
17
+ import { n as hostedMetroPortProbe } from "./hosted-native-CDe33CSr.mjs";
18
+ import { i as prepareHostedIos, r as placeHostedIos } from "./phone-reverses-BzTa8g1F.mjs";
19
+ import { n as verifyCollectorOwnership } from "./ownership-DJCq48IJ.mjs";
20
+ import { n as nativeRunCommand, r as siblingPlatformSlots, t as launchSlotScope } from "./slot-launch-BpmanOnk.mjs";
21
+ import { a as discoverXcodeProject, r as buildIos } from "./react-native-build-jUHnIfZ9.mjs";
22
+ import { c as startDevServer, g as detectBundleId } from "./start-DYLk6GXn.mjs";
23
23
  import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
24
- import { a as acquireRunLease, c as lostRefusal, d as runLease, s as lostLine, t as DEBUG_VERIFY_STEP_MS, u as releaseLeaseOnAbort } from "./device-lease-run-DwsGfjUN.mjs";
25
- import { r as checkDeviceCapacity } from "./device-capacity-6LP7QsaA.mjs";
26
- import { n as clearIosAdoptionPending } from "./device-ios-534c14fz.mjs";
27
- import { i as deviceLabel, o as deviceShortName, t as appNameFromPath } from "./support-Be0UeVZU.mjs";
24
+ import { a as acquireRunLease, c as lostRefusal, d as runLease, s as lostLine, t as DEBUG_VERIFY_STEP_MS, u as releaseLeaseOnAbort } from "./device-lease-run-Mtzp4THX.mjs";
25
+ import { r as checkDeviceCapacity } from "./device-capacity-Cd8lMSn3.mjs";
26
+ import { n as clearIosAdoptionPending } from "./device-ios-Cc9ulihb.mjs";
27
+ import { i as deviceLabel, o as deviceShortName, t as appNameFromPath } from "./support-BtlJKjyQ.mjs";
28
28
  import { a as sealAppForDevice, r as gateProfileForDevice } from "./ios-signing-BJzvDPfU.mjs";
29
- import { a as resolveEasDevelopmentBuild } from "./eas-build-CjNSWmjo.mjs";
30
- import { a as captureNativeCrashes, c as simulatorConsolePaths, i as bundleBindFailure, n as IOS_CRASH_REPORT_RETRY, s as printNativeCrashReport, t as errorDiagnostics } from "./error-diagnostics-snej9k4j.mjs";
31
- import { t as followHostedLaunchLogs } from "./hosted-logs-sync-Dg3qrZmV.mjs";
32
- import { a as runPrebuild, d as memoizedFingerprint, n as planPrebuildAsync } from "./prebuild-BDpToDgR.mjs";
33
- import { i as launchOutcomeRecord, n as ensureWorkspaceStorageSafely } from "./native-runtime-DqaIBO5w.mjs";
34
- import { n as devClientTakesDevMenuParams, r as hasDevClient, t as devClientScheme } from "./dev-client-BMca82xo.mjs";
35
- import { t as automaticDevicePlacement } from "./auto-placement-z-H5pJza.mjs";
36
- import { t as checkEasFallback } from "./eas-fallback-9fqb46kW.mjs";
37
- import { n as ensureBooted, o as warmMetro, r as ensureOwnedDevice } from "./device-tM41-TUq.mjs";
38
- import { t as selectFromPool } from "./device-pool-BnQqvs6o.mjs";
39
- import { s as reportIosResult } from "./ios-project-D8Jcy_br.mjs";
40
- import { c as isWirelessIosDevice, i as iosDeviceProcess, l as listIosDevices, n as installIosDeviceApp, p as verifyIosDeviceReleaseLaunch, r as iosDeviceBounds, t as awaitIosDeviceLaunch, u as localNetworkPending } from "./ios-device-C_QkIf1Z.mjs";
41
- import { i as swapJsBundle } from "./js-swap-Dg2a945i.mjs";
29
+ import { a as resolveEasDevelopmentBuild } from "./eas-build-Dm6q68QY.mjs";
30
+ import { a as captureNativeCrashes, c as simulatorConsolePaths, i as bundleBindFailure, n as IOS_CRASH_REPORT_RETRY, s as printNativeCrashReport, t as errorDiagnostics } from "./error-diagnostics-D1QfyJzQ.mjs";
31
+ import { t as followHostedLaunchLogs } from "./hosted-logs-sync-B0c53W_c.mjs";
32
+ import { a as runPrebuild, d as memoizedFingerprint, n as planPrebuildAsync } from "./prebuild-k8d_tqOq.mjs";
33
+ import { i as launchOutcomeRecord, n as ensureWorkspaceStorageSafely } from "./native-runtime-DG4Rodzj.mjs";
34
+ import { n as devClientTakesDevMenuParams, r as hasDevClient, t as devClientScheme } from "./dev-client-D-BW5uiq.mjs";
35
+ import { t as automaticDevicePlacement } from "./auto-placement-BVqs8AJi.mjs";
36
+ import { t as checkEasFallback } from "./eas-fallback-DajNpxf-.mjs";
37
+ import { n as ensureBooted, o as warmMetro, r as ensureOwnedDevice } from "./device-CgXfbcz5.mjs";
38
+ import { t as selectFromPool } from "./device-pool-eRz6DtCg.mjs";
39
+ import { s as reportIosResult } from "./ios-project-CR4mZ7CH.mjs";
40
+ import { c as isWirelessIosDevice, i as iosDeviceProcess, l as listIosDevices, n as installIosDeviceApp, p as verifyIosDeviceReleaseLaunch, r as iosDeviceBounds, t as awaitIosDeviceLaunch, u as localNetworkPending } from "./ios-device-B4elVFKi.mjs";
41
+ import { i as swapJsBundle } from "./js-swap-CVpSW1fn.mjs";
42
42
  import { mkdirSync, openSync, writeFileSync } from "node:fs";
43
43
  import { networkInterfaces } from "node:os";
44
44
  import { basename, join } from "node:path";
@@ -1,5 +1,5 @@
1
1
  import { t as getExecutor } from "./exec-aULwtNly.mjs";
2
- import { It as repoRoot } from "./settings-BDVI8Ivc.mjs";
2
+ import { Bt as repoRoot } from "./settings-CY5JZlNN.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import { existsSync } from "node:fs";
5
5
  import { dirname, join, relative } from "node:path";
@@ -1,5 +1,5 @@
1
- import { C as resolvePackageJson, b as isPackageResolvable } from "./project-DYj-HVx6.mjs";
2
- import { bn as readBundleSchemes, yn as pickDevClientScheme } from "./ccache-BWTze1Ls.mjs";
1
+ import { C as resolvePackageJson, b as isPackageResolvable } from "./project-Sui52ywT.mjs";
2
+ import { bn as readBundleSchemes, yn as pickDevClientScheme } from "./ccache-Bm_A1xX9.mjs";
3
3
  import { dirname, join } from "node:path";
4
4
  import { isJsonObject, readJsonObject } from "@stim-cli/core/state";
5
5
  //#region src/commands/dev-client.ts
@@ -1,16 +1,16 @@
1
1
  import { D as ownership_claim_exports, t as getExecutor } from "./exec-aULwtNly.mjs";
2
2
  import { D as withConfigLock$1, G as projectDeviceSlots, H as deviceSlotPlatforms, O as withConfigLockAsync$1, _ as loadConfig$1, a as clearDevice, b as releaseAndroidConsolePort, i as clearAndroidBootPending, j as acquireAvdClaim, t as allConsolePortsAndSerials, w as setDevice } from "./config-Cn94Jc0g.mjs";
3
- import { l as phaseLine } from "./command-output-Dj-WT4BP.mjs";
4
- import { l as androidDataPartitionSizeGbSetting, o as androidAvdConfigSetting } from "./settings-BDVI8Ivc.mjs";
5
- import { s as ownedDeviceLabel } from "./project-DYj-HVx6.mjs";
6
- import { B as ownedAvdDeviceProfile, F as listAvdsAsync, H as ownedAvdMatchesConfiguration, I as listInstalledSystemImages, K as ownedAvdSystemImage, O as getAvdNameForSerialAsync, U as ownedAvdName, X as pickDefaultSystemImage, _ as avdPoolConfiguration, b as configureNewOwnedAvd, ct as waitForBoot, gt as isLegacyDeletionClaim, j as listAdbDevicesAsync, n as OWNED_AVD_CONFIG_DEFAULTS, nt as resolveOwnedAvdSerialAsync, p as assertOwnedAvdStoppedAsync, pt as adoptParked, t as DEFAULT_AVD_DEVICE_PROFILE, vt as parkedMaxSetting, x as createOwnedAvd, y as bootAndroidEmulator, yt as readParked, z as nextConsolePort } from "./android-DriNoAVy.mjs";
7
- import { c as pidExists } from "./metro-CvyD-xwe.mjs";
8
- import { pt as teardownParkedAvd, ut as teardownOwnedAvd } from "./workspaces-DFbj07jp.mjs";
9
- import { h as tailLines } from "./activity-Cd-ysFes.mjs";
10
- import { B as reportMemoryCulprits, L as memoryCulpritsUnderAsync, R as readHostMemoryPressure, V as memoryCulpritAdvice, f as listAllIosSimsAsync } from "./ios-E26qSpkb.mjs";
11
- import { h as withDeviceBootAdmission, n as DeviceAdmissionRefusal, o as countLiveOwnedDevicesFrom } from "./device-capacity-6LP7QsaA.mjs";
12
- import { t as clearDeviceIdleShutdown } from "./idle-shutdown-Cbvo5KEh.mjs";
13
- import { i as ensureOwnedIosDevice, r as ensureIosBooted } from "./device-ios-534c14fz.mjs";
3
+ import { l as phaseLine } from "./command-output-C8R1KIvi.mjs";
4
+ import { l as androidDataPartitionSizeGbSetting, o as androidAvdConfigSetting } from "./settings-CY5JZlNN.mjs";
5
+ import { s as ownedDeviceLabel } from "./project-Sui52ywT.mjs";
6
+ import { B as ownedAvdDeviceProfile, F as listAvdsAsync, H as ownedAvdMatchesConfiguration, I as listInstalledSystemImages, K as ownedAvdSystemImage, O as getAvdNameForSerialAsync, U as ownedAvdName, X as pickDefaultSystemImage, _ as avdPoolConfiguration, b as configureNewOwnedAvd, ct as waitForBoot, gt as isLegacyDeletionClaim, j as listAdbDevicesAsync, n as OWNED_AVD_CONFIG_DEFAULTS, nt as resolveOwnedAvdSerialAsync, p as assertOwnedAvdStoppedAsync, pt as adoptParked, t as DEFAULT_AVD_DEVICE_PROFILE, vt as parkedMaxSetting, x as createOwnedAvd, y as bootAndroidEmulator, yt as readParked, z as nextConsolePort } from "./android-CsPs-7Mg.mjs";
7
+ import { c as pidExists } from "./metro-BnhXV2Mj.mjs";
8
+ import { gt as teardownParkedAvd, pt as teardownOwnedAvd } from "./workspaces-CmOcceDN.mjs";
9
+ import { h as tailLines } from "./activity-DRMg4_mD.mjs";
10
+ import { B as reportMemoryCulprits, L as memoryCulpritsUnderAsync, R as readHostMemoryPressure, V as memoryCulpritAdvice, f as listAllIosSimsAsync } from "./ios-B1DYuOjh.mjs";
11
+ import { g as withDeviceBootAdmission, n as DeviceAdmissionRefusal, o as countLiveOwnedDevicesFrom } from "./device-capacity-Cd8lMSn3.mjs";
12
+ import { t as clearDeviceIdleShutdown } from "./idle-shutdown-CQ0QwU9J.mjs";
13
+ import { i as ensureOwnedIosDevice, r as ensureIosBooted } from "./device-ios-Cc9ulihb.mjs";
14
14
  import { t as reconcileSimSlim } from "./simslim-DCQwzoPy.mjs";
15
15
  import { claimRemoveCommand, clearClaimChild, markClaimChildPending, processGroupAlive, releaseClaim, setClaimChild } from "@stim-cli/core/ownership-claim";
16
16
  import { randomUUID } from "node:crypto";