stim 1.26.0 → 1.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/dist/{acquire-artifact-DVsvSwf7.mjs → acquire-artifact-CKByBnTD.mjs} +2 -2
  2. package/dist/{act-C-BqJEpu.mjs → act-8iswyfRa.mjs} +319 -126
  3. package/dist/{activity-Lnb_EoRY.mjs → activity-DRMg4_mD.mjs} +6 -6
  4. package/dist/{agent-device-usage-output-DbXy5tg8.mjs → agent-device-usage-output-tE90fDdo.mjs} +5 -5
  5. package/dist/{android-CiNQw3kq.mjs → android-CHmSU4B4.mjs} +101 -45
  6. package/dist/{android-DTAcRwBC.mjs → android-CsPs-7Mg.mjs} +23 -18
  7. package/dist/{android-B5P81yI-.mjs → android-D577ApKG.mjs} +37 -15
  8. package/dist/{android-CSbLRD53.mjs → android-YWCbmkVK.mjs} +5 -5
  9. package/dist/{android-cas-BTVhZ0Qs.mjs → android-cas-_aDifWW0.mjs} +4 -4
  10. package/dist/android-cas-compiler.mjs +1 -1
  11. package/dist/api.d.mts +14 -4
  12. package/dist/api.mjs +39 -29
  13. package/dist/{apk-signed-tail-B46U9hXc.mjs → apk-signed-tail-CQbwM0qO.mjs} +2 -2
  14. package/dist/{artifact-CsAP6AGK.mjs → artifact-DYtHjxsn.mjs} +19 -24
  15. package/dist/{artifact-BxREhAaV.mjs → artifact-bFkfD3vf.mjs} +18 -23
  16. package/dist/{artifact-platform-CMRc0M_r.mjs → artifact-platform-BO2Uvk_A.mjs} +1 -1
  17. package/dist/auto-placement-BVqs8AJi.mjs +350 -0
  18. package/dist/{browser-web-rYPyqhTf.mjs → browser-web-BUaLcafY.mjs} +16 -16
  19. package/dist/{build-DPhApsjV.mjs → build-cQURy_KW.mjs} +35 -31
  20. package/dist/{build-cache-DrXNCy3T.mjs → build-cache-CZULpXVl.mjs} +43 -21
  21. package/dist/{build-plan-DrMMdayj.mjs → build-plan-CxoYfxsc.mjs} +7 -6
  22. package/dist/{cache-manifest-BEZ9Bpl1.mjs → cache-manifest-DEjqGGat.mjs} +1 -1
  23. package/dist/cache-manifest.mjs +1 -1
  24. package/dist/{budget-k2mZGvvk.mjs → ccache-Bm_A1xX9.mjs} +562 -1604
  25. package/dist/{cdp-BG3FJCCx.mjs → cdp-C3svvXiE.mjs} +1 -1
  26. package/dist/{chrome-BvV8ssI3.mjs → chrome-DyDWurWG.mjs} +1 -1
  27. package/dist/{cli-BBKFGOFl.mjs → cli-CpbaLDa7.mjs} +24 -23
  28. package/dist/cli.mjs +1 -1
  29. package/dist/{client-D9CaRks-.mjs → client-YxCer6ab.mjs} +84 -65
  30. package/dist/collector-run.d.mts +10 -9
  31. package/dist/collector-run.mjs +42 -27
  32. package/dist/{command-output-BF5AR2dL.mjs → command-output-C8R1KIvi.mjs} +1 -1
  33. package/dist/{config-BktkY_zC.mjs → config-Cn94Jc0g.mjs} +23 -4
  34. package/dist/{dependencies-Dw6wfQdv.mjs → dependencies-DKeMzwXY.mjs} +108 -60
  35. package/dist/{dependency-state-DFB41vfr.mjs → dependency-state-CojA2o0t.mjs} +14 -7
  36. package/dist/{detached-entry-KmieOKgN.mjs → detached-entry-BPlSaCwC.mjs} +1 -1
  37. package/dist/{dev-client-DXR_tPVY.mjs → dev-client-D-BW5uiq.mjs} +2 -2
  38. package/dist/{device-BK-zwyd_.mjs → device-CgXfbcz5.mjs} +25 -24
  39. package/dist/{device-capacity-DCSvUF0l.mjs → device-capacity-Cd8lMSn3.mjs} +175 -22
  40. package/dist/{device-BcYeHSFu.mjs → device-eeK95Lir.mjs} +16 -16
  41. package/dist/device-host-worker.mjs +22 -20
  42. package/dist/{device-ios-BLGfXQeK.mjs → device-ios-Cc9ulihb.mjs} +251 -23
  43. package/dist/{device-lease-run-BmvIl7bI.mjs → device-lease-run-Mtzp4THX.mjs} +5 -5
  44. package/dist/{device-pool-Dluix4H3.mjs → device-pool-eRz6DtCg.mjs} +3 -3
  45. package/dist/{doctor-Bhg1ii70.mjs → doctor-Bz_ouYAW.mjs} +28 -16
  46. package/dist/{doctor-Cp-BhzTS.mjs → doctor-C2QyhejJ.mjs} +1 -1
  47. package/dist/{doctor-fingerprint-D3a04Mhu.mjs → doctor-fingerprint-o7ZI9YLn.mjs} +1 -1
  48. package/dist/doctor-fingerprint.mjs +1 -1
  49. package/dist/{doctor-watchman-BStK05nt.mjs → doctor-watchman-BTW82PDC.mjs} +5 -5
  50. package/dist/{doctor-OnwP94ne.mjs → doctor-xf7ht-5n.mjs} +76 -32
  51. package/dist/{eas-build-Dsj93iM9.mjs → eas-build-Dm6q68QY.mjs} +4 -4
  52. package/dist/eas-fallback-DajNpxf-.mjs +87 -0
  53. package/dist/{eas-session-ledger-B5vygTiD.mjs → eas-session-ledger-CBFo_Uo1.mjs} +37 -8
  54. package/dist/{error-diagnostics-BOOm9Db7.mjs → error-diagnostics-D1QfyJzQ.mjs} +51 -25
  55. package/dist/{exec-VFRpu1iA.mjs → exec-aULwtNly.mjs} +57 -6
  56. package/dist/{gc-ldgr-hXU.mjs → gc-DM5oMm-J.mjs} +161 -45
  57. package/dist/{gc-C_79zvz4.mjs → gc-PLFwb0k4.mjs} +2 -2
  58. package/dist/{guide-D7K0X6KG.mjs → guide-C4I46XAk.mjs} +674 -213
  59. package/dist/{hosted-android-Bk54ej6n.mjs → hosted-android-DlaKLbW0.mjs} +6 -7
  60. package/dist/{hosted-client-fHO8yqzc.mjs → hosted-client-DDRm9hPJ.mjs} +51 -20
  61. package/dist/{hosted-logs-BfbmDM4M.mjs → hosted-logs-bSebOKbz.mjs} +8 -8
  62. package/dist/{hosted-logs-sync-B0pvmOk-.mjs → hosted-logs-sync-B0c53W_c.mjs} +5 -5
  63. package/dist/{hosted-macos-CPl0OZ9h.mjs → hosted-macos-B7-8Pv4H.mjs} +6 -6
  64. package/dist/{hosted-native-CpDB3-PO.mjs → hosted-native-CDe33CSr.mjs} +22 -18
  65. package/dist/{idle-shutdown-FfxL1KdG.mjs → idle-shutdown-CQ0QwU9J.mjs} +7 -8
  66. package/dist/{ios-WxpDJ5T1.mjs → ios-B1DYuOjh.mjs} +27 -11
  67. package/dist/{ios-B7-lToDu.mjs → ios-B1HvafEG.mjs} +8 -8
  68. package/dist/{ios-ENC4sRPA.mjs → ios-CsRVik64.mjs} +7 -1
  69. package/dist/{ios-device-CsyryvpT.mjs → ios-device-B4elVFKi.mjs} +3 -3
  70. package/dist/{ios-device-B6HK951C.mjs → ios-device-CiBA-er9.mjs} +1 -1
  71. package/dist/{ios-project-Ty5pHl9O.mjs → ios-project-CR4mZ7CH.mjs} +22 -9
  72. package/dist/{ios-signing-4c_qXvQm.mjs → ios-signing-BJzvDPfU.mjs} +2 -2
  73. package/dist/{ios-state-Cw7-WQf2.mjs → ios-state-BPHqMDdZ.mjs} +1 -1
  74. package/dist/{ios-ftxdQbJS.mjs → ios-tg4tp3q1.mjs} +94 -37
  75. package/dist/{js-swap-BMhXYVDS.mjs → js-swap-CVpSW1fn.mjs} +8 -7
  76. package/dist/{launch-DOp8RjDz.mjs → launch-DoySmhjz.mjs} +42 -38
  77. package/dist/lightened-DFAJgfIk.mjs +171 -0
  78. package/dist/{logs-s1dRIG1E.mjs → logs-BGsW7iPe.mjs} +46 -21
  79. package/dist/{logs-dQDki6Tt.mjs → logs-DI5ILkYB.mjs} +7 -7
  80. package/dist/{macos-DBBPNnIA.mjs → macos-Bo9st9Di.mjs} +73 -38
  81. package/dist/{macos-B0VEV3Gf.mjs → macos-C12RMJQF.mjs} +1 -1
  82. package/dist/macos-run.mjs +1 -1
  83. package/dist/maintenance-run.mjs +7 -7
  84. package/dist/{metro-CjC10t6E.mjs → metro-BnhXV2Mj.mjs} +4 -4
  85. package/dist/{metro-gateway-B6_PgD0L.mjs → metro-request-DXyKjVDF.mjs} +26 -47
  86. package/dist/{named-ports-BG0j1X4g.mjs → named-ports-Phoi2POD.mjs} +3 -3
  87. package/dist/{native-android-CL2NGiik.mjs → native-android-vxgtLD7w.mjs} +17 -18
  88. package/dist/{native-gradle-artifact-inputs-btSUulme.mjs → native-gradle-artifact-inputs-BN96IVw8.mjs} +5 -5
  89. package/dist/{native-runtime-Dq3RBcON.mjs → native-runtime-DG4Rodzj.mjs} +9 -8
  90. package/dist/{native-source-D-4Dh4JU.mjs → native-source-D1AzWiuP.mjs} +1 -1
  91. package/dist/{native-xcode-inputs-BW7H8JGu.mjs → native-xcode-inputs-BKarCoKg.mjs} +3 -3
  92. package/dist/{native-xcode-ios-CBXJAxfC.mjs → native-xcode-ios-8A-efGa5.mjs} +17 -17
  93. package/dist/{ndjson-CgE_o3Dl.mjs → ndjson-Dy2W4vRa.mjs} +2 -2
  94. package/dist/offload-worker.mjs +23 -24
  95. package/dist/{operation-exec-CUZifp6Z.mjs → operation-exec-Dp4FuIGR.mjs} +1 -1
  96. package/dist/{ownership-BjYvMNX_.mjs → ownership-DJCq48IJ.mjs} +3 -3
  97. package/dist/{page-CzEA_-5_.mjs → page-CQJlcj3x.mjs} +2 -2
  98. package/dist/{phone-reverses-lmj6kcPm.mjs → phone-reverses-BzTa8g1F.mjs} +18 -4
  99. package/dist/{placement-log-DIFPQAXp.mjs → placement-log-Cvhta5ib.mjs} +3 -3
  100. package/dist/{plan-placement-IiiSQhtz.mjs → plan-placement-WkZdccuN.mjs} +36 -10
  101. package/dist/{ports-C2_w1Z0Z.mjs → ports-UV4mJgyC.mjs} +3 -3
  102. package/dist/{prebuild-gmouvmJZ.mjs → prebuild-k8d_tqOq.mjs} +16 -17
  103. package/dist/{project-BUu6Is4k.mjs → project-Sui52ywT.mjs} +17 -17
  104. package/dist/{pull-request-CbNlkFok.mjs → pull-request-BzLmzAIQ.mjs} +2 -2
  105. package/dist/pull-requests.mjs +1 -1
  106. package/dist/{react-native-android-Cgg99REN.mjs → react-native-android-DANlGGQf.mjs} +32 -26
  107. package/dist/{react-native-build-oNwqF5Wb.mjs → react-native-build-jUHnIfZ9.mjs} +9 -9
  108. package/dist/{react-native-doctor-BhA3KUte.mjs → react-native-doctor-DCWRjS7K.mjs} +6 -6
  109. package/dist/{react-native-ios-B-nf4rjN.mjs → react-native-ios-BwMsFMXi.mjs} +23 -17
  110. package/dist/{recordings-BldzVKq0.mjs → recordings-iy0mkm7b.mjs} +1 -1
  111. package/dist/{registration-CN6nlhcD.mjs → registration-BwCe64PH.mjs} +1 -1
  112. package/dist/{reload-C9OduiNc.mjs → reload-Bj7QyuDy.mjs} +1 -1
  113. package/dist/{reload-CCR7KC_l.mjs → reload-c_uEyc_X.mjs} +16 -16
  114. package/dist/{remote-C8S7FlPF.mjs → remote-DFlpAqdV.mjs} +23 -10
  115. package/dist/{result-7F5hEwQJ.mjs → result-BIcXREyC.mjs} +32 -21
  116. package/dist/{run-BqB0v3pt.mjs → run-y2HwyNvg.mjs} +3 -3
  117. package/dist/{selection-BNPBZ6T5.mjs → selection-CXgM_VK_.mjs} +37 -29
  118. package/dist/{server-bare-A75rDIdD.mjs → server-bare-2N4vSRZG.mjs} +2 -2
  119. package/dist/{server-command-CssKFOD7.mjs → server-command-qneHPcRI.mjs} +6 -6
  120. package/dist/{server-expo-eQfOdydb.mjs → server-expo-Ccm9zB0o.mjs} +4 -4
  121. package/dist/server-expo-WulkyAwT.mjs +2 -0
  122. package/dist/{settings-CosW5X-S.mjs → settings-CY5JZlNN.mjs} +375 -62
  123. package/dist/{settings-OaGQF-ri.mjs → settings-Cfd_Q6ys.mjs} +24 -3
  124. package/dist/settings-payload-DwQiEMCn.mjs +257 -0
  125. package/dist/settings-write-CJpjkeAd.mjs +185 -0
  126. package/dist/settings.schema.json +51 -33
  127. package/dist/{simslim-Bax1qcxu.mjs → simslim-DCQwzoPy.mjs} +2 -2
  128. package/dist/{slot-launch-CYCEhfBY.mjs → slot-launch-BpmanOnk.mjs} +6 -6
  129. package/dist/{stage-jKQ7CP_B.mjs → stage-CmugrSG5.mjs} +2 -2
  130. package/dist/{start-C_wefNKB.mjs → start-CHH3zgIU.mjs} +1 -1
  131. package/dist/{start-_BdJ32cZ.mjs → start-DYLk6GXn.mjs} +27 -22
  132. package/dist/{state-C1i2nMOP.mjs → state-B2QJbDwz.mjs} +4 -4
  133. package/dist/{state-C4OdpOTF.mjs → state-BXC1Lfxw.mjs} +2 -2
  134. package/dist/{stats-tEpEEH-u.mjs → stats-DxKqhcGp.mjs} +5 -5
  135. package/dist/{stats-report-n2U5plhk.mjs → stats-report-B86Cv7Uc.mjs} +1 -1
  136. package/dist/{status-CRXz-Gtj.mjs → status-7ULDEJ1e.mjs} +1 -1
  137. package/dist/{status-DQrqodLj.mjs → status-BHCkOZga.mjs} +51 -28
  138. package/dist/{status-B9M7x4CZ.mjs → status-D_Ljc89p.mjs} +1 -1
  139. package/dist/{status-watch-B5wDIH_o.mjs → status-watch-BmsPqYSU.mjs} +18 -7
  140. package/dist/status-worker.mjs +1 -1
  141. package/dist/{stim-desktop-6Dqp-gjX.mjs → stim-desktop-CbWo21kb.mjs} +2 -2
  142. package/dist/{stop-DRqQVqDJ.mjs → stop-D-dGE9gh.mjs} +21 -20
  143. package/dist/{stop-ySNQHXMG.mjs → stop-DQvE-P76.mjs} +10 -6
  144. package/dist/{stop-CmdNhGlC.mjs → stop-b2pouxAO.mjs} +2 -2
  145. package/dist/supervisor-run.mjs +237 -63
  146. package/dist/{support-BGSCBoib.mjs → support-04IhBUTT.mjs} +6 -6
  147. package/dist/{support-CVOCp0Ft.mjs → support-BtlJKjyQ.mjs} +12 -11
  148. package/dist/{swiftpm-artifact-inputs-CfUzt_0Z.mjs → swiftpm-artifact-inputs-Cj2UpmPN.mjs} +4 -4
  149. package/dist/{swiftpm-macos-x6HPpl_2.mjs → swiftpm-macos-BhF2stxY.mjs} +11 -12
  150. package/dist/{toolchain-J4J8MrAr.mjs → toolchain-mLA_km-b.mjs} +321 -15
  151. package/dist/{toolchain-DoavrvIA.mjs → toolchain-qktiV8xc.mjs} +1 -1
  152. package/dist/{trigger-KVaWWNyn.mjs → trigger-DMou-X7j.mjs} +2 -2
  153. package/dist/trigger-qp2ji5wE.mjs +2 -0
  154. package/dist/{warm-progress-DvhTX_eu.mjs → warm-progress-B0Vpuvpl.mjs} +731 -727
  155. package/dist/{web-Bihbf7-u.mjs → web-BYmK0TjL.mjs} +9 -9
  156. package/dist/web-CrVLVQZY.mjs +2 -0
  157. package/dist/web-run.mjs +9 -9
  158. package/dist/windows-report.mjs +1 -1
  159. package/dist/{workspace-state-pUg3_RRA.mjs → workspace-state-kIZrdlSg.mjs} +3 -3
  160. package/dist/{workspaces-g2lhdBXF.mjs → workspaces-CmOcceDN.mjs} +1879 -74
  161. package/dist/{worktree-BKuklFh_.mjs → worktree-2dk5edza.mjs} +933 -534
  162. package/dist/worktree-nliAoHxB.mjs +2 -0
  163. package/package.json +7 -7
  164. package/dist/ccache-Bx5TbxwG.mjs +0 -143
  165. package/dist/eas-fallback-FwkeqqGi.mjs +0 -381
  166. package/dist/hosted-ios-D55QhYaD.mjs +0 -15
  167. package/dist/native-run-BfIDFKLH.mjs +0 -275
  168. package/dist/server-expo-wvcj5tiZ.mjs +0 -2
  169. package/dist/settings-write-QjYfSrjF.mjs +0 -360
  170. package/dist/trigger-DzJu208Q.mjs +0 -2
  171. package/dist/web-BFLueSh-.mjs +0 -2
  172. package/dist/worktree-Bm4cb-nU.mjs +0 -2
@@ -1,9 +1,9 @@
1
- import { r as readWorkspaceState$1, v as ensureWorkspaceStorageAsync } from "./workspace-state-pUg3_RRA.mjs";
2
- import { l as phaseLine } from "./command-output-BF5AR2dL.mjs";
3
- import { M as metroPortSetting } from "./settings-CosW5X-S.mjs";
4
- import { d as resolveProjectMetro } from "./metro-CjC10t6E.mjs";
5
- import { $t as LAUNCH_BUNDLING, tn as LAUNCH_UNVERIFIED } from "./budget-k2mZGvvk.mjs";
6
- import { c as startDevServer } from "./start-_BdJ32cZ.mjs";
1
+ import { r as readWorkspaceState$1, v as ensureWorkspaceStorageAsync } from "./workspace-state-kIZrdlSg.mjs";
2
+ import { l as phaseLine } from "./command-output-C8R1KIvi.mjs";
3
+ import { N as metroPortSetting } from "./settings-CY5JZlNN.mjs";
4
+ import { d as resolveProjectMetro } from "./metro-BnhXV2Mj.mjs";
5
+ import { It as LAUNCH_BUNDLING, Rt as LAUNCH_UNVERIFIED } from "./ccache-Bm_A1xX9.mjs";
6
+ import { c as startDevServer } from "./start-DYLk6GXn.mjs";
7
7
  import { readIdleStop } from "@stim-cli/core/state";
8
8
  import chalk from "chalk";
9
9
  //#region src/commands/native-runtime.ts
@@ -58,11 +58,12 @@ async function ensureWorkspaceStorageSafely(root, { note = (_line) => {} } = {})
58
58
  throw err;
59
59
  }
60
60
  }
61
- function launchOutcomeRecord({ launchState, release, bundleId, configuration, metroPort, unattributed = false }) {
61
+ function launchOutcomeRecord({ launchState, release, process = false, bundleId, configuration, metroPort, unattributed = false }) {
62
62
  const unverified = launchState === LAUNCH_UNVERIFIED;
63
63
  const bundling = launchState === LAUNCH_BUNDLING;
64
64
  let msg;
65
- if (release) msg = unverified ? `${bundleId} could not be verified as running after its ${configuration} launch` : `${bundleId} is running its embedded ${configuration} bundle`;
65
+ if (process) msg = unverified ? `${bundleId} could not be verified as running` : `${bundleId} is running its native process`;
66
+ else if (release) msg = unverified ? `${bundleId} could not be verified as running after its ${configuration} launch` : `${bundleId} is running its embedded ${configuration} bundle`;
66
67
  else if (unverified && unattributed) msg = `a bundle delivered on this workspace's Metro port ${metroPort} could not be attributed to ${bundleId} on this device: another slot of the same platform shares that Metro`;
67
68
  else if (unverified) msg = `no bundle request from ${bundleId} reached this workspace's Metro on port ${metroPort}`;
68
69
  else if (bundling) msg = `${bundleId} requested a bundle from this workspace's Metro on port ${metroPort}; it was still being built when the launch check ended`;
@@ -1,4 +1,4 @@
1
- import { s as gitAsync } from "./operation-exec-CUZifp6Z.mjs";
1
+ import { s as gitAsync } from "./operation-exec-Dp4FuIGR.mjs";
2
2
  import { n as fingerprintNativeInputs, r as manifestDigest } from "./native-inputs-TRTTTRxt.mjs";
3
3
  import { createHash } from "node:crypto";
4
4
  import { createReadStream } from "node:fs";
@@ -1,6 +1,6 @@
1
- import { E as workspaceDir, T as workspaceDerivedData } from "./workspace-state-pUg3_RRA.mjs";
2
- import { a as killOnAbort, l as gitQuietAsync, r as childEnvironment } from "./operation-exec-CUZifp6Z.mjs";
3
- import { h as pbxString, m as pbxReferences } from "./project-BUu6Is4k.mjs";
1
+ import { E as workspaceDir, T as workspaceDerivedData } from "./workspace-state-kIZrdlSg.mjs";
2
+ import { a as killOnAbort, l as gitQuietAsync, r as childEnvironment } from "./operation-exec-Dp4FuIGR.mjs";
3
+ import { h as pbxString, m as pbxReferences } from "./project-Sui52ywT.mjs";
4
4
  import { n as fingerprintNativeInputs, t as NativeInputError } from "./native-inputs-TRTTTRxt.mjs";
5
5
  import { createHash } from "node:crypto";
6
6
  import { existsSync, readFileSync, realpathSync } from "node:fs";
@@ -1,21 +1,21 @@
1
- import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
- import { x as sharedCompilationCache } from "./workspace-state-pUg3_RRA.mjs";
3
- import { K as resolveCacheProviderConfig, Pt as repoRootAsync, W as remoteIosSetting, tt as settingShapeErrors } from "./settings-CosW5X-S.mjs";
4
- import { g as selectNativeXcodeProject, h as pbxString, p as NativeXcodeError } from "./project-BUu6Is4k.mjs";
5
- import { r as register } from "./cache-manifest-BEZ9Bpl1.mjs";
6
- import { Hn as processContext, tt as statsProjectKey } from "./budget-k2mZGvvk.mjs";
7
- import { d as runCancellationSignal } from "./native-run-BfIDFKLH.mjs";
8
- import { n as buildCacheKey, u as filesystemBuildCapability } from "./build-cache-DrXNCy3T.mjs";
1
+ import { t as getExecutor } from "./exec-aULwtNly.mjs";
2
+ import { x as sharedCompilationCache } from "./workspace-state-kIZrdlSg.mjs";
3
+ import { G as remoteIosSetting, J as resolveCacheProviderConfig, Vt as repoRootAsync, rt as settingShapeErrors } from "./settings-CY5JZlNN.mjs";
4
+ import { g as selectNativeXcodeProject, h as pbxString, p as NativeXcodeError } from "./project-Sui52ywT.mjs";
5
+ import { Tn as processContext } from "./ccache-Bm_A1xX9.mjs";
6
+ import { r as register } from "./cache-manifest-DEjqGGat.mjs";
7
+ import { lt as statsProjectKey } from "./workspaces-CmOcceDN.mjs";
8
+ import { D as runCaptured, F as compilationCacheSettings, L as parseSwiftVersion, N as buildXcode, O as runPodInstall, R as parseXcodeMajor, T as readPodState, V as readBundleId, j as HEARTBEAT_INTERVAL_MS, ot as runCancellationSignal, s as iosToolchainAsync, w as podsAreStale } from "./toolchain-mLA_km-b.mjs";
9
+ import { d as filesystemBuildCapability, n as buildCacheKey } from "./build-cache-CZULpXVl.mjs";
9
10
  import { l as artifactCachePolicy, p as resolveOptimizations } from "./errors-DHm_U5gv.mjs";
10
- import { D as runCaptured, F as compilationCacheSettings, L as parseSwiftVersion, N as buildXcode, O as runPodInstall, R as parseXcodeMajor, T as readPodState, V as readBundleId, j as HEARTBEAT_INTERVAL_MS, s as iosToolchainAsync, w as podsAreStale } from "./toolchain-J4J8MrAr.mjs";
11
- import { a as nativeTransferRefusal } from "./client-D9CaRks-.mjs";
12
- import { a as deviceModelRefusal, h as resolveDeviceType, m as resolveConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-CVOCp0Ft.mjs";
13
- import { r as gateProfileForDevice } from "./ios-signing-4c_qXvQm.mjs";
14
- import { s as explainBuildMiss, u as skippedMissReason } from "./prebuild-gmouvmJZ.mjs";
15
- import { n as planFlagRefusal, t as planCachedBuild } from "./build-plan-DrMMdayj.mjs";
16
- import { t as IosRecipeRefusal } from "./ios-project-Ty5pHl9O.mjs";
17
- import { c as iosProcessRuntime, t as DEFAULT_DEPS } from "./dependencies-Dw6wfQdv.mjs";
18
- import { a as nativeXcodeSources, i as nativeXcodePackages, n as nativeXcodeInputSnapshot, t as nativeXcodeHasPackages } from "./native-xcode-inputs-BW7H8JGu.mjs";
11
+ import { a as nativeTransferRefusal } from "./client-YxCer6ab.mjs";
12
+ import { a as deviceModelRefusal, h as resolveDeviceType, m as resolveConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-BtlJKjyQ.mjs";
13
+ import { r as gateProfileForDevice } from "./ios-signing-BJzvDPfU.mjs";
14
+ import { s as explainBuildMiss, u as skippedMissReason } from "./prebuild-k8d_tqOq.mjs";
15
+ import { n as planFlagRefusal, t as planCachedBuild } from "./build-plan-CxoYfxsc.mjs";
16
+ import { t as IosRecipeRefusal } from "./ios-project-CR4mZ7CH.mjs";
17
+ import { c as iosProcessRuntime, t as DEFAULT_DEPS } from "./dependencies-DKeMzwXY.mjs";
18
+ import { a as nativeXcodeSources, i as nativeXcodePackages, n as nativeXcodeInputSnapshot, t as nativeXcodeHasPackages } from "./native-xcode-inputs-BKarCoKg.mjs";
19
19
  import { existsSync } from "node:fs";
20
20
  import { join } from "node:path";
21
21
  //#region src/integrations/native-xcode-ios.ts
@@ -1,5 +1,5 @@
1
1
  import { ensurePrivateDir, rotateLog } from "@stim-cli/core";
2
- import { LEVELS as LEVELS$1, SOURCES as SOURCES$1, levelRank, parseNdjsonLine, parseNdjsonText, readNdjsonGenerations as readNdjsonGenerations$1, runId } from "@stim-cli/core/state";
2
+ import { LEVELS as LEVELS$1, SOURCES as SOURCES$1, createNdjsonTail, levelRank, parseNdjsonLine, parseNdjsonText, readNdjsonGenerations as readNdjsonGenerations$1, runId } from "@stim-cli/core/state";
3
3
  import { dirname } from "path";
4
4
  import { closeSync, openSync, writeSync } from "fs";
5
5
  //#region src/ndjson.ts
@@ -115,4 +115,4 @@ function stamp(record) {
115
115
  };
116
116
  }
117
117
  //#endregion
118
- export { parseNdjsonLine as a, levelRank as i, SOURCES$1 as n, parseNdjsonText as o, createNdjsonWriter as r, readNdjsonGenerations$1 as s, LEVELS$1 as t };
118
+ export { levelRank as a, readNdjsonGenerations$1 as c, createNdjsonWriter as i, SOURCES$1 as n, parseNdjsonLine as o, createNdjsonTail as r, parseNdjsonText as s, LEVELS$1 as t };
@@ -1,29 +1,28 @@
1
- import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
- import { E as workspaceDir, k as workspaceLogsDir$1 } from "./workspace-state-pUg3_RRA.mjs";
3
- import { k as writeConfigSetting } from "./config-BktkY_zC.mjs";
1
+ import { t as getExecutor } from "./exec-aULwtNly.mjs";
2
+ import { E as workspaceDir, k as workspaceLogsDir$1 } from "./workspace-state-kIZrdlSg.mjs";
3
+ import { k as writeConfigSetting } from "./config-Cn94Jc0g.mjs";
4
4
  import { n as stripAnsi } from "./process-output-Fpl8PYi8.mjs";
5
- import { o as git, s as gitAsync } from "./operation-exec-CUZifp6Z.mjs";
6
- import { d as androidLayoutSetting, y as iosProjectDirSetting } from "./settings-CosW5X-S.mjs";
7
- import { f as projectRegistry, g as selectNativeXcodeProject } from "./project-BUu6Is4k.mjs";
8
- import { o as parseNdjsonText } from "./ndjson-CgE_o3Dl.mjs";
9
- import { Hn as processContext } from "./budget-k2mZGvvk.mjs";
10
- import { i as compareSourceLists, p as fingerprintProject, x as refingerprintAfterMutation } from "./build-cache-DrXNCy3T.mjs";
11
- import { _ as unmetNodePin, g as projectNodeLine, h as pathNodeVersion, v as withProjectNode } from "./server-expo-eQfOdydb.mjs";
12
- import { n as CCACHE_UNAVAILABLE, o as resolveCcache } from "./ccache-Bx5TbxwG.mjs";
13
- import { O as runPodInstall, T as readPodState, b as useJdkMajor, i as availableIphone, w as podsAreStale, x as workerToolchain } from "./toolchain-J4J8MrAr.mjs";
14
- import { C as COMPILATION_CACHE_CORRUPT, b as validateGradleManifest, f as reactNativeArtifactReceipt, g as gradleStateDirectories, h as gradleOffloadInputs, m as reactNativeBuildQuery, p as reactNativeArtifactToolchain, v as nativeGradleOutputs, w as clearCorruptCompilationCache, x as verifyGradleTransfer } from "./client-D9CaRks-.mjs";
5
+ import { o as git, s as gitAsync } from "./operation-exec-Dp4FuIGR.mjs";
6
+ import { b as iosProjectDirSetting, d as androidLayoutSetting } from "./settings-CY5JZlNN.mjs";
7
+ import { f as projectRegistry, g as selectNativeXcodeProject } from "./project-Sui52ywT.mjs";
8
+ import { s as parseNdjsonText } from "./ndjson-Dy2W4vRa.mjs";
9
+ import { Tn as processContext, n as CCACHE_UNAVAILABLE, s as resolveCcache } from "./ccache-Bm_A1xX9.mjs";
10
+ import { O as runPodInstall, T as readPodState, b as useJdkMajor, i as availableIphone, w as podsAreStale, x as workerToolchain } from "./toolchain-mLA_km-b.mjs";
11
+ import { S as refingerprintAfterMutation, i as compareSourceLists, m as fingerprintProject } from "./build-cache-CZULpXVl.mjs";
12
+ import { _ as unmetNodePin, g as projectNodeLine, h as pathNodeVersion, v as withProjectNode } from "./server-expo-Ccm9zB0o.mjs";
13
+ import { C as COMPILATION_CACHE_CORRUPT, b as validateGradleManifest, f as reactNativeArtifactReceipt, g as gradleStateDirectories, h as gradleOffloadInputs, m as reactNativeBuildQuery, p as reactNativeArtifactToolchain, v as nativeGradleOutputs, w as clearCorruptCompilationCache, x as verifyGradleTransfer } from "./client-YxCer6ab.mjs";
15
14
  import { n as fingerprintNativeInputs, r as manifestDigest } from "./native-inputs-TRTTTRxt.mjs";
16
- import { a as sourceManifest, o as verifyNativeTransfer } from "./native-source-D-4Dh4JU.mjs";
17
- import { n as buildAndroid, o as gradlewPath, r as buildIos, u as assembleTaskFor } from "./react-native-build-oNwqF5Wb.mjs";
18
- import { f as podAction } from "./support-CVOCp0Ft.mjs";
19
- import { a as runPrebuild, r as recordPrebuild, t as planPrebuild } from "./prebuild-gmouvmJZ.mjs";
20
- import { g as dumpApkManifest, p as apkPackage } from "./support-BGSCBoib.mjs";
21
- import { n as buildAndroidOperation, t as buildIosOperation } from "./build-DPhApsjV.mjs";
22
- import { i as stageBundle, n as resolveBundleExtras } from "./stage-jKQ7CP_B.mjs";
23
- import { t as logLines } from "./run-BqB0v3pt.mjs";
24
- import { r as nativeXcodeMetadataDirectories } from "./native-xcode-inputs-BW7H8JGu.mjs";
25
- import { n as swiftpmArtifactInputs, r as swiftpmArtifactSnapshot, t as readSwiftpmArtifactToolchain } from "./swiftpm-artifact-inputs-CfUzt_0Z.mjs";
26
- import { a as nativeGradleWorkerArtifactIdentity, i as nativeGradleArtifactSnapshotFromReceipt, o as nativeGradleWorkerScope } from "./native-gradle-artifact-inputs-btSUulme.mjs";
15
+ import { a as sourceManifest, o as verifyNativeTransfer } from "./native-source-D1AzWiuP.mjs";
16
+ import { n as buildAndroid, o as gradlewPath, r as buildIos, u as assembleTaskFor } from "./react-native-build-jUHnIfZ9.mjs";
17
+ import { f as podAction } from "./support-BtlJKjyQ.mjs";
18
+ import { a as runPrebuild, r as recordPrebuild, t as planPrebuild } from "./prebuild-k8d_tqOq.mjs";
19
+ import { g as dumpApkManifest, p as apkPackage } from "./support-04IhBUTT.mjs";
20
+ import { n as buildAndroidOperation, t as buildIosOperation } from "./build-cQURy_KW.mjs";
21
+ import { i as stageBundle, n as resolveBundleExtras } from "./stage-CmugrSG5.mjs";
22
+ import { t as logLines } from "./run-y2HwyNvg.mjs";
23
+ import { r as nativeXcodeMetadataDirectories } from "./native-xcode-inputs-BKarCoKg.mjs";
24
+ import { n as swiftpmArtifactInputs, r as swiftpmArtifactSnapshot, t as readSwiftpmArtifactToolchain } from "./swiftpm-artifact-inputs-Cj2UpmPN.mjs";
25
+ import { a as nativeGradleWorkerArtifactIdentity, i as nativeGradleArtifactSnapshotFromReceipt, o as nativeGradleWorkerScope } from "./native-gradle-artifact-inputs-BN96IVw8.mjs";
27
26
  import { createHash } from "node:crypto";
28
27
  import { chmodSync, constants, copyFileSync, cpSync, createReadStream, createWriteStream, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, readlinkSync, realpathSync, renameSync, rmSync, statSync, symlinkSync, writeFileSync } from "node:fs";
29
28
  import { isDeepStrictEqual } from "node:util";
@@ -1,4 +1,4 @@
1
- import { b as operationState, c as throwIfCancelled, l as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-VFRpu1iA.mjs";
1
+ import { b as operationState, c as throwIfCancelled, l as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-aULwtNly.mjs";
2
2
  import { sep } from "node:path";
3
3
  //#region src/workspace/git.ts
4
4
  const GIT_TIMEOUT_MS = 1e4;
@@ -1,6 +1,6 @@
1
- import { S as process_identity_exports } from "./exec-VFRpu1iA.mjs";
2
- import { c as withWorkspaceStateLock, d as writeWorkspaceState, r as readWorkspaceState } from "./workspace-state-pUg3_RRA.mjs";
3
- import { c as pidExists } from "./metro-CjC10t6E.mjs";
1
+ import { S as process_identity_exports } from "./exec-aULwtNly.mjs";
2
+ import { c as withWorkspaceStateLock, d as writeWorkspaceState, r as readWorkspaceState } from "./workspace-state-kIZrdlSg.mjs";
3
+ import { c as pidExists } from "./metro-BnhXV2Mj.mjs";
4
4
  import { realpathSync } from "node:fs";
5
5
  //#region src/collector/state.ts
6
6
  function collectorRoot(root) {
@@ -1,5 +1,5 @@
1
- import { S as process_identity_exports, c as throwIfCancelled } from "./exec-VFRpu1iA.mjs";
2
- import { t as connectOwnedBrowser } from "./cdp-BG3FJCCx.mjs";
1
+ import { S as process_identity_exports, c as throwIfCancelled } from "./exec-aULwtNly.mjs";
2
+ import { t as connectOwnedBrowser } from "./cdp-C3svvXiE.mjs";
3
3
  //#region src/web/page.ts
4
4
  /** The record of a verified live browser: its supervisor and Chrome are the processes the record names. */
5
5
  function liveWebRecord(record) {
@@ -1,7 +1,21 @@
1
- import { r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-pUg3_RRA.mjs";
2
- import { U as parseDeviceSlotKey, V as deviceSlotKey } from "./config-BktkY_zC.mjs";
3
- import { $ as removeMetroReverses } from "./android-DTAcRwBC.mjs";
1
+ import { r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-kIZrdlSg.mjs";
2
+ import { U as parseDeviceSlotKey, V as deviceSlotKey } from "./config-Cn94Jc0g.mjs";
3
+ import { $ as removeMetroReverses } from "./android-CsPs-7Mg.mjs";
4
+ import { a as stopHostedNative, i as prepareHostedNative, r as placeHostedNative } from "./hosted-native-CDe33CSr.mjs";
4
5
  import { isJsonObject } from "@stim-cli/core/state";
6
+ //#region src/device-host/hosted-ios.ts
7
+ async function prepareHostedIos(machine, selectors, recorded, mode) {
8
+ return await prepareHostedNative(machine, selectors, recorded, "ios", false, mode);
9
+ }
10
+ async function placeHostedIos(target, options) {
11
+ return await placeHostedNative(target, {
12
+ ...options,
13
+ platform: "ios",
14
+ reserved: (placement) => options.reserved(placement)
15
+ });
16
+ }
17
+ const stopHostedIos = stopHostedNative;
18
+ //#endregion
5
19
  //#region src/devices/phone-reverses.ts
6
20
  const KEY = "phoneReverses";
7
21
  function readRecords(state) {
@@ -54,4 +68,4 @@ async function removePhoneReverses(root, { slot, operation } = {}) {
54
68
  });
55
69
  }
56
70
  //#endregion
57
- export { removePhoneReverses as n, recordPhoneReverse as t };
71
+ export { stopHostedIos as a, prepareHostedIos as i, removePhoneReverses as n, placeHostedIos as r, recordPhoneReverse as t };
@@ -1,4 +1,4 @@
1
- import { n as buildPlacementSettings } from "./selection-BNPBZ6T5.mjs";
1
+ import { r as buildPlacementSettings } from "./selection-CXgM_VK_.mjs";
2
2
  //#region src/placement-log.ts
3
3
  /** `machine` is `local` when the run stays on this machine. */
4
4
  function placementRecord(input) {
@@ -20,13 +20,13 @@ function skippedCandidates(skipped) {
20
20
  msg: reason
21
21
  }));
22
22
  }
23
- function devicePlacementRecord({ platform, fromFlag, easFallback = false, placed }) {
23
+ function devicePlacementRecord({ platform, selected = "auto", fromFlag, easFallback = false, placed }) {
24
24
  return placementRecord({
25
25
  kind: "device",
26
26
  platform,
27
27
  settings: [{
28
28
  key: `${platform}.remote`,
29
- value: "auto",
29
+ value: selected,
30
30
  from: fromFlag ? "flag" : "setting"
31
31
  }, ...easFallback ? [{
32
32
  key: "remote.easFallback",
@@ -1,15 +1,22 @@
1
- import { h as hostingMachines } from "./selection-BNPBZ6T5.mjs";
2
- import { r as readHostedNative } from "./ios-state-Cw7-WQf2.mjs";
3
- import { i as probeHost, n as automaticDevicePlacement } from "./eas-fallback-FwkeqqGi.mjs";
1
+ import { _ as loadConfig$1 } from "./config-Cn94Jc0g.mjs";
2
+ import { Tn as processContext } from "./ccache-Bm_A1xX9.mjs";
3
+ import { _ as hostingMachines } from "./selection-CXgM_VK_.mjs";
4
+ import { r as readHostedNative } from "./ios-state-BPHqMDdZ.mjs";
5
+ import { n as buildPreferenceRefusal } from "./settings-payload-DwQiEMCn.mjs";
6
+ import { r as probeHost, t as automaticDevicePlacement } from "./auto-placement-BVqs8AJi.mjs";
4
7
  import { automaticMachineEnabled } from "@stim-cli/core/state";
5
8
  //#region src/device-host/plan-placement.ts
9
+ const DOCTOR_REMEDY = "Run `stim doctor` to check the hosts and settings placement uses.";
10
+ function planChoice(choice) {
11
+ return choice && ("runtime" in choice || "systemImage" in choice) ? choice : null;
12
+ }
6
13
  /**
7
14
  * Where `--plan` assumes the next run puts its simulator or emulator, with no session, reservation or state write.
8
15
  * A named Mac, or the Mac a recorded session already holds, answers with the device its `device-host.offer` would
9
16
  * give; `auto` repeats the placement decision a run makes now and, when that stays on this machine, notes any Mac
10
17
  * whose device would key differently. The result predicts the cache key only; a run reads its own device.
11
18
  */
12
- async function planHostedDevice({ root, slot, platform, machine, selectors, sameKey, eas, deps = {}, operation }) {
19
+ async function planHostedDevice({ root, slot, platform, machine, placement = "auto", selectors, sameKey, eas, deps = {}, operation }) {
13
20
  const { automatic = automaticDevicePlacement, probe = probeHost, machines = () => hostingMachines(void 0, operation?.signal) } = deps;
14
21
  const named = async (name) => {
15
22
  const result = await probe(name, platform, selectors, void 0, operation?.signal);
@@ -17,7 +24,8 @@ async function planHostedDevice({ root, slot, platform, machine, selectors, same
17
24
  kind: "unknown",
18
25
  reason: `${name} did not give a ${platform} device (${result.probe.failure})`
19
26
  };
20
- const { choice, declined } = result.probe.offer;
27
+ const { declined } = result.probe.offer;
28
+ const choice = planChoice(result.probe.offer.choice);
21
29
  if (!choice) return {
22
30
  kind: "unknown",
23
31
  reason: `${name} has no ${platform} device for this selection${declined ? ` (${declined})` : ""}`
@@ -32,12 +40,21 @@ async function planHostedDevice({ root, slot, platform, machine, selectors, same
32
40
  try {
33
41
  const recorded = readHostedNative(root, platform, slot)[slot];
34
42
  if (recorded) return await named(recorded.machine);
43
+ const invalid = buildPreferenceRefusal((operation ?? processContext(root)).env, loadConfig$1()?.remote?.build);
44
+ if (invalid) return {
45
+ kind: "refused",
46
+ code: invalid.code,
47
+ message: invalid.message,
48
+ remedy: invalid.remedy ?? DOCTOR_REMEDY
49
+ };
35
50
  const placed = await automatic({
36
51
  root,
37
52
  slot,
38
53
  platform,
54
+ placement,
39
55
  selectors,
40
56
  noWait: false,
57
+ waitMs: 0,
41
58
  signal: operation?.signal,
42
59
  ...eas ? { eas } : {}
43
60
  }, {
@@ -46,27 +63,36 @@ async function planHostedDevice({ root, slot, platform, machine, selectors, same
46
63
  });
47
64
  if (placed.placement.decision === "eas") return {
48
65
  kind: "unknown",
49
- reason: `auto would run on an EAS Simulator now (${placed.placement.reason}), which --plan cannot read without a session`
66
+ reason: `${placement} would run on an EAS Simulator now (${placed.placement.reason}), which --plan cannot read without a session`
50
67
  };
51
68
  if (placed.target) return {
52
69
  kind: "hosted",
53
70
  choice: placed.target.choice,
54
- placement: `on ${placed.target.host.machine}, as auto would now`
71
+ placement: `on ${placed.target.host.machine}, as ${placement} would now`
55
72
  };
56
73
  const names = (await machines() ?? []).filter((name) => automaticMachineEnabled("device", name));
57
74
  operation?.signal.throwIfAborted();
58
75
  const offers = await Promise.all(names.map((name) => probe(name, platform, selectors, void 0, operation?.signal)));
59
- const differs = (await Promise.all(offers.map(async ({ probe: each }) => "offer" in each && each.offer.choice && await sameKey(each.offer.choice) === false ? [each.machine] : []))).flat();
76
+ const differs = (await Promise.all(offers.map(async ({ probe: each }) => {
77
+ const choice = "offer" in each ? planChoice(each.offer.choice) : null;
78
+ return choice && await sameKey(choice) === false ? [each.machine] : [];
79
+ }))).flat();
60
80
  if (differs.length) return {
61
81
  kind: "local",
62
- placement: `this machine; auto may use ${differs.join(", ")}, which builds for another architecture, so its key differs`
82
+ placement: `this machine; ${placement} may use ${differs.join(", ")}, which builds for another architecture, so its key differs`
63
83
  };
64
84
  return {
65
85
  kind: "local",
66
- placement: names.length ? `this machine; auto may use ${names.join(", ")}` : "this machine"
86
+ placement: names.length ? `this machine; ${placement} may use ${names.join(", ")}` : "this machine"
67
87
  };
68
88
  } catch (error) {
69
89
  operation?.signal.throwIfAborted();
90
+ if (error instanceof Error && "code" in error && error.code === "STIM_HOSTING_REFUSED") return {
91
+ kind: "refused",
92
+ code: error.code,
93
+ message: error.message,
94
+ remedy: "remedy" in error && typeof error.remedy === "string" ? error.remedy : DOCTOR_REMEDY
95
+ };
70
96
  return {
71
97
  kind: "unknown",
72
98
  reason: error.message
@@ -1,6 +1,6 @@
1
- import { p as getProject } from "./config-BktkY_zC.mjs";
2
- import { n as findCommandWorkspace } from "./project-BUu6Is4k.mjs";
3
- import { n as getNamedPort, t as clearNamedPorts } from "./named-ports-BG0j1X4g.mjs";
1
+ import { p as getProject } from "./config-Cn94Jc0g.mjs";
2
+ import { n as findCommandWorkspace } from "./project-Sui52ywT.mjs";
3
+ import { n as getNamedPort, t as clearNamedPorts } from "./named-ports-Phoi2POD.mjs";
4
4
  //#region src/commands/ports.ts
5
5
  async function inProject(action) {
6
6
  try {
@@ -1,28 +1,26 @@
1
- import { E as debugLog, _ as spawnDeclared, t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
- import { M as withDirLock$1, l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, y as sharedBuildCache } from "./workspace-state-pUg3_RRA.mjs";
1
+ import { E as debugLog, _ as spawnDeclared, t as getExecutor } from "./exec-aULwtNly.mjs";
2
+ import { M as withDirLock$1, l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, y as sharedBuildCache } from "./workspace-state-kIZrdlSg.mjs";
3
3
  import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
4
- import { m as shortHash } from "./command-output-BF5AR2dL.mjs";
5
- import { o as git, s as gitAsync } from "./operation-exec-CUZifp6Z.mjs";
6
- import { bt as gitCommonDirOnDisk } from "./settings-CosW5X-S.mjs";
7
- import { v as detectIsExpo } from "./project-BUu6Is4k.mjs";
8
- import { r as register } from "./cache-manifest-BEZ9Bpl1.mjs";
9
- import { ir as remoteCliInvocation } from "./budget-k2mZGvvk.mjs";
10
- import { E as storedSources, _ as packageIn, f as fingerprintOptions, l as expoEnvFiles, o as diffFingerprintSources, p as fingerprintProject } from "./build-cache-DrXNCy3T.mjs";
11
- import { i as expoBinRefusal, o as expoSdkMajor, r as expoBinPath, s as expoTelemetryEnv } from "./server-expo-eQfOdydb.mjs";
12
- import { t as readDoctorFingerprint } from "./doctor-fingerprint-D3a04Mhu.mjs";
4
+ import { m as shortHash } from "./command-output-C8R1KIvi.mjs";
5
+ import { o as git, s as gitAsync } from "./operation-exec-Dp4FuIGR.mjs";
6
+ import { Ct as gitCommonDirOnDisk } from "./settings-CY5JZlNN.mjs";
7
+ import { v as detectIsExpo } from "./project-Sui52ywT.mjs";
8
+ import { Vn as remoteCliInvocation } from "./ccache-Bm_A1xX9.mjs";
9
+ import { r as register } from "./cache-manifest-DEjqGGat.mjs";
10
+ import { nt as STIM_VERSION } from "./workspaces-CmOcceDN.mjs";
11
+ import { D as storedSources, m as fingerprintProject, o as diffFingerprintSources, p as fingerprintOptions, u as expoEnvFiles, v as packageIn } from "./build-cache-CZULpXVl.mjs";
12
+ import { i as expoBinRefusal, o as expoSdkMajor, r as expoBinPath, s as expoTelemetryEnv } from "./server-expo-Ccm9zB0o.mjs";
13
+ import { t as readDoctorFingerprint } from "./doctor-fingerprint-o7ZI9YLn.mjs";
13
14
  import { createRequire } from "node:module";
14
15
  import { createHash } from "node:crypto";
15
16
  import { existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, readlinkSync, realpathSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
16
17
  import { dirname, isAbsolute, join, posix, relative, resolve, sep } from "node:path";
17
18
  import { ambientContext } from "@stim-cli/core";
18
- import { FINGERPRINT_MEMO_SCHEMA, LAST_BUILD_KEYS, fingerprintMemoDir, fingerprintMemoFile, fingerprintMemoLock, loadConfig, readFingerprintMemo, readWorkspaceState } from "@stim-cli/core/state";
19
+ import { FINGERPRINT_MEMO_SCHEMA, LAST_BUILD_KEYS, fingerprintMemoDir, fingerprintMemoFile, fingerprintMemoLock, loadConfig, readFingerprintMemo, readWorkspaceState, trace } from "@stim-cli/core/state";
19
20
  import { readFile } from "node:fs/promises";
20
21
  import * as expoFingerprint from "@expo/fingerprint";
21
22
  import { normalizeOptionsAsync } from "@expo/fingerprint/build/Options.js";
22
23
  import { isIgnoredPathWithMatchObjects } from "@expo/fingerprint/build/utils/Path.js";
23
- //#region src/stim-version.ts
24
- const STIM_VERSION = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")).version;
25
- //#endregion
26
24
  //#region src/cache/static-fingerprint.ts
27
25
  const STATIC_SCHEMA = 1;
28
26
  /** More files than this outside git, or ignored by git, means the static check reads too much to be worth it. */
@@ -365,7 +363,7 @@ function contentId(path) {
365
363
  async function staticFingerprint(projectRoot, target, { env, signal }) {
366
364
  try {
367
365
  return {
368
- ...await computeDigest(realpathSync(projectRoot), target, env, signal),
366
+ ...await computeDigest(realpathSync.native(projectRoot), target, env, signal),
369
367
  uncertain: null
370
368
  };
371
369
  } catch (error) {
@@ -383,7 +381,7 @@ async function computeDigest(root, target, env, signal) {
383
381
  if (normalized.nativeModuleSourceType !== "package" || normalized.configPluginSourceType !== "package") throw new Uncertain("the fingerprint preset hashes package files");
384
382
  let top;
385
383
  try {
386
- top = realpathSync(await gitAsync(root, ["rev-parse", "--show-toplevel"], { signal }));
384
+ top = realpathSync.native(await gitAsync(root, ["rev-parse", "--show-toplevel"], { signal }));
387
385
  } catch {
388
386
  throw new Uncertain("the project is not in a git work tree");
389
387
  }
@@ -705,6 +703,7 @@ async function memoizedFingerprint(projectRoot, target, { consult, record, opera
705
703
  else {
706
704
  if (record) dropRecord(target.platform, before.digest);
707
705
  debugLog.log("fingerprint_memo_hit", { platform: target.platform });
706
+ trace.mark("fingerprint memo hit", { platform: target.platform });
708
707
  return {
709
708
  fingerprint: {
710
709
  hash: stored.hash,
@@ -1,7 +1,7 @@
1
- import { S as process_identity_exports } from "./exec-VFRpu1iA.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-pUg3_RRA.mjs";
3
- import { U as parseDeviceSlotKey, V as deviceSlotKey, _ as loadConfig$1, g as isPathPrefix, l as findEnclosingWorktreeRoot, p as getProject } from "./config-BktkY_zC.mjs";
4
- import { G as resolveAndroidLayout, Nt as repoRoot, nt as settingValueAt, ot as webSettings, q as resolveIosProjectDir } from "./settings-CosW5X-S.mjs";
1
+ import { S as process_identity_exports } from "./exec-aULwtNly.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-kIZrdlSg.mjs";
3
+ import { U as parseDeviceSlotKey, V as deviceSlotKey, _ as loadConfig$1, g as isPathPrefix$1, l as findEnclosingWorktreeRoot, p as getProject } from "./config-Cn94Jc0g.mjs";
4
+ import { Bt as repoRoot, Y as resolveIosProjectDir, ct as webSettings, it as settingValueAt, q as resolveAndroidLayout } from "./settings-CY5JZlNN.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-CL2NGiik.mjs")).nativeAndroidProject(root),
315
- doctor: async () => (await import("./native-android-CL2NGiik.mjs")).nativeAndroidDoctor(root)
314
+ android: async () => (await import("./native-android-vxgtLD7w.mjs")).nativeAndroidProject(root),
315
+ doctor: async () => (await import("./native-android-vxgtLD7w.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-CBXJAxfC.mjs")).nativeXcodeIosProject(root),
744
- doctor: async () => (await import("./native-xcode-ios-CBXJAxfC.mjs")).nativeXcodeDoctor(root)
743
+ ios: async () => (await import("./native-xcode-ios-8A-efGa5.mjs")).nativeXcodeIosProject(root),
744
+ doctor: async () => (await import("./native-xcode-ios-8A-efGa5.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-wvcj5tiZ.mjs")).startExpoServer,
949
+ loadDevServer: async () => (await import("./server-expo-WulkyAwT.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-A75rDIdD.mjs")).startBareServer,
969
+ loadDevServer: async () => (await import("./server-bare-2N4vSRZG.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-B-nf4rjN.mjs")).reactNativeIosProject(root, settings),
1000
- android: async (resolved) => (await import("./react-native-android-Cgg99REN.mjs")).reactNativeAndroidProject(root, resolved),
1001
- doctor: async () => (await import("./react-native-doctor-BhA3KUte.mjs")).reactNativeProjectDoctor(root)
999
+ ios: async (settings) => (await import("./react-native-ios-BwMsFMXi.mjs")).reactNativeIosProject(root, settings),
1000
+ android: async (resolved) => (await import("./react-native-android-DANlGGQf.mjs")).reactNativeAndroidProject(root, resolved),
1001
+ doctor: async () => (await import("./react-native-doctor-DCWRjS7K.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-x6HPpl_2.mjs")).swiftpmMacosProject(root),
1015
+ macos: async () => (await import("./swiftpm-macos-BhF2stxY.mjs")).swiftpmMacosProject(root),
1016
1016
  doctor: async () => {
1017
- const { macosToolchain, macosToolchainAsync } = await import("./toolchain-DoavrvIA.mjs");
1017
+ const { macosToolchain, macosToolchainAsync } = await import("./toolchain-qktiV8xc.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-rYPyqhTf.mjs")).browserWebProject(root)
1037
+ web: async () => (await import("./browser-web-BUaLcafY.mjs")).browserWebProject(root)
1038
1038
  };
1039
1039
  }
1040
1040
  },
@@ -1104,7 +1104,7 @@ function startServerWorkspace(startDir, registry) {
1104
1104
  }
1105
1105
  function sameRepositoryApps(nearest, top, registry) {
1106
1106
  const worktree = expandedRealpath(top);
1107
- return Object.keys(loadConfig$1()?.projects ?? {}).filter((path) => path !== nearest && isPathPrefix(worktree, expandedRealpath(path)) && registry.isMobileProject(path));
1107
+ return Object.keys(loadConfig$1()?.projects ?? {}).filter((path) => path !== nearest && isPathPrefix$1(worktree, expandedRealpath(path)) && registry.isMobileProject(path));
1108
1108
  }
1109
1109
  function chooseServerWorkspace(nearest, top, candidates, owners) {
1110
1110
  const worktree = expandedRealpath(top);
@@ -1,5 +1,5 @@
1
- import { l as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
- import { c as gitQuiet, l as gitQuietAsync, r as childEnvironment, s as gitAsync, t as runOperationFile } from "./operation-exec-CUZifp6Z.mjs";
1
+ import { l as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-aULwtNly.mjs";
2
+ import { c as gitQuiet, l as gitQuietAsync, r as childEnvironment, s as gitAsync, t as runOperationFile } from "./operation-exec-Dp4FuIGR.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-CbNlkFok.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-BzLmzAIQ.mjs";
2
2
  export { checkCounts, describePullRequest, endedPullRequest, parseRemoteRepo, pullRequestLookup, pullRequestLookupAsync, pullRequestLookups, selectPullRequest, worktreePullRequests };