stim 1.23.0 → 1.23.1

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 (108) hide show
  1. package/dist/{acquire-artifact-ybouwJSR.mjs → acquire-artifact-BzYRDgaP.mjs} +1 -1
  2. package/dist/{act-DG54PWtJ.mjs → act-vxiMwdf5.mjs} +6 -6
  3. package/dist/{activity-B5RtpFda.mjs → activity-BpWUPgUm.mjs} +1 -1
  4. package/dist/{agent-device-usage-output-UJ5gC80l.mjs → agent-device-usage-output-CUlLsbRt.mjs} +3 -3
  5. package/dist/{android-CHH4KLOR.mjs → android-CLi6DSiS.mjs} +5 -5
  6. package/dist/{android-BoUJKbfz.mjs → android-DtfRGLcc.mjs} +23 -23
  7. package/dist/api.d.mts +1 -0
  8. package/dist/api.mjs +18 -18
  9. package/dist/{artifact-Dwdo7k1E.mjs → artifact-DBI3DALs.mjs} +9 -9
  10. package/dist/{artifact-5RteZem7.mjs → artifact-Xvgibgzq.mjs} +9 -9
  11. package/dist/{browser-web-CeEVlGug.mjs → browser-web-BJN9ZHxB.mjs} +5 -5
  12. package/dist/{budget-DnPX3DXj.mjs → budget-3ivAK99e.mjs} +7 -7
  13. package/dist/{build-CqufZFqy.mjs → build-Dv9s8Fz-.mjs} +14 -14
  14. package/dist/{build-plan-C8CIvRyi.mjs → build-plan-BmbdHQbr.mjs} +3 -3
  15. package/dist/{ccache-RcAy92gH.mjs → ccache-CH2EWGPB.mjs} +2 -2
  16. package/dist/{cli-D-J9fWGV.mjs → cli-BkK6Wr5i.mjs} +17 -17
  17. package/dist/cli.mjs +1 -1
  18. package/dist/{client-yyso1bwi.mjs → client-B4MMzfo_.mjs} +5 -5
  19. package/dist/{command-output-Db8BqzxH.mjs → command-output-YKGWivpG.mjs} +1 -1
  20. package/dist/{dev-client-BnYSDiKa.mjs → dev-client-BFxiDpkf.mjs} +2 -2
  21. package/dist/{device-BvzPUBs3.mjs → device-B7ljwccX.mjs} +11 -11
  22. package/dist/{device-CCkWmkAA.mjs → device-CiNYxqp6.mjs} +6 -6
  23. package/dist/{device-capacity-CjaSdrhg.mjs → device-capacity-DH0QsZYZ.mjs} +4 -4
  24. package/dist/device-host-worker.mjs +5 -5
  25. package/dist/{device-ios-uOiEETX2.mjs → device-ios-CbVDtDIy.mjs} +32 -4
  26. package/dist/{device-lease-run-BgwPHc6u.mjs → device-lease-run-DXPSwdbb.mjs} +3 -3
  27. package/dist/{device-pool-C-ptmZTa.mjs → device-pool-B4iOXIrD.mjs} +2 -2
  28. package/dist/{doctor-D2SN3Ltx.mjs → doctor-C6t4Maue.mjs} +12 -11
  29. package/dist/{doctor-pxxvipYC.mjs → doctor-DRu-8ld6.mjs} +1 -1
  30. package/dist/{doctor-8sr2tFOL.mjs → doctor-HUC1igzw.mjs} +10 -10
  31. package/dist/{doctor-watchman-sy_RNhFt.mjs → doctor-watchman-iGBpC6KM.mjs} +2 -2
  32. package/dist/{eas-build-CyjU5K7E.mjs → eas-build-DMWSSvxq.mjs} +2 -2
  33. package/dist/{eas-fallback-DV3Wytf1.mjs → eas-fallback-vKlrqxgE.mjs} +5 -5
  34. package/dist/{eas-session-ledger-BzzsX97d.mjs → eas-session-ledger-BQF9Yyy9.mjs} +1 -1
  35. package/dist/{error-diagnostics-C6sVoeqO.mjs → error-diagnostics-DYsjJIHz.mjs} +3 -3
  36. package/dist/{gc-CDoogxAI.mjs → gc-BW8E1uSC.mjs} +9 -9
  37. package/dist/{gc-DLbzvTP2.mjs → gc-dDE4QPVu.mjs} +2 -2
  38. package/dist/{guide-BC37GcDG.mjs → guide-DYYEO3Wz.mjs} +36 -20
  39. package/dist/{hosted-android-CkclQig_.mjs → hosted-android-xcfgCgSF.mjs} +2 -2
  40. package/dist/{hosted-client-ByuMMO5s.mjs → hosted-client-Bt-tndxV.mjs} +1 -1
  41. package/dist/{hosted-ios-DtYHeuYR.mjs → hosted-ios-y19jCYFF.mjs} +1 -1
  42. package/dist/{hosted-logs-Br84qWy1.mjs → hosted-logs-DzJKzKlj.mjs} +2 -2
  43. package/dist/{hosted-macos-DdtYajZt.mjs → hosted-macos-BJusKvqL.mjs} +4 -4
  44. package/dist/{hosted-native-UPI9zdZ4.mjs → hosted-native-BmQC6U_x.mjs} +3 -3
  45. package/dist/{idle-shutdown-DO7oIRlc.mjs → idle-shutdown-CJmUOV5x.mjs} +4 -4
  46. package/dist/{ios-DZZbNYlY.mjs → ios-CWjqfSm_.mjs} +19 -19
  47. package/dist/{ios-vbUOqGXu.mjs → ios-DTOYZGMJ.mjs} +8 -8
  48. package/dist/{ios-device-JC3uWM4K.mjs → ios-device-DFGuwF4U.mjs} +1 -1
  49. package/dist/{ios-project-CVyNwjAF.mjs → ios-project-CSZYI1iu.mjs} +4 -4
  50. package/dist/{js-swap-C3QxUFJR.mjs → js-swap-BSBHldmm.mjs} +3 -3
  51. package/dist/{launch-CHY3p-yz.mjs → launch-CP2wDCVd.mjs} +26 -26
  52. package/dist/{launch-Bz7JtaC4.mjs → launch-D-zq8SHG.mjs} +10 -10
  53. package/dist/{logs-CtNeNDuq.mjs → logs-By5aw3g9.mjs} +4 -4
  54. package/dist/{logs-mxqsWpJs.mjs → logs-pNvA2hHK.mjs} +6 -6
  55. package/dist/{macos-u0BoHKnO.mjs → macos-C67FZ2ft.mjs} +11 -11
  56. package/dist/{macos-inNFbBWc.mjs → macos-CPMahOC2.mjs} +1 -1
  57. package/dist/maintenance-run.mjs +4 -4
  58. package/dist/{native-android-CdCSylTn.mjs → native-android-_MWSs3PP.mjs} +9 -9
  59. package/dist/{native-run-BUTu8T7A.mjs → native-run-Dv88i0aU.mjs} +1 -1
  60. package/dist/{native-runtime-CRSOZxKY.mjs → native-runtime-DBRfY_PN.mjs} +3 -3
  61. package/dist/{native-xcode-inputs-G6rkkhxu.mjs → native-xcode-inputs-CqViUh3r.mjs} +1 -1
  62. package/dist/{native-xcode-ios-_os2PlCD.mjs → native-xcode-ios-vFgqL_yS.mjs} +12 -12
  63. package/dist/offload-worker.mjs +43 -16
  64. package/dist/{plan-placement-BU42oOyT.mjs → plan-placement-cr0fEU7b.mjs} +1 -1
  65. package/dist/{ports-BSmQKzW7.mjs → ports-DpXjKkSV.mjs} +1 -1
  66. package/dist/{prebuild-BFm63bQ0.mjs → prebuild-BligW0QS.mjs} +3 -3
  67. package/dist/{project-CTLNHCfE.mjs → project-DhCtQWWU.mjs} +11 -11
  68. package/dist/{react-native-android-CFgUroxW.mjs → react-native-android-ZlhQfhvq.mjs} +18 -18
  69. package/dist/{react-native-build-CmJkTljQ.mjs → react-native-build-CelbTO_y.mjs} +4 -4
  70. package/dist/{react-native-doctor-LTF-Xt8l.mjs → react-native-doctor-LTIaP7lv.mjs} +5 -5
  71. package/dist/{react-native-ios-ChBF1MkB.mjs → react-native-ios-C5W0SA6f.mjs} +13 -13
  72. package/dist/{reload-DF9hqUUB.mjs → reload-COJWTbae.mjs} +6 -6
  73. package/dist/{reload-RBi1nj6Z.mjs → reload-QcwnYLYV.mjs} +1 -1
  74. package/dist/{remote-BmvMCcJw.mjs → remote-DR8qUERM.mjs} +4 -4
  75. package/dist/{result-Cx5CRLvS.mjs → result-utnBea7x.mjs} +9 -9
  76. package/dist/{server-command-BTiGPEjS.mjs → server-command-B9o92sLM.mjs} +3 -3
  77. package/dist/{server-expo-D9lEz4aq.mjs → server-expo-BXrWxNYh.mjs} +31 -10
  78. package/dist/server-expo-Ddr8cG_c.mjs +2 -0
  79. package/dist/{settings-eKF_vJJs.mjs → settings-PfJx8uK1.mjs} +1 -1
  80. package/dist/{settings-write-79mQRr9C.mjs → settings-write-Chuy7Cte.mjs} +1 -1
  81. package/dist/{slot-launch-D7M2nE4b.mjs → slot-launch-B7AuoWJv.mjs} +2 -2
  82. package/dist/{stage-DKNM4ZPd.mjs → stage-C4u17aES.mjs} +1 -1
  83. package/dist/{start-CRfN1kWV.mjs → start-BL_BsiWt.mjs} +1 -1
  84. package/dist/{start-bjfiScgz.mjs → start-CU8mCPC7.mjs} +4 -4
  85. package/dist/{stats-DioA6cBU.mjs → stats-CO6sK0Nh.mjs} +3 -3
  86. package/dist/{status-Eqx_20WC.mjs → status-CrJutl6-.mjs} +1 -1
  87. package/dist/{status-kzbeWk4x.mjs → status-_WPHzVft.mjs} +11 -11
  88. package/dist/{status-watch-BIqqbJ6q.mjs → status-watch-BHFasOZN.mjs} +1 -1
  89. package/dist/status-worker.mjs +1 -1
  90. package/dist/{stop-B2uLQfoM.mjs → stop-BJ06ipTZ.mjs} +9 -9
  91. package/dist/{stop-DzLJc7Ei.mjs → stop-CR5689oB.mjs} +2 -2
  92. package/dist/{stop-B18d8KDw.mjs → stop-iuFHjUST.mjs} +2 -2
  93. package/dist/supervisor-run.mjs +8 -8
  94. package/dist/{support-DTBV56gy.mjs → support-CbXPbUMJ.mjs} +3 -3
  95. package/dist/{support-BTpZ6RAJ.mjs → support-TWuQlHQo.mjs} +5 -5
  96. package/dist/{swiftpm-macos-r_WSKlXr.mjs → swiftpm-macos-DbwGCpZg.mjs} +3 -3
  97. package/dist/{toolchain-CWeGJgCc.mjs → toolchain-B9hCFCQw.mjs} +1 -1
  98. package/dist/{toolchain-GVgnf8d1.mjs → toolchain-XkA2PfJZ.mjs} +1 -1
  99. package/dist/{web-CwREhjD-.mjs → web-DRF_oFXk.mjs} +3 -3
  100. package/dist/web-kDE9Myoy.mjs +2 -0
  101. package/dist/web-run.mjs +1 -1
  102. package/dist/{workspaces-BxzYlo3P.mjs → workspaces-e41xsjKr.mjs} +2 -2
  103. package/dist/{worktree-8lqn_lBp.mjs → worktree-B4Nj3EGS.mjs} +12 -12
  104. package/dist/{worktree-BxfVxG_b.mjs → worktree-BEwxVwKF.mjs} +1 -1
  105. package/dist/{xcode-iQnROM5o.mjs → xcode-Rq744mBF.mjs} +3 -3
  106. package/package.json +7 -7
  107. package/dist/server-expo-C-Buqvn_.mjs +0 -2
  108. package/dist/web-Cduk0NSE.mjs +0 -2
@@ -308,8 +308,8 @@ const nativeAndroidIntegration = {
308
308
  application: true,
309
309
  platforms: () => ["android"],
310
310
  validate: (operation) => operation === "android" ? null : void 0,
311
- android: async () => (await import("./native-android-CdCSylTn.mjs")).nativeAndroidProject(root),
312
- doctor: async () => (await import("./native-android-CdCSylTn.mjs")).nativeAndroidDoctor(root)
311
+ android: async () => (await import("./native-android-_MWSs3PP.mjs")).nativeAndroidProject(root),
312
+ doctor: async () => (await import("./native-android-_MWSs3PP.mjs")).nativeAndroidDoctor(root)
313
313
  };
314
314
  }
315
315
  };
@@ -737,8 +737,8 @@ const nativeXcodeProjectIntegration = {
737
737
  application: problem === null,
738
738
  platforms: () => problem ? [] : ["ios"],
739
739
  validate: (operation) => operation === "ios" ? problem : void 0,
740
- ios: async () => (await import("./native-xcode-ios-_os2PlCD.mjs")).nativeXcodeIosProject(root),
741
- doctor: async () => (await import("./native-xcode-ios-_os2PlCD.mjs")).nativeXcodeDoctor(root)
740
+ ios: async () => (await import("./native-xcode-ios-vFgqL_yS.mjs")).nativeXcodeIosProject(root),
741
+ doctor: async () => (await import("./native-xcode-ios-vFgqL_yS.mjs")).nativeXcodeDoctor(root)
742
742
  };
743
743
  }
744
744
  };
@@ -943,7 +943,7 @@ function createProjectRegistry(integrations) {
943
943
  //#region src/integrations/projects.ts
944
944
  const expo = {
945
945
  mode: MODE_EXPO,
946
- loadDevServer: async () => (await import("./server-expo-C-Buqvn_.mjs")).startExpoServer,
946
+ loadDevServer: async () => (await import("./server-expo-Ddr8cG_c.mjs")).startExpoServer,
947
947
  platforms(root) {
948
948
  const appJson = readAppJson(root);
949
949
  const config = appJson?.expo ?? appJson;
@@ -993,9 +993,9 @@ const projectRegistry = createProjectRegistry([
993
993
  ownedRoots: problem === null ? [join(root, "ios"), join(root, "android")] : [],
994
994
  platforms: (resolved) => nativeProjectIntegration(root).platforms(root, resolved),
995
995
  validate: (operation) => operation === "ios" || operation === "android" || operation === "dev-server" ? problem : void 0,
996
- ios: async (settings) => (await import("./react-native-ios-ChBF1MkB.mjs")).reactNativeIosProject(root, settings),
997
- android: async (resolved) => (await import("./react-native-android-CFgUroxW.mjs")).reactNativeAndroidProject(root, resolved),
998
- doctor: async () => (await import("./react-native-doctor-LTF-Xt8l.mjs")).reactNativeProjectDoctor(root)
996
+ ios: async (settings) => (await import("./react-native-ios-C5W0SA6f.mjs")).reactNativeIosProject(root, settings),
997
+ android: async (resolved) => (await import("./react-native-android-ZlhQfhvq.mjs")).reactNativeAndroidProject(root, resolved),
998
+ doctor: async () => (await import("./react-native-doctor-LTIaP7lv.mjs")).reactNativeProjectDoctor(root)
999
999
  };
1000
1000
  }
1001
1001
  },
@@ -1009,9 +1009,9 @@ const projectRegistry = createProjectRegistry([
1009
1009
  application: true,
1010
1010
  platforms: ({ settings }) => settingValueAt(settings, "macos.product") && settingValueAt(settings, "macos.infoPlist") ? ["macos"] : [],
1011
1011
  validate: (operation) => operation === "macos" ? null : void 0,
1012
- macos: async () => (await import("./swiftpm-macos-r_WSKlXr.mjs")).swiftpmMacosProject(root),
1012
+ macos: async () => (await import("./swiftpm-macos-DbwGCpZg.mjs")).swiftpmMacosProject(root),
1013
1013
  doctor: async () => {
1014
- const { macosToolchain, macosToolchainAsync } = await import("./toolchain-GVgnf8d1.mjs");
1014
+ const { macosToolchain, macosToolchainAsync } = await import("./toolchain-XkA2PfJZ.mjs");
1015
1015
  return {
1016
1016
  inspect: () => [],
1017
1017
  offloadTargets: ({ options: { host = process.platform, platform, operation } }) => host === "darwin" && platform === void 0 ? async () => [{
@@ -1031,7 +1031,7 @@ const projectRegistry = createProjectRegistry([
1031
1031
  application: false,
1032
1032
  platforms: ({ settings }) => webSettings(settings).url !== null ? ["web"] : [],
1033
1033
  validate: (operation) => operation === "web" ? null : void 0,
1034
- web: async () => (await import("./browser-web-CeEVlGug.mjs")).browserWebProject(root)
1034
+ web: async () => (await import("./browser-web-BJN9ZHxB.mjs")).browserWebProject(root)
1035
1035
  };
1036
1036
  }
1037
1037
  },
@@ -1,31 +1,31 @@
1
1
  import { _ as reportSignal, d as spawnDeclared, m as operationState, t as getExecutor } from "./exec-DEoAhcze.mjs";
2
2
  import { H as deviceSlotPlatforms, p as getProject, q as validateDeviceSlot } from "./config-DlrsduwG.mjs";
3
3
  import { r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
4
- import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-Db8BqzxH.mjs";
4
+ import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-YKGWivpG.mjs";
5
5
  import { a as killOnAbort, f as throwIfCancelled, t as runOperationFile } from "./operation-exec-BW0em61G.mjs";
6
6
  import { r as readWorkspaceState } from "./workspace-state-U08dEzhG.mjs";
7
7
  import { $ as settingOriginScope, B as realpathInside, H as remoteEasFallbackSetting, Ht as makeTemporaryDirectory, R as publicUrlSetting, Ut as removeTemporaryEntry, W as resolveAndroidLayout, m as defaultAndroidLayout, nt as settingsLayers, rt as tunnelModeSetting } from "./settings-C7O8A6ZI.mjs";
8
- import { v as detectIsExpo } from "./project-CTLNHCfE.mjs";
9
- import { Bn as checkEasAuth, Fn as processContext, Jn as resolveRemote, Un as loadProjectProvider, Xn as bundleInvocation, Y as statsProjectKey } from "./budget-DnPX3DXj.mjs";
8
+ import { v as detectIsExpo } from "./project-DhCtQWWU.mjs";
9
+ import { Bn as checkEasAuth, Fn as processContext, Jn as resolveRemote, Un as loadProjectProvider, Xn as bundleInvocation, Y as statsProjectKey } from "./budget-3ivAK99e.mjs";
10
10
  import { C as compareAssetManifests, S as captureAssetManifest, _ as storedAssetManifest, b as untrackedNativeFiles, c as fingerprintDiffRecord, g as storeBuild, h as resolveBuild, i as configInputsChanged, l as fingerprintProject, m as refingerprintAfterMutation, n as buildCacheKey, r as changedDuringBuildLine, s as filesystemBuildCapability, u as inputsChangedDuringBuild, w as readAssetManifest, x as assetDiffReason, y as untrackedMissLine } from "./build-cache-Dv7RN200.mjs";
11
11
  import { E as findBuildTool, F as listAvdsAsync, I as listInstalledSystemImages, K as ownedAvdSystemImage, V as ownedAvdDirectory, X as pickDefaultSystemImage, k as hostSystemImageArch, l as androidSystemImageAbi, r as androidBuildToolName } from "./android-C7sVmyI9.mjs";
12
- import { t as cleanLine } from "./server-expo-D9lEz4aq.mjs";
13
- import { o as resolveCcache } from "./ccache-RcAy92gH.mjs";
14
- import { _ as tailLines, h as startBuildHeartbeat, r as HEARTBEAT_INTERVAL_MS } from "./xcode-iQnROM5o.mjs";
15
- import { r as androidToolchainAsync, t as androidRequirements } from "./toolchain-CWeGJgCc.mjs";
16
- import { h as detectAppIds, m as detectAndroidPackage } from "./start-bjfiScgz.mjs";
17
- import { c as readProductFlavors, n as buildAndroid, s as productFlavorRefusal } from "./react-native-build-CmJkTljQ.mjs";
12
+ import { t as cleanLine } from "./server-expo-BXrWxNYh.mjs";
13
+ import { o as resolveCcache } from "./ccache-CH2EWGPB.mjs";
14
+ import { _ as tailLines, h as startBuildHeartbeat, r as HEARTBEAT_INTERVAL_MS } from "./xcode-Rq744mBF.mjs";
15
+ import { r as androidToolchainAsync, t as androidRequirements } from "./toolchain-B9hCFCQw.mjs";
16
+ import { h as detectAppIds, m as detectAndroidPackage } from "./start-CU8mCPC7.mjs";
17
+ import { c as readProductFlavors, n as buildAndroid, s as productFlavorRefusal } from "./react-native-build-CelbTO_y.mjs";
18
18
  import { t as readDoctorFingerprint } from "./doctor-fingerprint-DZLoYFVb.mjs";
19
- import { i as planEasDevelopmentBuild } from "./eas-build-CyjU5K7E.mjs";
20
- import { a as staleNativeDirRefusal, i as runPrebuild, n as planPrebuildAsync, o as explainBuildMiss, r as recordPrebuild, s as fingerprintErrorMissReason, t as planPrebuild } from "./prebuild-BFm63bQ0.mjs";
21
- import { a as PLATFORM, c as androidGradleProject, h as displayPath, i as NO_FINGERPRINT, l as androidJobLayout, o as androidBuildOptions, r as NO_DEVICE } from "./support-DTBV56gy.mjs";
19
+ import { i as planEasDevelopmentBuild } from "./eas-build-DMWSSvxq.mjs";
20
+ import { a as staleNativeDirRefusal, i as runPrebuild, n as planPrebuildAsync, o as explainBuildMiss, r as recordPrebuild, s as fingerprintErrorMissReason, t as planPrebuild } from "./prebuild-BligW0QS.mjs";
21
+ import { a as PLATFORM, c as androidGradleProject, h as displayPath, i as NO_FINGERPRINT, l as androidJobLayout, o as androidBuildOptions, r as NO_DEVICE } from "./support-CbXPbUMJ.mjs";
22
22
  import { t as AndroidRecipeRefusal } from "./android-project-BCAAmMwz.mjs";
23
- import { c as resolveAndroidRunPlan } from "./result-Cx5CRLvS.mjs";
24
- import { t as checkEasFallback } from "./eas-fallback-DV3Wytf1.mjs";
25
- import { n as androidProcessRuntime, t as androidMetroRuntime } from "./launch-Bz7JtaC4.mjs";
26
- import { n as planFlagRefusal, r as planPayload, t as planCachedBuild } from "./build-plan-C8CIvRyi.mjs";
27
- import { n as detectEntryFile, r as refreshUpdatesManifestFile, t as UPDATES_MANIFEST_NAME } from "./js-swap-C3QxUFJR.mjs";
28
- import { t as planHostedDevice } from "./plan-placement-BU42oOyT.mjs";
23
+ import { c as resolveAndroidRunPlan } from "./result-utnBea7x.mjs";
24
+ import { t as checkEasFallback } from "./eas-fallback-vKlrqxgE.mjs";
25
+ import { n as androidProcessRuntime, t as androidMetroRuntime } from "./launch-D-zq8SHG.mjs";
26
+ import { n as planFlagRefusal, r as planPayload, t as planCachedBuild } from "./build-plan-BmbdHQbr.mjs";
27
+ import { n as detectEntryFile, r as refreshUpdatesManifestFile, t as UPDATES_MANIFEST_NAME } from "./js-swap-BSBHldmm.mjs";
28
+ import { t as planHostedDevice } from "./plan-placement-cr0fEU7b.mjs";
29
29
  import { constants, existsSync, mkdirSync, readFileSync, renameSync } from "node:fs";
30
30
  import { basename, dirname, isAbsolute, join, relative } from "node:path";
31
31
  import chalk from "chalk";
@@ -1,14 +1,14 @@
1
1
  import { d as spawnDeclared, t as getExecutor } from "./exec-DEoAhcze.mjs";
2
2
  import { o as sharedCompilationCache } from "./paths-DQtTgsBf.mjs";
3
3
  import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
4
- import { l as phaseLine } from "./command-output-Db8BqzxH.mjs";
4
+ import { l as phaseLine } from "./command-output-YKGWivpG.mjs";
5
5
  import { a as killOnAbort } from "./operation-exec-BW0em61G.mjs";
6
- import { C as resolvePackageJson } from "./project-CTLNHCfE.mjs";
6
+ import { C as resolvePackageJson } from "./project-DhCtQWWU.mjs";
7
7
  import { r as register } from "./cache-manifest-DSeQjt-Q.mjs";
8
8
  import { o as androidHome } from "./android-C7sVmyI9.mjs";
9
9
  import { p as resolveOptimizations } from "./errors-ccaPc4ox.mjs";
10
- import { a as readCcacheActivity, n as CCACHE_UNAVAILABLE } from "./ccache-RcAy92gH.mjs";
11
- import { a as buildXcode, d as pickXcodeProject, g as swiftPrefixMappingSupported, h as startBuildHeartbeat, i as SWIFT_PREFIX_MAPPING_MIN_SWIFT, l as parseSwiftVersion, r as HEARTBEAT_INTERVAL_MS, s as compilationCacheSettings, u as parseXcodeMajor } from "./xcode-iQnROM5o.mjs";
10
+ import { a as readCcacheActivity, n as CCACHE_UNAVAILABLE } from "./ccache-CH2EWGPB.mjs";
11
+ import { a as buildXcode, d as pickXcodeProject, g as swiftPrefixMappingSupported, h as startBuildHeartbeat, i as SWIFT_PREFIX_MAPPING_MIN_SWIFT, l as parseSwiftVersion, r as HEARTBEAT_INTERVAL_MS, s as compilationCacheSettings, u as parseXcodeMajor } from "./xcode-Rq744mBF.mjs";
12
12
  import { createHash } from "node:crypto";
13
13
  import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, statSync } from "node:fs";
14
14
  import { dirname, isAbsolute, join, relative, sep } from "node:path";
@@ -1,10 +1,10 @@
1
1
  import { t as getExecutor } from "./exec-DEoAhcze.mjs";
2
- import { l as phaseLine } from "./command-output-Db8BqzxH.mjs";
2
+ import { l as phaseLine } from "./command-output-YKGWivpG.mjs";
3
3
  import { K as resolveIosProjectDir, W as resolveAndroidLayout } from "./settings-C7O8A6ZI.mjs";
4
- import { v as detectIsExpo } from "./project-CTLNHCfE.mjs";
5
- import { b as bundlerPin } from "./xcode-iQnROM5o.mjs";
6
- import { a as iosToolchainAsync, n as androidToolchain, r as androidToolchainAsync, t as androidRequirements } from "./toolchain-CWeGJgCc.mjs";
7
- import { a as reactNativeDoctorFindings, i as mainCheckoutProjectRoot, n as detectFingerprintParity, r as detectLinkedLibraryGitMetadata, s as repairCxxLauncherState, t as checkMainCheckout } from "./doctor-8sr2tFOL.mjs";
4
+ import { v as detectIsExpo } from "./project-DhCtQWWU.mjs";
5
+ import { b as bundlerPin } from "./xcode-Rq744mBF.mjs";
6
+ import { a as iosToolchainAsync, n as androidToolchain, r as androidToolchainAsync, t as androidRequirements } from "./toolchain-B9hCFCQw.mjs";
7
+ import { a as reactNativeDoctorFindings, i as mainCheckoutProjectRoot, n as detectFingerprintParity, r as detectLinkedLibraryGitMetadata, s as repairCxxLauncherState, t as checkMainCheckout } from "./doctor-HUC1igzw.mjs";
8
8
  import { existsSync, readdirSync } from "node:fs";
9
9
  import { join, relative } from "node:path";
10
10
  //#region src/diagnostics/doctor-ios-architectures.ts
@@ -1,21 +1,21 @@
1
1
  import { _ as reportSignal } from "./exec-DEoAhcze.mjs";
2
- import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-Db8BqzxH.mjs";
2
+ import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-YKGWivpG.mjs";
3
3
  import { H as remoteEasFallbackSetting, K as resolveIosProjectDir, R as publicUrlSetting, U as remoteIosSetting, a as SETTING_SHAPE_REMEDY, et as settingShapeErrors, p as cacheProviderSettingError, rt as tunnelModeSetting } from "./settings-C7O8A6ZI.mjs";
4
- import { Fn as processContext, Y as statsProjectKey } from "./budget-DnPX3DXj.mjs";
5
- import { d as runCancellationSignal } from "./native-run-BUTu8T7A.mjs";
4
+ import { Fn as processContext, Y as statsProjectKey } from "./budget-3ivAK99e.mjs";
5
+ import { d as runCancellationSignal } from "./native-run-Dv88i0aU.mjs";
6
6
  import { c as fingerprintDiffRecord, i as configInputsChanged, m as refingerprintAfterMutation, n as buildCacheKey, r as changedDuringBuildLine, s as filesystemBuildCapability, u as inputsChangedDuringBuild, y as untrackedMissLine } from "./build-cache-Dv7RN200.mjs";
7
7
  import { d as optimizationBuildProfile, l as artifactCachePolicy, p as resolveOptimizations } from "./errors-ccaPc4ox.mjs";
8
- import { b as bundlerPin } from "./xcode-iQnROM5o.mjs";
9
- import { a as iosToolchainAsync } from "./toolchain-CWeGJgCc.mjs";
10
- import { a as deviceModelRefusal, c as iosProjectPathError, f as podAction, h as resolveDeviceType, l as iosProviderRunOptions, m as resolveConfiguration, u as isReleaseConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-BTpZ6RAJ.mjs";
8
+ import { b as bundlerPin } from "./xcode-Rq744mBF.mjs";
9
+ import { a as iosToolchainAsync } from "./toolchain-B9hCFCQw.mjs";
10
+ import { a as deviceModelRefusal, c as iosProjectPathError, f as podAction, h as resolveDeviceType, l as iosProviderRunOptions, m as resolveConfiguration, u as isReleaseConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-TWuQlHQo.mjs";
11
11
  import { t as readDoctorFingerprint } from "./doctor-fingerprint-DZLoYFVb.mjs";
12
- import { i as planEasDevelopmentBuild, n as easDeviceBuildRemedy } from "./eas-build-CyjU5K7E.mjs";
13
- import { a as staleNativeDirRefusal, o as explainBuildMiss, r as recordPrebuild, s as fingerprintErrorMissReason } from "./prebuild-BFm63bQ0.mjs";
14
- import { r as planPayload, t as planCachedBuild } from "./build-plan-C8CIvRyi.mjs";
15
- import { t as IosRecipeRefusal } from "./ios-project-CVyNwjAF.mjs";
16
- import { a as hostedIosSelectors } from "./remote-BmvMCcJw.mjs";
17
- import { c as copyAppAside, i as DEFAULT_DEPS, n as iosMetroRuntime, r as iosProcessRuntime, u as writeIpTxt } from "./launch-CHY3p-yz.mjs";
18
- import { t as planHostedDevice } from "./plan-placement-BU42oOyT.mjs";
12
+ import { i as planEasDevelopmentBuild, n as easDeviceBuildRemedy } from "./eas-build-DMWSSvxq.mjs";
13
+ import { a as staleNativeDirRefusal, o as explainBuildMiss, r as recordPrebuild, s as fingerprintErrorMissReason } from "./prebuild-BligW0QS.mjs";
14
+ import { r as planPayload, t as planCachedBuild } from "./build-plan-BmbdHQbr.mjs";
15
+ import { t as IosRecipeRefusal } from "./ios-project-CSZYI1iu.mjs";
16
+ import { a as hostedIosSelectors } from "./remote-DR8qUERM.mjs";
17
+ import { c as copyAppAside, i as DEFAULT_DEPS, n as iosMetroRuntime, r as iosProcessRuntime, u as writeIpTxt } from "./launch-CP2wDCVd.mjs";
18
+ import { t as planHostedDevice } from "./plan-placement-cr0fEU7b.mjs";
19
19
  import { rmSync } from "node:fs";
20
20
  import chalk from "chalk";
21
21
  //#region src/integrations/react-native-ios-plan.ts
@@ -1,18 +1,18 @@
1
1
  import { H as deviceSlotPlatforms, U as parseDeviceSlotKey, p as getProject } from "./config-DlrsduwG.mjs";
2
- import { f as refuseNoProject, l as phaseLine } from "./command-output-Db8BqzxH.mjs";
2
+ import { f as refuseNoProject, l as phaseLine } from "./command-output-YKGWivpG.mjs";
3
3
  import { d as cancelledError, f as throwIfCancelled, u as cancellableSleep } from "./operation-exec-BW0em61G.mjs";
4
4
  import { a as recordWorkspaceUseAsync, r as readWorkspaceState$1 } from "./workspace-state-U08dEzhG.mjs";
5
5
  import { Nt as repoRootAsync } from "./settings-C7O8A6ZI.mjs";
6
- import { I as readWorkspaceLaunches, r as findCommandWorkspaceAsync } from "./project-CTLNHCfE.mjs";
6
+ import { I as readWorkspaceLaunches, r as findCommandWorkspaceAsync } from "./project-DhCtQWWU.mjs";
7
7
  import { a as listeningPidsAsync, d as resolveProjectMetro, h as isMetroRunning, u as processCwds } from "./metro-DiXtA3Ty.mjs";
8
8
  import { d as webFactsAsync, o as readWebRecord, r as cdpEndpoint } from "./state--smjFSTL.mjs";
9
- import { Sn as iosAppProcess, _n as ensureMetroReverse, dn as androidAppProcess } from "./budget-DnPX3DXj.mjs";
9
+ import { Sn as iosAppProcess, _n as ensureMetroReverse, dn as androidAppProcess } from "./budget-3ivAK99e.mjs";
10
10
  import { et as resolveOwnedAvdSerialAsync } from "./android-C7sVmyI9.mjs";
11
11
  import { E as resolveOwnedIosSim, f as listAllIosSimsAsync } from "./ios-hcBpnEGk.mjs";
12
- import { f as probeHostedSession } from "./hosted-client-ByuMMO5s.mjs";
12
+ import { f as probeHostedSession } from "./hosted-client-Bt-tndxV.mjs";
13
13
  import { r as readHostedNative } from "./ios-state-Dtw5K2aI.mjs";
14
- import { r as reopenHostedAndroidMetro } from "./hosted-android-CkclQig_.mjs";
15
- import { n as nativeRunCommand } from "./slot-launch-D7M2nE4b.mjs";
14
+ import { r as reopenHostedAndroidMetro } from "./hosted-android-xcfgCgSF.mjs";
15
+ import { n as nativeRunCommand } from "./slot-launch-B7AuoWJv.mjs";
16
16
  import { n as sendToOwnedPage, t as liveWebRecord } from "./page-DBL2PiUU.mjs";
17
17
  import { hostedAndroidDeviceName, hostedNativeRecords } from "@stim-cli/core/state";
18
18
  import { WebSocket } from "ws";
@@ -1,2 +1,2 @@
1
- import { n as reloadCommand, r as runReload, t as registerReload } from "./reload-DF9hqUUB.mjs";
1
+ import { n as reloadCommand, r as runReload, t as registerReload } from "./reload-COJWTbae.mjs";
2
2
  export { reloadCommand as default, registerReload, runReload };
@@ -1,10 +1,10 @@
1
1
  import { H as deviceSlotPlatforms } from "./config-DlrsduwG.mjs";
2
- import { l as phaseLine } from "./command-output-Db8BqzxH.mjs";
2
+ import { l as phaseLine } from "./command-output-YKGWivpG.mjs";
3
3
  import { F as parseIosRemote, H as remoteEasFallbackSetting, R as publicUrlSetting, U as remoteIosSetting, rt as tunnelModeSetting } from "./settings-C7O8A6ZI.mjs";
4
- import "./budget-DnPX3DXj.mjs";
5
- import { b as resolveSimulatorAppFlag } from "./support-BTpZ6RAJ.mjs";
4
+ import "./budget-3ivAK99e.mjs";
5
+ import { b as resolveSimulatorAppFlag } from "./support-TWuQlHQo.mjs";
6
6
  import { n as devicePlacementRecord } from "./placement-log-BnGgJRRZ.mjs";
7
- import { r as devicePlacementLine } from "./eas-fallback-DV3Wytf1.mjs";
7
+ import { r as devicePlacementLine } from "./eas-fallback-vKlrqxgE.mjs";
8
8
  import chalk from "chalk";
9
9
  //#region src/commands/ios/remote.ts
10
10
  function deviceRemoteConflict(remote, physical) {
@@ -1,19 +1,19 @@
1
1
  import { l as workspaceAgentDeviceDir } from "./paths-DQtTgsBf.mjs";
2
2
  import { H as deviceSlotPlatforms, p as getProject } from "./config-DlrsduwG.mjs";
3
- import { i as formatDuration, l as phaseLine } from "./command-output-Db8BqzxH.mjs";
3
+ import { i as formatDuration, l as phaseLine } from "./command-output-YKGWivpG.mjs";
4
4
  import { $ as settingOriginScope, F as parseIosRemote, G as resolveCacheProviderConfig, V as remoteAndroidSetting, W as resolveAndroidLayout, Z as settingFile, a as SETTING_SHAPE_REMEDY, d as androidLayoutSetting, et as settingShapeErrors, f as androidLayoutSettingError, it as unknownSettingKeys, nt as settingsLayers, p as cacheProviderSettingError, s as androidAvdConfigSettingError, u as androidDataPartitionSizeGbSettingError } from "./settings-C7O8A6ZI.mjs";
5
- import { v as detectIsExpo } from "./project-CTLNHCfE.mjs";
6
- import { B as recordFinishedBuild, Hn as isEasAuthFailureText, Rn as UPLOAD_TIMEOUT_MS, Vn as easAuthNote, zn as cacheLevel } from "./budget-DnPX3DXj.mjs";
5
+ import { v as detectIsExpo } from "./project-DhCtQWWU.mjs";
6
+ import { B as recordFinishedBuild, Hn as isEasAuthFailureText, Rn as UPLOAD_TIMEOUT_MS, Vn as easAuthNote, zn as cacheLevel } from "./budget-3ivAK99e.mjs";
7
7
  import { B as ownedAvdDeviceProfile, I as listInstalledSystemImages, K as ownedAvdSystemImage, N as listAvdDeviceProfilesAsync, Q as profileNeedsFoldFeature, X as pickDefaultSystemImage, _t as parkedMaxSetting, rt as systemImageSupportsFold, t as DEFAULT_AVD_DEVICE_PROFILE } from "./android-C7sVmyI9.mjs";
8
8
  import { a as workspaceLinkLine } from "./stim-desktop-D5OGpYZM.mjs";
9
9
  import { d as optimizationBuildProfile, l as artifactCachePolicy, p as resolveOptimizations, u as compilerCacheFallbackMessage } from "./errors-ccaPc4ox.mjs";
10
- import { n as CCACHE_UNAVAILABLE, r as ccacheActivityLine } from "./ccache-RcAy92gH.mjs";
11
- import { c as readProductFlavors, s as productFlavorRefusal } from "./react-native-build-CmJkTljQ.mjs";
12
- import { l as parseDeviceWait } from "./device-lease-run-BgwPHc6u.mjs";
13
- import { t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-CjaSdrhg.mjs";
10
+ import { n as CCACHE_UNAVAILABLE, r as ccacheActivityLine } from "./ccache-CH2EWGPB.mjs";
11
+ import { c as readProductFlavors, s as productFlavorRefusal } from "./react-native-build-CelbTO_y.mjs";
12
+ import { l as parseDeviceWait } from "./device-lease-run-DXPSwdbb.mjs";
13
+ import { t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-DH0QsZYZ.mjs";
14
14
  import { n as resolveAndroidCas, r as resolveAndroidCompilerCache } from "./android-cas-ngferVq2.mjs";
15
- import { r as isPhysicalDeviceRequest } from "./native-runtime-CRSOZxKY.mjs";
16
- import { C as remoteAvdFlagRefusal, D as systemImageRefusal, E as resolveVariant, T as resolveSystemImage, a as PLATFORM, m as deviceProfileRefusal, v as foldableImageRefusal, w as resolveDeviceProfile, y as isReleaseVariant } from "./support-DTBV56gy.mjs";
15
+ import { r as isPhysicalDeviceRequest } from "./native-runtime-DBRfY_PN.mjs";
16
+ import { C as remoteAvdFlagRefusal, D as systemImageRefusal, E as resolveVariant, T as resolveSystemImage, a as PLATFORM, m as deviceProfileRefusal, v as foldableImageRefusal, w as resolveDeviceProfile, y as isReleaseVariant } from "./support-CbXPbUMJ.mjs";
17
17
  import { buildDiagnostics } from "@stim-cli/core/state";
18
18
  import chalk from "chalk";
19
19
  //#region src/commands/android/plan.ts
@@ -1,9 +1,9 @@
1
1
  import { t as getExecutor } from "./exec-DEoAhcze.mjs";
2
2
  import { n as METRO_COMMAND_PORT } from "./settings-C7O8A6ZI.mjs";
3
- import { T as MODE_COMMAND } from "./project-CTLNHCfE.mjs";
3
+ import { T as MODE_COMMAND } from "./project-DhCtQWWU.mjs";
4
4
  import { r as createNdjsonWriter } from "./ndjson-CgE_o3Dl.mjs";
5
5
  import { f as signalProcessTree } from "./metro-DiXtA3Ty.mjs";
6
- import { f as recordFromLine, h as superviseChildServer, m as withProjectNode } from "./server-expo-D9lEz4aq.mjs";
6
+ import { _ as withProjectNode, f as recordFromLine, h as projectNodeLine, v as superviseChildServer } from "./server-expo-BXrWxNYh.mjs";
7
7
  import { join } from "node:path";
8
8
  import { LOG_ROTATE_BYTES } from "@stim-cli/core";
9
9
  //#region src/supervisor/server-command.ts
@@ -34,7 +34,7 @@ async function startCommandServer({ root, port, logsDir, command, writer = null,
34
34
  src: "metro",
35
35
  level: "info",
36
36
  event: "project_node",
37
- msg: `Metro runs on Node ${node.pinned.version} from ${node.pinned.bin}, which ${node.pinned.pin} pins`
37
+ msg: `Metro runs on ${projectNodeLine(node.pinned)}`
38
38
  });
39
39
  const child = spawn(program, args, {
40
40
  cwd: root,
@@ -2,13 +2,13 @@ import { t as getExecutor } from "./exec-DEoAhcze.mjs";
2
2
  import { n as stripAnsi, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
3
3
  import { u as cancellableSleep } from "./operation-exec-BW0em61G.mjs";
4
4
  import { q as resolveProjectSettings } from "./settings-C7O8A6ZI.mjs";
5
- import { C as resolvePackageJson } from "./project-CTLNHCfE.mjs";
5
+ import { C as resolvePackageJson } from "./project-DhCtQWWU.mjs";
6
6
  import { r as createNdjsonWriter } from "./ndjson-CgE_o3Dl.mjs";
7
7
  import { a as expoMetroStoreEnv, c as registerMetroStore, f as resolveMetroSharedCache, i as expoMetroConfigPath, n as supervisorError, o as metroStoreConfirmedRoot, s as metroStoreRoot } from "./errors-ccaPc4ox.mjs";
8
8
  import { accessSync, constants, existsSync, readFileSync } from "node:fs";
9
9
  import { delimiter, dirname, join } from "node:path";
10
10
  import { LOG_ROTATE_BYTES } from "@stim-cli/core";
11
- import { projectNodeBin, satisfiesNodePin } from "@stim-cli/core/toolchain";
11
+ import { meetsNodePinMajor, projectNodeBin, projectNodePin, resolveNodePinSpec, satisfiesNodePin } from "@stim-cli/core/toolchain";
12
12
  //#region src/supervisor/child-server.ts
13
13
  function superviseChildServer({ mode, child, log, toRecord, signal, alive = null, killTimeoutMs, onRecord = null }) {
14
14
  let lastMsg = null;
@@ -86,6 +86,7 @@ function superviseChildServer({ mode, child, log, toRecord, signal, alive = null
86
86
  }
87
87
  //#endregion
88
88
  //#region src/supervisor/project-node.ts
89
+ /** The version of the `node` that `env`'s `PATH` runs. */
89
90
  function pathNodeVersion(env) {
90
91
  const childEnv = {};
91
92
  for (const [key, value] of Object.entries(env)) if (value !== void 0) childEnv[key] = value;
@@ -95,18 +96,20 @@ function pathNodeVersion(env) {
95
96
  });
96
97
  }
97
98
  /**
98
- * `env` with the Node that `root` pins (`.nvmrc`, `.node-version`, `.tool-versions` or Volta) first on `PATH`,
99
- * for the dev server Stim starts through its `#!/usr/bin/env node` script. It changes nothing when the project pins
100
- * no Node, when no installed Node satisfies the pin, or when the `node` already on `PATH` satisfies it.
99
+ * `env` with the Node `projectNodeBin` picks for the pin in `root`, or the nearest directory above it up to `top`
100
+ * (`.nvmrc`, `.node-version`, `.tool-versions` or Volta), first on `PATH`, for the processes Stim starts that run the
101
+ * project's own Node code. It changes nothing when the project pins no Node, when no install fits the pin, or when
102
+ * the `node` already on `PATH` satisfies it: matching the pin, or, when no install matches it, of its major and not
103
+ * older than it.
101
104
  */
102
- function withProjectNode(root, env, { nodeVersion = pathNodeVersion } = {}) {
103
- const pinned = projectNodeBin(root, env);
105
+ function withProjectNode(root, env, { nodeVersion = pathNodeVersion, top = root } = {}) {
106
+ const pinned = projectNodeBin(root, env, void 0, top);
104
107
  if (!pinned) return {
105
108
  env,
106
109
  pinned: null
107
110
  };
108
111
  const current = nodeVersion(env);
109
- if (current && satisfiesNodePin(current, pinned.spec)) return {
112
+ if (current && (satisfiesNodePin(current, pinned.spec) || pinned.match === "major" && meetsNodePinMajor(current, pinned.spec))) return {
110
113
  env,
111
114
  pinned: null
112
115
  };
@@ -118,6 +121,24 @@ function withProjectNode(root, env, { nodeVersion = pathNodeVersion } = {}) {
118
121
  pinned
119
122
  };
120
123
  }
124
+ /**
125
+ * Why the project's own Node code may have failed under `env`: the pin that `root`, or the nearest directory above it
126
+ * up to `top`, sets when neither an install nor the `node` on `PATH` fits it as `withProjectNode` decides, else null.
127
+ */
128
+ function unmetNodePin(root, env, { nodeVersion = pathNodeVersion, top = root } = {}) {
129
+ const pin = projectNodePin(root, void 0, top);
130
+ if (!pin || projectNodeBin(root, env, void 0, top)) return null;
131
+ const spec = resolveNodePinSpec(pin.spec, env);
132
+ const current = nodeVersion(env) ?? "unknown";
133
+ if (!spec) return `Stim cannot resolve ${pin.file} ${pin.spec} through nvm's aliases, so Node ${current} on PATH ran.`;
134
+ if (satisfiesNodePin(current, spec) || meetsNodePinMajor(current, spec)) return null;
135
+ return `Node ${current} on PATH does not satisfy ${pin.file} ${pin.spec}, and no installed Node does.`;
136
+ }
137
+ /** The log line naming the Node `withProjectNode` put first on `PATH` and the pin it stands for. */
138
+ function projectNodeLine(pinned) {
139
+ const line = `Node ${pinned.version} from ${pinned.bin}, for ${pinned.pin} ${pinned.spec}`;
140
+ return pinned.match === "major" ? `${line} (no install has ${pinned.spec}; the newest ${pinned.version.split(".")[0]}.x not older than it)` : line;
141
+ }
121
142
  //#endregion
122
143
  //#region src/supervisor/server-expo.ts
123
144
  function resolveExpoBin(root) {
@@ -335,7 +356,7 @@ async function startExpoServer({ root, port, logsDir, writer = null, spawnFn = n
335
356
  src: "metro",
336
357
  level: "info",
337
358
  event: "project_node",
338
- msg: `Metro runs on Node ${node.pinned.version} from ${node.pinned.bin}, which ${node.pinned.pin} pins`
359
+ msg: `Metro runs on ${projectNodeLine(node.pinned)}`
339
360
  });
340
361
  const child = spawn(command, commandArgs, {
341
362
  cwd: root,
@@ -372,4 +393,4 @@ async function startExpoServer({ root, port, logsDir, writer = null, spawnFn = n
372
393
  });
373
394
  }
374
395
  //#endregion
375
- export { expoProxyEnv as a, inferLevel as c, parseExpoWaitingOnUrl as d, recordFromLine as f, superviseChildServer as h, expoBinRefusal as i, isBundleMarker as l, withProjectNode as m, expoBinFromPackage as n, expoSdkMajor as o, startExpoServer as p, expoBinPath as r, findBinUpward as s, cleanLine as t, isDevClientNavigationNotice as u };
396
+ export { withProjectNode as _, expoProxyEnv as a, inferLevel as c, parseExpoWaitingOnUrl as d, recordFromLine as f, unmetNodePin as g, projectNodeLine as h, expoBinRefusal as i, isBundleMarker as l, pathNodeVersion as m, expoBinFromPackage as n, expoSdkMajor as o, startExpoServer as p, expoBinPath as r, findBinUpward as s, cleanLine as t, isDevClientNavigationNotice as u, superviseChildServer as v };
@@ -0,0 +1,2 @@
1
+ import { p as startExpoServer } from "./server-expo-BXrWxNYh.mjs";
2
+ export { startExpoServer };
@@ -1,4 +1,4 @@
1
- import { a as layerFile, c as settingEntry, i as SettingsRefusal, n as readScope, o as readSettingsContext, r as requireSetting, s as readSettingsPayload, t as mutateSetting } from "./settings-write-79mQRr9C.mjs";
1
+ import { a as layerFile, c as settingEntry, i as SettingsRefusal, n as readScope, o as readSettingsContext, r as requireSetting, s as readSettingsPayload, t as mutateSetting } from "./settings-write-Chuy7Cte.mjs";
2
2
  import { SETTING_SCOPES } from "@stim-cli/core/state";
3
3
  import chalk from "chalk";
4
4
  //#region src/commands/settings.ts
@@ -2,7 +2,7 @@ import { i as withWorkspaceProcessLock } from "./exec-DEoAhcze.mjs";
2
2
  import { A as writeConfigSettingAsync, O as withConfigLockAsync$1, _ as loadConfig$1, f as getConfigPath$1, h as getRepoSettings, m as getProjectSettings } from "./config-DlrsduwG.mjs";
3
3
  import { a as killOnAbort, i as gitPath } from "./operation-exec-BW0em61G.mjs";
4
4
  import { it as unknownSettingKeys, z as readCommittedSettings } from "./settings-C7O8A6ZI.mjs";
5
- import { r as findCommandWorkspaceAsync, t as NO_PROJECT_REFUSAL } from "./project-CTLNHCfE.mjs";
5
+ import { r as findCommandWorkspaceAsync, t as NO_PROJECT_REFUSAL } from "./project-DhCtQWWU.mjs";
6
6
  import { i as stimDesktopInstalledAsync, n as settingDefault, r as stimDesktopInstalled } from "./stim-desktop-D5OGpYZM.mjs";
7
7
  import { n as recordingLayers, t as deleteTurnedOffRecordings } from "./recordings-CQmfzAh7.mjs";
8
8
  import { existsSync, readFileSync, renameSync, unlinkSync, writeFileSync } from "node:fs";
@@ -1,7 +1,7 @@
1
1
  import { G as projectDeviceSlots, U as parseDeviceSlotKey, p as getProject } from "./config-DlrsduwG.mjs";
2
2
  import { r as readWorkspaceState$1 } from "./workspace-state-U08dEzhG.mjs";
3
- import { gn as deviceShellArg } from "./budget-DnPX3DXj.mjs";
4
- import { y as fileLeaseIo } from "./activity-B5RtpFda.mjs";
3
+ import { gn as deviceShellArg } from "./budget-3ivAK99e.mjs";
4
+ import { y as fileLeaseIo } from "./activity-BpWUPgUm.mjs";
5
5
  import { O as getAvdNameForSerialAsync, j as listAdbDevicesAsync } from "./android-C7sVmyI9.mjs";
6
6
  import { f as listAllIosSimsAsync } from "./ios-hcBpnEGk.mjs";
7
7
  import { hostedNativeRecords } from "@stim-cli/core/state";
@@ -1,6 +1,6 @@
1
1
  import { h as withDrainingCancellation, t as getExecutor } from "./exec-DEoAhcze.mjs";
2
2
  import { f as throwIfCancelled } from "./operation-exec-BW0em61G.mjs";
3
- import { d as runCancellationSignal } from "./native-run-BUTu8T7A.mjs";
3
+ import { d as runCancellationSignal } from "./native-run-Dv88i0aU.mjs";
4
4
  import { existsSync, lstatSync, promises, readdirSync, realpathSync, statSync } from "node:fs";
5
5
  import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
6
6
  import { validMacosResourceDestination } from "@stim-cli/core";
@@ -1,2 +1,2 @@
1
- import { a as registerStart, c as startDevServer, d as supervisorSignalable, f as tailLines, i as readLogTail, l as startFacts, n as liveSupervisor, o as resolveWorkspaceMetroPort, p as wantsExpoOwnTunnel, r as parseWait, s as startCommand, t as failureEvidence, u as supervisorEntry } from "./start-bjfiScgz.mjs";
1
+ import { a as registerStart, c as startDevServer, d as supervisorSignalable, f as tailLines, i as readLogTail, l as startFacts, n as liveSupervisor, o as resolveWorkspaceMetroPort, p as wantsExpoOwnTunnel, r as parseWait, s as startCommand, t as failureEvidence, u as supervisorEntry } from "./start-CU8mCPC7.mjs";
2
2
  export { startCommand as default, failureEvidence, liveSupervisor, parseWait, readLogTail, registerStart, resolveWorkspaceMetroPort, startDevServer, startFacts, supervisorEntry, supervisorSignalable, tailLines, wantsExpoOwnTunnel };
@@ -1,15 +1,15 @@
1
1
  import { a as workspaceProcessLockError, g as process_identity_exports, h as withDrainingCancellation, i as withWorkspaceProcessLock, r as WorkspaceProcessCleanupError, t as getExecutor, x as ownership_claim_exports } from "./exec-DEoAhcze.mjs";
2
2
  import { l as workspaceAgentDeviceDir, m as workspaceLogsDir$1, n as ensureWorkspaceStorage, s as supervisorLogFile } from "./paths-DQtTgsBf.mjs";
3
3
  import { E as upsertProject, O as withConfigLockAsync$1, p as getProject } from "./config-DlrsduwG.mjs";
4
- import { _ as stepTimer, l as phaseLine } from "./command-output-Db8BqzxH.mjs";
4
+ import { _ as stepTimer, l as phaseLine } from "./command-output-YKGWivpG.mjs";
5
5
  import { f as throwIfCancelled, u as cancellableSleep } from "./operation-exec-BW0em61G.mjs";
6
6
  import { i as recordWorkspaceUse, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-U08dEzhG.mjs";
7
7
  import { A as metroIdleStopMinutesSetting, G as resolveCacheProviderConfig, J as resolveProjectSettingsAsync, K as resolveIosProjectDir, M as metroTunnelSettingError, O as metroCommandSetting, P as ngrokUrlSetting, R as publicUrlSetting, U as remoteIosSetting, V as remoteAndroidSetting, W as resolveAndroidLayout, a as SETTING_SHAPE_REMEDY, ct as detectProviders, et as settingShapeErrors, h as deviceIdleShutdownMinutesSetting, it as unknownSettingKeys, j as metroPortSetting, k as metroCommandSettingError, lt as planMetroReach, m as defaultAndroidLayout, p as cacheProviderSettingError, rt as tunnelModeSetting, st as PUBLIC_METRO_ENV } from "./settings-C7O8A6ZI.mjs";
8
- import { E as MODE_EXPO, M as readMetroTunnel, O as clearManagedMetroTunnel, S as readAppJson, T as MODE_COMMAND, c as projectProblem, i as findProjectRoot$1, t as NO_PROJECT_REFUSAL, v as detectIsExpo, w as MODE_BARE, x as readAppConfigText } from "./project-CTLNHCfE.mjs";
8
+ import { E as MODE_EXPO, M as readMetroTunnel, O as clearManagedMetroTunnel, S as readAppJson, T as MODE_COMMAND, c as projectProblem, i as findProjectRoot$1, t as NO_PROJECT_REFUSAL, v as detectIsExpo, w as MODE_BARE, x as readAppConfigText } from "./project-DhCtQWWU.mjs";
9
9
  import { i as levelRank } from "./ndjson-CgE_o3Dl.mjs";
10
10
  import { _ as PORT_INSPECTION_REMEDY, a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, f as signalProcessTree, g as reserveMetroPort, h as isMetroRunning, u as processCwds, v as PortInspectionError } from "./metro-DiXtA3Ty.mjs";
11
- import { In as runProcessOperation, Kn as readProjectConfig, Pn as exitAfterFlush, Zn as remoteCliInvocation, p as stopOwnedMetroForReset, t as budgetGate } from "./budget-DnPX3DXj.mjs";
12
- import { _ as stopTunnel, g as startTunnelSequence, h as resolveSupervisorTarget, v as terminateChild, x as withManagedTunnelLock, y as withManagedRemoteWorktreeLock } from "./workspaces-BxzYlo3P.mjs";
11
+ import { In as runProcessOperation, Kn as readProjectConfig, Pn as exitAfterFlush, Zn as remoteCliInvocation, p as stopOwnedMetroForReset, t as budgetGate } from "./budget-3ivAK99e.mjs";
12
+ import { _ as stopTunnel, g as startTunnelSequence, h as resolveSupervisorTarget, v as terminateChild, x as withManagedTunnelLock, y as withManagedRemoteWorktreeLock } from "./workspaces-e41xsjKr.mjs";
13
13
  import { a as workspaceLinkLine, o as workspaceLinks } from "./stim-desktop-D5OGpYZM.mjs";
14
14
  import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
15
15
  import { n as windowsLauncherArgs } from "./detached-entry-BwNEtIrP.mjs";
@@ -1,7 +1,7 @@
1
1
  import { P as formatBytes } from "./config-DlrsduwG.mjs";
2
- import { o as formatLongDuration } from "./command-output-Db8BqzxH.mjs";
3
- import { i as findProjectRoot$1 } from "./project-CTLNHCfE.mjs";
4
- import { i as getSwiftpmCacheUsage, n as swiftpmCacheLines, r as getAgentDeviceUsage, t as agentDeviceLines } from "./agent-device-usage-output-UJ5gC80l.mjs";
2
+ import { o as formatLongDuration } from "./command-output-YKGWivpG.mjs";
3
+ import { i as findProjectRoot$1 } from "./project-DhCtQWWU.mjs";
4
+ import { i as getSwiftpmCacheUsage, n as swiftpmCacheLines, r as getAgentDeviceUsage, t as agentDeviceLines } from "./agent-device-usage-output-CUlLsbRt.mjs";
5
5
  import { t as readProjectStats } from "./stats-report-BzaPrRm6.mjs";
6
6
  import { archivedUsage, readArchives } from "@stim-cli/core/state";
7
7
  import chalk from "chalk";
@@ -1,2 +1,2 @@
1
- import { n as runStatusWatch, r as statusCommand, t as readVolumes } from "./status-kzbeWk4x.mjs";
1
+ import { n as runStatusWatch, r as statusCommand, t as readVolumes } from "./status-_WPHzVft.mjs";
2
2
  export { statusCommand as default, readVolumes, runStatusWatch };
@@ -1,29 +1,29 @@
1
1
  import { g as process_identity_exports, t as getExecutor } from "./exec-DEoAhcze.mjs";
2
2
  import { m as workspaceLogsDir$1, p as workspaceLogErrorIndex } from "./paths-DQtTgsBf.mjs";
3
3
  import { G as projectDeviceSlots, P as formatBytes, R as volumeRootFor, U as parseDeviceSlotKey, V as deviceSlotKey, _ as loadConfig$1, d as getConfigDir } from "./config-DlrsduwG.mjs";
4
- import { a as formatElapsed, i as formatDuration, r as clockTime, u as plural } from "./command-output-Db8BqzxH.mjs";
4
+ import { a as formatElapsed, i as formatDuration, r as clockTime, u as plural } from "./command-output-YKGWivpG.mjs";
5
5
  import { s as gitAsync } from "./operation-exec-BW0em61G.mjs";
6
6
  import { r as readWorkspaceState$1 } from "./workspace-state-U08dEzhG.mjs";
7
7
  import { Mt as repoRoot, Y as resolveSettings, _t as gitCommonDir, ot as workspaceHiddenSetting, wt as linkedWorktreesOnDisk, yt as gitCommonDirOnDisk } from "./settings-C7O8A6ZI.mjs";
8
- import { I as readWorkspaceLaunches, M as readMetroTunnel, P as readRemoteSession, S as readAppJson, a as findServerWorkspace, l as projectShortcut, u as detectPlatforms, v as detectIsExpo, y as detectTutorial } from "./project-CTLNHCfE.mjs";
8
+ import { I as readWorkspaceLaunches, M as readMetroTunnel, P as readRemoteSession, S as readAppJson, a as findServerWorkspace, l as projectShortcut, u as detectPlatforms, v as detectIsExpo, y as detectTutorial } from "./project-DhCtQWWU.mjs";
9
9
  import { a as parseNdjsonLine } from "./ndjson-CgE_o3Dl.mjs";
10
10
  import { c as pidExists, d as resolveProjectMetro, h as isMetroRunning, i as listeningPids, l as processCwd, o as listeningPidsByPort, u as processCwds } from "./metro-DiXtA3Ty.mjs";
11
11
  import { a as readWebPage, o as readWebRecord, u as webFacts } from "./state--smjFSTL.mjs";
12
- import { A as remoteDeviceState, C as environmentState, D as parseDfFree, E as metroReverseTargets, M as tightVolumes, N as unprovisionedWorktrees, O as poolLine, P as withWebFacts, S as diskLine, T as gitSummaryText, _ as addReverseMissingIssue, b as deviceLeaseLines, g as activityLabel, j as statusActivity, k as remoteDeviceLine, r as readEasSessionLedger$1, v as applyMachineMemory, x as deviceLeaseStates, y as capacity } from "./eas-session-ledger-BzzsX97d.mjs";
13
- import { F as buildStatusLine, G as readStats$1, I as bundlingActivity, N as activeBuildState, P as buildReport, R as parseActiveBuild, Y as statsProjectKey$1, h as describeMetroLastStop, j as ACTIVE_BUILD_KEY, o as machineNumber, vn as hasMetroReverse, vr as attributeMachineUsage, y as metroLastStop, yr as readFootprints } from "./budget-DnPX3DXj.mjs";
14
- import { h as resolveSupervisorTarget } from "./workspaces-BxzYlo3P.mjs";
15
- import { a as createDeviceProcessTables, b as leaseIsExpired, h as tailLines, m as readWebActivity, r as createActivityReader, w as parseWorkspaceLeases, x as listLeaseFiles } from "./activity-B5RtpFda.mjs";
12
+ import { A as remoteDeviceState, C as environmentState, D as parseDfFree, E as metroReverseTargets, M as tightVolumes, N as unprovisionedWorktrees, O as poolLine, P as withWebFacts, S as diskLine, T as gitSummaryText, _ as addReverseMissingIssue, b as deviceLeaseLines, g as activityLabel, j as statusActivity, k as remoteDeviceLine, r as readEasSessionLedger$1, v as applyMachineMemory, x as deviceLeaseStates, y as capacity } from "./eas-session-ledger-BQF9Yyy9.mjs";
13
+ import { F as buildStatusLine, G as readStats$1, I as bundlingActivity, N as activeBuildState, P as buildReport, R as parseActiveBuild, Y as statsProjectKey$1, h as describeMetroLastStop, j as ACTIVE_BUILD_KEY, o as machineNumber, vn as hasMetroReverse, vr as attributeMachineUsage, y as metroLastStop, yr as readFootprints } from "./budget-3ivAK99e.mjs";
14
+ import { h as resolveSupervisorTarget } from "./workspaces-e41xsjKr.mjs";
15
+ import { a as createDeviceProcessTables, b as leaseIsExpired, h as tailLines, m as readWebActivity, r as createActivityReader, w as parseWorkspaceLeases, x as listLeaseFiles } from "./activity-BpWUPgUm.mjs";
16
16
  import { A as listAdbDevices, B as ownedAvdDeviceProfile, W as ownedAvdSerialResolver, _t as parkedMaxSetting, dt as POOL_SETTING_REMEDY, vt as readParked } from "./android-C7sVmyI9.mjs";
17
17
  import { b as parseSimctlList, f as listAllIosSimsAsync } from "./ios-hcBpnEGk.mjs";
18
- import { f as probeHostedSession } from "./hosted-client-ByuMMO5s.mjs";
19
- import "./hosted-macos-DdtYajZt.mjs";
20
- import { i as readSupervisorState } from "./stop-B2uLQfoM.mjs";
18
+ import { f as probeHostedSession } from "./hosted-client-Bt-tndxV.mjs";
19
+ import "./hosted-macos-BJusKvqL.mjs";
20
+ import { i as readSupervisorState } from "./stop-BJ06ipTZ.mjs";
21
21
  import { n as maintenanceLines, r as maintenanceStatus } from "./status-BRROykC8.mjs";
22
22
  import { f as mergeState, i as createStatusMeasurer, n as workspacePhase, r as applyStatusMeasures } from "./warm-progress-CA3TgT3-.mjs";
23
23
  import { r as workspaceRecordingEnabled } from "./recordings-CQmfzAh7.mjs";
24
- import { d as readIosDevices, s as isReachable } from "./ios-device-JC3uWM4K.mjs";
24
+ import { d as readIosDevices, s as isReachable } from "./ios-device-DFGuwF4U.mjs";
25
25
  import { t as triggerMaintenance } from "./trigger-Cbyc41d_.mjs";
26
- import { a as createRefreshScheduler, c as watchStatusSources, n as WATCH_LIGHT_INTERVAL_MS, o as watchChangeKey, r as WATCH_MACHINE_INTERVAL_MS, s as watchPayload, t as WATCH_FALLBACK_MS } from "./status-watch-BIqqbJ6q.mjs";
26
+ import { a as createRefreshScheduler, c as watchStatusSources, n as WATCH_LIGHT_INTERVAL_MS, o as watchChangeKey, r as WATCH_MACHINE_INTERVAL_MS, s as watchPayload, t as WATCH_FALLBACK_MS } from "./status-watch-BHFasOZN.mjs";
27
27
  import { t as watchStdoutReader } from "./stdout-reader-C8yjre1x.mjs";
28
28
  import { createHash, randomUUID } from "node:crypto";
29
29
  import { mkdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
@@ -1,6 +1,6 @@
1
1
  import { t as getExecutor } from "./exec-DEoAhcze.mjs";
2
2
  import { c as pidExists } from "./metro-DiXtA3Ty.mjs";
3
- import { n as easMachineStateRoot } from "./eas-session-ledger-BzzsX97d.mjs";
3
+ import { n as easMachineStateRoot } from "./eas-session-ledger-BQF9Yyy9.mjs";
4
4
  import { d as androidToolPath } from "./android-C7sVmyI9.mjs";
5
5
  import { b as parseSimctlList } from "./ios-hcBpnEGk.mjs";
6
6
  import { existsSync, readdirSync, statSync, watch } from "node:fs";
@@ -1,4 +1,4 @@
1
- import { n as runStatusWatch } from "./status-kzbeWk4x.mjs";
1
+ import { n as runStatusWatch } from "./status-_WPHzVft.mjs";
2
2
  import { parentPort, workerData } from "node:worker_threads";
3
3
  //#region src/status-worker.ts
4
4
  const STOP_EXIT_MS = 500;
@@ -1,18 +1,18 @@
1
1
  import { b as debugLog, g as process_identity_exports, i as withWorkspaceProcessLock, x as ownership_claim_exports } from "./exec-DEoAhcze.mjs";
2
2
  import { d as workspaceDir } from "./paths-DQtTgsBf.mjs";
3
3
  import { E as upsertProject, G as projectDeviceSlots, H as deviceSlotPlatforms, O as withConfigLockAsync$1, U as parseDeviceSlotKey, W as parseDeviceSlotOption, o as clearSupervisor, p as getProject, q as validateDeviceSlot } from "./config-DlrsduwG.mjs";
4
- import { f as refuseNoProject, l as phaseLine, p as releasedLeaseFact, u as plural } from "./command-output-Db8BqzxH.mjs";
4
+ import { f as refuseNoProject, l as phaseLine, p as releasedLeaseFact, u as plural } from "./command-output-YKGWivpG.mjs";
5
5
  import { c as withWorkspaceStateLock, d as writeWorkspaceState, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-U08dEzhG.mjs";
6
- import { A as clearWorkspaceLaunches, M as readMetroTunnel, O as clearManagedMetroTunnel, P as readRemoteSession, T as MODE_COMMAND, j as clearWorkspaceSupervisor, k as clearRemoteSession, n as findCommandWorkspace } from "./project-CTLNHCfE.mjs";
6
+ import { A as clearWorkspaceLaunches, M as readMetroTunnel, O as clearManagedMetroTunnel, P as readRemoteSession, T as MODE_COMMAND, j as clearWorkspaceSupervisor, k as clearRemoteSession, n as findCommandWorkspace } from "./project-DhCtQWWU.mjs";
7
7
  import { t as macosAppPresent } from "./state-08I3hw3_.mjs";
8
8
  import { a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, h as isMetroRunning, p as signalProcessTreeAsync, r as killMetroTreeAsync, u as processCwds } from "./metro-DiXtA3Ty.mjs";
9
- import { S as withdrawDevServerStopRequest, b as requestDevServerStop, qn as resolveEasCliBin, v as logVanishedSupervisor, zt as endRecordedSession } from "./budget-DnPX3DXj.mjs";
10
- import { a as decideStopAction, c as nativeRunWaitNotice, i as clearNativeRunCancel, l as requestNativeRunCancel, n as NATIVE_RUN_WAIT_MS, o as describeNativeRunHolder, s as nativeRunHolder, t as NATIVE_RUN_LOCK } from "./native-run-BUTu8T7A.mjs";
11
- import { D as teardownOwnedAvd, O as teardownOwnedBrowser, _ as stopTunnel, h as resolveSupervisorTarget, k as teardownOwnedIosSim } from "./workspaces-BxzYlo3P.mjs";
12
- import { O as releaseWorkspaceLeasesAsync, y as fileLeaseIo } from "./activity-B5RtpFda.mjs";
13
- import { i as stopHostedAndroid } from "./hosted-android-CkclQig_.mjs";
14
- import { r as stopHostedIos } from "./hosted-ios-DtYHeuYR.mjs";
15
- import { n as stopMacosApp } from "./stop-DzLJc7Ei.mjs";
9
+ import { S as withdrawDevServerStopRequest, b as requestDevServerStop, qn as resolveEasCliBin, v as logVanishedSupervisor, zt as endRecordedSession } from "./budget-3ivAK99e.mjs";
10
+ import { a as decideStopAction, c as nativeRunWaitNotice, i as clearNativeRunCancel, l as requestNativeRunCancel, n as NATIVE_RUN_WAIT_MS, o as describeNativeRunHolder, s as nativeRunHolder, t as NATIVE_RUN_LOCK } from "./native-run-Dv88i0aU.mjs";
11
+ import { D as teardownOwnedAvd, O as teardownOwnedBrowser, _ as stopTunnel, h as resolveSupervisorTarget, k as teardownOwnedIosSim } from "./workspaces-e41xsjKr.mjs";
12
+ import { O as releaseWorkspaceLeasesAsync, y as fileLeaseIo } from "./activity-BpWUPgUm.mjs";
13
+ import { i as stopHostedAndroid } from "./hosted-android-xcfgCgSF.mjs";
14
+ import { r as stopHostedIos } from "./hosted-ios-y19jCYFF.mjs";
15
+ import { n as stopMacosApp } from "./stop-CR5689oB.mjs";
16
16
  import { n as verifyCollectorOwnership } from "./ownership-C5fo5Edb.mjs";
17
17
  import { hostedAndroidDeviceName, hostedAndroidRecords, hostedIosRecords, hostedNativeRecords, isJsonObject, parseHostedNativePlacement } from "@stim-cli/core/state";
18
18
  import chalk from "chalk";
@@ -2,8 +2,8 @@ import { g as process_identity_exports, i as withWorkspaceProcessLock, x as owne
2
2
  import { d as workspaceDir } from "./paths-DQtTgsBf.mjs";
3
3
  import { d as writeWorkspaceState, l as withWorkspaceStateLockAsync } from "./workspace-state-U08dEzhG.mjs";
4
4
  import { a as macosRuntimeClaim, o as requiredMacosRecord } from "./state-08I3hw3_.mjs";
5
- import { C as runningBundleInstancesAsync } from "./workspaces-BxzYlo3P.mjs";
6
- import { n as stopHostedMacos } from "./hosted-macos-DdtYajZt.mjs";
5
+ import { C as runningBundleInstancesAsync } from "./workspaces-e41xsjKr.mjs";
6
+ import { n as stopHostedMacos } from "./hosted-macos-BJusKvqL.mjs";
7
7
  import { readMacosRecord } from "@stim-cli/core/state";
8
8
  //#region src/macos/stop.ts
9
9
  const APP_EXIT_MS = 5e3;