stim 1.31.0 → 1.33.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 (169) hide show
  1. package/dist/{acquire-artifact-P84h3ssa.mjs → acquire-artifact-DTh_LxrE.mjs} +2 -2
  2. package/dist/{act-lcOIEy32.mjs → act-Cur4YKtK.mjs} +74 -25
  3. package/dist/{activity-Dw4N_RFe.mjs → activity-C8kBq9w0.mjs} +6 -6
  4. package/dist/{agent-device-usage-output-Boie2yB-.mjs → agent-device-usage-output-BTRaK_up.mjs} +5 -5
  5. package/dist/{android-BeeC15Ve.mjs → android-B2DSKg-A.mjs} +2 -2
  6. package/dist/{android-DhiWSOFU.mjs → android-BL-QqHjc.mjs} +87 -53
  7. package/dist/{android-aIuJZoDu.mjs → android-D5mCdVl2.mjs} +5 -5
  8. package/dist/{android-DsEj2CCs.mjs → android-Iq0M2t2d.mjs} +27 -15
  9. package/dist/{android-cas-CbumHXIq.mjs → android-cas-Dhcjkys1.mjs} +4 -4
  10. package/dist/android-cas-compiler.mjs +1 -1
  11. package/dist/android-image-DFk26aY6.mjs +254 -0
  12. package/dist/{android-project-CCEQyYJK.d.mts → android-project-BDlPnfmL.d.mts} +1 -1
  13. package/dist/api.d.mts +2 -1
  14. package/dist/api.mjs +28 -28
  15. package/dist/{apk-signed-tail-B9Usseps.mjs → apk-signed-tail-CPpA-3vu.mjs} +2 -2
  16. package/dist/{artifact-ta3xA0c4.mjs → artifact-BMjubIP2.mjs} +13 -13
  17. package/dist/{artifact-Cr34-Yyy.mjs → artifact-BufzdGbT.mjs} +34 -21
  18. package/dist/{artifact-platform-BO2Uvk_A.mjs → artifact-platform-DqCWUieN.mjs} +1 -1
  19. package/dist/{auto-placement-DtTRG0rk.mjs → auto-placement-D7P98glJ.mjs} +11 -9
  20. package/dist/{browser-web-DuULNZrS.mjs → browser-web-C74et-Nv.mjs} +15 -15
  21. package/dist/{build-BpFFbdXD.mjs → build-DFBGWOTc.mjs} +23 -23
  22. package/dist/{build-cache-BsKim4V7.mjs → build-cache-Cqj4FGnX.mjs} +20 -8
  23. package/dist/{build-plan-DH1rT11x.mjs → build-plan-T3Hi24ax.mjs} +7 -7
  24. package/dist/{cache-manifest-CfiEny4T.mjs → cache-manifest-8JX9S1QJ.mjs} +1 -1
  25. package/dist/cache-manifest.mjs +1 -1
  26. package/dist/{ccache-DVDO2ocE.mjs → ccache-BXtzEL6M.mjs} +34 -24
  27. package/dist/{cdp-C3svvXiE.mjs → cdp-C216kOAn.mjs} +1 -1
  28. package/dist/{chrome-DyDWurWG.mjs → chrome-C8sC5tdl.mjs} +1 -1
  29. package/dist/{cli-C0jjwTuM.mjs → cli-B2YSjc9s.mjs} +20 -20
  30. package/dist/cli.mjs +1 -1
  31. package/dist/{client-DhJOvSvh.mjs → client-0_Mnfz0a.mjs} +29 -9
  32. package/dist/collector-run.mjs +7 -7
  33. package/dist/{command-output-VrXd6qPX.mjs → command-output-DWI9tGPU.mjs} +1 -1
  34. package/dist/{config-D5qNWJEP.mjs → config-BW0fAtoK.mjs} +256 -246
  35. package/dist/{dependencies-DIU-5rnG.mjs → dependencies-CgvBZbXD.mjs} +39 -39
  36. package/dist/{dependency-state-DZVln1P9.mjs → dependency-state-mL5g4H6K.mjs} +2 -2
  37. package/dist/{detached-entry-BPlSaCwC.mjs → detached-entry-tfrgGVWb.mjs} +1 -1
  38. package/dist/{dev-client-DeAg0fso.mjs → dev-client-ChsHwgrn.mjs} +2 -2
  39. package/dist/{device-C2WsPgFt.mjs → device-B0htCt2u.mjs} +13 -13
  40. package/dist/{device-DuNLOlR6.mjs → device-DOehZpyx.mjs} +11 -11
  41. package/dist/{device-android-BjhH0Ru3.mjs → device-android-B8TQP5AX.mjs} +10 -10
  42. package/dist/{device-capacity-Du5wBTNJ.mjs → device-capacity-BAkETfIl.mjs} +9 -9
  43. package/dist/device-host-worker.mjs +58 -17
  44. package/dist/{device-ios-CUYUhSYO.mjs → device-ios-DFaYFdar.mjs} +9 -9
  45. package/dist/{device-lease-run-CHXQEn-7.mjs → device-lease-run-DpiCnRbZ.mjs} +5 -5
  46. package/dist/{device-pool-kUHO7MHO.mjs → device-pool-DP4sCeCC.mjs} +3 -3
  47. package/dist/{device-provision-e7bKS7lx.mjs → device-provision-CnNOIxCF.mjs} +10 -10
  48. package/dist/{doctor-BGcsAgAV.mjs → doctor-9GrW5YSP.mjs} +30 -17
  49. package/dist/{doctor-B6kIVgU9.mjs → doctor-C6Xn96RS.mjs} +1 -1
  50. package/dist/{doctor-fingerprint-o7ZI9YLn.mjs → doctor-fingerprint-DqWvIhMb.mjs} +1 -1
  51. package/dist/doctor-fingerprint.mjs +1 -1
  52. package/dist/{doctor-hva3sd9f.mjs → doctor-nRLBoajo.mjs} +54 -25
  53. package/dist/{doctor-watchman-DJY550yz.mjs → doctor-watchman-CDhpC3Oh.mjs} +5 -5
  54. package/dist/{eas-build-CBFgseh1.mjs → eas-build-CpJ4h9tG.mjs} +4 -4
  55. package/dist/{eas-fallback-DFXdz4d6.mjs → eas-fallback-B3z5nL1g.mjs} +6 -6
  56. package/dist/{eas-session-ledger-aFBLTZr2.mjs → eas-session-ledger-Bspy-VJQ.mjs} +6 -6
  57. package/dist/{error-diagnostics-CCsq_3uG.mjs → error-diagnostics-DoLGklYX.mjs} +10 -10
  58. package/dist/{exec-aULwtNly.mjs → exec-CGuDzt40.mjs} +103 -103
  59. package/dist/{gc-DASUa3Z_.mjs → gc-BWoOp9q7.mjs} +2 -2
  60. package/dist/{gc-B0K4d_PL.mjs → gc-DolXpMSB.mjs} +25 -54
  61. package/dist/{guide-Civo5-zV.mjs → guide-CmZB0GtP.mjs} +194 -50
  62. package/dist/{hosted-android-CH1Sm4wo.mjs → hosted-android-ByG-ICuh.mjs} +4 -4
  63. package/dist/{hosted-client-5ur3YpxY.mjs → hosted-client-D19Lv0tg.mjs} +6 -5
  64. package/dist/{hosted-logs-BYg4yeti.mjs → hosted-logs-D7anR6Dk.mjs} +17 -11
  65. package/dist/{hosted-logs-sync-BPe8xnMu.mjs → hosted-logs-sync-D182b1eJ.mjs} +5 -5
  66. package/dist/{hosted-macos-BagT0Gn3.mjs → hosted-macos-D0DDQxvl.mjs} +6 -6
  67. package/dist/{hosted-native-kaR4nUHk.mjs → hosted-native-BzXIy97W.mjs} +15 -11
  68. package/dist/{idle-shutdown-BWHQ7mQG.mjs → idle-shutdown-6i8CHoNq.mjs} +6 -6
  69. package/dist/{ios-BKR-Dq46.mjs → ios-AdhPKXO3.mjs} +8 -8
  70. package/dist/{ios-CdAV4-1E.mjs → ios-BdZdNsAj.mjs} +6 -6
  71. package/dist/{ios-CsRVik64.mjs → ios-Qam0bT9n.mjs} +1 -1
  72. package/dist/{ios-DUL68MI5.mjs → ios-dbXzjTxx.mjs} +28 -28
  73. package/dist/{ios-device-CiBA-er9.mjs → ios-device-DLdEDWJj.mjs} +1 -1
  74. package/dist/{ios-device-Dz8gFZ0K.mjs → ios-device-DXbHZfFe.mjs} +3 -3
  75. package/dist/{ios-project-Br1tVYWX.mjs → ios-project-BzfLigfh.mjs} +7 -7
  76. package/dist/{ios-signing-BJzvDPfU.mjs → ios-signing-D-tSX1iF.mjs} +2 -2
  77. package/dist/{ios-state-BEIJRJ7P.mjs → ios-state-CWsBysyN.mjs} +1 -1
  78. package/dist/{js-swap-BfG8XpyS.mjs → js-swap-EDVOJmqx.mjs} +6 -6
  79. package/dist/{launch-CrGndh8T.mjs → launch-CKHpthsw.mjs} +20 -20
  80. package/dist/{lightened-DZ9Ip0T3.mjs → lightened-Cv4ToJRX.mjs} +5 -5
  81. package/dist/{logs-C-hfMsxK.mjs → logs-DCQ3_tGS.mjs} +6 -6
  82. package/dist/{logs-DpIKWT3A.mjs → logs-IagR9dWI.mjs} +7 -7
  83. package/dist/{macos-DZ9ZSolN.mjs → macos-Ch7vuM-G.mjs} +22 -22
  84. package/dist/{macos-DNmKwfDy.mjs → macos-pc0aVVbN.mjs} +1 -1
  85. package/dist/macos-run.mjs +1 -1
  86. package/dist/maintenance-run.mjs +6 -6
  87. package/dist/{metro-mKHEMO-a.mjs → metro-B5PVz0Wv.mjs} +4 -4
  88. package/dist/{metro-request-RDhyx85c.mjs → metro-request-2LmFpC1z.mjs} +9 -3
  89. package/dist/{named-ports-B0hCk2v-.mjs → named-ports-CA0nB9Yw.mjs} +3 -3
  90. package/dist/{native-android-DExhFqR6.mjs → native-android-B3CEDq4R.mjs} +29 -19
  91. package/dist/{native-gradle-artifact-inputs-Bcmbdc23.mjs → native-gradle-artifact-inputs-BLnO2hHR.mjs} +5 -5
  92. package/dist/{native-runtime-D4qgnjK_.mjs → native-runtime-e1OU8gEN.mjs} +6 -6
  93. package/dist/{native-source-D1AzWiuP.mjs → native-source-ChAGj7R1.mjs} +1 -1
  94. package/dist/{native-xcode-inputs-EWma1lXh.mjs → native-xcode-inputs-DL3ETb8s.mjs} +3 -3
  95. package/dist/{native-xcode-ios-Y6rzmWTc.mjs → native-xcode-ios-D4e8k2Jy.mjs} +17 -17
  96. package/dist/offload-worker.d.mts +3 -1
  97. package/dist/offload-worker.mjs +37 -23
  98. package/dist/{operation-exec-Dp4FuIGR.mjs → operation-exec-DKlBcKAL.mjs} +1 -1
  99. package/dist/{ownership-CCfiBfOP.mjs → ownership-hC7xvvxF.mjs} +3 -3
  100. package/dist/{page-CQJlcj3x.mjs → page-Dj8IqvGM.mjs} +2 -2
  101. package/dist/{phone-reverses-Drj5QQCh.mjs → phone-reverses-rvyxW1Fl.mjs} +4 -4
  102. package/dist/{placement-log-CFT8SnlS.mjs → placement-log-nnGnu8mo.mjs} +1 -1
  103. package/dist/{plan-placement-DhKCH_wF.mjs → plan-placement-D3JD-T-K.mjs} +6 -6
  104. package/dist/{ports-BNtJ5DCj.mjs → ports-CZJJfJ8Q.mjs} +3 -3
  105. package/dist/{prebuild-D0hvmO4j.mjs → prebuild-Bhs7TTcz.mjs} +12 -12
  106. package/dist/{project-DCLkDM8C.mjs → project-DWEXiBA9.mjs} +16 -16
  107. package/dist/{pull-request-BzLmzAIQ.mjs → pull-request-BpMTNkMB.mjs} +2 -2
  108. package/dist/pull-requests.mjs +1 -1
  109. package/dist/{react-native-android-Dp7vctEA.mjs → react-native-android-C6Y270GS.mjs} +37 -33
  110. package/dist/{react-native-build-vK2lFYfN.mjs → react-native-build-DaPfzf_e.mjs} +10 -10
  111. package/dist/{react-native-doctor-BtWzwZHU.mjs → react-native-doctor-DGMPxkPS.mjs} +6 -6
  112. package/dist/{react-native-ios-DW1Ax3Yv.mjs → react-native-ios-dX48_92n.mjs} +21 -17
  113. package/dist/{recordings-BWnIlhZH.mjs → recordings-AKZfsW2W.mjs} +1 -1
  114. package/dist/{registration-BwCe64PH.mjs → registration-DKjJGQ6p.mjs} +1 -1
  115. package/dist/{reload-BS_ntVV_.mjs → reload-BGwblBJ9.mjs} +1 -1
  116. package/dist/{reload-B-d7-CsI.mjs → reload-DsOByDfy.mjs} +17 -17
  117. package/dist/{remote-DScVlaMz.mjs → remote-D0uJZ76R.mjs} +9 -9
  118. package/dist/{result-Epkl6gyG.mjs → result-DuimMZKJ.mjs} +24 -20
  119. package/dist/{run-2CHAJ9Oj.mjs → run-N-BbRxnC.mjs} +2 -2
  120. package/dist/{selection-C95m--1_.mjs → selection-xS50Mt0V.mjs} +5 -4
  121. package/dist/{server-bare-CFyVFZXJ.mjs → server-bare-BTlICuaX.mjs} +2 -2
  122. package/dist/{server-command-B1gDRJB2.mjs → server-command-BC0EgMfY.mjs} +5 -5
  123. package/dist/{server-expo-CP4dURQp.mjs → server-expo-15RjL0ir.mjs} +3 -3
  124. package/dist/server-expo-gYIypb0-.mjs +2 -0
  125. package/dist/{settings-C6UTYW2K.mjs → settings-B5IBDfTx.mjs} +4 -4
  126. package/dist/{settings-CjTRNCi3.mjs → settings-CuP55ieT.mjs} +2 -2
  127. package/dist/{settings-payload-zf5EnCTg.mjs → settings-payload-BIGGQ3or.mjs} +5 -5
  128. package/dist/{settings-write-Fe0K6BeC.mjs → settings-write-D85j8mej.mjs} +6 -6
  129. package/dist/settings.schema.json +40 -2
  130. package/dist/{simslim-93xmPh-d.mjs → simslim-DKdJx0LL.mjs} +2 -2
  131. package/dist/{slot-launch-B4MHzVX2.mjs → slot-launch-D4oREwhx.mjs} +6 -6
  132. package/dist/{stage-DDrnM0CY.mjs → stage-DKC6tDXu.mjs} +2 -2
  133. package/dist/{start-LSwIFlBv.mjs → start-BsEV4S-s.mjs} +12 -12
  134. package/dist/{start-BXl5tkv8.mjs → start-DfPSLc__.mjs} +1 -1
  135. package/dist/{state-CM_HvvkS.mjs → state-CtmYTRWm.mjs} +4 -4
  136. package/dist/{state-CiflgxTP.mjs → state-DSOUqO-o.mjs} +2 -2
  137. package/dist/{stats-EgpYD536.mjs → stats-ByEUblPr.mjs} +5 -5
  138. package/dist/{stats-report-B86Cv7Uc.mjs → stats-report-BVRCqwWA.mjs} +1 -1
  139. package/dist/{status-BLDvhatv.mjs → status-C6hLlDqW.mjs} +37 -28
  140. package/dist/{status-GQ-JqvRi.mjs → status-DTFhDnd1.mjs} +1 -1
  141. package/dist/{status-DBMD7ZQT.mjs → status-FP1MH9qn.mjs} +1 -1
  142. package/dist/{status-watch-BwG4lJ1q.mjs → status-watch-D8s823CZ.mjs} +5 -5
  143. package/dist/status-worker.mjs +1 -1
  144. package/dist/{stim-desktop-1XxET4S8.mjs → stim-desktop-_WTria-r.mjs} +2 -2
  145. package/dist/{stop-4SAV_RR8.mjs → stop-5LKfVv-0.mjs} +2 -2
  146. package/dist/{stop-WyrZQuX6.mjs → stop-BVI2-L7s.mjs} +16 -16
  147. package/dist/{stop-BfNhzvXO.mjs → stop-CpTy6bod.mjs} +5 -5
  148. package/dist/supervisor-run.mjs +137 -45
  149. package/dist/{support-Cffz6_Ft.mjs → support-CqyWfZZI.mjs} +18 -8
  150. package/dist/{support-Cs24xRQa.mjs → support-D8OH0z98.mjs} +9 -9
  151. package/dist/{swiftpm-artifact-inputs-yp8D5LE4.mjs → swiftpm-artifact-inputs-uq5oV7xR.mjs} +4 -4
  152. package/dist/{swiftpm-macos-D0CzQtpp.mjs → swiftpm-macos-BuhqYB3n.mjs} +11 -11
  153. package/dist/{toolchain-BEra9AIX.mjs → toolchain-D_jotUG7.mjs} +1 -1
  154. package/dist/{toolchain-CGdgD4x4.mjs → toolchain-s5ZmG42Z.mjs} +25 -14
  155. package/dist/{trigger-CfnOfpDd.mjs → trigger-BtB4kbe0.mjs} +2 -2
  156. package/dist/trigger-D8B7QR0q.mjs +2 -0
  157. package/dist/{warm-progress-_aTMvkIH.mjs → warm-progress-q11Vdvhh.mjs} +6 -6
  158. package/dist/{web-BE89ONcc.mjs → web-DwYCTFdh.mjs} +9 -9
  159. package/dist/web-cCfM8kwV.mjs +2 -0
  160. package/dist/web-run.mjs +8 -8
  161. package/dist/windows-report.mjs +1 -1
  162. package/dist/{workspace-state-3bF4TB8P.mjs → workspace-state-BdZ-QgmB.mjs} +3 -3
  163. package/dist/{workspaces-BNEyJ1B_.mjs → workspaces-B3ahAHZc.mjs} +18 -17
  164. package/dist/{worktree-BTrii9e_.mjs → worktree-BhsML6GV.mjs} +77 -31
  165. package/dist/{worktree-DB3Ypdj6.mjs → worktree-CrjsPIs2.mjs} +1 -1
  166. package/package.json +7 -7
  167. package/dist/server-expo-D3k9mvP8.mjs +0 -2
  168. package/dist/trigger-DBZ-GBrl.mjs +0 -2
  169. package/dist/web-DQPxvFVD.mjs +0 -2
@@ -1,10 +1,11 @@
1
- import { o as cancellableSleep, x as withDrainingCancellation } from "./exec-aULwtNly.mjs";
2
- import { E as workspaceDir, l as withWorkspaceStateLockAsync, r as readWorkspaceState$1 } from "./workspace-state-3bF4TB8P.mjs";
3
- import { a as agentAccess, i as closeAgentConnection, n as pullHostedNativeLogs, o as removeAgentAccess } from "./hosted-logs-BYg4yeti.mjs";
4
- import { st as runCancellationSignal } from "./toolchain-CGdgD4x4.mjs";
5
- import { _ as stoppedSession, a as SESSION_TIMEOUT_MS, c as call, f as hostedSession, g as sha256, h as settle, i as RESERVE_TIMEOUT_MS, l as connectHost, m as requireHostedAppMode, n as OFFER_TIMEOUT_MS, o as attach, r as PREPARE_TIMEOUT_MS, s as bundleManifest, t as INSTALL_TIMEOUT_MS, u as heldNoLonger, v as unknownSession, y as upload } from "./hosted-client-5ur3YpxY.mjs";
6
- import { a as requireHostedMetro, i as requestHostedMetro, n as closeHostedMetro } from "./metro-request-RDhyx85c.mjs";
7
- import { s as writeHostedNative } from "./ios-state-BEIJRJ7P.mjs";
1
+ import { l as cancellableSleep, w as withDrainingCancellation } from "./exec-CGuDzt40.mjs";
2
+ import { E as workspaceDir, l as withWorkspaceStateLockAsync, r as readWorkspaceState$1 } from "./workspace-state-BdZ-QgmB.mjs";
3
+ import { l as phaseLine } from "./command-output-DWI9tGPU.mjs";
4
+ import { a as agentAccess, i as closeAgentConnection, n as pullHostedNativeLogs, o as removeAgentAccess } from "./hosted-logs-D7anR6Dk.mjs";
5
+ import { st as runCancellationSignal } from "./toolchain-s5ZmG42Z.mjs";
6
+ import { _ as sha256, a as RESERVE_TIMEOUT_MS, b as upload, c as bundleManifest, d as heldNoLonger, g as settle, h as requireHostedAppMode, i as PREPARE_TIMEOUT_MS, l as call, n as INSTALL_TIMEOUT_MS, o as SESSION_TIMEOUT_MS, p as hostedSession, r as OFFER_TIMEOUT_MS, s as attach, t as IMAGE_INSTALL_TIMEOUT_MS, u as connectHost, v as stoppedSession, y as unknownSession } from "./hosted-client-D19Lv0tg.mjs";
7
+ import { a as requestHostedMetro, n as closeHostedMetro, o as requireHostedMetro, r as hostedAgentPort } from "./metro-request-2LmFpC1z.mjs";
8
+ import { s as writeHostedNative } from "./ios-state-CWsBysyN.mjs";
8
9
  import { randomUUID } from "node:crypto";
9
10
  import { readFileSync } from "node:fs";
10
11
  import { join } from "node:path";
@@ -27,7 +28,7 @@ async function prepareHostedNative(machine, selectors, recorded, platform = "ios
27
28
  if (recorded) {
28
29
  let session = null;
29
30
  try {
30
- session = await settle(host, await attach(host, recorded.session, void 0, platform), ["preparing"], PREPARE_TIMEOUT_MS, platform, runCancellationSignal(ambientContext()));
31
+ session = await settle(host, await attach(host, recorded.session, void 0, platform), ["preparing"], platform === "android" ? PREPARE_TIMEOUT_MS + IMAGE_INSTALL_TIMEOUT_MS : PREPARE_TIMEOUT_MS, platform, runCancellationSignal(ambientContext()));
31
32
  session = await settle(host, session, ["stopping"], SESSION_TIMEOUT_MS, platform, runCancellationSignal(ambientContext()));
32
33
  } catch (error) {
33
34
  if (!heldNoLonger(error)) throw error;
@@ -60,10 +61,12 @@ async function prepareHostedNative(machine, selectors, recorded, platform = "ios
60
61
  if (!isJsonObject(offer.capacity) || offer.capacity.available === 0) throw new Error("No hosted device capacity is available.");
61
62
  const memoryRefusal = hostedMemoryRefusal(isJsonObject(offer.resources) ? offer.resources.memoryPressure : null);
62
63
  if (memoryRefusal) throw new Error(memoryRefusal);
64
+ const installImage = parsedOffer?.platform === "android" ? parsedOffer.installImage : void 0;
63
65
  return {
64
66
  host,
65
67
  choice,
66
- session: null
68
+ session: null,
69
+ ...installImage ? { installImage } : {}
67
70
  };
68
71
  } catch (error) {
69
72
  if (error instanceof Error && "code" in error && error.code === "STIM_BAD_ARG") throw error;
@@ -168,7 +171,8 @@ async function placeHostedNativeOnce(target, { root, slot, bundle, handoff, bund
168
171
  }
169
172
  };
170
173
  await reserved(placement);
171
- session = await settle(host, session, ["preparing"], PREPARE_TIMEOUT_MS, platform, runCancellationSignal(ambientContext()));
174
+ if (target.installImage && session.state === "preparing") note(phaseLine("image", `installing ${target.installImage} on ${host.machine}; the download can take several minutes`));
175
+ session = await settle(host, session, ["preparing"], PREPARE_TIMEOUT_MS + (target.installImage ? IMAGE_INSTALL_TIMEOUT_MS : 0), platform, runCancellationSignal(ambientContext()));
172
176
  if (session.state === "stopped") throw stoppedSession(host, session);
173
177
  if (session.state !== "ready") throw unknownSession(host, session);
174
178
  const device = platform === "ios" ? parseHostedDevice(session.device) : parseHostedAndroidDevice(session.device);
@@ -268,7 +272,7 @@ async function placeHostedNativeOnce(target, { root, slot, bundle, handoff, bund
268
272
  if (typeof delivery.notice === "string") note(delivery.notice);
269
273
  placement = {
270
274
  ...placement,
271
- agent: await agentAccess(platform === "ios" ? iosAgentRemoteConfig(root, slot) : androidAgentRemoteConfig(root, slot), host.credential, host.connection.supports(platform === "ios" ? "hosted-ios-agent" : "hosted-android-agent") ? delivery.agent : void 0, note, platform)
275
+ agent: await agentAccess(platform === "ios" ? iosAgentRemoteConfig(root, slot) : androidAgentRemoteConfig(root, slot), host.credential, host.connection.supports(platform === "ios" ? "hosted-ios-agent" : "hosted-android-agent") ? delivery.agent : void 0, note, platform, mode !== "development" ? void 0 : !host.connection.supports("hosted-agent-link") ? `${host.machine} runs a stim-server that cannot carry agent control over the local network. Update stim-server there, then retry.` : hostedAgentPort(root, session.id) ?? `The Metro supervisor has no agent relay ready for ${host.machine}. Rerun this command; if it persists, run stim stop; stim start, then retry.`)
272
276
  };
273
277
  return {
274
278
  placement,
@@ -1,11 +1,11 @@
1
- import { k as workspaceLogsDir$1, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-3bF4TB8P.mjs";
2
- import { H as deviceSlotKey, v as loadConfig$1 } from "./config-D5qNWJEP.mjs";
3
- import { o as formatLongDuration } from "./command-output-VrXd6qPX.mjs";
1
+ import { k as workspaceLogsDir$1, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-BdZ-QgmB.mjs";
2
+ import { o as formatLongDuration } from "./command-output-DWI9tGPU.mjs";
3
+ import { dt as deviceSlotKey, v as loadConfig$1 } from "./config-BW0fAtoK.mjs";
4
4
  import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
5
- import { B as workspaceBuildInProgress, P as collectOwnedDeviceActivity, ht as teardownOwnedIosSim, pt as teardownOwnedAvd } from "./workspaces-BNEyJ1B_.mjs";
5
+ import { B as workspaceBuildInProgress, P as collectOwnedDeviceActivity, ht as teardownOwnedIosSim, pt as teardownOwnedAvd } from "./workspaces-B3ahAHZc.mjs";
6
6
  import { t as canonicalPath } from "./paths-BsJMoPP2.mjs";
7
- import { _ as workspaceDeviceLastUseAt } from "./activity-Dw4N_RFe.mjs";
8
- import { d as listAllIosSims } from "./ios-CdAV4-1E.mjs";
7
+ import { _ as workspaceDeviceLastUseAt } from "./activity-C8kBq9w0.mjs";
8
+ import { d as listAllIosSims } from "./ios-BdZdNsAj.mjs";
9
9
  import { join } from "node:path";
10
10
  import { LOG_ROTATE_BYTES } from "@stim-cli/core";
11
11
  import { DEVICE_IDLE_SHUTDOWN_KEY, DEVICE_RECLAIM_REASON, readDeviceIdleShutdowns } from "@stim-cli/core/state";
@@ -1,9 +1,9 @@
1
- import { h as shortUdid, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-VrXd6qPX.mjs";
2
- import { xn as schemesFromInfoPlist, yn as pickDevClientScheme } from "./ccache-DVDO2ocE.mjs";
3
- import { f as podAction, h as resolveDeviceType, i as deviceLabel, m as resolveConfiguration, n as buildLogFile, s as iosConfigurationSetting, t as appNameFromPath, u as isReleaseConfiguration, v as resolveRuntime } from "./support-Cs24xRQa.mjs";
4
- import { n as ensureWorkspaceStorageSafely } from "./native-runtime-D4qgnjK_.mjs";
5
- import { t as devClientScheme } from "./dev-client-DeAg0fso.mjs";
6
- import { c as writeLastBuild, i as iosFacts, n as cacheDescription, o as lastBuildRecord } from "./ios-project-Br1tVYWX.mjs";
7
- import { d as replaceCollector, u as collectorEntry } from "./dependencies-DIU-5rnG.mjs";
8
- import { n as registerIos, r as runIosOperation, t as iosCommand } from "./ios-DUL68MI5.mjs";
1
+ import { h as shortUdid, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-DWI9tGPU.mjs";
2
+ import { xn as schemesFromInfoPlist, yn as pickDevClientScheme } from "./ccache-BXtzEL6M.mjs";
3
+ import { f as podAction, h as resolveDeviceType, i as deviceLabel, m as resolveConfiguration, n as buildLogFile, s as iosConfigurationSetting, t as appNameFromPath, u as isReleaseConfiguration, v as resolveRuntime } from "./support-D8OH0z98.mjs";
4
+ import { n as ensureWorkspaceStorageSafely } from "./native-runtime-e1OU8gEN.mjs";
5
+ import { t as devClientScheme } from "./dev-client-ChsHwgrn.mjs";
6
+ import { c as writeLastBuild, i as iosFacts, n as cacheDescription, o as lastBuildRecord } from "./ios-project-BzfLigfh.mjs";
7
+ import { d as replaceCollector, u as collectorEntry } from "./dependencies-CgvBZbXD.mjs";
8
+ import { n as registerIos, r as runIosOperation, t as iosCommand } from "./ios-dbXzjTxx.mjs";
9
9
  export { appNameFromPath, buildLogFile, cacheDescription, collectorEntry, iosCommand as default, devClientScheme, deviceLabel, ensureWorkspaceStorageSafely, formatDuration, iosConfigurationSetting, iosFacts, isReleaseConfiguration, lastBuildRecord, phaseLine, pickDevClientScheme, podAction, registerIos, replaceCollector, resolveConfiguration, resolveDeviceType, resolveRuntime, runIosOperation, schemesFromInfoPlist, shortHash, shortUdid, writeLastBuild };
@@ -1,10 +1,10 @@
1
- import { l as WorkspaceProcessCleanupError, n as isTimeoutError, o as cancellableSleep, t as getExecutor } from "./exec-aULwtNly.mjs";
2
- import { F as formatBytes, v as loadConfig$1 } from "./config-D5qNWJEP.mjs";
1
+ import { f as WorkspaceProcessCleanupError, l as cancellableSleep, n as isTimeoutError, t as getExecutor } from "./exec-CGuDzt40.mjs";
3
2
  import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
4
- import { n as runOperationFileQuiet, t as runOperationFile } from "./operation-exec-Dp4FuIGR.mjs";
5
- import { i as stimDesktopInstalledAsync, n as settingDefault, t as STIM_DESKTOP_OPEN_OPTIONS } from "./stim-desktop-1XxET4S8.mjs";
6
- import { Ot as recordCreatedDeviceAsync, Tt as forgetCreatedDeviceAsync, pt as isStimOwnedSim } from "./android-DsEj2CCs.mjs";
7
- import { n as signedTailFor } from "./apk-signed-tail-B9Usseps.mjs";
3
+ import { rt as formatBytes, v as loadConfig$1 } from "./config-BW0fAtoK.mjs";
4
+ import { n as runOperationFileQuiet, t as runOperationFile } from "./operation-exec-DKlBcKAL.mjs";
5
+ import { i as stimDesktopInstalledAsync, n as settingDefault, t as STIM_DESKTOP_OPEN_OPTIONS } from "./stim-desktop-_WTria-r.mjs";
6
+ import { Ot as recordCreatedDeviceAsync, Tt as forgetCreatedDeviceAsync, pt as isStimOwnedSim } from "./android-Iq0M2t2d.mjs";
7
+ import { n as signedTailFor } from "./apk-signed-tail-CPpA-3vu.mjs";
8
8
  import { createHash } from "node:crypto";
9
9
  import { closeSync, existsSync, lstatSync, mkdtempSync, openSync, readSync, readdirSync, rmSync, writeFileSync } from "node:fs";
10
10
  import { tmpdir, totalmem } from "node:os";
@@ -1,4 +1,4 @@
1
- import { t as getExecutor } from "./exec-aULwtNly.mjs";
1
+ import { t as getExecutor } from "./exec-CGuDzt40.mjs";
2
2
  //#region src/collector/ios.ts
3
3
  const MESSAGE_TYPE_LEVEL = {
4
4
  Debug: "debug",
@@ -1,33 +1,33 @@
1
- import { a as recordWorkspaceUseAsync, k as workspaceLogsDir$1 } from "./workspace-state-3bF4TB8P.mjs";
2
- import { G as parseDeviceSlotOption, J as validateDeviceSlot, V as deviceSlotFileKey } from "./config-D5qNWJEP.mjs";
3
- import { _ as stepTimer, g as stepClock, i as formatDuration, l as phaseLine } from "./command-output-VrXd6qPX.mjs";
4
- import { B as publicUrlSetting, C as iosSigningIdentitySettingError, F as metroWarmupUrlSetting, N as metroPortSetting, S as iosSigningIdentitySetting, T as iosSigningIdentitySha1SettingError, a as SETTING_SHAPE_REMEDY, g as deviceReclaimIdleMinutesSetting, ot as tunnelModeSetting, v as iosLanHostSetting, w as iosSigningIdentitySha1Setting, y as iosLanHostSettingError, z as projectSettingsContextAsync } from "./settings-C6UTYW2K.mjs";
5
- import { t as NO_PROJECT_REFUSAL } from "./project-DCLkDM8C.mjs";
6
- import { bt as parkedMaxSetting, mt as POOL_SETTING_REMEDY } from "./android-DsEj2CCs.mjs";
7
- import { En as runProcessOperation, Et as binOnPath, Qt as DEFAULT_METRO_PORT, qn as ownedSessionName, wn as exitAfterFlush } from "./ccache-DVDO2ocE.mjs";
8
- import { $ as tapBuildLog, H as NO_BUILD_PROGRESS, Q as startBuildProgress, Z as runFailureRecord, et as thrownRunFailureRecord, lt as statsProjectKey$1, rt as createRunRecorder } from "./workspaces-BNEyJ1B_.mjs";
9
- import { $ as cancelledFailure, A as COMPILATION_CACHE_NOT_RUN, ct as withNativeBuildRun, ot as runCancellation, st as runCancellationSignal } from "./toolchain-CGdgD4x4.mjs";
10
- import { i as createIosSimSnapshot } from "./ios-CdAV4-1E.mjs";
1
+ import { a as recordWorkspaceUseAsync, k as workspaceLogsDir$1 } from "./workspace-state-BdZ-QgmB.mjs";
2
+ import { _ as stepTimer, g as stepClock, i as formatDuration, l as phaseLine } from "./command-output-DWI9tGPU.mjs";
3
+ import { _t as validateDeviceSlot, mt as parseDeviceSlotOption, ut as deviceSlotFileKey } from "./config-BW0fAtoK.mjs";
4
+ import { B as publicUrlSetting, C as iosSigningIdentitySettingError, F as metroWarmupUrlSetting, N as metroPortSetting, S as iosSigningIdentitySetting, T as iosSigningIdentitySha1SettingError, a as SETTING_SHAPE_REMEDY, g as deviceReclaimIdleMinutesSetting, ot as tunnelModeSetting, v as iosLanHostSetting, w as iosSigningIdentitySha1Setting, y as iosLanHostSettingError, z as projectSettingsContextAsync } from "./settings-B5IBDfTx.mjs";
5
+ import { t as NO_PROJECT_REFUSAL } from "./project-DWEXiBA9.mjs";
6
+ import { bt as parkedMaxSetting, mt as POOL_SETTING_REMEDY } from "./android-Iq0M2t2d.mjs";
7
+ import { En as runProcessOperation, Et as binOnPath, Qt as DEFAULT_METRO_PORT, qn as ownedSessionName, wn as exitAfterFlush } from "./ccache-BXtzEL6M.mjs";
8
+ import { $ as tapBuildLog, H as NO_BUILD_PROGRESS, Q as startBuildProgress, Z as runFailureRecord, et as thrownRunFailureRecord, lt as statsProjectKey$1, rt as createRunRecorder } from "./workspaces-B3ahAHZc.mjs";
9
+ import { $ as cancelledFailure, A as COMPILATION_CACHE_NOT_RUN, ct as withNativeBuildRun, ot as runCancellation, st as runCancellationSignal } from "./toolchain-s5ZmG42Z.mjs";
10
+ import { i as createIosSimSnapshot } from "./ios-BdZdNsAj.mjs";
11
11
  import { d as optimizationBuildProfile, l as artifactCachePolicy } from "./errors-DHm_U5gv.mjs";
12
- import { S as setRemoteLogSink, d as simulatorRuntime } from "./client-DhJOvSvh.mjs";
13
- import { s as parseBuildMachineOption } from "./selection-C95m--1_.mjs";
14
- import { r as hostedMetroSettings } from "./metro-request-RDhyx85c.mjs";
15
- import { i as writeDevicePlacementAsync } from "./ios-state-BEIJRJ7P.mjs";
16
- import { t as devClientPortBusy } from "./hosted-native-kaR4nUHk.mjs";
17
- import { i as restoreLightenedDependencies, n as printLightenedFailure } from "./lightened-DZ9Ip0T3.mjs";
18
- import { f as waitFlagConflict, o as leaseExpiryText } from "./device-lease-run-CHXQEn-7.mjs";
19
- import { _ as resolveIosWait, a as deviceModelRefusal, b as resolveSimulatorAppFlag, c as iosProjectPathError, d as ownedSimFailure, g as resolveIosBuildSetup, h as resolveDeviceType, i as deviceLabel, m as resolveConfiguration, n as buildLogFile, r as createIosDeviceWaitRun, u as isReleaseConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-Cs24xRQa.mjs";
20
- import { r as isEasBuildFailure } from "./eas-build-CBFgseh1.mjs";
21
- import { a as iosPoolCandidates, c as isWirelessIosDevice, f as resolveIosPhysicalDevice, o as iosPoolNoCandidatesRefusal, r as iosDeviceBounds } from "./ios-device-Dz8gFZ0K.mjs";
22
- import { i as launchOutcomeRecord, r as isPhysicalDeviceRequest, t as ensureDevServer } from "./native-runtime-D4qgnjK_.mjs";
23
- import "./dev-client-DeAg0fso.mjs";
24
- import { t as didSetUpDevice } from "./device-DuNLOlR6.mjs";
12
+ import { S as setRemoteLogSink, d as simulatorRuntime } from "./client-0_Mnfz0a.mjs";
13
+ import { s as parseBuildMachineOption } from "./selection-xS50Mt0V.mjs";
14
+ import { i as hostedMetroSettings } from "./metro-request-2LmFpC1z.mjs";
15
+ import { i as writeDevicePlacementAsync } from "./ios-state-CWsBysyN.mjs";
16
+ import { t as devClientPortBusy } from "./hosted-native-BzXIy97W.mjs";
17
+ import { i as restoreLightenedDependencies, n as printLightenedFailure } from "./lightened-Cv4ToJRX.mjs";
18
+ import { f as waitFlagConflict, o as leaseExpiryText } from "./device-lease-run-DpiCnRbZ.mjs";
19
+ import { _ as resolveIosWait, a as deviceModelRefusal, b as resolveSimulatorAppFlag, c as iosProjectPathError, d as ownedSimFailure, g as resolveIosBuildSetup, h as resolveDeviceType, i as deviceLabel, m as resolveConfiguration, n as buildLogFile, r as createIosDeviceWaitRun, u as isReleaseConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-D8OH0z98.mjs";
20
+ import { r as isEasBuildFailure } from "./eas-build-CpJ4h9tG.mjs";
21
+ import { a as iosPoolCandidates, c as isWirelessIosDevice, f as resolveIosPhysicalDevice, o as iosPoolNoCandidatesRefusal, r as iosDeviceBounds } from "./ios-device-DXbHZfFe.mjs";
22
+ import { i as launchOutcomeRecord, r as isPhysicalDeviceRequest, t as ensureDevServer } from "./native-runtime-e1OU8gEN.mjs";
23
+ import "./dev-client-ChsHwgrn.mjs";
24
+ import { t as didSetUpDevice } from "./device-DOehZpyx.mjs";
25
25
  import { t as unsupportedPlan } from "./project-plan-BPwbLwQu.mjs";
26
- import { a as refusePlan, i as printPlan, n as planFlagRefusal } from "./build-plan-DH1rT11x.mjs";
27
- import { a as iosLedgerDevice, c as writeLastBuild, o as lastBuildRecord, s as reportIosResult } from "./ios-project-Br1tVYWX.mjs";
28
- import { t as acquireIosArtifact } from "./artifact-Cr34-Yyy.mjs";
29
- import { a as hostedIosSelectors, i as hostedIosMetroNote, n as connectIosTarget, o as iosPlacementBudget, r as deviceRemoteConflict, s as selectIosPlacement, t as connectIosBackend } from "./remote-DScVlaMz.mjs";
30
- import { i as lanOriginUrlFor, l as verifyIosMetroRun, n as chooseLanAddress, o as finishIosRun, t as DEFAULT_DEPS } from "./dependencies-DIU-5rnG.mjs";
26
+ import { a as refusePlan, i as printPlan, n as planFlagRefusal } from "./build-plan-T3Hi24ax.mjs";
27
+ import { a as iosLedgerDevice, c as writeLastBuild, o as lastBuildRecord, s as reportIosResult } from "./ios-project-BzfLigfh.mjs";
28
+ import { t as acquireIosArtifact } from "./artifact-BufzdGbT.mjs";
29
+ import { a as hostedIosSelectors, i as hostedIosMetroNote, n as connectIosTarget, o as iosPlacementBudget, r as deviceRemoteConflict, s as selectIosPlacement, t as connectIosBackend } from "./remote-D0uJZ76R.mjs";
30
+ import { i as lanOriginUrlFor, l as verifyIosMetroRun, n as chooseLanAddress, o as finishIosRun, t as DEFAULT_DEPS } from "./dependencies-CgvBZbXD.mjs";
31
31
  import { join } from "node:path";
32
32
  import { workspaceId } from "@stim-cli/core";
33
33
  import { hostedIosStatus, parseMachine } from "@stim-cli/core/state";
@@ -1,4 +1,4 @@
1
- import { t as getExecutor } from "./exec-aULwtNly.mjs";
1
+ import { t as getExecutor } from "./exec-CGuDzt40.mjs";
2
2
  //#region src/collector/ios-device.ts
3
3
  const CONSOLE_ENV = { OS_ACTIVITY_DT_MODE: "enable" };
4
4
  const DEV_MENU_LAUNCH_ARGS = [
@@ -1,6 +1,6 @@
1
- import { t as getExecutor } from "./exec-aULwtNly.mjs";
2
- import { $t as INSTALL_ERROR, rn as appProcessFromPid } from "./ccache-DVDO2ocE.mjs";
3
- import { n as TOOL_ERROR_PREFIX } from "./ios-device-CiBA-er9.mjs";
1
+ import { t as getExecutor } from "./exec-CGuDzt40.mjs";
2
+ import { $t as INSTALL_ERROR, rn as appProcessFromPid } from "./ccache-BXtzEL6M.mjs";
3
+ import { n as TOOL_ERROR_PREFIX } from "./ios-device-DLdEDWJj.mjs";
4
4
  import { mkdtempSync, readFileSync, rmSync } from "node:fs";
5
5
  import { tmpdir } from "node:os";
6
6
  import { join } from "node:path";
@@ -1,10 +1,10 @@
1
- import { w as workspaceAgentDeviceDir } from "./workspace-state-3bF4TB8P.mjs";
2
- import { i as formatDuration, l as phaseLine } from "./command-output-VrXd6qPX.mjs";
3
- import { a as workspaceLinkLine } from "./stim-desktop-1XxET4S8.mjs";
4
- import { Mn as isEasAuthFailureText, On as UPLOAD_TIMEOUT_MS, jn as easAuthNote, kn as cacheLevel } from "./ccache-DVDO2ocE.mjs";
5
- import { X as recordFinishedBuild } from "./workspaces-BNEyJ1B_.mjs";
6
- import { A as COMPILATION_CACHE_NOT_RUN, F as compilationCacheActivityLine } from "./toolchain-CGdgD4x4.mjs";
7
- import { i as deviceLabel } from "./support-Cs24xRQa.mjs";
1
+ import { w as workspaceAgentDeviceDir } from "./workspace-state-BdZ-QgmB.mjs";
2
+ import { i as formatDuration, l as phaseLine } from "./command-output-DWI9tGPU.mjs";
3
+ import { a as workspaceLinkLine } from "./stim-desktop-_WTria-r.mjs";
4
+ import { Mn as isEasAuthFailureText, On as UPLOAD_TIMEOUT_MS, jn as easAuthNote, kn as cacheLevel } from "./ccache-BXtzEL6M.mjs";
5
+ import { X as recordFinishedBuild } from "./workspaces-B3ahAHZc.mjs";
6
+ import { A as COMPILATION_CACHE_NOT_RUN, F as compilationCacheActivityLine } from "./toolchain-s5ZmG42Z.mjs";
7
+ import { i as deviceLabel } from "./support-D8OH0z98.mjs";
8
8
  import { buildDiagnostics } from "@stim-cli/core/state";
9
9
  import chalk from "chalk";
10
10
  //#region src/commands/ios/result.ts
@@ -1,5 +1,5 @@
1
- import { c as throwIfCancelled, t as getExecutor } from "./exec-aULwtNly.mjs";
2
- import { a as killOnAbort, r as childEnvironment } from "./operation-exec-Dp4FuIGR.mjs";
1
+ import { d as throwIfCancelled, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
+ import { a as killOnAbort, r as childEnvironment } from "./operation-exec-DKlBcKAL.mjs";
3
3
  import { X509Certificate } from "node:crypto";
4
4
  import { existsSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
5
5
  import { tmpdir } from "node:os";
@@ -1,4 +1,4 @@
1
- import { l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-3bF4TB8P.mjs";
1
+ import { l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-BdZ-QgmB.mjs";
2
2
  import { HOSTED_METRO_REQUESTS_KEY, hostedMetroRequests, hostedNativeRecords, isJsonObject, parseHostedNativePlacement, unreadableHostedNative } from "@stim-cli/core/state";
3
3
  //#region src/device-host/ios-state.ts
4
4
  function readHostedNative(root, platform, slot) {
@@ -1,10 +1,10 @@
1
- import { _ as spawnDeclared, b as operationState, c as throwIfCancelled, t as getExecutor } from "./exec-aULwtNly.mjs";
1
+ import { C as operationState, b as spawnDeclared, d as throwIfCancelled, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
2
  import { r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
3
- import { a as killOnAbort, t as runOperationFile } from "./operation-exec-Dp4FuIGR.mjs";
4
- import { an as makeTemporaryDirectory, on as removeTemporaryEntry } from "./settings-C6UTYW2K.mjs";
5
- import { Bn as bundleInvocation } from "./ccache-DVDO2ocE.mjs";
6
- import { K as tailLines, M as HEARTBEAT_INTERVAL_MS, W as startBuildHeartbeat } from "./toolchain-CGdgD4x4.mjs";
7
- import { s as expoTelemetryEnv, t as cleanLine } from "./server-expo-CP4dURQp.mjs";
3
+ import { a as killOnAbort, t as runOperationFile } from "./operation-exec-DKlBcKAL.mjs";
4
+ import { an as makeTemporaryDirectory, on as removeTemporaryEntry } from "./settings-B5IBDfTx.mjs";
5
+ import { Bn as bundleInvocation } from "./ccache-BXtzEL6M.mjs";
6
+ import { K as tailLines, M as HEARTBEAT_INTERVAL_MS, W as startBuildHeartbeat } from "./toolchain-s5ZmG42Z.mjs";
7
+ import { s as expoTelemetryEnv, t as cleanLine } from "./server-expo-15RjL0ir.mjs";
8
8
  import { randomUUID } from "node:crypto";
9
9
  import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync } from "node:fs";
10
10
  import { basename, join } from "node:path";
@@ -1,24 +1,24 @@
1
- import { x as withDrainingCancellation } from "./exec-aULwtNly.mjs";
2
- import { k as workspaceLogsDir } from "./workspace-state-3bF4TB8P.mjs";
3
- import { D as upsertProject, F as formatBytes, H as deviceSlotKey, T as setDevice, U as deviceSlotPlatforms, V as deviceSlotFileKey, k as withConfigLockAsync, v as loadConfig, w as saveConfig } from "./config-D5qNWJEP.mjs";
4
- import { _ as stepTimer, c as launchErrorReport, i as formatDuration, l as phaseLine, n as appReadinessMessage, v as launchErrorPreview } from "./command-output-VrXd6qPX.mjs";
5
- import { L as workspaceDevServerMode } from "./project-DCLkDM8C.mjs";
6
- import { o as workspaceLinks } from "./stim-desktop-1XxET4S8.mjs";
7
- import { ct as trimAndroidCaches, i as androidDataFreeBytes, rt as resetAdoptedAvd, u as androidToolCwd } from "./android-DsEj2CCs.mjs";
8
- import { c as pidExists, f as signalProcessTree } from "./metro-mKHEMO-a.mjs";
9
- import { Bt as RELEASE_VERIFY_WAIT_MS, Gt as unattributedLaunchLines, It as LAUNCH_BUNDLING, Kt as unverifiedLaunchLines, Lt as LAUNCH_FATAL, Rt as LAUNCH_UNVERIFIED, Vt as VERIFY_TIMEOUT_MS, Zt as ADB_INSTALL_TIMEOUT_MS, gn as restartedAppNote, nn as androidDevClientUrl, tn as androidAppProcess, un as installConflictKind } from "./ccache-DVDO2ocE.mjs";
10
- import { pt as teardownOwnedAvd } from "./workspaces-BNEyJ1B_.mjs";
11
- import { x as providerUploadOutcome } from "./build-cache-BsKim4V7.mjs";
12
- import { t as recordPhoneReverse } from "./phone-reverses-Drj5QQCh.mjs";
13
- import { n as verifyCollectorOwnership, r as readCollectors } from "./ownership-CCfiBfOP.mjs";
14
- import { n as nativeRunCommand, r as siblingPlatformSlots, t as launchSlotScope } from "./slot-launch-B4MHzVX2.mjs";
1
+ import { w as withDrainingCancellation } from "./exec-CGuDzt40.mjs";
2
+ import { k as workspaceLogsDir } from "./workspace-state-BdZ-QgmB.mjs";
3
+ import { _ as stepTimer, c as launchErrorReport, i as formatDuration, l as phaseLine, n as appReadinessMessage, v as launchErrorPreview } from "./command-output-DWI9tGPU.mjs";
4
+ import { D as upsertProject, T as setDevice, dt as deviceSlotKey, ft as deviceSlotPlatforms, k as withConfigLockAsync, rt as formatBytes, ut as deviceSlotFileKey, v as loadConfig, w as saveConfig } from "./config-BW0fAtoK.mjs";
5
+ import { L as workspaceDevServerMode } from "./project-DWEXiBA9.mjs";
6
+ import { o as workspaceLinks } from "./stim-desktop-_WTria-r.mjs";
7
+ import { ct as trimAndroidCaches, i as androidDataFreeBytes, rt as resetAdoptedAvd, u as androidToolCwd } from "./android-Iq0M2t2d.mjs";
8
+ import { c as pidExists, f as signalProcessTree } from "./metro-B5PVz0Wv.mjs";
9
+ import { Bt as RELEASE_VERIFY_WAIT_MS, Gt as unattributedLaunchLines, It as LAUNCH_BUNDLING, Kt as unverifiedLaunchLines, Lt as LAUNCH_FATAL, Rt as LAUNCH_UNVERIFIED, Vt as VERIFY_TIMEOUT_MS, Zt as ADB_INSTALL_TIMEOUT_MS, gn as restartedAppNote, nn as androidDevClientUrl, tn as androidAppProcess, un as installConflictKind } from "./ccache-BXtzEL6M.mjs";
10
+ import { pt as teardownOwnedAvd } from "./workspaces-B3ahAHZc.mjs";
11
+ import { S as providerUploadOutcome } from "./build-cache-Cqj4FGnX.mjs";
12
+ import { t as recordPhoneReverse } from "./phone-reverses-rvyxW1Fl.mjs";
13
+ import { n as verifyCollectorOwnership, r as readCollectors } from "./ownership-hC7xvvxF.mjs";
14
+ import { n as nativeRunCommand, r as siblingPlatformSlots, t as launchSlotScope } from "./slot-launch-D4oREwhx.mjs";
15
15
  import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
16
- import { c as lostRefusal, s as lostLine, t as DEBUG_VERIFY_STEP_MS } from "./device-lease-run-CHXQEn-7.mjs";
17
- import { a as captureNativeCrashes, r as androidCrashClockOffset, s as printNativeCrashReport, t as errorDiagnostics } from "./error-diagnostics-CCsq_3uG.mjs";
18
- import { f as settleFingerprintCheck } from "./prebuild-D0hvmO4j.mjs";
19
- import { i as launchOutcomeRecord } from "./native-runtime-D4qgnjK_.mjs";
20
- import { a as PLATFORM, b as noDeviceDiagnostic, h as displayPath, n as LAUNCH_FAILED, r as NO_DEVICE, t as INSTALL_FAILED } from "./support-Cffz6_Ft.mjs";
21
- import { a as persistLastBuild, n as finishAndroidUpload, s as reportAndroidResult } from "./result-Epkl6gyG.mjs";
16
+ import { c as lostRefusal, s as lostLine, t as DEBUG_VERIFY_STEP_MS } from "./device-lease-run-DpiCnRbZ.mjs";
17
+ import { a as captureNativeCrashes, r as androidCrashClockOffset, s as printNativeCrashReport, t as errorDiagnostics } from "./error-diagnostics-DoLGklYX.mjs";
18
+ import { f as settleFingerprintCheck } from "./prebuild-Bhs7TTcz.mjs";
19
+ import { i as launchOutcomeRecord } from "./native-runtime-e1OU8gEN.mjs";
20
+ import { a as PLATFORM, b as noDeviceDiagnostic, h as displayPath, n as LAUNCH_FAILED, r as NO_DEVICE, t as INSTALL_FAILED } from "./support-CqyWfZZI.mjs";
21
+ import { a as persistLastBuild, n as finishAndroidUpload, s as reportAndroidResult } from "./result-DuimMZKJ.mjs";
22
22
  import { mkdirSync, openSync, statSync } from "node:fs";
23
23
  import { basename, join } from "node:path";
24
24
  import { ambientEnv } from "@stim-cli/core";
@@ -1,9 +1,9 @@
1
- import { l as WorkspaceProcessCleanupError } from "./exec-aULwtNly.mjs";
2
- import { c as withWorkspaceStateLock } from "./workspace-state-3bF4TB8P.mjs";
3
- import { l as phaseLine } from "./command-output-VrXd6qPX.mjs";
4
- import { Jt as warmWorktreePaths, Lt as podsOutOfSync, Q as resolveSettings, Rt as readWorktreeExclude, kt as listCarryableIgnoredEntries, vt as depsOutOfSync } from "./settings-C6UTYW2K.mjs";
1
+ import { f as WorkspaceProcessCleanupError } from "./exec-CGuDzt40.mjs";
2
+ import { c as withWorkspaceStateLock } from "./workspace-state-BdZ-QgmB.mjs";
3
+ import { l as phaseLine } from "./command-output-DWI9tGPU.mjs";
4
+ import { Jt as warmWorktreePaths, Lt as podsOutOfSync, Q as resolveSettings, Rt as readWorktreeExclude, kt as listCarryableIgnoredEntries, vt as depsOutOfSync } from "./settings-B5IBDfTx.mjs";
5
5
  import { t as canonicalPath } from "./paths-BsJMoPP2.mjs";
6
- import { m as warmWorktreeTarget } from "./worktree-BTrii9e_.mjs";
6
+ import { m as warmWorktreeTarget } from "./worktree-BhsML6GV.mjs";
7
7
  import { existsSync, mkdirSync, readFileSync, renameSync, rmSync, writeFileSync } from "node:fs";
8
8
  import { basename, dirname, join, relative } from "node:path";
9
9
  import { isJsonObject, readJsonObject, workspaceLightenedFile, workspaceMetadataFile } from "@stim-cli/core/state";
@@ -1,9 +1,9 @@
1
- import { S as process_identity_exports } from "./exec-aULwtNly.mjs";
2
- import { k as workspaceLogsDir$1 } from "./workspace-state-3bF4TB8P.mjs";
3
- import { K as projectDeviceSlots, v as loadConfig$1 } from "./config-D5qNWJEP.mjs";
4
- import { f as readAgentDeviceRecordsAsync, n as agentDeviceLiveness, o as envDir } from "./activity-Dw4N_RFe.mjs";
5
- import { o as captureWorkspaceCrashes } from "./error-diagnostics-CCsq_3uG.mjs";
6
- import { n as followHostedLogs, r as syncHostedLogs } from "./hosted-logs-sync-BPe8xnMu.mjs";
1
+ import { T as process_identity_exports } from "./exec-CGuDzt40.mjs";
2
+ import { k as workspaceLogsDir$1 } from "./workspace-state-BdZ-QgmB.mjs";
3
+ import { ht as projectDeviceSlots, v as loadConfig$1 } from "./config-BW0fAtoK.mjs";
4
+ import { f as readAgentDeviceRecordsAsync, n as agentDeviceLiveness, o as envDir } from "./activity-C8kBq9w0.mjs";
5
+ import { o as captureWorkspaceCrashes } from "./error-diagnostics-DoLGklYX.mjs";
6
+ import { n as followHostedLogs, r as syncHostedLogs } from "./hosted-logs-sync-D182b1eJ.mjs";
7
7
  import { readdirSync, statSync, watch } from "node:fs";
8
8
  import { homedir } from "node:os";
9
9
  import { dirname, join, relative, resolve, sep } from "node:path";
@@ -1,11 +1,11 @@
1
- import { i as recordWorkspaceUse, k as workspaceLogsDir$1, r as readWorkspaceState$1 } from "./workspace-state-3bF4TB8P.mjs";
2
- import { G as parseDeviceSlotOption, _ as isPathPrefix$1, v as loadConfig$1 } from "./config-D5qNWJEP.mjs";
3
- import { f as refuseNoProject, v as launchErrorPreview } from "./command-output-VrXd6qPX.mjs";
4
- import { n as findCommandWorkspace } from "./project-DCLkDM8C.mjs";
1
+ import { i as recordWorkspaceUse, k as workspaceLogsDir$1, r as readWorkspaceState$1 } from "./workspace-state-BdZ-QgmB.mjs";
2
+ import { f as refuseNoProject, v as launchErrorPreview } from "./command-output-DWI9tGPU.mjs";
3
+ import { _ as isPathPrefix$1, mt as parseDeviceSlotOption, v as loadConfig$1 } from "./config-BW0fAtoK.mjs";
4
+ import { n as findCommandWorkspace } from "./project-DWEXiBA9.mjs";
5
5
  import { n as SOURCES$1, t as LEVELS$1 } from "./ndjson-CrjIsGzw.mjs";
6
- import { i as followAgentActions, n as openWorkspaceLogs } from "./logs-C-hfMsxK.mjs";
7
- import { t as errorDiagnostics } from "./error-diagnostics-CCsq_3uG.mjs";
8
- import { n as followHostedLogs } from "./hosted-logs-sync-BPe8xnMu.mjs";
6
+ import { i as followAgentActions, n as openWorkspaceLogs } from "./logs-DCQ3_tGS.mjs";
7
+ import { t as errorDiagnostics } from "./error-diagnostics-DoLGklYX.mjs";
8
+ import { n as followHostedLogs } from "./hosted-logs-sync-D182b1eJ.mjs";
9
9
  import { t as watchStdoutReader } from "./stdout-reader-C8yjre1x.mjs";
10
10
  import { realpathSync } from "node:fs";
11
11
  import { relative, sep } from "node:path";
@@ -1,26 +1,26 @@
1
- import { _ as spawnDeclared, c as throwIfCancelled, t as getExecutor, u as withWorkspaceProcessLock, x as withDrainingCancellation } from "./exec-aULwtNly.mjs";
2
- import { E as workspaceDir, a as recordWorkspaceUseAsync, f as writeWorkspaceStateAsync, k as workspaceLogsDir$1, v as ensureWorkspaceStorageAsync, w as workspaceAgentDeviceDir } from "./workspace-state-3bF4TB8P.mjs";
3
- import { D as upsertProject, k as withConfigLockAsync$1, u as getConcurrencyLimits } from "./config-D5qNWJEP.mjs";
4
- import { l as phaseLine } from "./command-output-VrXd6qPX.mjs";
5
- import { Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY, it as settingValueAt, rt as settingShapeErrors } from "./settings-C6UTYW2K.mjs";
6
- import { f as projectRegistry, i as findProjectRoot$1, s as ownedDeviceLabel } from "./project-DCLkDM8C.mjs";
7
- import { i as macosProcess, n as macosDir, o as requiredMacosRecord, r as macosLogFile } from "./state-CiflgxTP.mjs";
1
+ import { b as spawnDeclared, d as throwIfCancelled, p as withWorkspaceProcessLock, t as getExecutor, w as withDrainingCancellation } from "./exec-CGuDzt40.mjs";
2
+ import { E as workspaceDir, a as recordWorkspaceUseAsync, f as writeWorkspaceStateAsync, k as workspaceLogsDir$1, v as ensureWorkspaceStorageAsync, w as workspaceAgentDeviceDir } from "./workspace-state-BdZ-QgmB.mjs";
3
+ import { l as phaseLine } from "./command-output-DWI9tGPU.mjs";
4
+ import { D as upsertProject, k as withConfigLockAsync$1, u as getConcurrencyLimits } from "./config-BW0fAtoK.mjs";
5
+ import { Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY, it as settingValueAt, rt as settingShapeErrors } from "./settings-B5IBDfTx.mjs";
6
+ import { f as projectRegistry, i as findProjectRoot$1, s as ownedDeviceLabel } from "./project-DWEXiBA9.mjs";
7
+ import { i as macosProcess, n as macosDir, o as requiredMacosRecord, r as macosLogFile } from "./state-DSOUqO-o.mjs";
8
8
  import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
9
- import { En as runProcessOperation, Tn as processContext } from "./ccache-DVDO2ocE.mjs";
10
- import { $ as tapBuildLog, H as NO_BUILD_PROGRESS, Q as startBuildProgress, St as acquireBuildSlot, Tt as releaseBuildSlot, X as recordFinishedBuild, Y as recordBuildPhase, tt as errorRemedy } from "./workspaces-BNEyJ1B_.mjs";
11
- import { ct as withNativeBuildRun, st as runCancellationSignal } from "./toolchain-CGdgD4x4.mjs";
12
- import { O as sanitizeDeviceLabel } from "./ios-CdAV4-1E.mjs";
13
- import { S as setRemoteLogSink, c as offloadPlacement, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, r as chooseBuildMachine, u as remotePhaseText } from "./client-DhJOvSvh.mjs";
14
- import { d as resolveBuildPlacement, l as requireLocalBuild, n as automaticBuild, o as namedBuildMachine, s as parseBuildMachineOption, t as OffloadRefusal } from "./selection-C95m--1_.mjs";
15
- import { l as connectHost } from "./hosted-client-5ur3YpxY.mjs";
16
- import { t as placeHostedMacos } from "./hosted-macos-BagT0Gn3.mjs";
17
- import { i as stopMacosAppHeld, t as stopBundleInstances } from "./stop-BfNhzvXO.mjs";
9
+ import { En as runProcessOperation, Tn as processContext } from "./ccache-BXtzEL6M.mjs";
10
+ import { $ as tapBuildLog, H as NO_BUILD_PROGRESS, Q as startBuildProgress, St as acquireBuildSlot, Tt as releaseBuildSlot, X as recordFinishedBuild, Y as recordBuildPhase, tt as errorRemedy } from "./workspaces-B3ahAHZc.mjs";
11
+ import { ct as withNativeBuildRun, st as runCancellationSignal } from "./toolchain-s5ZmG42Z.mjs";
12
+ import { O as sanitizeDeviceLabel } from "./ios-BdZdNsAj.mjs";
13
+ import { S as setRemoteLogSink, c as offloadPlacement, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, r as chooseBuildMachine, u as remotePhaseText } from "./client-0_Mnfz0a.mjs";
14
+ import { d as resolveBuildPlacement, l as requireLocalBuild, n as automaticBuild, o as namedBuildMachine, s as parseBuildMachineOption, t as OffloadRefusal } from "./selection-xS50Mt0V.mjs";
15
+ import { u as connectHost } from "./hosted-client-D19Lv0tg.mjs";
16
+ import { t as placeHostedMacos } from "./hosted-macos-D0DDQxvl.mjs";
17
+ import { i as stopMacosAppHeld, t as stopBundleInstances } from "./stop-CpTy6bod.mjs";
18
18
  import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
19
- import { t as buildPlacementRecord } from "./placement-log-CFT8SnlS.mjs";
20
- import { n as devicePlacementLine, t as automaticDevicePlacement } from "./auto-placement-DtTRG0rk.mjs";
21
- import { t as reidentifyBundle } from "./stage-DDrnM0CY.mjs";
22
- import { t as validateMacosArtifactPlatform } from "./artifact-platform-BO2Uvk_A.mjs";
23
- import { t as waitForMacosRegistration } from "./registration-BwCe64PH.mjs";
19
+ import { t as buildPlacementRecord } from "./placement-log-nnGnu8mo.mjs";
20
+ import { n as devicePlacementLine, t as automaticDevicePlacement } from "./auto-placement-D7P98glJ.mjs";
21
+ import { t as reidentifyBundle } from "./stage-DKC6tDXu.mjs";
22
+ import { t as validateMacosArtifactPlatform } from "./artifact-platform-DqCWUieN.mjs";
23
+ import { t as waitForMacosRegistration } from "./registration-DKjJGQ6p.mjs";
24
24
  import { createHash, randomUUID } from "node:crypto";
25
25
  import { closeSync, existsSync, openSync, promises, realpathSync, renameSync } from "node:fs";
26
26
  import { join } from "node:path";
@@ -344,7 +344,7 @@ async function planMacos(context, root, buildMachineFlag) {
344
344
  if (selected.failure) throw Object.assign(new Error(selected.failure.message), selected.failure);
345
345
  const macos = settings.macos;
346
346
  if (!macos?.product || !macos.infoPlist) throw Object.assign(/* @__PURE__ */ new Error("Set macos.product and macos.infoPlist explicitly in .stim.json. See stim guide macos."), { code: "STIM_BAD_ARG" });
347
- const { swiftpmMacosProject } = await import("./swiftpm-macos-D0CzQtpp.mjs");
347
+ const { swiftpmMacosProject } = await import("./swiftpm-macos-BuhqYB3n.mjs");
348
348
  const recipe = await swiftpmMacosProject(root).prepare(context, settings);
349
349
  let identity = null;
350
350
  let cacheHit = false;
@@ -1,2 +1,2 @@
1
- import { n as runMacos, r as waitForLaunchServices, t as macosCommand } from "./macos-DZ9ZSolN.mjs";
1
+ import { n as runMacos, r as waitForLaunchServices, t as macosCommand } from "./macos-Ch7vuM-G.mjs";
2
2
  export { macosCommand as default, runMacos, waitForLaunchServices };
@@ -1,2 +1,2 @@
1
- import { n as runMacosSupervisor, t as logLines } from "./run-2CHAJ9Oj.mjs";
1
+ import { n as runMacosSupervisor, t as logLines } from "./run-N-BbRxnC.mjs";
2
2
  export { logLines, runMacosSupervisor };
@@ -1,10 +1,10 @@
1
- import { F as formatBytes } from "./config-D5qNWJEP.mjs";
2
- import { A as diskPressureLevel, I as maintenanceItem, L as openGcLog, M as levelStillShort, N as lowestFree, R as maintenanceLogger, _ as resolveBudget, j as levelFloors, mt as deviceSweepIsScoped } from "./ccache-DVDO2ocE.mjs";
3
- import { I as memoryCulpritsUnder, V as memoryCulpritAdvice } from "./ios-CdAV4-1E.mjs";
1
+ import { rt as formatBytes } from "./config-BW0fAtoK.mjs";
2
+ import { A as diskPressureLevel, I as maintenanceItem, L as openGcLog, M as levelStillShort, N as lowestFree, R as maintenanceLogger, _ as resolveBudget, j as levelFloors, mt as deviceSweepIsScoped } from "./ccache-BXtzEL6M.mjs";
3
+ import { I as memoryCulpritsUnder, V as memoryCulpritAdvice } from "./ios-BdZdNsAj.mjs";
4
4
  import { t as resolveMaintenanceSettings } from "./settings-D9LtQaUw.mjs";
5
- import { C as sizeScanDeferred, S as measureSizes, b as measurePressure, v as measureDisk } from "./worktree-BTrii9e_.mjs";
6
- import { t as relaunchWithLogFile } from "./detached-entry-BPlSaCwC.mjs";
7
- import { i as plannedMaintenance, n as diskRecovered, o as triggeringRoot, r as executeAction, v as measureOwnedDevices } from "./act-lcOIEy32.mjs";
5
+ import { C as sizeScanDeferred, S as measureSizes, b as measurePressure, v as measureDisk } from "./worktree-BhsML6GV.mjs";
6
+ import { t as relaunchWithLogFile } from "./detached-entry-tfrgGVWb.mjs";
7
+ import { i as plannedMaintenance, n as diskRecovered, o as triggeringRoot, r as executeAction, v as measureOwnedDevices } from "./act-Cur4YKtK.mjs";
8
8
  import { r as due, t as capChildLog } from "./attempt-ClyJlZPT.mjs";
9
9
  import { releaseClaim, tryAcquireClaim } from "@stim-cli/core/ownership-claim";
10
10
  import { randomBytes } from "node:crypto";
@@ -1,7 +1,7 @@
1
- import { S as process_identity_exports, l as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-aULwtNly.mjs";
2
- import { r as readWorkspaceState } from "./workspace-state-3bF4TB8P.mjs";
3
- import { I as isOnMountedVolume, L as listMountedVolumes, S as releaseMetroPort, k as withConfigLockAsync, n as allMetroPorts, r as claimMetroPort, v as loadConfig } from "./config-D5qNWJEP.mjs";
4
- import { t as runOperationFile } from "./operation-exec-Dp4FuIGR.mjs";
1
+ import { T as process_identity_exports, f as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
+ import { r as readWorkspaceState } from "./workspace-state-BdZ-QgmB.mjs";
3
+ import { S as releaseMetroPort, at as isOnMountedVolume, k as withConfigLockAsync, n as allMetroPorts, ot as listMountedVolumes, r as claimMetroPort, v as loadConfig } from "./config-BW0fAtoK.mjs";
4
+ import { t as runOperationFile } from "./operation-exec-DKlBcKAL.mjs";
5
5
  import { sep } from "path";
6
6
  import { existsSync, readlinkSync, realpathSync } from "fs";
7
7
  import { readFile } from "node:fs/promises";
@@ -1,5 +1,5 @@
1
- import { S as process_identity_exports, c as throwIfCancelled, s as cancelledError } from "./exec-aULwtNly.mjs";
2
- import { j as workspaceStateFile$1, l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-3bF4TB8P.mjs";
1
+ import { T as process_identity_exports, d as throwIfCancelled, u as cancelledError } from "./exec-CGuDzt40.mjs";
2
+ import { j as workspaceStateFile$1, l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-BdZ-QgmB.mjs";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { statSync, watch } from "node:fs";
5
5
  import { HOSTED_METRO_REQUESTS_KEY, hostedMetroLinks, hostedMetroRequests, isJsonObject } from "@stim-cli/core/state";
@@ -139,6 +139,12 @@ async function requestHostedMetro(root, session, credential, signal) {
139
139
  })) return;
140
140
  throw new Error(`The Metro supervisor did not link Metro to ${credential.machine}. Run stim doctor, then stim stop; stim start and retry.`);
141
141
  }
142
+ /** The loopback port on which this workspace's live supervisor relays `session`'s agent control, or null. */
143
+ function hostedAgentPort(root, session) {
144
+ const state = readWorkspaceState$1(root);
145
+ const links = hostedMetroLinks(state)[session];
146
+ return links?.ready && links.agentPort && links.processToken === state?.supervisor?.processToken ? links.agentPort : null;
147
+ }
142
148
  function clearHostedMetro(root, session) {
143
149
  updateWorkspaceState(root, (state) => {
144
150
  const requests = { ...hostedMetroRequests(state) };
@@ -183,4 +189,4 @@ function hostedMetroSettings(settings, hosted) {
183
189
  } : settings;
184
190
  }
185
191
  //#endregion
186
- export { requireHostedMetro as a, requestHostedMetro as i, closeHostedMetro as n, watchWorkspaceState as o, hostedMetroSettings as r, clearHostedMetro as t };
192
+ export { requestHostedMetro as a, hostedMetroSettings as i, closeHostedMetro as n, requireHostedMetro as o, hostedAgentPort as r, watchWorkspaceState as s, clearHostedMetro as t };
@@ -1,6 +1,6 @@
1
- import { S as process_identity_exports, t as getExecutor, u as withWorkspaceProcessLock } from "./exec-aULwtNly.mjs";
2
- import { c as ensureConfig, d as getConfigDir, k as withConfigLockAsync, m as getProject, v as loadConfig, w as saveConfig } from "./config-D5qNWJEP.mjs";
3
- import { f as signalProcessTree, m as createPortProbe, s as parseNetstatPids } from "./metro-mKHEMO-a.mjs";
1
+ import { T as process_identity_exports, p as withWorkspaceProcessLock, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
+ import { c as ensureConfig, d as getConfigDir, k as withConfigLockAsync, m as getProject, v as loadConfig, w as saveConfig } from "./config-BW0fAtoK.mjs";
3
+ import { f as signalProcessTree, m as createPortProbe, s as parseNetstatPids } from "./metro-B5PVz0Wv.mjs";
4
4
  import { realpathSync } from "node:fs";
5
5
  //#region src/named-ports.ts
6
6
  const FIRST_PORT = 8900;