stim 1.23.1 → 1.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/README.md +3 -2
  2. package/dist/{acquire-artifact-BzYRDgaP.mjs → acquire-artifact-CEs02U2o.mjs} +2 -2
  3. package/dist/{act-vxiMwdf5.mjs → act-Cyvm8xYc.mjs} +40 -25
  4. package/dist/{activity-BpWUPgUm.mjs → activity-Dq3ZcdD8.mjs} +6 -6
  5. package/dist/{agent-device-usage-output-CUlLsbRt.mjs → agent-device-usage-output-CccomeE0.mjs} +5 -5
  6. package/dist/{android-C7sVmyI9.mjs → android-882m4hxX.mjs} +140 -46
  7. package/dist/{android-DtfRGLcc.mjs → android-BZppyPe_.mjs} +66 -46
  8. package/dist/{android-DR5lZ2Az.mjs → android-CX5IcRuf.mjs} +13 -3
  9. package/dist/{android-CLi6DSiS.mjs → android-DcztblCT.mjs} +5 -5
  10. package/dist/{android-cas-ngferVq2.mjs → android-cas-BtCOrNqb.mjs} +3 -3
  11. package/dist/android-cas-compiler.mjs +1 -1
  12. package/dist/api.d.mts +21 -4
  13. package/dist/api.mjs +32 -31
  14. package/dist/{artifact-Xvgibgzq.mjs → artifact-BR5VNArK.mjs} +17 -16
  15. package/dist/{artifact-DBI3DALs.mjs → artifact-Bdt_n9Jc.mjs} +17 -16
  16. package/dist/{artifact-platform-CXcmX_j3.mjs → artifact-platform-CMRc0M_r.mjs} +3 -3
  17. package/dist/{browser-web-BJN9ZHxB.mjs → browser-web-ycg9qWB8.mjs} +16 -17
  18. package/dist/{budget-3ivAK99e.mjs → budget-dPGuhNai.mjs} +101 -40
  19. package/dist/{build-Dv9s8Fz-.mjs → build-CaF574eS.mjs} +31 -28
  20. package/dist/{build-cache-Dv7RN200.mjs → build-cache-HFUQ9eLz.mjs} +152 -19
  21. package/dist/{build-plan-BmbdHQbr.mjs → build-plan-JsDUq4w1.mjs} +8 -7
  22. package/dist/{cache-manifest-DSeQjt-Q.mjs → cache-manifest-BPXRONJz.mjs} +1 -1
  23. package/dist/cache-manifest.mjs +1 -1
  24. package/dist/{ccache-CH2EWGPB.mjs → ccache-CCn1S6qG.mjs} +6 -6
  25. package/dist/{cdp-3fwICjzi.mjs → cdp-BG3FJCCx.mjs} +1 -1
  26. package/dist/{chrome-Bbw689-6.mjs → chrome-BvV8ssI3.mjs} +1 -1
  27. package/dist/{cli-BkK6Wr5i.mjs → cli-xqAidP7O.mjs} +20 -20
  28. package/dist/cli.mjs +1 -1
  29. package/dist/{client-B4MMzfo_.mjs → client-18-ZowoT.mjs} +254 -28
  30. package/dist/collector-run.mjs +6 -6
  31. package/dist/{command-output-YKGWivpG.mjs → command-output-DxC0k2rk.mjs} +3 -2
  32. package/dist/{config-DlrsduwG.mjs → config-BZhXY15H.mjs} +3 -3
  33. package/dist/{created-devices-x9rN6bhs.mjs → created-devices-D2Aca-xu.mjs} +6 -2
  34. package/dist/{dependency-state-1I9KZT1Y.mjs → dependency-state-C56ll9hY.mjs} +2 -2
  35. package/dist/{detached-entry-BwNEtIrP.mjs → detached-entry-KmieOKgN.mjs} +1 -1
  36. package/dist/{dev-client-BFxiDpkf.mjs → dev-client-w_fok0Ek.mjs} +3 -3
  37. package/dist/{device-B7ljwccX.mjs → device-4RUugw5X.mjs} +16 -16
  38. package/dist/{device-CiNYxqp6.mjs → device-BktRGdjS.mjs} +40 -44
  39. package/dist/{device-capacity-DH0QsZYZ.mjs → device-capacity-Ic-kdmEV.mjs} +20 -16
  40. package/dist/device-host-worker.mjs +17 -17
  41. package/dist/{device-ios-CbVDtDIy.mjs → device-ios-DzpSlZyd.mjs} +23 -52
  42. package/dist/{device-lease-run-DXPSwdbb.mjs → device-lease-run-DUtkbqBQ.mjs} +5 -5
  43. package/dist/{device-pool-B4iOXIrD.mjs → device-pool-CgBHk401.mjs} +3 -3
  44. package/dist/{doctor-DRu-8ld6.mjs → doctor-BZ6oxNum.mjs} +1 -1
  45. package/dist/{doctor-HUC1igzw.mjs → doctor-C33AzVfR.mjs} +28 -28
  46. package/dist/{doctor-C6t4Maue.mjs → doctor-DZgpqR6J.mjs} +14 -14
  47. package/dist/{doctor-fingerprint-DZLoYFVb.mjs → doctor-fingerprint-zlujA1Gs.mjs} +1 -1
  48. package/dist/doctor-fingerprint.mjs +1 -1
  49. package/dist/{doctor-watchman-iGBpC6KM.mjs → doctor-watchman-B453A231.mjs} +5 -5
  50. package/dist/{eas-build-DMWSSvxq.mjs → eas-build-CxKUNHsb.mjs} +4 -4
  51. package/dist/{eas-fallback-vKlrqxgE.mjs → eas-fallback-LMxk9Kw0.mjs} +14 -14
  52. package/dist/{eas-session-ledger-BQF9Yyy9.mjs → eas-session-ledger-Ck6YXPAO.mjs} +12 -8
  53. package/dist/{error-diagnostics-DYsjJIHz.mjs → error-diagnostics-BkKCZq4P.mjs} +17 -42
  54. package/dist/{exec-DEoAhcze.mjs → exec-VFRpu1iA.mjs} +116 -28
  55. package/dist/{gc-dDE4QPVu.mjs → gc-DDWEAj0w.mjs} +2 -2
  56. package/dist/{gc-BW8E1uSC.mjs → gc-yVKpAOKM.mjs} +205 -28
  57. package/dist/{guide-DYYEO3Wz.mjs → guide-Bggftwc5.mjs} +222 -59
  58. package/dist/{hosted-android-xcfgCgSF.mjs → hosted-android-D4dweBof.mjs} +4 -4
  59. package/dist/{hosted-client-Bt-tndxV.mjs → hosted-client-BBTVe3X6.mjs} +4 -4
  60. package/dist/{hosted-ios-y19jCYFF.mjs → hosted-ios-Sn0djzg8.mjs} +1 -1
  61. package/dist/{hosted-logs-DzJKzKlj.mjs → hosted-logs-CYIZ5ubJ.mjs} +11 -6
  62. package/dist/{hosted-macos-BJusKvqL.mjs → hosted-macos-CXjsUNBR.mjs} +7 -7
  63. package/dist/{hosted-native-BmQC6U_x.mjs → hosted-native-Doxbfzem.mjs} +58 -11
  64. package/dist/{idle-shutdown-CJmUOV5x.mjs → idle-shutdown-BInjLKqm.mjs} +10 -10
  65. package/dist/{ios-CWjqfSm_.mjs → ios-B1FXRCMX.mjs} +71 -44
  66. package/dist/{ios-DTOYZGMJ.mjs → ios-BItP6lkn.mjs} +8 -8
  67. package/dist/{ios-hcBpnEGk.mjs → ios-CVUFFZ6C.mjs} +70 -13
  68. package/dist/{ios-xtlRHaeB.mjs → ios-ENC4sRPA.mjs} +1 -1
  69. package/dist/{ios-device-BXZ0c7Kb.mjs → ios-device-B6HK951C.mjs} +1 -1
  70. package/dist/{ios-device-DFGuwF4U.mjs → ios-device-BI38NFFH.mjs} +3 -3
  71. package/dist/{ios-project-CSZYI1iu.mjs → ios-project-KYqeJURj.mjs} +5 -5
  72. package/dist/{ios-signing-BtAffm0A.mjs → ios-signing-4c_qXvQm.mjs} +2 -2
  73. package/dist/{ios-state-Dtw5K2aI.mjs → ios-state-DlElquYD.mjs} +15 -7
  74. package/dist/{js-swap-BSBHldmm.mjs → js-swap-BvrQvXHY.mjs} +7 -6
  75. package/dist/{launch-CP2wDCVd.mjs → launch-BVlyQw3T.mjs} +51 -49
  76. package/dist/{launch-D-zq8SHG.mjs → launch-SfzGH_s9.mjs} +48 -29
  77. package/dist/{logs-pNvA2hHK.mjs → logs-DXE32kyb.mjs} +16 -9
  78. package/dist/{logs-By5aw3g9.mjs → logs-ovlU7m7N.mjs} +8 -6
  79. package/dist/{macos-CPMahOC2.mjs → macos-B3BveDrU.mjs} +1 -1
  80. package/dist/{macos-C67FZ2ft.mjs → macos-CCfhb-jT.mjs} +49 -42
  81. package/dist/macos-run.mjs +1 -1
  82. package/dist/maintenance-run.mjs +7 -7
  83. package/dist/{metro-DiXtA3Ty.mjs → metro-Bu8LBfzS.mjs} +4 -4
  84. package/dist/{metro-gateway-CKZqKqx7.mjs → metro-gateway-DtsOy-0P.mjs} +3 -4
  85. package/dist/{named-ports-DkEzOfzO.mjs → named-ports-BWDuU5oQ.mjs} +3 -3
  86. package/dist/{native-android-_MWSs3PP.mjs → native-android-96BBizbq.mjs} +17 -17
  87. package/dist/{native-gradle-artifact-inputs-DHFnmrVf.mjs → native-gradle-artifact-inputs-BcLYBZil.mjs} +5 -5
  88. package/dist/{native-run-Dv88i0aU.mjs → native-run-BmH7U8pr.mjs} +6 -6
  89. package/dist/{native-runtime-DBRfY_PN.mjs → native-runtime-DgtJkzIa.mjs} +10 -9
  90. package/dist/{native-source-Y0yLhFyQ.mjs → native-source-D-4Dh4JU.mjs} +7 -4
  91. package/dist/{native-xcode-inputs-CqViUh3r.mjs → native-xcode-inputs-irplbQb0.mjs} +2 -2
  92. package/dist/{native-xcode-ios-vFgqL_yS.mjs → native-xcode-ios-BY-6hh6M.mjs} +18 -18
  93. package/dist/offload-worker.d.mts +7 -2
  94. package/dist/offload-worker.mjs +75 -41
  95. package/dist/{operation-exec-BW0em61G.mjs → operation-exec-CUZifp6Z.mjs} +2 -25
  96. package/dist/{ownership-C5fo5Edb.mjs → ownership-DxlZGDcV.mjs} +3 -3
  97. package/dist/{page-DBL2PiUU.mjs → page-CzEA_-5_.mjs} +2 -3
  98. package/dist/phone-reverses-BdsdesVF.mjs +57 -0
  99. package/dist/{placement-log-BnGgJRRZ.mjs → placement-log-DUvqqsB-.mjs} +1 -1
  100. package/dist/{plan-placement-cr0fEU7b.mjs → plan-placement-4axc0Hs7.mjs} +3 -3
  101. package/dist/{ports-DpXjKkSV.mjs → ports-D-E_OiAO.mjs} +3 -3
  102. package/dist/{prebuild-BligW0QS.mjs → prebuild-DmVCf5xb.mjs} +14 -9
  103. package/dist/{project-DhCtQWWU.mjs → project-Dz-hWkb-.mjs} +21 -17
  104. package/dist/{pull-request-W1IuLXDt.mjs → pull-request-CbNlkFok.mjs} +2 -2
  105. package/dist/pull-requests.mjs +1 -1
  106. package/dist/{react-native-android-ZlhQfhvq.mjs → react-native-android-DOinxgwB.mjs} +75 -32
  107. package/dist/{react-native-build-CelbTO_y.mjs → react-native-build-AuCu-aAP.mjs} +22 -19
  108. package/dist/{react-native-doctor-LTIaP7lv.mjs → react-native-doctor-2ivJUmwZ.mjs} +10 -9
  109. package/dist/{react-native-ios-C5W0SA6f.mjs → react-native-ios-D5zTIuH8.mjs} +38 -22
  110. package/dist/{recordings-CQmfzAh7.mjs → recordings-CdPwYwvs.mjs} +1 -1
  111. package/dist/{registration-BcRgF6Ox.mjs → registration-CN6nlhcD.mjs} +1 -1
  112. package/dist/{reload-COJWTbae.mjs → reload-C1TTVesC.mjs} +144 -42
  113. package/dist/{reload-QcwnYLYV.mjs → reload-Ck9RJeSq.mjs} +1 -1
  114. package/dist/{remote-DR8qUERM.mjs → remote-DEZ7AOVq.mjs} +7 -7
  115. package/dist/{result-utnBea7x.mjs → result-DqBrb12U.mjs} +40 -17
  116. package/dist/{run-DidHghD1.mjs → run-BIwoU44q.mjs} +2 -2
  117. package/dist/{selection-DSMbWEX2.mjs → selection-BLtvaqxc.mjs} +11 -5
  118. package/dist/{server-bare-CafzuyFB.mjs → server-bare-Z1ToVLPn.mjs} +2 -2
  119. package/dist/{server-command-B9o92sLM.mjs → server-command-C0pmjNdG.mjs} +5 -5
  120. package/dist/server-expo-CEntXzRw.mjs +2 -0
  121. package/dist/{server-expo-BXrWxNYh.mjs → server-expo-Tt_hLRpy.mjs} +8 -5
  122. package/dist/{settings-C7O8A6ZI.mjs → settings-RKwY33wv.mjs} +114 -19
  123. package/dist/{settings-PfJx8uK1.mjs → settings-kkt0vP4w.mjs} +1 -1
  124. package/dist/{settings-write-Chuy7Cte.mjs → settings-write--gj6MACV.mjs} +7 -7
  125. package/dist/settings.schema.json +13 -0
  126. package/dist/{simslim-BNckWpXi.mjs → simslim-CdWKT3vA.mjs} +2 -2
  127. package/dist/{slot-launch-B7AuoWJv.mjs → slot-launch-A1BgotaM.mjs} +6 -6
  128. package/dist/{stage-C4u17aES.mjs → stage-ERTMh88n.mjs} +2 -3
  129. package/dist/{start-CU8mCPC7.mjs → start-BKGrEhzG.mjs} +75 -35
  130. package/dist/{start-BL_BsiWt.mjs → start-Bmg_qmHi.mjs} +1 -1
  131. package/dist/{state--smjFSTL.mjs → state-B1ig0Kqy.mjs} +4 -4
  132. package/dist/{state-08I3hw3_.mjs → state-BfAltYJP.mjs} +2 -2
  133. package/dist/{stats-CO6sK0Nh.mjs → stats-B-ckuiUg.mjs} +5 -5
  134. package/dist/{stats-report-BzaPrRm6.mjs → stats-report-n2U5plhk.mjs} +1 -1
  135. package/dist/{status-_WPHzVft.mjs → status-DfFp6a76.mjs} +24 -24
  136. package/dist/{status-BRROykC8.mjs → status-Fect2w9R.mjs} +1 -1
  137. package/dist/{status-CrJutl6-.mjs → status-Pw-807f0.mjs} +1 -1
  138. package/dist/{status-watch-BHFasOZN.mjs → status-watch-XC7F-AMf.mjs} +5 -5
  139. package/dist/status-worker.mjs +1 -1
  140. package/dist/stim-clonefile.c +18 -0
  141. package/dist/{stim-desktop-D5OGpYZM.mjs → stim-desktop-DS0mzR8U.mjs} +2 -2
  142. package/dist/{stop-iuFHjUST.mjs → stop-BFu7X_Do.mjs} +2 -2
  143. package/dist/{stop-BJ06ipTZ.mjs → stop-CL1kDHds.mjs} +55 -21
  144. package/dist/{stop-CR5689oB.mjs → stop-DhclRwOO.mjs} +5 -5
  145. package/dist/supervisor-run.mjs +16 -16
  146. package/dist/{support-TWuQlHQo.mjs → support-B1W-hmC2.mjs} +8 -8
  147. package/dist/{support-CbXPbUMJ.mjs → support-B3tzVhKn.mjs} +6 -6
  148. package/dist/{swiftpm-artifact-inputs-DFcGsXDP.mjs → swiftpm-artifact-inputs-BWYPj9Sn.mjs} +4 -4
  149. package/dist/{swiftpm-macos-DbwGCpZg.mjs → swiftpm-macos-BVCP5mO4.mjs} +14 -13
  150. package/dist/{toolchain-XkA2PfJZ.mjs → toolchain-BjgKdoEf.mjs} +1 -1
  151. package/dist/{toolchain-B9hCFCQw.mjs → toolchain-D3bmRMia.mjs} +57 -36
  152. package/dist/trigger-BLsHgAGR.mjs +2 -0
  153. package/dist/{trigger-Cbyc41d_.mjs → trigger-CBMe2YLH.mjs} +2 -2
  154. package/dist/{warm-progress-CA3TgT3-.mjs → warm-progress-ol0ZypEu.mjs} +6 -6
  155. package/dist/{web-DRF_oFXk.mjs → web-BH7peScT.mjs} +12 -10
  156. package/dist/web-BdOFlTJr.mjs +2 -0
  157. package/dist/web-run.mjs +8 -9
  158. package/dist/windows-report.mjs +12 -1
  159. package/dist/windows-report.ps1 +1 -1
  160. package/dist/{workspace-state-U08dEzhG.mjs → workspace-state-CeBpIZgr.mjs} +11 -4
  161. package/dist/{workspaces-e41xsjKr.mjs → workspaces-CSV2Orf4.mjs} +36 -32
  162. package/dist/{worktree-BEwxVwKF.mjs → worktree-DEDUzO_L.mjs} +1 -1
  163. package/dist/{worktree-B4Nj3EGS.mjs → worktree-Dw8kfacb.mjs} +324 -99
  164. package/dist/{xcode-Rq744mBF.mjs → xcode-DHu41qQ4.mjs} +41 -27
  165. package/package.json +7 -7
  166. package/dist/native-gradle-inputs-Dnh84Zbd.mjs +0 -211
  167. package/dist/server-expo-Ddr8cG_c.mjs +0 -2
  168. package/dist/trigger-yb_nFzPF.mjs +0 -2
  169. package/dist/web-kDE9Myoy.mjs +0 -2
@@ -1,37 +1,39 @@
1
- import { d as spawnDeclared, h as withDrainingCancellation, i as withWorkspaceProcessLock, t as getExecutor } from "./exec-DEoAhcze.mjs";
2
- import { d as workspaceDir, l as workspaceAgentDeviceDir, m as workspaceLogsDir$1, n as ensureWorkspaceStorage } from "./paths-DQtTgsBf.mjs";
3
- import { E as upsertProject, u as getConcurrencyLimits } from "./config-DlrsduwG.mjs";
4
- import { l as phaseLine } from "./command-output-YKGWivpG.mjs";
5
- import { f as throwIfCancelled } from "./operation-exec-BW0em61G.mjs";
6
- import { d as writeWorkspaceState, i as recordWorkspaceUse } from "./workspace-state-U08dEzhG.mjs";
7
- import { J as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY, et as settingShapeErrors } from "./settings-C7O8A6ZI.mjs";
8
- import { f as projectRegistry, i as findProjectRoot$1, s as ownedDeviceLabel } from "./project-DhCtQWWU.mjs";
9
- import { i as macosProcess, n as macosDir, o as requiredMacosRecord, r as macosLogFile } from "./state-08I3hw3_.mjs";
1
+ import { _ as spawnDeclared, c as throwIfCancelled, t as getExecutor, u as withWorkspaceProcessLock, x as withDrainingCancellation } from "./exec-VFRpu1iA.mjs";
2
+ import { d as workspaceDir, l as workspaceAgentDeviceDir, m as workspaceLogsDir$1, r as ensureWorkspaceStorageAsync } from "./paths-DQtTgsBf.mjs";
3
+ import { E as upsertProject, O as withConfigLockAsync$1, u as getConcurrencyLimits } from "./config-BZhXY15H.mjs";
4
+ import { l as phaseLine } from "./command-output-DxC0k2rk.mjs";
5
+ import { a as recordWorkspaceUseAsync, f as writeWorkspaceStateAsync } from "./workspace-state-CeBpIZgr.mjs";
6
+ import { J as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY, et as settingShapeErrors } from "./settings-RKwY33wv.mjs";
7
+ import { f as projectRegistry, i as findProjectRoot$1, s as ownedDeviceLabel } from "./project-Dz-hWkb-.mjs";
8
+ import { i as macosProcess, n as macosDir, o as requiredMacosRecord, r as macosLogFile } from "./state-BfAltYJP.mjs";
10
9
  import { r as createNdjsonWriter } from "./ndjson-CgE_o3Dl.mjs";
11
- import { B as recordFinishedBuild, Fn as processContext, H as tapBuildLog, In as runProcessOperation, M as NO_BUILD_PROGRESS, V as startBuildProgress, z as recordBuildPhase } from "./budget-3ivAK99e.mjs";
12
- import { d as runCancellationSignal, f as withNativeBuildRun } from "./native-run-Dv88i0aU.mjs";
13
- import { I as acquireBuildSlot, R as releaseBuildSlot } from "./workspaces-e41xsjKr.mjs";
14
- import { D as sanitizeDeviceLabel } from "./ios-hcBpnEGk.mjs";
15
- import { c as offloadPlacement, h as setRemoteLogSink, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, r as chooseBuildMachine, u as remotePhaseText } from "./client-B4MMzfo_.mjs";
16
- import { a as requireLocalBuild, i as parseBuildMachineOption, r as namedBuildMachine, s as resolveBuildPlacement, t as OffloadRefusal } from "./selection-DSMbWEX2.mjs";
17
- import { l as connectHost } from "./hosted-client-Bt-tndxV.mjs";
18
- import { t as placeHostedMacos } from "./hosted-macos-BJusKvqL.mjs";
19
- import { r as stopMacosAppHeld, t as stopBundleInstances } from "./stop-CR5689oB.mjs";
10
+ import { B as recordFinishedBuild, H as startBuildProgress, Ln as processContext, M as NO_BUILD_PROGRESS, Rn as runProcessOperation, U as tapBuildLog, z as recordBuildPhase } from "./budget-dPGuhNai.mjs";
11
+ import { d as runCancellationSignal, f as withNativeBuildRun } from "./native-run-BmH7U8pr.mjs";
12
+ import { L as acquireBuildSlot, z as releaseBuildSlot } from "./workspaces-CSV2Orf4.mjs";
13
+ import { D as sanitizeDeviceLabel } from "./ios-CVUFFZ6C.mjs";
14
+ import { S as setRemoteLogSink, c as offloadPlacement, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, r as chooseBuildMachine, u as remotePhaseText } from "./client-18-ZowoT.mjs";
15
+ import { a as parseBuildMachineOption, c as resolveBuildPlacement, i as namedBuildMachine, o as requireLocalBuild, t as OffloadRefusal } from "./selection-BLtvaqxc.mjs";
16
+ import { l as connectHost } from "./hosted-client-BBTVe3X6.mjs";
17
+ import { t as placeHostedMacos } from "./hosted-macos-CXjsUNBR.mjs";
18
+ import { r as stopMacosAppHeld, t as stopBundleInstances } from "./stop-DhclRwOO.mjs";
20
19
  import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
21
- import { t as buildPlacementRecord } from "./placement-log-BnGgJRRZ.mjs";
22
- import { t as reidentifyBundle } from "./stage-C4u17aES.mjs";
23
- import { t as validateMacosArtifactPlatform } from "./artifact-platform-CXcmX_j3.mjs";
24
- import { t as waitForMacosRegistration } from "./registration-BcRgF6Ox.mjs";
20
+ import { t as buildPlacementRecord } from "./placement-log-DUvqqsB-.mjs";
21
+ import { t as reidentifyBundle } from "./stage-ERTMh88n.mjs";
22
+ import { t as validateMacosArtifactPlatform } from "./artifact-platform-CMRc0M_r.mjs";
23
+ import { t as waitForMacosRegistration } from "./registration-CN6nlhcD.mjs";
25
24
  import { createHash, randomUUID } from "node:crypto";
26
25
  import { closeSync, existsSync, openSync, promises, realpathSync, renameSync } from "node:fs";
27
26
  import { join } from "node:path";
28
27
  import { LOG_ROTATE_BYTES, ambientEnv } from "@stim-cli/core";
29
28
  import { machineCapacity, validHostedAppArguments } from "@stim-cli/core/state";
30
29
  //#region src/macos/build.ts
31
- async function buildMacosBundle({ context, root, recipe, bundle, bundleId, displayName, scratch, writer, note, record, buildMachine, progress = NO_BUILD_PROGRESS }) {
30
+ async function buildMacosBundle({ context, root, recipe, bundle, bundleId, displayName, scratch, writer, note, record, buildMachine, hostServerKey, progress = NO_BUILD_PROGRESS }) {
32
31
  const signal = runCancellationSignal(context) ?? context.signal;
33
32
  return withDrainingCancellation(context, signal, async () => {
34
33
  throwIfCancelled(signal, "macOS build");
34
+ const { mode, machines, localEnabled } = buildPlacementCandidates(buildMachine);
35
+ const builder = namedBuildMachine(buildMachine) ? machines[0] : void 0;
36
+ const runsOnWorker = hostServerKey !== void 0 && builder?.serverKey === hostServerKey;
35
37
  if (record) record.buildMachine = buildMachine;
36
38
  setRemoteLogSink(context, (entry) => writer.write({
37
39
  ...entry,
@@ -116,7 +118,7 @@ async function buildMacosBundle({ context, root, recipe, bundle, bundleId, displ
116
118
  };
117
119
  try {
118
120
  if (record) record.cacheHit = false;
119
- if (recipe.cache) try {
121
+ if (recipe.cache && !runsOnWorker) try {
120
122
  identity = await recipe.cache.identity();
121
123
  if (record) {
122
124
  record.fingerprint = identity.hash;
@@ -150,7 +152,6 @@ async function buildMacosBundle({ context, root, recipe, bundle, bundleId, displ
150
152
  }
151
153
  let cacheOnly = false;
152
154
  try {
153
- const { mode, machines, localEnabled } = buildPlacementCandidates(buildMachine);
154
155
  const peer = recipe.cache?.peer?.() ?? null;
155
156
  const request = {
156
157
  ...recipe.offload.request(bundleId),
@@ -172,7 +173,7 @@ async function buildMacosBundle({ context, root, recipe, bundle, bundleId, displ
172
173
  if (placement.offload || cacheOnly) {
173
174
  const chosen = await chooseBuildMachine({
174
175
  projectRoot: root,
175
- target: await recipe.offload.target(),
176
+ target: await recipe.offload.target(runsOnWorker),
176
177
  mode,
177
178
  here,
178
179
  machines,
@@ -224,7 +225,7 @@ async function buildMacosBundle({ context, root, recipe, bundle, bundleId, displ
224
225
  progress.step("install");
225
226
  if (outcome.cacheHit) {
226
227
  await reidentifyBundle(context, outcome.artifactPath, bundleId, displayName);
227
- await validateMacosArtifactPlatform(context, outcome.artifactPath, recipe.product, signal);
228
+ await validateMacosArtifactPlatform(context, outcome.artifactPath, recipe.product, signal, runsOnWorker ? chosen.offer.toolchain.arch : void 0);
228
229
  }
229
230
  await recipe.validateFetched(outcome.artifactPath, bundleId, displayName);
230
231
  throwIfCancelled(signal, "macOS build");
@@ -345,7 +346,7 @@ async function planMacos(context, root, buildMachineFlag) {
345
346
  if (selected.failure) throw Object.assign(new Error(selected.failure.message), selected.failure);
346
347
  const macos = settings.macos;
347
348
  if (!macos?.product || !macos.infoPlist) throw Object.assign(/* @__PURE__ */ new Error("Set macos.product and macos.infoPlist explicitly in .stim.json. See stim guide macos."), { code: "STIM_BAD_ARG" });
348
- const { swiftpmMacosProject } = await import("./swiftpm-macos-DbwGCpZg.mjs");
349
+ const { swiftpmMacosProject } = await import("./swiftpm-macos-BVCP5mO4.mjs");
349
350
  const recipe = await swiftpmMacosProject(root).prepare(context, settings);
350
351
  let identity = null;
351
352
  let cacheHit = false;
@@ -398,7 +399,7 @@ async function runMacos(context, root, note = console.error, remote, buildMachin
398
399
  if (selected.failure) throw Object.assign(new Error(selected.failure.message), selected.failure);
399
400
  const buildMachine = selected.selected;
400
401
  const macos = await (await operation.load()).prepare(context, settings);
401
- ensureWorkspaceStorage(root);
402
+ await ensureWorkspaceStorageAsync(root, context.signal);
402
403
  return withNativeBuildRun(context, root, {
403
404
  command: "macos",
404
405
  platform: "macos"
@@ -414,10 +415,15 @@ async function runMacos(context, root, note = console.error, remote, buildMachin
414
415
  const previous = requiredMacosRecord(root);
415
416
  if (previous?.host && previous.host.machine !== remote) throw new Error(`This workspace's macOS app runs on ${previous.host.machine}. Run stim stop first, then stim macos${remote ? ` --remote ${remote}` : ""}.`);
416
417
  if (remote && !validHostedAppArguments(macos.arguments)) throw new Error("macos.arguments is too large for a hosted app: at most 32 arguments of 1024 characters (8192 in total), without NUL or line breaks.");
417
- if (remote) (await connectHost(remote)).connection.close();
418
+ let hostServerKey;
419
+ if (remote) {
420
+ const probe = await connectHost(remote);
421
+ hostServerKey = probe.credential.serverKey;
422
+ probe.connection.close();
423
+ }
418
424
  if (!previous?.host) await stopMacosAppHeld(root);
419
- upsertProject(root, {});
420
- recordWorkspaceUse(root, /* @__PURE__ */ new Date(), context.env, context.cwd);
425
+ await withConfigLockAsync$1(() => upsertProject(root, {}));
426
+ await recordWorkspaceUseAsync(root, /* @__PURE__ */ new Date(), context.env, context.cwd, context.signal);
421
427
  const bundle = join(macosDir(root), `${macos.product}.app`);
422
428
  const record = {
423
429
  product: macos.product,
@@ -437,7 +443,7 @@ async function runMacos(context, root, note = console.error, remote, buildMachin
437
443
  hostLaunched: previous.hostLaunched ?? false
438
444
  } : {}
439
445
  };
440
- const handoff = await buildBundle(context, root, macos, record, remote !== void 0, note, progress);
446
+ const handoff = await buildBundle(context, root, macos, record, remote !== void 0, hostServerKey, note, progress);
441
447
  progress.step("launch");
442
448
  const launched = () => {
443
449
  try {
@@ -452,7 +458,7 @@ async function runMacos(context, root, note = console.error, remote, buildMachin
452
458
  return here;
453
459
  }
454
460
  const connection = await connectHost(remote);
455
- const write = (patch) => writeWorkspaceState(root, { macos: {
461
+ const write = (patch) => writeWorkspaceStateAsync(root, { macos: {
456
462
  ...record,
457
463
  ...patch
458
464
  } });
@@ -467,7 +473,7 @@ async function runMacos(context, root, note = console.error, remote, buildMachin
467
473
  recorded: previous?.host,
468
474
  reserved: (reserved) => {
469
475
  placement = reserved;
470
- write({
476
+ return write({
471
477
  host: reserved,
472
478
  hostLaunched: false
473
479
  });
@@ -481,11 +487,11 @@ async function runMacos(context, root, note = console.error, remote, buildMachin
481
487
  host: run.placement,
482
488
  hostLaunched: run.launched
483
489
  };
484
- writeWorkspaceState(root, { macos: placed });
490
+ await writeWorkspaceStateAsync(root, { macos: placed });
485
491
  launched();
486
492
  return placed;
487
493
  } catch (error) {
488
- write({
494
+ await write({
489
495
  supervisor: void 0,
490
496
  ...placement ? {
491
497
  host: placement,
@@ -503,10 +509,10 @@ async function runMacos(context, root, note = console.error, remote, buildMachin
503
509
  }).finally(() => progress.clear());
504
510
  }, { write: note });
505
511
  }
506
- async function buildBundle(context, root, recipe, record, hosted, note, progress = NO_BUILD_PROGRESS) {
512
+ async function buildBundle(context, root, recipe, record, hosted, hostServerKey, note, progress = NO_BUILD_PROGRESS) {
507
513
  const started = Date.parse(record.build.startedAt);
508
514
  const scratch = join(macosDir(root), "build");
509
- writeWorkspaceState(root, { macos: record });
515
+ await writeWorkspaceStateAsync(root, { macos: record });
510
516
  const writer = tapBuildLog(createNdjsonWriter(macosLogFile(root), { maxBytes: LOG_ROTATE_BYTES }), progress);
511
517
  try {
512
518
  const base = recipe.bundleId;
@@ -524,7 +530,8 @@ async function buildBundle(context, root, recipe, record, hosted, note, progress
524
530
  note,
525
531
  progress,
526
532
  record: record.build,
527
- buildMachine: record.build.buildMachine
533
+ buildMachine: record.build.buildMachine,
534
+ hostServerKey
528
535
  });
529
536
  record.bundleId = built.bundleId;
530
537
  record.displayName = displayName;
@@ -536,7 +543,7 @@ async function buildBundle(context, root, recipe, record, hosted, note, progress
536
543
  finishedAt: (/* @__PURE__ */ new Date()).toISOString(),
537
544
  durationMs: Date.now() - started
538
545
  };
539
- writeWorkspaceState(root, { macos: record });
546
+ await writeWorkspaceStateAsync(root, { macos: record });
540
547
  recordMacosBuild(root, record.build, progress.steps());
541
548
  return built.handoff;
542
549
  } catch (error) {
@@ -555,7 +562,7 @@ async function buildBundle(context, root, recipe, record, hosted, note, progress
555
562
  error: message,
556
563
  ..."code" in Object(error) && typeof error.code === "string" ? { errorCode: error.code } : {}
557
564
  };
558
- writeWorkspaceState(root, { macos: {
565
+ await writeWorkspaceStateAsync(root, { macos: {
559
566
  ...record,
560
567
  supervisor: void 0,
561
568
  build
@@ -1,2 +1,2 @@
1
- import { n as runMacosSupervisor, t as logLines } from "./run-DidHghD1.mjs";
1
+ import { n as runMacosSupervisor, t as logLines } from "./run-BIwoU44q.mjs";
2
2
  export { logLines, runMacosSupervisor };
@@ -1,11 +1,11 @@
1
- import { P as formatBytes } from "./config-DlrsduwG.mjs";
2
- import { Tt as deviceSweepIsScoped, u as resolveBudget } from "./budget-3ivAK99e.mjs";
3
- import { I as memoryCulpritAdvice, N as memoryCulpritsUnder } from "./ios-hcBpnEGk.mjs";
4
- import { v as maintenanceLogger } from "./client-B4MMzfo_.mjs";
1
+ import { P as formatBytes } from "./config-BZhXY15H.mjs";
2
+ import { Dt as deviceSweepIsScoped, u as resolveBudget } from "./budget-dPGuhNai.mjs";
3
+ import { N as memoryCulpritsUnder, R as memoryCulpritAdvice } from "./ios-CVUFFZ6C.mjs";
4
+ import { T as maintenanceLogger } from "./client-18-ZowoT.mjs";
5
5
  import { t as resolveMaintenanceSettings } from "./settings-Djl-mpjX.mjs";
6
- import { t as relaunchWithLogFile } from "./detached-entry-BwNEtIrP.mjs";
7
- import { A as levelFloors, C as measureDisk, D as measureSizes, M as lowestFree, O as sizeScanDeferred, T as measurePressure, j as levelStillShort, k as diskPressureLevel } from "./worktree-B4Nj3EGS.mjs";
8
- import { i as plannedMaintenance, m as measureOwnedDevices, n as diskRecovered, o as triggeringRoot, r as executeAction } from "./act-vxiMwdf5.mjs";
6
+ import { t as relaunchWithLogFile } from "./detached-entry-KmieOKgN.mjs";
7
+ import { D as measureDisk, F as levelStillShort, I as lowestFree, M as sizeScanDeferred, N as diskPressureLevel, P as levelFloors, j as measureSizes, k as measurePressure } from "./worktree-Dw8kfacb.mjs";
8
+ import { i as plannedMaintenance, m as measureOwnedDevices, n as diskRecovered, o as triggeringRoot, r as executeAction } from "./act-Cyvm8xYc.mjs";
9
9
  import { r as due, t as capChildLog } from "./attempt-DW-mQqM7.mjs";
10
10
  import { releaseClaim, tryAcquireClaim } from "@stim-cli/core/ownership-claim";
11
11
  import { randomBytes } from "node:crypto";
@@ -1,7 +1,7 @@
1
- import { g as process_identity_exports, r as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-DEoAhcze.mjs";
2
- import { F as isOnMountedVolume, I as listMountedVolumes, O as withConfigLockAsync, _ as loadConfig, n as allMetroPorts, r as claimMetroPort, x as releaseMetroPort } from "./config-DlrsduwG.mjs";
3
- import { t as runOperationFile } from "./operation-exec-BW0em61G.mjs";
4
- import { r as readWorkspaceState } from "./workspace-state-U08dEzhG.mjs";
1
+ import { S as process_identity_exports, l as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
+ import { F as isOnMountedVolume, I as listMountedVolumes, O as withConfigLockAsync, _ as loadConfig, n as allMetroPorts, r as claimMetroPort, x as releaseMetroPort } from "./config-BZhXY15H.mjs";
3
+ import { t as runOperationFile } from "./operation-exec-CUZifp6Z.mjs";
4
+ import { r as readWorkspaceState } from "./workspace-state-CeBpIZgr.mjs";
5
5
  import { sep } from "path";
6
6
  import { existsSync, readlinkSync, realpathSync } from "fs";
7
7
  import { readFile } from "node:fs/promises";
@@ -1,8 +1,7 @@
1
- import { g as process_identity_exports } from "./exec-DEoAhcze.mjs";
1
+ import { S as process_identity_exports, c as throwIfCancelled, s as cancelledError } from "./exec-VFRpu1iA.mjs";
2
2
  import { g as workspaceStateFile$1 } from "./paths-DQtTgsBf.mjs";
3
- import { ot as tailscaleStatusAsync } from "./config-DlrsduwG.mjs";
4
- import { d as cancelledError, f as throwIfCancelled } from "./operation-exec-BW0em61G.mjs";
5
- import { l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-U08dEzhG.mjs";
3
+ import { ot as tailscaleStatusAsync } from "./config-BZhXY15H.mjs";
4
+ import { l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-CeBpIZgr.mjs";
6
5
  import { randomBytes, randomUUID } from "node:crypto";
7
6
  import { statSync, watch } from "node:fs";
8
7
  import { HOSTED_METRO_REQUESTS_KEY, findPeer, hostedMetroGateways, hostedMetroRequests, isJsonObject, parseMachine } from "@stim-cli/core/state";
@@ -1,6 +1,6 @@
1
- import { g as process_identity_exports, i as withWorkspaceProcessLock, t as getExecutor } from "./exec-DEoAhcze.mjs";
2
- import { C as saveConfig, O as withConfigLockAsync, _ as loadConfig, c as ensureConfig, d as getConfigDir, p as getProject } from "./config-DlrsduwG.mjs";
3
- import { f as signalProcessTree, m as createPortProbe, s as parseNetstatPids } from "./metro-DiXtA3Ty.mjs";
1
+ import { S as process_identity_exports, t as getExecutor, u as withWorkspaceProcessLock } from "./exec-VFRpu1iA.mjs";
2
+ import { C as saveConfig, O as withConfigLockAsync, _ as loadConfig, c as ensureConfig, d as getConfigDir, p as getProject } from "./config-BZhXY15H.mjs";
3
+ import { f as signalProcessTree, m as createPortProbe, s as parseNetstatPids } from "./metro-Bu8LBfzS.mjs";
4
4
  import { realpathSync } from "node:fs";
5
5
  //#region src/named-ports.ts
6
6
  const FIRST_PORT = 8900;
@@ -1,21 +1,21 @@
1
- import { t as getExecutor } from "./exec-DEoAhcze.mjs";
1
+ import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
2
  import { d as workspaceDir, i as sharedBuildCache } from "./paths-DQtTgsBf.mjs";
3
- import { H as deviceSlotPlatforms, p as getProject, q as validateDeviceSlot } from "./config-DlrsduwG.mjs";
4
- import { tt as settingValueAt } from "./settings-C7O8A6ZI.mjs";
5
- import { r as register } from "./cache-manifest-DSeQjt-Q.mjs";
6
- import { Y as statsProjectKey } from "./budget-3ivAK99e.mjs";
7
- import { d as runCancellationSignal } from "./native-run-Dv88i0aU.mjs";
8
- import { h as resolveBuild, o as entryDir, t as artifactIn } from "./build-cache-Dv7RN200.mjs";
9
- import { B as ownedAvdDeviceProfile, E as findBuildTool, I as listInstalledSystemImages, K as ownedAvdSystemImage, V as ownedAvdDirectory, X as pickDefaultSystemImage, l as androidSystemImageAbi, o as androidHome } from "./android-C7sVmyI9.mjs";
10
- import { o as resolveCcache } from "./ccache-CH2EWGPB.mjs";
11
- import { r as androidToolchainAsync } from "./toolchain-B9hCFCQw.mjs";
12
- import { a as nativeGradleTransfer, t as gradleOffloadInputs } from "./native-gradle-inputs-Dnh84Zbd.mjs";
13
- import { d as buildGradle, l as androidSdkRefusal } from "./react-native-build-CelbTO_y.mjs";
14
- import { l as skippedMissReason, o as explainBuildMiss } from "./prebuild-BligW0QS.mjs";
15
- import { c as resolveAndroidRunPlan } from "./result-utnBea7x.mjs";
16
- import { n as androidProcessRuntime } from "./launch-D-zq8SHG.mjs";
17
- import { n as planFlagRefusal, r as planPayload } from "./build-plan-BmbdHQbr.mjs";
18
- import { a as nativeGradleWorkerArtifactIdentity, n as gradleArtifactInputs, r as nativeGradleArtifactSnapshot, t as NATIVE_GRADLE_CACHE_LIMIT } from "./native-gradle-artifact-inputs-DHFnmrVf.mjs";
3
+ import { H as deviceSlotPlatforms, p as getProject, q as validateDeviceSlot } from "./config-BZhXY15H.mjs";
4
+ import { tt as settingValueAt } from "./settings-RKwY33wv.mjs";
5
+ import { B as ownedAvdDeviceProfile, E as findBuildTool, I as listInstalledSystemImages, K as ownedAvdSystemImage, V as ownedAvdDirectory, X as pickDefaultSystemImage, l as androidSystemImageAbi, o as androidHome } from "./android-882m4hxX.mjs";
6
+ import { r as register } from "./cache-manifest-BPXRONJz.mjs";
7
+ import { Z as statsProjectKey } from "./budget-dPGuhNai.mjs";
8
+ import { d as runCancellationSignal } from "./native-run-BmH7U8pr.mjs";
9
+ import { s as entryDir, t as artifactIn, y as resolveBuild } from "./build-cache-HFUQ9eLz.mjs";
10
+ import { o as resolveCcache } from "./ccache-CCn1S6qG.mjs";
11
+ import { h as gradleOffloadInputs, y as nativeGradleTransfer } from "./client-18-ZowoT.mjs";
12
+ import { r as androidToolchainAsync } from "./toolchain-D3bmRMia.mjs";
13
+ import { d as buildGradle, l as androidSdkRefusal } from "./react-native-build-AuCu-aAP.mjs";
14
+ import { s as explainBuildMiss, u as skippedMissReason } from "./prebuild-DmVCf5xb.mjs";
15
+ import { u as resolveAndroidRunPlan } from "./result-DqBrb12U.mjs";
16
+ import { n as androidProcessRuntime } from "./launch-SfzGH_s9.mjs";
17
+ import { n as planFlagRefusal, r as planPayload } from "./build-plan-JsDUq4w1.mjs";
18
+ import { a as nativeGradleWorkerArtifactIdentity, n as gradleArtifactInputs, r as nativeGradleArtifactSnapshot, t as NATIVE_GRADLE_CACHE_LIMIT } from "./native-gradle-artifact-inputs-BcLYBZil.mjs";
19
19
  import { createHash } from "node:crypto";
20
20
  import { createReadStream, createWriteStream, existsSync, readFileSync, statSync } from "node:fs";
21
21
  import { tmpdir } from "node:os";
@@ -1,9 +1,9 @@
1
- import { t as getExecutor } from "./exec-DEoAhcze.mjs";
2
- import { r as childEnvironment } from "./operation-exec-BW0em61G.mjs";
3
- import { n as buildCacheKey } from "./build-cache-Dv7RN200.mjs";
4
- import { o as androidHome } from "./android-C7sVmyI9.mjs";
1
+ import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
+ import { r as childEnvironment } from "./operation-exec-CUZifp6Z.mjs";
3
+ import { o as androidHome } from "./android-882m4hxX.mjs";
4
+ import { n as buildCacheKey } from "./build-cache-HFUQ9eLz.mjs";
5
+ import { _ as nativeGradleLocalSourceDigest, h as gradleOffloadInputs } from "./client-18-ZowoT.mjs";
5
6
  import { n as fingerprintNativeInputs } from "./native-inputs-TRTTTRxt.mjs";
6
- import { r as nativeGradleLocalSourceDigest, t as gradleOffloadInputs } from "./native-gradle-inputs-Dnh84Zbd.mjs";
7
7
  import { createHash } from "node:crypto";
8
8
  import { homedir } from "node:os";
9
9
  import { dirname, join, resolve } from "node:path";
@@ -1,7 +1,7 @@
1
- import { i as withWorkspaceProcessLock, l as refuseDeclaredSpawns, m as operationState, p as isTermination, s as allowDeclaredSpawns, u as signalDeclaredSpawns, x as ownership_claim_exports } from "./exec-DEoAhcze.mjs";
1
+ import { D as ownership_claim_exports, b as operationState, g as signalDeclaredSpawns, h as refuseDeclaredSpawns, p as allowDeclaredSpawns, u as withWorkspaceProcessLock, y as isTermination } from "./exec-VFRpu1iA.mjs";
2
2
  import { d as workspaceDir } from "./paths-DQtTgsBf.mjs";
3
- import { a as formatElapsed, l as phaseLine } from "./command-output-YKGWivpG.mjs";
4
- import { o as updateWorkspaceState, r as readWorkspaceState, t as clearWorkspaceStateKey } from "./workspace-state-U08dEzhG.mjs";
3
+ import { a as formatElapsed, l as phaseLine } from "./command-output-DxC0k2rk.mjs";
4
+ import { l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState, t as clearWorkspaceStateKey } from "./workspace-state-CeBpIZgr.mjs";
5
5
  import { t as canonicalPath } from "./paths-BsJMoPP2.mjs";
6
6
  import { existsSync, mkdirSync } from "node:fs";
7
7
  import { basename, dirname, join } from "node:path";
@@ -226,12 +226,12 @@ function cancelOnAbort({ context, root, claim, write, controller }) {
226
226
  requestListeners.set(claim.claimId, onRequest);
227
227
  const watch = setInterval(onRequest, REQUEST_POLL_MS);
228
228
  watch.unref();
229
- return () => {
229
+ return async () => {
230
230
  clearInterval(watch);
231
231
  requestListeners.delete(claim.claimId);
232
232
  context.signal.removeEventListener("abort", onAbort);
233
233
  allowDeclaredSpawns(context);
234
- clearNativeRunCancel(root, claim.claimId);
234
+ await withWorkspaceStateLockAsync(root, () => clearNativeRunCancel(root, claim.claimId)).catch(() => {});
235
235
  };
236
236
  }
237
237
  /**
@@ -257,7 +257,7 @@ function withNativeBuildRun(context, root, details, fn, { write }) {
257
257
  try {
258
258
  return await fn(claim);
259
259
  } finally {
260
- dispose();
260
+ await dispose();
261
261
  state.runSignal = void 0;
262
262
  }
263
263
  }, {
@@ -1,14 +1,14 @@
1
- import { n as ensureWorkspaceStorage } from "./paths-DQtTgsBf.mjs";
2
- import { l as phaseLine } from "./command-output-YKGWivpG.mjs";
3
- import { r as readWorkspaceState$1 } from "./workspace-state-U08dEzhG.mjs";
4
- import { j as metroPortSetting } from "./settings-C7O8A6ZI.mjs";
5
- import { d as resolveProjectMetro } from "./metro-DiXtA3Ty.mjs";
6
- import { Yt as LAUNCH_UNVERIFIED, qt as LAUNCH_BUNDLING } from "./budget-3ivAK99e.mjs";
7
- import { c as startDevServer } from "./start-CU8mCPC7.mjs";
1
+ import { r as ensureWorkspaceStorageAsync } from "./paths-DQtTgsBf.mjs";
2
+ import { l as phaseLine } from "./command-output-DxC0k2rk.mjs";
3
+ import { r as readWorkspaceState$1 } from "./workspace-state-CeBpIZgr.mjs";
4
+ import { j as metroPortSetting } from "./settings-RKwY33wv.mjs";
5
+ import { d as resolveProjectMetro } from "./metro-Bu8LBfzS.mjs";
6
+ import { Yt as LAUNCH_BUNDLING, Zt as LAUNCH_UNVERIFIED } from "./budget-dPGuhNai.mjs";
7
+ import { c as startDevServer } from "./start-BKGrEhzG.mjs";
8
8
  import { readIdleStop } from "@stim-cli/core/state";
9
9
  import chalk from "chalk";
10
10
  //#region src/commands/native-runtime.ts
11
- async function ensureDevServer({ root, port, settings, settingsContext, remote, env, note, resolve = resolveProjectMetro, start = startDevServer, readState = readWorkspaceState$1 }) {
11
+ async function ensureDevServer({ root, port, settings, settingsContext, remote, hostedPorts, env, note, resolve = resolveProjectMetro, start = startDevServer, readState = readWorkspaceState$1 }) {
12
12
  const pin = metroPortSetting(settings, env);
13
13
  const canReuse = !pin.error && (pin.port === null || pin.port === port);
14
14
  const held = port === null || !canReuse ? null : (await resolve(port, root)).metro;
@@ -26,6 +26,7 @@ async function ensureDevServer({ root, port, settings, settingsContext, remote,
26
26
  settings,
27
27
  settingsContext,
28
28
  remote,
29
+ hostedPorts,
29
30
  out: note,
30
31
  note
31
32
  });
@@ -52,7 +53,7 @@ async function ensureDevServer({ root, port, settings, settingsContext, remote,
52
53
  }
53
54
  async function ensureWorkspaceStorageSafely(root, { note = (_line) => {} } = {}) {
54
55
  try {
55
- return ensureWorkspaceStorage(root);
56
+ return await ensureWorkspaceStorageAsync(root);
56
57
  } catch (err) {
57
58
  note(chalk.dim(`Could not prepare this workspace's Stim state: ${err?.message || err}`));
58
59
  throw err;
@@ -1,4 +1,4 @@
1
- import { s as gitAsync } from "./operation-exec-BW0em61G.mjs";
1
+ import { s as gitAsync } from "./operation-exec-CUZifp6Z.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";
@@ -85,10 +85,13 @@ async function nativeFileDigest(path, signal) {
85
85
  sha256: hash.digest("hex")
86
86
  };
87
87
  }
88
- /** The exact source a build needs: tracked and untracked, not ignored, as `git ls-files -co --exclude-standard`. */
89
- async function sourceManifest(repoRoot, strict = false, signal) {
88
+ /**
89
+ * The exact source a build needs: tracked and untracked, not ignored, as `git ls-files -co --exclude-standard`, and
90
+ * the repository-relative `ignored` paths it also reads.
91
+ */
92
+ async function sourceManifest(repoRoot, strict = false, signal, ignored = []) {
90
93
  const files = [];
91
- for (const path of await gitVisiblePaths(repoRoot, signal)) {
94
+ for (const path of /* @__PURE__ */ new Set([...await gitVisiblePaths(repoRoot, signal), ...ignored])) {
92
95
  signal?.throwIfAborted();
93
96
  const absolute = join(repoRoot, path);
94
97
  let stat;
@@ -1,6 +1,6 @@
1
1
  import { d as workspaceDir, u as workspaceDerivedData } from "./paths-DQtTgsBf.mjs";
2
- import { a as killOnAbort, l as gitQuietAsync, r as childEnvironment } from "./operation-exec-BW0em61G.mjs";
3
- import { h as pbxString, m as pbxReferences } from "./project-DhCtQWWU.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-Dz-hWkb-.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,22 +1,22 @@
1
- import { t as getExecutor } from "./exec-DEoAhcze.mjs";
1
+ import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
2
  import { o as sharedCompilationCache } from "./paths-DQtTgsBf.mjs";
3
- import { G as resolveCacheProviderConfig, Nt as repoRootAsync, U as remoteIosSetting, et as settingShapeErrors } from "./settings-C7O8A6ZI.mjs";
4
- import { g as selectNativeXcodeProject, h as pbxString, p as NativeXcodeError } from "./project-DhCtQWWU.mjs";
5
- import { r as register } from "./cache-manifest-DSeQjt-Q.mjs";
6
- import { Fn as processContext, Y as statsProjectKey } from "./budget-3ivAK99e.mjs";
7
- import { d as runCancellationSignal } from "./native-run-Dv88i0aU.mjs";
8
- import { n as buildCacheKey, s as filesystemBuildCapability } from "./build-cache-Dv7RN200.mjs";
3
+ import { G as resolveCacheProviderConfig, Nt as repoRootAsync, U as remoteIosSetting, et as settingShapeErrors } from "./settings-RKwY33wv.mjs";
4
+ import { g as selectNativeXcodeProject, h as pbxString, p as NativeXcodeError } from "./project-Dz-hWkb-.mjs";
5
+ import { r as register } from "./cache-manifest-BPXRONJz.mjs";
6
+ import { Ln as processContext, Z as statsProjectKey } from "./budget-dPGuhNai.mjs";
7
+ import { d as runCancellationSignal } from "./native-run-BmH7U8pr.mjs";
8
+ import { l as filesystemBuildCapability, n as buildCacheKey } from "./build-cache-HFUQ9eLz.mjs";
9
9
  import { l as artifactCachePolicy, p as resolveOptimizations } from "./errors-ccaPc4ox.mjs";
10
- import { a as buildXcode, l as parseSwiftVersion, r as HEARTBEAT_INTERVAL_MS, s as compilationCacheSettings, u as parseXcodeMajor } from "./xcode-Rq744mBF.mjs";
11
- import { a as nativeTransferRefusal } from "./client-B4MMzfo_.mjs";
12
- import { _ as runCaptured, a as iosToolchainAsync, h as readPodState, m as podsAreStale, v as runPodInstall } from "./toolchain-B9hCFCQw.mjs";
13
- import { a as deviceModelRefusal, h as resolveDeviceType, m as resolveConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-TWuQlHQo.mjs";
14
- import { r as gateProfileForDevice } from "./ios-signing-BtAffm0A.mjs";
15
- import { l as skippedMissReason, o as explainBuildMiss } from "./prebuild-BligW0QS.mjs";
16
- import { n as planFlagRefusal, t as planCachedBuild } from "./build-plan-BmbdHQbr.mjs";
17
- import { t as IosRecipeRefusal } from "./ios-project-CSZYI1iu.mjs";
18
- import { i as DEFAULT_DEPS, r as iosProcessRuntime } from "./launch-CP2wDCVd.mjs";
19
- import { a as nativeXcodeSources, i as nativeXcodePackages, n as nativeXcodeInputSnapshot, t as nativeXcodeHasPackages } from "./native-xcode-inputs-CqViUh3r.mjs";
10
+ import { a as buildXcode, l as parseSwiftVersion, r as HEARTBEAT_INTERVAL_MS, s as compilationCacheSettings, u as parseXcodeMajor } from "./xcode-DHu41qQ4.mjs";
11
+ import { a as nativeTransferRefusal } from "./client-18-ZowoT.mjs";
12
+ import { _ as runCaptured, a as iosToolchainAsync, h as readPodState, m as podsAreStale, v as runPodInstall } from "./toolchain-D3bmRMia.mjs";
13
+ import { a as deviceModelRefusal, h as resolveDeviceType, m as resolveConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-B1W-hmC2.mjs";
14
+ import { r as gateProfileForDevice } from "./ios-signing-4c_qXvQm.mjs";
15
+ import { s as explainBuildMiss, u as skippedMissReason } from "./prebuild-DmVCf5xb.mjs";
16
+ import { n as planFlagRefusal, t as planCachedBuild } from "./build-plan-JsDUq4w1.mjs";
17
+ import { t as IosRecipeRefusal } from "./ios-project-KYqeJURj.mjs";
18
+ import { i as DEFAULT_DEPS, r as iosProcessRuntime } from "./launch-BVlyQw3T.mjs";
19
+ import { a as nativeXcodeSources, i as nativeXcodePackages, n as nativeXcodeInputSnapshot, t as nativeXcodeHasPackages } from "./native-xcode-inputs-irplbQb0.mjs";
20
20
  import { existsSync } from "node:fs";
21
21
  import { join } from "node:path";
22
22
  //#region src/integrations/native-xcode-ios.ts
@@ -322,7 +322,7 @@ function nativeRecipe(root, context) {
322
322
  platform: "ios",
323
323
  native: "xcode",
324
324
  local: {
325
- ...await iosToolchainAsync(root, "xcode"),
325
+ ...await iosToolchainAsync(root, null),
326
326
  ...context.target.hostedArchitecture ? { arch: context.target.hostedArchitecture === "x86_64" ? "x64" : "arm64" } : {}
327
327
  },
328
328
  runtime,
@@ -1,6 +1,6 @@
1
1
  import { c as IosToolchain, g as CompilationCacheActivity, h as CcacheActivity, i as AndroidBuildOptions, l as WorkerToolchain, p as Optimizations, r as SwiftpmArtifactToolchain, t as NativeGradleArtifactReceipt } from "./android-project-DVWyCbWU.mjs";
2
2
  import { StimContext } from "@stim-cli/core";
3
- import { BuildReactNativeArtifactQuery, BuildStartParams, BuildSwiftpmArtifactQuery } from "@stim-cli/core/protocol";
3
+ import { BuildFingerprintSource, BuildReactNativeArtifactQuery, BuildStartParams, BuildSwiftpmArtifactQuery } from "@stim-cli/core/protocol";
4
4
  //#region src/offload/react-native-artifact.d.ts
5
5
  type ArtifactTools = (IosToolchain & {
6
6
  os: string;
@@ -76,7 +76,6 @@ interface WorkerJob {
76
76
  } | null;
77
77
  swiftpmCache: string;
78
78
  project: string;
79
- packageName: string | null;
80
79
  isExpo: boolean;
81
80
  configuration: string | null;
82
81
  scheme: string | null;
@@ -84,6 +83,12 @@ interface WorkerJob {
84
83
  runtime: string | null;
85
84
  android: AndroidBuildOptions | null;
86
85
  expectedFingerprint: string | null;
86
+ /** The client's sources of `expectedFingerprint`, when its stim-server forwards them. */
87
+ expectedSources?: BuildFingerprintSource[];
88
+ /** The paths the client's git ignored for `expectedFingerprint`, which this checkout's git may not. */
89
+ expectedIgnored?: string[];
90
+ /** The top-level entries the client counted although an ignore pattern matches them; this checkout has no index. */
91
+ expectedTracked?: string[];
87
92
  cacheArtifact?: boolean;
88
93
  stimBuild?: string;
89
94
  native?: BuildStartParams["native"];