stim 1.36.0 → 1.38.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 (167) hide show
  1. package/README.md +3 -1
  2. package/dist/{acquire-artifact-DGTHCd0Q.mjs → acquire-artifact-QKPDkesw.mjs} +2 -2
  3. package/dist/{act-CvN9xyV6.mjs → act-Bh3t-NuH.mjs} +28 -34
  4. package/dist/{activity-BpdDvA8Q.mjs → activity-CANftndU.mjs} +6 -6
  5. package/dist/{agent-device-usage-output-pbhaW7_k.mjs → agent-device-usage-output-CuROXefb.mjs} +5 -5
  6. package/dist/{android-SJx1V3R3.mjs → android-27_JgJ1T.mjs} +7 -7
  7. package/dist/{android-B0qTdwnt.mjs → android-Biwc4Dck.mjs} +5 -5
  8. package/dist/{android-5wkcMFDG.mjs → android-DGLG_VQ3.mjs} +2 -2
  9. package/dist/{android-e9WP10cE.mjs → android-Z6Eev9rL.mjs} +51 -42
  10. package/dist/{android-cas-BS9_55U5.mjs → android-cas-BDAwwL82.mjs} +4 -4
  11. package/dist/android-cas-compiler.mjs +1 -1
  12. package/dist/{android-image-BZ57YL6R.mjs → android-image-BcUD6bPi.mjs} +3 -3
  13. package/dist/api.d.mts +12 -5
  14. package/dist/api.mjs +34 -31
  15. package/dist/{apk-signed-tail-eZyXIrnc.mjs → apk-signed-tail-DHMkXs4s.mjs} +2 -2
  16. package/dist/{artifact-C3srrGVU.mjs → artifact-Dc1GsK7o.mjs} +29 -15
  17. package/dist/{artifact-platform-DqCWUieN.mjs → artifact-platform-BaGL1i1X.mjs} +1 -1
  18. package/dist/{artifact-ubNdxo_K.mjs → artifact-sGoFVK1q.mjs} +12 -12
  19. package/dist/{auto-placement-CKFpFCuq.mjs → auto-placement-RNh4kx2T.mjs} +7 -7
  20. package/dist/{browser-web-B63vLrj6.mjs → browser-web-7Oj57Roa.mjs} +15 -15
  21. package/dist/{build-B_Dx9SKJ.mjs → build-DkE5vjp1.mjs} +29 -28
  22. package/dist/{build-cache-BW8T4oD2.mjs → build-cache-CJ65Efv7.mjs} +10 -7
  23. package/dist/{build-plan-CeIooJqn.mjs → build-plan-DWajg5l_.mjs} +8 -7
  24. package/dist/{cache-manifest-CxWkZmUr.mjs → cache-manifest-BO0TIcPV.mjs} +1 -1
  25. package/dist/cache-manifest.mjs +1 -1
  26. package/dist/{cdp-C216kOAn.mjs → cdp-CgT47_9A.mjs} +1 -1
  27. package/dist/{chrome-C8sC5tdl.mjs → chrome-DL5znvmo.mjs} +1 -1
  28. package/dist/{cli-COdXswmc.mjs → cli-BSlwv9hI.mjs} +21 -21
  29. package/dist/cli.mjs +1 -1
  30. package/dist/{client-KSWIeQLA.mjs → client-qwmHFSga.mjs} +16 -12
  31. package/dist/collector-run.mjs +7 -7
  32. package/dist/{command-output-T3cDctRE.mjs → command-output-DsjhOzJ3.mjs} +1 -1
  33. package/dist/{config-BA3TgoIP.mjs → config-CNmN-ndb.mjs} +2 -2
  34. package/dist/{dependencies-LH-7k1Vr.mjs → dependencies-oku1ZLep.mjs} +144 -71
  35. package/dist/{dependency-state-Blfp3AkG.mjs → dependency-state-CBhPJAs_.mjs} +2 -2
  36. package/dist/{detached-entry-tfrgGVWb.mjs → detached-entry-VqFeEE9W.mjs} +1 -1
  37. package/dist/{dev-client-MO_DjTZr.mjs → dev-client-DL5UtVdx.mjs} +2 -2
  38. package/dist/{device-DNTWFFB1.mjs → device-CxMwX0VO.mjs} +17 -16
  39. package/dist/{device-android-BB9Lugr8.mjs → device-android-CSlBXuh_.mjs} +9 -9
  40. package/dist/{device-capacity-CpAVcKgq.mjs → device-capacity-D_IlxZRL.mjs} +84 -37
  41. package/dist/device-host-worker.mjs +28 -16
  42. package/dist/{device-pool-BJToGG-q.mjs → device-pool-BEaTdtss.mjs} +3 -3
  43. package/dist/{device-provision-CxQDCtrc.mjs → device-provision-C9NPdCne.mjs} +10 -10
  44. package/dist/{device-BZWt_aPJ.mjs → device-yfuJ-v4s.mjs} +11 -11
  45. package/dist/{doctor-C-46SkBe.mjs → doctor-BAA3zN5U.mjs} +1 -1
  46. package/dist/{doctor-DV639Iw_.mjs → doctor-BQ1Kl44s.mjs} +15 -21
  47. package/dist/{doctor-CYZ45LnX.mjs → doctor-QNzDE4aW.mjs} +24 -24
  48. package/dist/{doctor-fingerprint-DqWvIhMb.mjs → doctor-fingerprint-Bo4z8YNP.mjs} +1 -1
  49. package/dist/doctor-fingerprint.mjs +1 -1
  50. package/dist/{doctor-watchman-TZxYt_98.mjs → doctor-watchman-B8e3s9ko.mjs} +5 -5
  51. package/dist/{eas-build-Xf5Jd6LR.mjs → eas-build-4rg9WpEg.mjs} +4 -4
  52. package/dist/{eas-fallback-DNYPNinw.mjs → eas-fallback-UGo0SG7T.mjs} +6 -6
  53. package/dist/{eas-session-ledger-CXZ4aix0.mjs → eas-session-ledger-BDpSdFDM.mjs} +6 -6
  54. package/dist/{error-diagnostics-CvB5bpPU.mjs → error-diagnostics-CW9xl6ot.mjs} +10 -10
  55. package/dist/{exec-CGuDzt40.mjs → exec-L37dbiIb.mjs} +7 -1
  56. package/dist/{gc-DiUhrVFo.mjs → gc-3DHVCn-k.mjs} +52 -36
  57. package/dist/{gc-8Qm_K1iy.mjs → gc-BQ5dXnC7.mjs} +2 -2
  58. package/dist/{guide-CuvHRP53.mjs → guide-DqJCc4vW.mjs} +209 -78
  59. package/dist/{hosted-android-D__HGVIO.mjs → hosted-android-gwLspaz6.mjs} +4 -4
  60. package/dist/{hosted-client-DMOOu8vD.mjs → hosted-client-B_h_bTlz.mjs} +4 -4
  61. package/dist/{hosted-logs-CClIktQM.mjs → hosted-logs-BpQSRDRU.mjs} +17 -10
  62. package/dist/{hosted-logs-sync-B7XCeqVm.mjs → hosted-logs-sync-D3L1hDpM.mjs} +5 -5
  63. package/dist/{hosted-macos-D4sDJIbB.mjs → hosted-macos-GK4O1s7x.mjs} +6 -6
  64. package/dist/{hosted-native-BiiUG_Q6.mjs → hosted-native-B6ur_0OJ.mjs} +8 -8
  65. package/dist/{ios-Qam0bT9n.mjs → ios-2Qr4_Zu2.mjs} +1 -1
  66. package/dist/{ios-BZuhvLGr.mjs → ios-Bi0bQiZ_.mjs} +8 -8
  67. package/dist/{ios-BhfpRfNf.mjs → ios-DQEzde6f.mjs} +23 -10
  68. package/dist/{ios-BhpUWyN7.mjs → ios-M7nRVb33.mjs} +100 -37
  69. package/dist/{ios-device-vhYL1N--.mjs → ios-device-BLm1BZB4.mjs} +3 -3
  70. package/dist/{ios-device-DLdEDWJj.mjs → ios-device-ygijU78G.mjs} +1 -1
  71. package/dist/{ios-project-Cz0S1Sz-.mjs → ios-project-Bsm-eqwv.mjs} +7 -7
  72. package/dist/ios-runtime-DLiKoOkd.mjs +150 -0
  73. package/dist/{ios-signing-BcH88ecn.mjs → ios-signing-rWR_Mu5Z.mjs} +3 -3
  74. package/dist/{ios-state-Avwz2cbZ.mjs → ios-state-tzD0s7pt.mjs} +1 -1
  75. package/dist/{js-swap-Desu2iII.mjs → js-swap-Cuky0ZAQ.mjs} +60 -13
  76. package/dist/{launch-6ckG9UrC.mjs → launch-B-pkNlqg.mjs} +48 -28
  77. package/dist/{lightened-B6TnpHMX.mjs → lightened-KHWHmzGs.mjs} +5 -5
  78. package/dist/{logs-B-DMy1K0.mjs → logs-B0etn-BD.mjs} +7 -7
  79. package/dist/{logs-CO0CJRiC.mjs → logs-HomiqPhV.mjs} +6 -6
  80. package/dist/{macos-CduEmWAK.mjs → macos-C5liDnbP.mjs} +1 -1
  81. package/dist/macos-run.mjs +1 -1
  82. package/dist/{macos-B1aCXhem.mjs → macos-zMxSibx5.mjs} +22 -23
  83. package/dist/maintenance-run.mjs +6 -6
  84. package/dist/{metro-DM3yJL1M.mjs → metro-Cj6W4qOO.mjs} +4 -4
  85. package/dist/{metro-request-O8Q-JvBg.mjs → metro-request-BWCl3Zco.mjs} +2 -2
  86. package/dist/{prebuild-Di2IhUue.mjs → miss-reason-CeHvzeVm.mjs} +12 -272
  87. package/dist/{named-ports-BvB_CO9B.mjs → named-ports-DZ8DrkH1.mjs} +3 -3
  88. package/dist/{native-android-28NOG2-y.mjs → native-android-DtWLzg6g.mjs} +18 -18
  89. package/dist/{native-gradle-artifact-inputs-DxVEtS6_.mjs → native-gradle-artifact-inputs-D4w20_6d.mjs} +5 -5
  90. package/dist/{native-runtime-C3_NkUlW.mjs → native-runtime-BfvvAJLd.mjs} +6 -6
  91. package/dist/{native-source-ChAGj7R1.mjs → native-source-D2ZfiQ6U.mjs} +1 -1
  92. package/dist/{native-xcode-inputs-BWFTw5cJ.mjs → native-xcode-inputs-BHvnAq4o.mjs} +3 -3
  93. package/dist/{native-xcode-ios-B4Qoc7-U.mjs → native-xcode-ios-CYxrg_kK.mjs} +18 -19
  94. package/dist/offload-worker.mjs +23 -22
  95. package/dist/{operation-exec-DKlBcKAL.mjs → operation-exec-DNynwpqO.mjs} +1 -1
  96. package/dist/{ownership-C3y8wLSl.mjs → ownership-BLgOimfp.mjs} +3 -3
  97. package/dist/{page-Dj8IqvGM.mjs → page-CoN9al_x.mjs} +2 -2
  98. package/dist/{phone-reverses-BhSxbqom.mjs → phone-reverses-vRveZKSG.mjs} +4 -4
  99. package/dist/{placement-log-B8RCSzOm.mjs → placement-log-CM0DSELs.mjs} +1 -1
  100. package/dist/{plan-placement-BI4r55aP.mjs → plan-placement-CIrvKq8y.mjs} +6 -6
  101. package/dist/{ports-DhOSyWm9.mjs → ports-CKORWlC0.mjs} +3 -3
  102. package/dist/{project-Clk1JAWL.mjs → project-DIo71tGq.mjs} +16 -16
  103. package/dist/{pull-request-BpMTNkMB.mjs → pull-request-m8cMZ3aE.mjs} +2 -2
  104. package/dist/pull-requests.mjs +1 -1
  105. package/dist/{react-native-android-bdHBMrnf.mjs → react-native-android-B7VYSlKj.mjs} +41 -36
  106. package/dist/{react-native-build-CJega_NM.mjs → react-native-build-CFYTYmG4.mjs} +13 -10
  107. package/dist/{react-native-doctor-CY7BGITE.mjs → react-native-doctor-CnpVfE0k.mjs} +6 -6
  108. package/dist/{react-native-ios-Bo5EDVel.mjs → react-native-ios-ByeXo_NP.mjs} +18 -18
  109. package/dist/{recorded-build-BuGL_fnm.mjs → recorded-build-B4prJjSD.mjs} +20 -2
  110. package/dist/{recordings-6i2-x8LU.mjs → recordings-Byu5SzlI.mjs} +1 -1
  111. package/dist/{registration-DKjJGQ6p.mjs → registration-C-3PDR3X.mjs} +1 -1
  112. package/dist/{reload-BvDuvygc.mjs → reload-DANrKhQR.mjs} +1 -1
  113. package/dist/{reload-A_axEbeS.mjs → reload-DTd9g1EG.mjs} +16 -16
  114. package/dist/{remote-PD6CM0xp.mjs → remote-BWuq9qHV.mjs} +4 -4
  115. package/dist/{remote-WK_swZEw.mjs → remote-NOM82XE0.mjs} +10 -10
  116. package/dist/{result-BkDpN5Mz.mjs → result-C-ISEJ5F.mjs} +17 -17
  117. package/dist/{run-CTFi4Nq2.mjs → run-DQwx6djG.mjs} +2 -2
  118. package/dist/{server-bare-W0aPsRZE.mjs → server-bare-B_wRfchQ.mjs} +2 -2
  119. package/dist/{server-command-S00-ddjK.mjs → server-command-DgXYowQf.mjs} +6 -6
  120. package/dist/{server-expo-cc-cmfsl.mjs → server-expo-ByBM8DVv.mjs} +10 -8
  121. package/dist/server-expo-D7rwjAFp.mjs +2 -0
  122. package/dist/{settings-C_Xu4RNZ.mjs → settings-BthPoY3t.mjs} +2 -2
  123. package/dist/{settings-Bap-qjnp.mjs → settings-Cz8kQJzr.mjs} +49 -12
  124. package/dist/{settings-payload-D5jjhmrw.mjs → settings-payload-BOcxsZ6k.mjs} +5 -5
  125. package/dist/{settings-write-C5huI-iS.mjs → settings-write-BuMPL1rd.mjs} +6 -6
  126. package/dist/settings.schema.json +32 -2
  127. package/dist/{simslim-DlBvwgeF.mjs → simslim-BMgpTRWe.mjs} +2 -2
  128. package/dist/{slot-launch-qEQVTth7.mjs → slot-launch-BIm9w8kH.mjs} +6 -6
  129. package/dist/{stage-CxVI_MlP.mjs → stage-CX1Byp3n.mjs} +6 -5
  130. package/dist/{start-CVzivp35.mjs → start-BZWr85b2.mjs} +1 -1
  131. package/dist/{start-YpT_JpQQ.mjs → start-DI0ofPO-.mjs} +12 -12
  132. package/dist/{state-B4B5P4LU.mjs → state-45P8Kd6Z.mjs} +2 -2
  133. package/dist/{state-B9VFI6r0.mjs → state-C2vELPyr.mjs} +4 -4
  134. package/dist/{stats-COoePEri.mjs → stats-BDljWVWU.mjs} +5 -5
  135. package/dist/{stats-report-BVRCqwWA.mjs → stats-report-Ci6TAfFm.mjs} +1 -1
  136. package/dist/{status-CIvU5-TF.mjs → status-BG2S-a1d.mjs} +1 -1
  137. package/dist/{status-CQWmNl1f.mjs → status-C2PdxK6q.mjs} +1 -1
  138. package/dist/{status-CIg0k7Qb.mjs → status-DEZjHP4q.mjs} +32 -34
  139. package/dist/{status-watch--rfZynD_.mjs → status-watch-Cs18eFkQ.mjs} +5 -5
  140. package/dist/status-worker.mjs +1 -1
  141. package/dist/{stim-desktop-D0P_bzmd.mjs → stim-desktop-DWGAfaud.mjs} +2 -2
  142. package/dist/{stop-BiI4_VFG.mjs → stop-B2zDplJa.mjs} +2 -2
  143. package/dist/{stop-C3d5qG7C.mjs → stop-BPrTEOaz.mjs} +16 -16
  144. package/dist/{stop-BEBBruvD.mjs → stop-DrxHVVX9.mjs} +5 -5
  145. package/dist/supervisor-run.mjs +15 -15
  146. package/dist/{support-BJbXovoO.mjs → support-BeVRaMWT.mjs} +13 -14
  147. package/dist/{support-Vckdzrmk.mjs → support-DBKG3Yyb.mjs} +7 -7
  148. package/dist/{swiftpm-artifact-inputs-DbuF-Yrr.mjs → swiftpm-artifact-inputs-CfNAb6Vm.mjs} +4 -4
  149. package/dist/{swiftpm-macos-Bu8xeBfM.mjs → swiftpm-macos-xdHjJHIj.mjs} +11 -11
  150. package/dist/toolchain-CTsPS5tL.mjs +2 -0
  151. package/dist/{toolchain-DCnWAxQL.mjs → toolchain-CZvtCZ-m.mjs} +11 -8
  152. package/dist/trigger-Bp3lruF2.mjs +2 -0
  153. package/dist/{trigger-BtB4kbe0.mjs → trigger-G_gbfIVB.mjs} +2 -2
  154. package/dist/{warm-progress-DwsGBpph.mjs → warm-progress-D3a0KviW.mjs} +20 -16
  155. package/dist/{web-D2En0Wa5.mjs → web-BvAweypa.mjs} +9 -9
  156. package/dist/web-DDL3usMb.mjs +2 -0
  157. package/dist/web-run.mjs +8 -8
  158. package/dist/windows-report.mjs +1 -1
  159. package/dist/{workspace-state-BhwAJBgA.mjs → workspace-state-CHEN_xzy.mjs} +3 -3
  160. package/dist/{workspaces-Dh5N70qW.mjs → workspaces-BgAYIccE.mjs} +218 -54
  161. package/dist/{worktree-DLm4s2Ib.mjs → worktree-C0YZ6mnk.mjs} +1 -1
  162. package/dist/{worktree-Yw3EW77B.mjs → worktree-kGPE9Pcw.mjs} +339 -37
  163. package/package.json +7 -7
  164. package/dist/server-expo-BWJDa7Qb.mjs +0 -2
  165. package/dist/toolchain-CIRdNl-c.mjs +0 -2
  166. package/dist/trigger-D8B7QR0q.mjs +0 -2
  167. package/dist/web-Dpj70t4p.mjs +0 -2
@@ -1,7 +1,7 @@
1
- import { T as process_identity_exports } from "./exec-CGuDzt40.mjs";
2
- import { C as supervisorPidFile, c as withWorkspaceStateLock, j as workspaceStateFile$1, l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey } from "./workspace-state-BhwAJBgA.mjs";
3
- import { _ as isPathPrefix$1, ft as deviceSlotKey, l as findEnclosingWorktreeRoot, m as getProject, mt as parseDeviceSlotKey, v as loadConfig$1 } from "./config-BA3TgoIP.mjs";
4
- import { Bt as repoRoot, Y as resolveIosProjectDir, ct as webSettings, it as settingValueAt, q as resolveAndroidLayout } from "./settings-Bap-qjnp.mjs";
1
+ import { T as process_identity_exports } from "./exec-L37dbiIb.mjs";
2
+ import { C as supervisorPidFile, c as withWorkspaceStateLock, j as workspaceStateFile$1, l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey } from "./workspace-state-CHEN_xzy.mjs";
3
+ import { _ as isPathPrefix$1, ft as deviceSlotKey, l as findEnclosingWorktreeRoot, m as getProject, mt as parseDeviceSlotKey, v as loadConfig$1 } from "./config-CNmN-ndb.mjs";
4
+ import { Bt as repoRoot, Y as resolveIosProjectDir, ct as webSettings, it as settingValueAt, q as resolveAndroidLayout } from "./settings-Cz8kQJzr.mjs";
5
5
  import { existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, rmSync, statSync, writeFileSync } from "node:fs";
6
6
  import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
7
7
  import { projectRootDirectories } from "@stim-cli/core/state";
@@ -311,8 +311,8 @@ const nativeAndroidIntegration = {
311
311
  application: true,
312
312
  platforms: () => ["android"],
313
313
  validate: (operation) => operation === "android" ? null : void 0,
314
- android: async () => (await import("./native-android-28NOG2-y.mjs")).nativeAndroidProject(root),
315
- doctor: async () => (await import("./native-android-28NOG2-y.mjs")).nativeAndroidDoctor(root)
314
+ android: async () => (await import("./native-android-DtWLzg6g.mjs")).nativeAndroidProject(root),
315
+ doctor: async () => (await import("./native-android-DtWLzg6g.mjs")).nativeAndroidDoctor(root)
316
316
  };
317
317
  }
318
318
  };
@@ -740,8 +740,8 @@ const nativeXcodeProjectIntegration = {
740
740
  application: problem === null,
741
741
  platforms: () => problem ? [] : ["ios"],
742
742
  validate: (operation) => operation === "ios" ? problem : void 0,
743
- ios: async () => (await import("./native-xcode-ios-B4Qoc7-U.mjs")).nativeXcodeIosProject(root),
744
- doctor: async () => (await import("./native-xcode-ios-B4Qoc7-U.mjs")).nativeXcodeDoctor(root)
743
+ ios: async () => (await import("./native-xcode-ios-CYxrg_kK.mjs")).nativeXcodeIosProject(root),
744
+ doctor: async () => (await import("./native-xcode-ios-CYxrg_kK.mjs")).nativeXcodeDoctor(root)
745
745
  };
746
746
  }
747
747
  };
@@ -946,7 +946,7 @@ function createProjectRegistry(integrations) {
946
946
  //#region src/integrations/projects.ts
947
947
  const expo = {
948
948
  mode: MODE_EXPO,
949
- loadDevServer: async () => (await import("./server-expo-BWJDa7Qb.mjs")).startExpoServer,
949
+ loadDevServer: async () => (await import("./server-expo-D7rwjAFp.mjs")).startExpoServer,
950
950
  platforms(root) {
951
951
  const appJson = readAppJson(root);
952
952
  const config = appJson?.expo ?? appJson;
@@ -966,7 +966,7 @@ const expo = {
966
966
  };
967
967
  const reactNative = {
968
968
  mode: MODE_BARE,
969
- loadDevServer: async () => (await import("./server-bare-W0aPsRZE.mjs")).startBareServer,
969
+ loadDevServer: async () => (await import("./server-bare-B_wRfchQ.mjs")).startBareServer,
970
970
  platforms(root, { context, settings }) {
971
971
  if (!declaresAppDependency(readPackageJson(root))) return [];
972
972
  const platforms = [];
@@ -996,9 +996,9 @@ const projectRegistry = createProjectRegistry([
996
996
  ownedRoots: problem === null ? [join(root, "ios"), join(root, "android")] : [],
997
997
  platforms: (resolved) => nativeProjectIntegration(root).platforms(root, resolved),
998
998
  validate: (operation) => operation === "ios" || operation === "android" || operation === "dev-server" ? problem : void 0,
999
- ios: async (settings) => (await import("./react-native-ios-Bo5EDVel.mjs")).reactNativeIosProject(root, settings),
1000
- android: async (resolved) => (await import("./react-native-android-bdHBMrnf.mjs")).reactNativeAndroidProject(root, resolved),
1001
- doctor: async () => (await import("./react-native-doctor-CY7BGITE.mjs")).reactNativeProjectDoctor(root)
999
+ ios: async (settings) => (await import("./react-native-ios-ByeXo_NP.mjs")).reactNativeIosProject(root, settings),
1000
+ android: async (resolved) => (await import("./react-native-android-B7VYSlKj.mjs")).reactNativeAndroidProject(root, resolved),
1001
+ doctor: async () => (await import("./react-native-doctor-CnpVfE0k.mjs")).reactNativeProjectDoctor(root)
1002
1002
  };
1003
1003
  }
1004
1004
  },
@@ -1012,9 +1012,9 @@ const projectRegistry = createProjectRegistry([
1012
1012
  application: true,
1013
1013
  platforms: ({ settings }) => settingValueAt(settings, "macos.product") && settingValueAt(settings, "macos.infoPlist") ? ["macos"] : [],
1014
1014
  validate: (operation) => operation === "macos" ? null : void 0,
1015
- macos: async () => (await import("./swiftpm-macos-Bu8xeBfM.mjs")).swiftpmMacosProject(root),
1015
+ macos: async () => (await import("./swiftpm-macos-xdHjJHIj.mjs")).swiftpmMacosProject(root),
1016
1016
  doctor: async () => {
1017
- const { macosToolchain, macosToolchainAsync } = await import("./toolchain-CIRdNl-c.mjs");
1017
+ const { macosToolchain, macosToolchainAsync } = await import("./toolchain-CTsPS5tL.mjs");
1018
1018
  return {
1019
1019
  inspect: () => [],
1020
1020
  offloadTargets: ({ options: { host = process.platform, platform, operation } }) => host === "darwin" && platform === void 0 ? async () => [{
@@ -1034,7 +1034,7 @@ const projectRegistry = createProjectRegistry([
1034
1034
  application: false,
1035
1035
  platforms: ({ settings }) => webSettings(settings).url !== null ? ["web"] : [],
1036
1036
  validate: (operation) => operation === "web" ? null : void 0,
1037
- web: async () => (await import("./browser-web-B63vLrj6.mjs")).browserWebProject(root)
1037
+ web: async () => (await import("./browser-web-7Oj57Roa.mjs")).browserWebProject(root)
1038
1038
  };
1039
1039
  }
1040
1040
  },
@@ -1,5 +1,5 @@
1
- import { f as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { c as gitQuiet, l as gitQuietAsync, r as childEnvironment, s as gitAsync, t as runOperationFile } from "./operation-exec-DKlBcKAL.mjs";
1
+ import { f as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { c as gitQuiet, l as gitQuietAsync, r as childEnvironment, s as gitAsync, t as runOperationFile } from "./operation-exec-DNynwpqO.mjs";
3
3
  //#region src/workspace/pull-request.ts
4
4
  const GH_TIMEOUT_MS = 2e4;
5
5
  const GH_ENV = {
@@ -1,2 +1,2 @@
1
- import { a as pullRequestLookup, c as selectPullRequest, i as parseRemoteRepo, l as worktreePullRequests, n as describePullRequest, o as pullRequestLookupAsync, r as endedPullRequest, s as pullRequestLookups, t as checkCounts } from "./pull-request-BpMTNkMB.mjs";
1
+ import { a as pullRequestLookup, c as selectPullRequest, i as parseRemoteRepo, l as worktreePullRequests, n as describePullRequest, o as pullRequestLookupAsync, r as endedPullRequest, s as pullRequestLookups, t as checkCounts } from "./pull-request-m8cMZ3aE.mjs";
2
2
  export { checkCounts, describePullRequest, endedPullRequest, parseRemoteRepo, pullRequestLookup, pullRequestLookupAsync, pullRequestLookups, selectPullRequest, worktreePullRequests };
@@ -1,33 +1,34 @@
1
- import { C as operationState, b as spawnDeclared, d as throwIfCancelled, r as reportSignal, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { r as readWorkspaceState } from "./workspace-state-BhwAJBgA.mjs";
1
+ import { C as operationState, b as spawnDeclared, d as throwIfCancelled, r as reportSignal, t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { r as readWorkspaceState } from "./workspace-state-CHEN_xzy.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-T3cDctRE.mjs";
5
- import { m as getProject, pt as deviceSlotPlatforms, vt as validateDeviceSlot } from "./config-BA3TgoIP.mjs";
6
- import { a as killOnAbort, t as runOperationFile } from "./operation-exec-DKlBcKAL.mjs";
7
- import { B as publicUrlSetting, H as realpathInside, W as remoteEasFallbackSetting, an as makeTemporaryDirectory, at as settingsLayers, m as defaultAndroidLayout, nt as settingOriginScope, on as removeTemporaryEntry, ot as tunnelModeSetting, q as resolveAndroidLayout } from "./settings-Bap-qjnp.mjs";
8
- import { v as detectIsExpo } from "./project-Clk1JAWL.mjs";
9
- import { J as ownedAvdSystemImage, O as findBuildTool, R as listAvdsAsync, U as ownedAvdDirectory, l as androidSystemImageAbi, r as androidBuildToolName, z as listInstalledSystemImages } from "./android-SJx1V3R3.mjs";
10
- import { Jn as checkEasAuth, O as resolveCcache, Un as processContext, Zn as loadProjectProvider, ir as bundleInvocation, nr as resolveRemote } from "./device-capacity-CpAVcKgq.mjs";
11
- import { lt as statsProjectKey } from "./workspaces-Dh5N70qW.mjs";
12
- import { K as tailLines, M as HEARTBEAT_INTERVAL_MS, W as startBuildHeartbeat, r as androidToolchainAsync, t as androidRequirements } from "./toolchain-DCnWAxQL.mjs";
13
- import { E as storeBuild, F as compareAssetManifests, I as readAssetManifest, M as untrackedNativeFiles, N as assetDiffReason, O as storedAssetManifest, P as captureAssetManifest, T as resolveBuild, _ as gitignoredFingerprintInputs, g as fingerprintProject, j as untrackedMissLine, m as fingerprintDiffRecord, n as buildCacheKey, o as configInputsChanged, p as filesystemBuildCapability, r as changedDuringBuildLine, w as refingerprintAfterMutation, y as inputsChangedDuringBuild } from "./build-cache-BW8T4oD2.mjs";
14
- import { s as expoTelemetryEnv, t as cleanLine } from "./server-expo-cc-cmfsl.mjs";
15
- import { c as readProductFlavors, h as androidPathRoomRefusal, n as buildAndroid, s as productFlavorRefusal } from "./react-native-build-CJega_NM.mjs";
16
- import { h as detectAppIds, m as detectAndroidPackage } from "./start-YpT_JpQQ.mjs";
17
- import { t as readDoctorFingerprint } from "./doctor-fingerprint-DqWvIhMb.mjs";
18
- import { n as decideSystemImage, t as androidImageInstallPolicy } from "./android-image-BZ57YL6R.mjs";
19
- import { i as planEasDevelopmentBuild } from "./eas-build-Xf5Jd6LR.mjs";
20
- import { a as runPrebuild, c as fingerprintErrorMissReason, d as memoizedFingerprint, i as recordPrebuildAsync, n as planPrebuildAsync, o as staleNativeDirRefusal, s as explainBuildMiss, t as planPrebuild } from "./prebuild-Di2IhUue.mjs";
21
- import { a as PLATFORM, c as androidGradleProject, g as dumpApkManifest, h as displayPath, i as NO_FINGERPRINT, l as androidJobLayout, o as androidBuildOptions, p as apkPackage, r as NO_DEVICE } from "./support-Vckdzrmk.mjs";
4
+ import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-DsjhOzJ3.mjs";
5
+ import { m as getProject, pt as deviceSlotPlatforms, vt as validateDeviceSlot } from "./config-CNmN-ndb.mjs";
6
+ import { a as killOnAbort, t as runOperationFile } from "./operation-exec-DNynwpqO.mjs";
7
+ import { B as publicUrlSetting, H as realpathInside, W as remoteEasFallbackSetting, an as makeTemporaryDirectory, at as settingsLayers, m as defaultAndroidLayout, nt as settingOriginScope, on as removeTemporaryEntry, ot as tunnelModeSetting, q as resolveAndroidLayout } from "./settings-Cz8kQJzr.mjs";
8
+ import { v as detectIsExpo } from "./project-DIo71tGq.mjs";
9
+ import { J as ownedAvdSystemImage, O as findBuildTool, R as listAvdsAsync, U as ownedAvdDirectory, l as androidSystemImageAbi, o as androidHome, r as androidBuildToolName, z as listInstalledSystemImages } from "./android-27_JgJ1T.mjs";
10
+ import { Kn as processContext, O as resolveCcache, Zn as checkEasAuth, ar as resolveRemote, er as loadProjectProvider, sr as bundleInvocation } from "./device-capacity-D_IlxZRL.mjs";
11
+ import { ut as statsProjectKey } from "./workspaces-BgAYIccE.mjs";
12
+ import { U as tailLines, V as startBuildHeartbeat, k as HEARTBEAT_INTERVAL_MS, r as androidToolchainAsync, t as androidRequirements } from "./toolchain-CZvtCZ-m.mjs";
13
+ import { E as storeBuild, F as compareAssetManifests, I as readAssetManifest, M as untrackedNativeFiles, N as assetDiffReason, O as storedAssetManifest, P as captureAssetManifest, T as resolveBuild, _ as gitignoredFingerprintInputs, g as fingerprintProject, j as untrackedMissLine, m as fingerprintDiffRecord, n as buildCacheKey, o as configInputsChanged, p as filesystemBuildCapability, r as changedDuringBuildLine, w as refingerprintAfterMutation, y as inputsChangedDuringBuild } from "./build-cache-CJ65Efv7.mjs";
14
+ import { t as cleanLine } from "./server-expo-ByBM8DVv.mjs";
15
+ import { I as recordPrebuildAsync, L as runPrebuild, N as planPrebuild, P as planPrebuildAsync, R as staleNativeDirRefusal } from "./worktree-kGPE9Pcw.mjs";
16
+ import { c as readProductFlavors, h as androidPathRoomRefusal, l as androidSdkRefusal, n as buildAndroid, s as productFlavorRefusal } from "./react-native-build-CFYTYmG4.mjs";
17
+ import { h as detectAppIds, m as detectAndroidPackage } from "./start-DI0ofPO-.mjs";
18
+ import { t as readDoctorFingerprint } from "./doctor-fingerprint-Bo4z8YNP.mjs";
19
+ import { n as decideSystemImage, t as androidImageInstallPolicy } from "./android-image-BcUD6bPi.mjs";
20
+ import { i as planEasDevelopmentBuild } from "./eas-build-4rg9WpEg.mjs";
21
+ import { a as memoizedFingerprint, n as fingerprintErrorMissReason, t as explainBuildMiss } from "./miss-reason-CeHvzeVm.mjs";
22
+ import { a as PLATFORM, c as androidGradleProject, g as dumpApkManifest, h as displayPath, i as NO_FINGERPRINT, l as androidJobLayout, o as androidBuildOptions, p as apkPackage, r as NO_DEVICE } from "./support-DBKG3Yyb.mjs";
22
23
  import { t as AndroidRecipeRefusal } from "./android-project-BCAAmMwz.mjs";
23
- import { u as resolveAndroidRunPlan } from "./result-BkDpN5Mz.mjs";
24
- import { n as androidProcessRuntime, t as androidMetroRuntime } from "./launch-6ckG9UrC.mjs";
25
- import { t as checkEasFallback } from "./eas-fallback-DNYPNinw.mjs";
26
- import { n as planFlagRefusal, r as planPayload, t as planCachedBuild } from "./build-plan-CeIooJqn.mjs";
27
- import { n as detectEntryFile, r as refreshUpdatesManifestFile, t as UPDATES_MANIFEST_NAME } from "./js-swap-Desu2iII.mjs";
28
- import { t as planHostedDevice } from "./plan-placement-BI4r55aP.mjs";
24
+ import { u as resolveAndroidRunPlan } from "./result-C-ISEJ5F.mjs";
25
+ import { n as androidProcessRuntime, t as androidMetroRuntime } from "./launch-B-pkNlqg.mjs";
26
+ import { t as checkEasFallback } from "./eas-fallback-UGo0SG7T.mjs";
27
+ import { n as planFlagRefusal, r as planPayload, t as planCachedBuild } from "./build-plan-DWajg5l_.mjs";
28
+ import { i as swapBundlerEnv, n as detectEntryFile, r as refreshUpdatesManifestFile, t as UPDATES_MANIFEST_NAME } from "./js-swap-Cuky0ZAQ.mjs";
29
+ import { t as planHostedDevice } from "./plan-placement-CIrvKq8y.mjs";
29
30
  import { constants, existsSync, mkdirSync, readFileSync, renameSync } from "node:fs";
30
- import { basename, dirname, isAbsolute, join, relative } from "node:path";
31
+ import { basename, dirname, isAbsolute, join, relative, sep } from "node:path";
31
32
  import chalk from "chalk";
32
33
  import { copyFile } from "node:fs/promises";
33
34
  import { loadCacheProvider } from "@stim-cli/cache";
@@ -257,11 +258,7 @@ async function swapApkBundle({ context, root, isExpo, cachedApkPath, keystore, l
257
258
  "pipe",
258
259
  "pipe"
259
260
  ],
260
- env: {
261
- ...context?.env ?? process.env,
262
- ...expoTelemetryEnv(context?.env ?? process.env),
263
- FORCE_COLOR: "0"
264
- }
261
+ env: swapBundlerEnv(root, context?.env ?? process.env)
265
262
  }));
266
263
  killOnAbort(context ? operationState(context).runSignal ?? context.signal : void 0)(child);
267
264
  } catch (err) {
@@ -742,10 +739,18 @@ function reactNativeAndroidProject(root, { context, settings }, dependencies = {
742
739
  "hosted",
743
740
  "remote"
744
741
  ],
745
- preflight: (target) => androidPathRoomRefusal(root, {
746
- ...target,
747
- platform: dependencies.platform
748
- }),
742
+ preflight: (target) => {
743
+ const sdkPath = androidHome();
744
+ return androidPathRoomRefusal(root, {
745
+ ...target,
746
+ platform: dependencies.platform
747
+ }) ?? androidSdkRefusal({
748
+ sdkPath,
749
+ sdkExists: existsSync(sdkPath),
750
+ hasLocalProperties: existsSync(join(layout.gradleRoot, "local.properties")),
751
+ localPropertiesPath: relative(root, join(layout.gradleRoot, "local.properties")).split(sep).join("/")
752
+ });
753
+ },
749
754
  eas: true,
750
755
  runtimeKind,
751
756
  runtime: ({ build, prepareMetro, phase }) => runtimeKind(build) === "embedded-js" ? androidProcessRuntime(async () => {
@@ -1,13 +1,13 @@
1
- import { b as spawnDeclared, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { x as sharedCompilationCache } from "./workspace-state-BhwAJBgA.mjs";
1
+ import { b as spawnDeclared, t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { x as sharedCompilationCache } from "./workspace-state-CHEN_xzy.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-T3cDctRE.mjs";
5
- import { a as killOnAbort } from "./operation-exec-DKlBcKAL.mjs";
6
- import { C as resolvePackageJson } from "./project-Clk1JAWL.mjs";
7
- import { o as androidHome } from "./android-SJx1V3R3.mjs";
8
- import { C as CCACHE_UNAVAILABLE, D as readCcacheActivity } from "./device-capacity-CpAVcKgq.mjs";
9
- import { r as register } from "./cache-manifest-CxWkZmUr.mjs";
10
- import { B as pickXcodeProject, G as swiftPrefixMappingSupported, I as compilationCacheSettings, M as HEARTBEAT_INTERVAL_MS, N as SWIFT_PREFIX_MAPPING_MIN_SWIFT, P as buildXcode, R as parseSwiftVersion, W as startBuildHeartbeat, z as parseXcodeMajor } from "./toolchain-DCnWAxQL.mjs";
4
+ import { l as phaseLine } from "./command-output-DsjhOzJ3.mjs";
5
+ import { a as killOnAbort } from "./operation-exec-DNynwpqO.mjs";
6
+ import { C as resolvePackageJson } from "./project-DIo71tGq.mjs";
7
+ import { o as androidHome } from "./android-27_JgJ1T.mjs";
8
+ import { C as CCACHE_UNAVAILABLE, D as readCcacheActivity } from "./device-capacity-D_IlxZRL.mjs";
9
+ import { r as register } from "./cache-manifest-BO0TIcPV.mjs";
10
+ import { A as SWIFT_PREFIX_MAPPING_MIN_SWIFT, F as parseSwiftVersion, H as swiftPrefixMappingSupported, I as parseXcodeMajor, L as pickXcodeProject, N as compilationCacheSettings, V as startBuildHeartbeat, j as buildXcode, k as HEARTBEAT_INTERVAL_MS } from "./toolchain-CZvtCZ-m.mjs";
11
11
  import { p as resolveOptimizations } from "./errors-DHm_U5gv.mjs";
12
12
  import { createHash } from "node:crypto";
13
13
  import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, statSync } from "node:fs";
@@ -76,6 +76,9 @@ function androidPathRoomRefusal(root, options) {
76
76
  remedy: androidPathRoomRemedy(room)
77
77
  } : null;
78
78
  }
79
+ //#endregion
80
+ //#region src/engine/errors-gradle.ts
81
+ const MAX_DIAGNOSTICS = 10;
79
82
  const MAX_MESSAGE_LENGTH = 300;
80
83
  const KOTLIN_URI = /^e:\s+file:\/\/(\/\S+?):(\d+):(\d+)\s+(.*)$/;
81
84
  const KOTLIN_PAREN = /^e:\s+(\S+?):\s*\((\d+),\s*(\d+)\):\s*(.*)$/;
@@ -243,7 +246,7 @@ function extractGradleDiagnostics(text) {
243
246
  }
244
247
  return found;
245
248
  }
246
- function capDiagnostics(diagnostics, limit = 10) {
249
+ function capDiagnostics(diagnostics, limit = MAX_DIAGNOSTICS) {
247
250
  const all = Array.isArray(diagnostics) ? diagnostics : [];
248
251
  if (all.length <= limit) return {
249
252
  shown: all.slice(),
@@ -1,9 +1,9 @@
1
- import { t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { l as phaseLine } from "./command-output-T3cDctRE.mjs";
3
- import { Y as resolveIosProjectDir, q as resolveAndroidLayout } from "./settings-Bap-qjnp.mjs";
4
- import { v as detectIsExpo } from "./project-Clk1JAWL.mjs";
5
- import { Y as bundlerPin, a as buildsOnlyOnWorker, c as iosToolchainAsync, n as androidToolchain, r as androidToolchainAsync, t as androidRequirements } from "./toolchain-DCnWAxQL.mjs";
6
- import { a as mainCheckoutProjectRoot, c as repairCxxLauncherState, i as detectLinkedLibraryGitMetadata, n as checkMainCheckout, o as reactNativeDoctorFindings, r as detectFingerprintParity } from "./doctor-CYZ45LnX.mjs";
1
+ import { t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { l as phaseLine } from "./command-output-DsjhOzJ3.mjs";
3
+ import { Y as resolveIosProjectDir, q as resolveAndroidLayout } from "./settings-Cz8kQJzr.mjs";
4
+ import { v as detectIsExpo } from "./project-DIo71tGq.mjs";
5
+ import { K as bundlerPin, a as buildsOnlyOnWorker, c as iosToolchainAsync, n as androidToolchain, r as androidToolchainAsync, t as androidRequirements } from "./toolchain-CZvtCZ-m.mjs";
6
+ import { a as mainCheckoutProjectRoot, c as repairCxxLauncherState, i as detectLinkedLibraryGitMetadata, n as checkMainCheckout, o as reactNativeDoctorFindings, r as detectFingerprintParity } from "./doctor-QNzDE4aW.mjs";
7
7
  import { existsSync, readdirSync, statSync } from "node:fs";
8
8
  import { join, relative } from "node:path";
9
9
  //#region src/diagnostics/doctor-ios-architectures.ts
@@ -1,20 +1,21 @@
1
- import { r as reportSignal } from "./exec-CGuDzt40.mjs";
2
- import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-T3cDctRE.mjs";
3
- import { B as publicUrlSetting, G as remoteIosSetting, W as remoteEasFallbackSetting, Y as resolveIosProjectDir, a as SETTING_SHAPE_REMEDY, ot as tunnelModeSetting, p as cacheProviderSettingError, rt as settingShapeErrors } from "./settings-Bap-qjnp.mjs";
4
- import { Un as processContext } from "./device-capacity-CpAVcKgq.mjs";
5
- import { lt as statsProjectKey } from "./workspaces-Dh5N70qW.mjs";
6
- import { Y as bundlerPin, _t as runCancellationSignal, a as buildsOnlyOnWorker, c as iosToolchainAsync } from "./toolchain-DCnWAxQL.mjs";
7
- import { A as trackedFingerprintPaths, _ as gitignoredFingerprintInputs, f as expoProductionEnvFiles, j as untrackedMissLine, m as fingerprintDiffRecord, n as buildCacheKey, o as configInputsChanged, p as filesystemBuildCapability, r as changedDuringBuildLine, v as ignoredFingerprintPaths, w as refingerprintAfterMutation, y as inputsChangedDuringBuild } from "./build-cache-BW8T4oD2.mjs";
1
+ import { r as reportSignal } from "./exec-L37dbiIb.mjs";
2
+ import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-DsjhOzJ3.mjs";
3
+ import { B as publicUrlSetting, G as remoteIosSetting, W as remoteEasFallbackSetting, Y as resolveIosProjectDir, a as SETTING_SHAPE_REMEDY, ot as tunnelModeSetting, p as cacheProviderSettingError, rt as settingShapeErrors } from "./settings-Cz8kQJzr.mjs";
4
+ import { Kn as processContext } from "./device-capacity-D_IlxZRL.mjs";
5
+ import { ut as statsProjectKey } from "./workspaces-BgAYIccE.mjs";
6
+ import { K as bundlerPin, a as buildsOnlyOnWorker, c as iosToolchainAsync, mt as runCancellationSignal } from "./toolchain-CZvtCZ-m.mjs";
7
+ import { A as trackedFingerprintPaths, _ as gitignoredFingerprintInputs, f as expoProductionEnvFiles, j as untrackedMissLine, m as fingerprintDiffRecord, n as buildCacheKey, o as configInputsChanged, p as filesystemBuildCapability, r as changedDuringBuildLine, v as ignoredFingerprintPaths, w as refingerprintAfterMutation, y as inputsChangedDuringBuild } from "./build-cache-CJ65Efv7.mjs";
8
8
  import { d as optimizationBuildProfile, l as artifactCachePolicy, p as resolveOptimizations } from "./errors-DHm_U5gv.mjs";
9
- 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-BJbXovoO.mjs";
10
- import { t as readDoctorFingerprint } from "./doctor-fingerprint-DqWvIhMb.mjs";
11
- import { i as planEasDevelopmentBuild, n as easDeviceBuildRemedy } from "./eas-build-Xf5Jd6LR.mjs";
12
- import { c as fingerprintErrorMissReason, d as memoizedFingerprint, i as recordPrebuildAsync, o as staleNativeDirRefusal, s as explainBuildMiss } from "./prebuild-Di2IhUue.mjs";
13
- import { r as planPayload, t as planCachedBuild } from "./build-plan-CeIooJqn.mjs";
14
- import { t as IosRecipeRefusal } from "./ios-project-Cz0S1Sz-.mjs";
15
- import { a as hostedIosSelectors } from "./remote-WK_swZEw.mjs";
16
- import { a as writeIpTxt, c as iosProcessRuntime, r as copyAppAside, s as iosMetroRuntime, t as DEFAULT_DEPS } from "./dependencies-LH-7k1Vr.mjs";
17
- import { t as planHostedDevice } from "./plan-placement-BI4r55aP.mjs";
9
+ 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-BeVRaMWT.mjs";
10
+ import { I as recordPrebuildAsync, R as staleNativeDirRefusal } from "./worktree-kGPE9Pcw.mjs";
11
+ import { t as readDoctorFingerprint } from "./doctor-fingerprint-Bo4z8YNP.mjs";
12
+ import { i as planEasDevelopmentBuild, n as easDeviceBuildRemedy } from "./eas-build-4rg9WpEg.mjs";
13
+ import { a as memoizedFingerprint, n as fingerprintErrorMissReason, t as explainBuildMiss } from "./miss-reason-CeHvzeVm.mjs";
14
+ import { r as planPayload, t as planCachedBuild } from "./build-plan-DWajg5l_.mjs";
15
+ import { t as IosRecipeRefusal } from "./ios-project-Bsm-eqwv.mjs";
16
+ import { a as hostedIosSelectors } from "./remote-NOM82XE0.mjs";
17
+ import { a as writeIpTxt, c as iosProcessRuntime, r as copyAppAside, s as iosMetroRuntime, t as DEFAULT_DEPS } from "./dependencies-oku1ZLep.mjs";
18
+ import { t as planHostedDevice } from "./plan-placement-CIrvKq8y.mjs";
18
19
  import { existsSync, rmSync } from "node:fs";
19
20
  import { join } from "node:path";
20
21
  import chalk from "chalk";
@@ -147,8 +148,7 @@ async function planReactNativeIos(root, opts, d, schemeProblem, { context: setti
147
148
  const keyArch = (remoteArch) => simulatorBuildArch({
148
149
  physical: false,
149
150
  remoteArch,
150
- hostArch: d.hostSimulatorArch(),
151
- configuration
151
+ hostArch: d.hostSimulatorArch()
152
152
  });
153
153
  let arch = keyArch(null);
154
154
  let placement;
@@ -1,6 +1,8 @@
1
- import { o as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-BhwAJBgA.mjs";
1
+ import { E as workspaceDir, o as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-CHEN_xzy.mjs";
2
2
  import { existsSync } from "node:fs";
3
+ import { basename, dirname, join } from "node:path";
3
4
  import { isJsonObject } from "@stim-cli/core/state";
5
+ import { readdir, rm } from "node:fs/promises";
4
6
  //#region src/engine/recorded-build.ts
5
7
  const RECORDED_BUILDS_KEY = "recordedBuilds";
6
8
  function recordedBuildKey(selectors) {
@@ -23,6 +25,22 @@ function recordBuild(root, key, build) {
23
25
  }
24
26
  }));
25
27
  }
28
+ /** Callers must hold the workspace native-run lock, so no other build or recorded-build install is using a copy. */
29
+ async function pruneArtifactCopies(root, platform, keep, warn) {
30
+ const artifacts = join(workspaceDir(root), "artifacts");
31
+ const recorded = readWorkspaceState$1(root)?.[RECORDED_BUILDS_KEY];
32
+ const kept = /* @__PURE__ */ new Set([basename(keep)]);
33
+ for (const entry of isJsonObject(recorded) ? Object.values(recorded) : []) if (isJsonObject(entry) && typeof entry.appPath === "string") kept.add(basename(dirname(entry.appPath)));
34
+ try {
35
+ const entries = await readdir(artifacts, { withFileTypes: true });
36
+ await Promise.all(entries.filter((entry) => entry.isDirectory() && entry.name.startsWith(`${platform}-`) && !kept.has(entry.name)).map((entry) => rm(join(artifacts, entry.name), {
37
+ recursive: true,
38
+ force: true
39
+ })));
40
+ } catch (error) {
41
+ warn(`could not remove older app copies: ${error instanceof Error ? error.message : String(error)}`);
42
+ }
43
+ }
26
44
  function readRecordedBuild(root, key) {
27
45
  const recorded = readWorkspaceState$1(root)?.[RECORDED_BUILDS_KEY];
28
46
  const entry = isJsonObject(recorded) ? recorded[key] : null;
@@ -55,4 +73,4 @@ function lookupRecordedBuild(requested, root, selectors) {
55
73
  };
56
74
  }
57
75
  //#endregion
58
- export { recordBuild as n, recordedBuildKey as r, lookupRecordedBuild as t };
76
+ export { recordedBuildKey as i, pruneArtifactCopies as n, recordBuild as r, lookupRecordedBuild as t };
@@ -1,4 +1,4 @@
1
- import { Ct as gitCommonDirOnDisk } from "./settings-Bap-qjnp.mjs";
1
+ import { Ct as gitCommonDirOnDisk } from "./settings-Cz8kQJzr.mjs";
2
2
  import { existsSync } from "node:fs";
3
3
  import { loadConfig, recordingEnabled, workspaceRecordingsDir } from "@stim-cli/core/state";
4
4
  import { rm } from "node:fs/promises";
@@ -1,4 +1,4 @@
1
- import { T as process_identity_exports } from "./exec-CGuDzt40.mjs";
1
+ import { T as process_identity_exports } from "./exec-L37dbiIb.mjs";
2
2
  import { readMacosRecord } from "@stim-cli/core/state";
3
3
  //#region src/macos/registration.ts
4
4
  function waitForMacosRegistration(root, launchId, child, deadline) {
@@ -1,2 +1,2 @@
1
- import { n as reloadCommand, r as runReload, t as registerReload } from "./reload-A_axEbeS.mjs";
1
+ import { n as reloadCommand, r as runReload, t as registerReload } from "./reload-DTd9g1EG.mjs";
2
2
  export { reloadCommand as default, registerReload, runReload };
@@ -1,19 +1,19 @@
1
- import { d as throwIfCancelled, l as cancellableSleep, s as loadScaledBudgetMs, u as cancelledError } from "./exec-CGuDzt40.mjs";
2
- import { a as recordWorkspaceUseAsync, r as readWorkspaceState$1 } from "./workspace-state-BhwAJBgA.mjs";
3
- import { f as refuseNoProject, l as phaseLine } from "./command-output-T3cDctRE.mjs";
4
- import { m as getProject, mt as parseDeviceSlotKey, pt as deviceSlotPlatforms } from "./config-BA3TgoIP.mjs";
5
- import { Vt as repoRootAsync } from "./settings-Bap-qjnp.mjs";
6
- import { I as readWorkspaceLaunches, P as readRemoteSession, r as findCommandWorkspaceAsync } from "./project-Clk1JAWL.mjs";
7
- import { it as resolveOwnedAvdSerialAsync } from "./android-SJx1V3R3.mjs";
8
- import { a as listeningPidsAsync, d as resolveProjectMetro, h as isMetroRunning, u as processCwds } from "./metro-DM3yJL1M.mjs";
9
- import { Nn as iosAppProcess, On as ensureMetroReverse, Sn as androidAppProcess } from "./device-capacity-CpAVcKgq.mjs";
10
- import { d as webFactsAsync, o as readWebRecord, r as cdpEndpoint } from "./state-B9VFI6r0.mjs";
11
- import { D as resolveOwnedIosSim, f as listAllIosSimsAsync } from "./ios-BhfpRfNf.mjs";
12
- import { m as probeHostedSession } from "./hosted-client-DMOOu8vD.mjs";
13
- import { r as readHostedNative } from "./ios-state-Avwz2cbZ.mjs";
14
- import { r as reopenHostedAndroidMetro } from "./hosted-android-D__HGVIO.mjs";
15
- import { n as nativeRunCommand } from "./slot-launch-qEQVTth7.mjs";
16
- import { n as sendToOwnedPage, t as liveWebRecord } from "./page-Dj8IqvGM.mjs";
1
+ import { d as throwIfCancelled, l as cancellableSleep, s as loadScaledBudgetMs, u as cancelledError } from "./exec-L37dbiIb.mjs";
2
+ import { a as recordWorkspaceUseAsync, r as readWorkspaceState$1 } from "./workspace-state-CHEN_xzy.mjs";
3
+ import { f as refuseNoProject, l as phaseLine } from "./command-output-DsjhOzJ3.mjs";
4
+ import { m as getProject, mt as parseDeviceSlotKey, pt as deviceSlotPlatforms } from "./config-CNmN-ndb.mjs";
5
+ import { Vt as repoRootAsync } from "./settings-Cz8kQJzr.mjs";
6
+ import { I as readWorkspaceLaunches, P as readRemoteSession, r as findCommandWorkspaceAsync } from "./project-DIo71tGq.mjs";
7
+ import { it as resolveOwnedAvdSerialAsync } from "./android-27_JgJ1T.mjs";
8
+ import { a as listeningPidsAsync, d as resolveProjectMetro, h as isMetroRunning, u as processCwds } from "./metro-Cj6W4qOO.mjs";
9
+ import { In as iosAppProcess, Tn as androidAppProcess, jn as ensureMetroReverse } from "./device-capacity-D_IlxZRL.mjs";
10
+ import { d as webFactsAsync, o as readWebRecord, r as cdpEndpoint } from "./state-C2vELPyr.mjs";
11
+ import { D as resolveOwnedIosSim, f as listAllIosSimsAsync } from "./ios-DQEzde6f.mjs";
12
+ import { m as probeHostedSession } from "./hosted-client-B_h_bTlz.mjs";
13
+ import { r as readHostedNative } from "./ios-state-tzD0s7pt.mjs";
14
+ import { r as reopenHostedAndroidMetro } from "./hosted-android-gwLspaz6.mjs";
15
+ import { n as nativeRunCommand } from "./slot-launch-BIm9w8kH.mjs";
16
+ import { n as sendToOwnedPage, t as liveWebRecord } from "./page-CoN9al_x.mjs";
17
17
  import { hostedAndroidDeviceName, hostedNativeRecords } from "@stim-cli/core/state";
18
18
  import chalk from "chalk";
19
19
  import { WebSocket } from "ws";
@@ -1,7 +1,7 @@
1
- import { l as phaseLine } from "./command-output-T3cDctRE.mjs";
2
- import { D as updateRemoteMachinesAsync, R as doctorIo, V as keyConfirmer, W as parseMachine$1 } from "./config-BA3TgoIP.mjs";
3
- import { $ as inspectBuildMachines, Q as forgetBuildMachine, at as inspectDeviceHostMachines, nt as configuredMachines, rt as forgetDeviceHostMachine } from "./support-BJbXovoO.mjs";
4
- import { t as confirmInTerminal } from "./device-provision-CxQDCtrc.mjs";
1
+ import { l as phaseLine } from "./command-output-DsjhOzJ3.mjs";
2
+ import { D as updateRemoteMachinesAsync, R as doctorIo, V as keyConfirmer, W as parseMachine$1 } from "./config-CNmN-ndb.mjs";
3
+ import { $ as inspectBuildMachines, Q as forgetBuildMachine, at as inspectDeviceHostMachines, nt as configuredMachines, rt as forgetDeviceHostMachine } from "./support-BeVRaMWT.mjs";
4
+ import { t as confirmInTerminal } from "./device-provision-C9NPdCne.mjs";
5
5
  import { readBuildMachines, readDeviceHostMachines } from "@stim-cli/core/state";
6
6
  import chalk from "chalk";
7
7
  //#region src/commands/remote.ts
@@ -1,12 +1,12 @@
1
- import { f as WorkspaceProcessCleanupError } from "./exec-CGuDzt40.mjs";
2
- import { l as phaseLine } from "./command-output-T3cDctRE.mjs";
3
- import { pt as deviceSlotPlatforms } from "./config-BA3TgoIP.mjs";
4
- import { B as publicUrlSetting, G as remoteIosSetting, L as parseIosRemote, W as remoteEasFallbackSetting, ot as tunnelModeSetting } from "./settings-Bap-qjnp.mjs";
5
- import "./device-capacity-CpAVcKgq.mjs";
6
- import { _t as runCancellationSignal } from "./toolchain-DCnWAxQL.mjs";
7
- import { b as resolveSimulatorAppFlag } from "./support-BJbXovoO.mjs";
8
- import { n as devicePlacementRecord } from "./placement-log-B8RCSzOm.mjs";
9
- import { n as devicePlacementLine } from "./auto-placement-CKFpFCuq.mjs";
1
+ import { f as WorkspaceProcessCleanupError } from "./exec-L37dbiIb.mjs";
2
+ import { l as phaseLine } from "./command-output-DsjhOzJ3.mjs";
3
+ import { pt as deviceSlotPlatforms } from "./config-CNmN-ndb.mjs";
4
+ import { B as publicUrlSetting, G as remoteIosSetting, L as parseIosRemote, W as remoteEasFallbackSetting, ot as tunnelModeSetting } from "./settings-Cz8kQJzr.mjs";
5
+ import "./device-capacity-D_IlxZRL.mjs";
6
+ import { mt as runCancellationSignal } from "./toolchain-CZvtCZ-m.mjs";
7
+ import { b as resolveSimulatorAppFlag } from "./support-BeVRaMWT.mjs";
8
+ import { n as devicePlacementRecord } from "./placement-log-CM0DSELs.mjs";
9
+ import { n as devicePlacementLine } from "./auto-placement-RNh4kx2T.mjs";
10
10
  import chalk from "chalk";
11
11
  //#region src/commands/ios/remote.ts
12
12
  function deviceRemoteConflict(remote, physical) {
@@ -219,4 +219,4 @@ async function connectIosBackend(root, backend, deviceType, d, env, operation) {
219
219
  };
220
220
  }
221
221
  //#endregion
222
- export { hostedIosSelectors as a, hostedIosMetroNote as i, connectIosTarget as n, iosPlacementBudget as o, deviceRemoteConflict as r, selectIosPlacement as s, connectIosBackend as t };
222
+ export { hostedIosSelectors as a, selectIosTarget as c, hostedIosMetroNote as i, connectIosTarget as n, iosPlacementBudget as o, deviceRemoteConflict as r, selectIosPlacement as s, connectIosBackend as t };
@@ -1,21 +1,21 @@
1
- import { w as workspaceAgentDeviceDir } from "./workspace-state-BhwAJBgA.mjs";
2
- import { i as formatDuration, l as phaseLine } from "./command-output-T3cDctRE.mjs";
3
- import { m as getProject, pt as deviceSlotPlatforms } from "./config-BA3TgoIP.mjs";
4
- import { J as resolveCacheProviderConfig, L as parseIosRemote, U as remoteAndroidSetting, _ as inertSettingWarning, a as SETTING_SHAPE_REMEDY, at as settingsLayers, d as androidLayoutSetting, et as settingFile, f as androidLayoutSettingError, nt as settingOriginScope, p as cacheProviderSettingError, q as resolveAndroidLayout, rt as settingShapeErrors, s as androidAvdConfigSettingError, st as unknownSettingKeys, u as androidDataPartitionSizeGbSettingError } from "./settings-Bap-qjnp.mjs";
5
- import { v as detectIsExpo } from "./project-Clk1JAWL.mjs";
6
- import { a as workspaceLinkLine } from "./stim-desktop-D0P_bzmd.mjs";
7
- import { H as ownedAvdDeviceProfile, I as listAvdDeviceProfilesAsync, J as ownedAvdSystemImage, Q as pickDefaultSystemImage, bt as parkedMaxSetting, et as profileNeedsFoldFeature, j as hostSystemImageArch, l as androidSystemImageAbi, st as systemImageSupportsFold, t as DEFAULT_AVD_DEVICE_PROFILE, z as listInstalledSystemImages } from "./android-SJx1V3R3.mjs";
8
- import { C as CCACHE_UNAVAILABLE, Kn as UPLOAD_TIMEOUT_MS, Xn as isEasAuthFailureText, Yn as easAuthNote, qn as cacheLevel, t as DEFAULT_DEVICE_SLOT_WAIT_MS, w as ccacheActivityLine } from "./device-capacity-CpAVcKgq.mjs";
9
- import { X as recordFinishedBuild } from "./workspaces-Dh5N70qW.mjs";
1
+ import { w as workspaceAgentDeviceDir } from "./workspace-state-CHEN_xzy.mjs";
2
+ import { i as formatDuration, l as phaseLine } from "./command-output-DsjhOzJ3.mjs";
3
+ import { m as getProject, pt as deviceSlotPlatforms } from "./config-CNmN-ndb.mjs";
4
+ import { J as resolveCacheProviderConfig, L as parseIosRemote, U as remoteAndroidSetting, _ as inertSettingWarning, a as SETTING_SHAPE_REMEDY, at as settingsLayers, d as androidLayoutSetting, et as settingFile, f as androidLayoutSettingError, nt as settingOriginScope, p as cacheProviderSettingError, q as resolveAndroidLayout, rt as settingShapeErrors, s as androidAvdConfigSettingError, st as unknownSettingKeys, u as androidDataPartitionSizeGbSettingError } from "./settings-Cz8kQJzr.mjs";
5
+ import { v as detectIsExpo } from "./project-DIo71tGq.mjs";
6
+ import { a as workspaceLinkLine } from "./stim-desktop-DWGAfaud.mjs";
7
+ import { H as ownedAvdDeviceProfile, I as listAvdDeviceProfilesAsync, J as ownedAvdSystemImage, Q as pickDefaultSystemImage, bt as parkedMaxSetting, et as profileNeedsFoldFeature, j as hostSystemImageArch, l as androidSystemImageAbi, st as systemImageSupportsFold, t as DEFAULT_AVD_DEVICE_PROFILE, z as listInstalledSystemImages } from "./android-27_JgJ1T.mjs";
8
+ import { $n as isEasAuthFailureText, C as CCACHE_UNAVAILABLE, Qn as easAuthNote, Xn as cacheLevel, Yn as UPLOAD_TIMEOUT_MS, t as DEFAULT_DEVICE_SLOT_WAIT_MS, w as ccacheActivityLine } from "./device-capacity-D_IlxZRL.mjs";
9
+ import { Z as recordFinishedBuild } from "./workspaces-BgAYIccE.mjs";
10
10
  import { d as optimizationBuildProfile, l as artifactCachePolicy, p as resolveOptimizations, u as compilerCacheFallbackMessage } from "./errors-DHm_U5gv.mjs";
11
- import { n as buildPlacementCandidates } from "./client-KSWIeQLA.mjs";
12
- import { q as parseDeviceWait } from "./support-BJbXovoO.mjs";
13
- import { c as readProductFlavors, s as productFlavorRefusal } from "./react-native-build-CJega_NM.mjs";
14
- import { t as androidImageInstallPolicy } from "./android-image-BZ57YL6R.mjs";
15
- import { n as resolveAndroidCas, r as resolveAndroidCompilerCache } from "./android-cas-BS9_55U5.mjs";
16
- import { r as isPhysicalDeviceRequest } from "./native-runtime-C3_NkUlW.mjs";
17
- import { t as lookupRecordedBuild } from "./recorded-build-BuGL_fnm.mjs";
18
- 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-Vckdzrmk.mjs";
11
+ import { n as buildPlacementCandidates } from "./client-qwmHFSga.mjs";
12
+ import { q as parseDeviceWait } from "./support-BeVRaMWT.mjs";
13
+ import { c as readProductFlavors, s as productFlavorRefusal } from "./react-native-build-CFYTYmG4.mjs";
14
+ import { t as androidImageInstallPolicy } from "./android-image-BcUD6bPi.mjs";
15
+ import { n as resolveAndroidCas, r as resolveAndroidCompilerCache } from "./android-cas-BDAwwL82.mjs";
16
+ import { r as isPhysicalDeviceRequest } from "./native-runtime-BfvvAJLd.mjs";
17
+ import { t as lookupRecordedBuild } from "./recorded-build-B4prJjSD.mjs";
18
+ 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-DBKG3Yyb.mjs";
19
19
  import { buildDiagnostics } from "@stim-cli/core/state";
20
20
  import chalk from "chalk";
21
21
  //#region src/commands/android/plan.ts
@@ -1,5 +1,5 @@
1
- import { D as ownership_claim_exports, T as process_identity_exports, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { a as macosRuntimeClaim, i as macosProcess, r as macosLogFile, s as updateMacosRecord } from "./state-B4B5P4LU.mjs";
1
+ import { D as ownership_claim_exports, T as process_identity_exports, t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { a as macosRuntimeClaim, i as macosProcess, r as macosLogFile, s as updateMacosRecord } from "./state-45P8Kd6Z.mjs";
3
3
  import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
4
4
  import { LOG_ROTATE_BYTES } from "@stim-cli/core";
5
5
  import { readMacosRecord } from "@stim-cli/core/state";
@@ -1,5 +1,5 @@
1
- import { O as __commonJSMin, k as __require, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { X as resolveProjectSettings } from "./settings-Bap-qjnp.mjs";
1
+ import { O as __commonJSMin, k as __require, t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { X as resolveProjectSettings } from "./settings-Cz8kQJzr.mjs";
3
3
  import { c as registerMetroStore, f as resolveMetroSharedCache, n as supervisorError, r as appendCacheStore, s as metroStoreRoot } from "./errors-DHm_U5gv.mjs";
4
4
  import { createRequire } from "node:module";
5
5
  import { isAbsolute, join, relative, sep } from "node:path";
@@ -1,9 +1,9 @@
1
- import { t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { n as METRO_COMMAND_PORT } from "./settings-Bap-qjnp.mjs";
3
- import { T as MODE_COMMAND } from "./project-Clk1JAWL.mjs";
4
- import { f as signalProcessTree } from "./metro-DM3yJL1M.mjs";
1
+ import { t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { n as METRO_COMMAND_PORT } from "./settings-Cz8kQJzr.mjs";
3
+ import { T as MODE_COMMAND } from "./project-DIo71tGq.mjs";
4
+ import { f as signalProcessTree } from "./metro-Cj6W4qOO.mjs";
5
5
  import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
6
- import { g as projectNodeLine, p as recordFromLine, v as withProjectNode, y as superviseChildServer } from "./server-expo-cc-cmfsl.mjs";
6
+ import { _ as projectNodeLine, b as superviseChildServer, m as repositoryRoot, p as recordFromLine, y as withProjectNode } from "./server-expo-ByBM8DVv.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
@@ -29,7 +29,7 @@ async function startCommandServer({ root, port, logsDir, command, writer = null,
29
29
  msg: "metro.command starts the dev server, so Stim does not add its shared Metro transform store"
30
30
  });
31
31
  const group = platform !== "win32";
32
- const node = withProjectNode(root, process.env);
32
+ const node = withProjectNode(root, process.env, { top: repositoryRoot(root) ?? root });
33
33
  if (node.pinned) log.write({
34
34
  src: "metro",
35
35
  level: "info",