stim 1.26.0 → 1.27.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 (171) hide show
  1. package/dist/{acquire-artifact-DVsvSwf7.mjs → acquire-artifact-BKN2Yuhg.mjs} +2 -2
  2. package/dist/{act-C-BqJEpu.mjs → act-ROviTF_t.mjs} +297 -122
  3. package/dist/{activity-Lnb_EoRY.mjs → activity-Cd-ysFes.mjs} +6 -6
  4. package/dist/{agent-device-usage-output-DbXy5tg8.mjs → agent-device-usage-output-C5nCKWp9.mjs} +5 -5
  5. package/dist/{android-CSbLRD53.mjs → android--HBgpvpW.mjs} +5 -5
  6. package/dist/{android-CiNQw3kq.mjs → android-Cd6w7_qw.mjs} +96 -43
  7. package/dist/{android-B5P81yI-.mjs → android-Deb9X3_Y.mjs} +37 -15
  8. package/dist/{android-DTAcRwBC.mjs → android-DriNoAVy.mjs} +23 -18
  9. package/dist/{android-cas-BTVhZ0Qs.mjs → android-cas-D5e6ecUg.mjs} +4 -4
  10. package/dist/android-cas-compiler.mjs +1 -1
  11. package/dist/api.d.mts +13 -3
  12. package/dist/api.mjs +39 -29
  13. package/dist/{apk-signed-tail-B46U9hXc.mjs → apk-signed-tail-BHQHx3Rm.mjs} +2 -2
  14. package/dist/{artifact-BxREhAaV.mjs → artifact-0AGJYB9O.mjs} +18 -23
  15. package/dist/{artifact-CsAP6AGK.mjs → artifact-faemIZv5.mjs} +19 -24
  16. package/dist/{artifact-platform-CMRc0M_r.mjs → artifact-platform-BO2Uvk_A.mjs} +1 -1
  17. package/dist/auto-placement-z-H5pJza.mjs +350 -0
  18. package/dist/{browser-web-rYPyqhTf.mjs → browser-web-slD8AvLp.mjs} +16 -16
  19. package/dist/{build-cache-DrXNCy3T.mjs → build-cache-gBJ-WKzA.mjs} +43 -21
  20. package/dist/{build-DPhApsjV.mjs → build-hS0QyFlQ.mjs} +35 -31
  21. package/dist/{build-plan-DrMMdayj.mjs → build-plan-CBqYbzYM.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-BWTze1Ls.mjs} +560 -1603
  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-ftXDLto1.mjs} +24 -23
  28. package/dist/cli.mjs +1 -1
  29. package/dist/{client-D9CaRks-.mjs → client-xsdxrhWA.mjs} +48 -62
  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-Dj-WT4BP.mjs} +1 -1
  33. package/dist/{config-BktkY_zC.mjs → config-Cn94Jc0g.mjs} +23 -4
  34. package/dist/{dependencies-Dw6wfQdv.mjs → dependencies-BGokZ-Ng.mjs} +108 -60
  35. package/dist/{dependency-state-DFB41vfr.mjs → dependency-state-C3OtgG94.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-BMca82xo.mjs} +2 -2
  38. package/dist/{device-BcYeHSFu.mjs → device-BJm0irrq.mjs} +16 -16
  39. package/dist/{device-capacity-DCSvUF0l.mjs → device-capacity-6LP7QsaA.mjs} +101 -16
  40. package/dist/device-host-worker.mjs +19 -19
  41. package/dist/{device-ios-BLGfXQeK.mjs → device-ios-534c14fz.mjs} +251 -23
  42. package/dist/{device-lease-run-BmvIl7bI.mjs → device-lease-run-DwsGfjUN.mjs} +5 -5
  43. package/dist/{device-pool-Dluix4H3.mjs → device-pool-BnQqvs6o.mjs} +3 -3
  44. package/dist/{device-BK-zwyd_.mjs → device-tM41-TUq.mjs} +25 -24
  45. package/dist/{doctor-Cp-BhzTS.mjs → doctor-Dbx1ZpD2.mjs} +1 -1
  46. package/dist/{doctor-Bhg1ii70.mjs → doctor-DyqE9n1J.mjs} +28 -16
  47. package/dist/{doctor-OnwP94ne.mjs → doctor-F-3VUUyN.mjs} +76 -32
  48. package/dist/{doctor-fingerprint-D3a04Mhu.mjs → doctor-fingerprint-o7ZI9YLn.mjs} +1 -1
  49. package/dist/doctor-fingerprint.mjs +1 -1
  50. package/dist/{doctor-watchman-BStK05nt.mjs → doctor-watchman-CxDbyrrt.mjs} +5 -5
  51. package/dist/{eas-build-Dsj93iM9.mjs → eas-build-CjNSWmjo.mjs} +4 -4
  52. package/dist/eas-fallback-9fqb46kW.mjs +87 -0
  53. package/dist/{eas-session-ledger-B5vygTiD.mjs → eas-session-ledger-DrP4OuuM.mjs} +6 -6
  54. package/dist/{error-diagnostics-BOOm9Db7.mjs → error-diagnostics-snej9k4j.mjs} +51 -25
  55. package/dist/{exec-VFRpu1iA.mjs → exec-aULwtNly.mjs} +57 -6
  56. package/dist/{gc-C_79zvz4.mjs → gc-BRwAY3qT.mjs} +2 -2
  57. package/dist/{gc-ldgr-hXU.mjs → gc-CGZ1Yg88.mjs} +160 -45
  58. package/dist/{guide-D7K0X6KG.mjs → guide-_rfEh_zM.mjs} +580 -183
  59. package/dist/{hosted-android-Bk54ej6n.mjs → hosted-android-BMKzUNnY.mjs} +4 -4
  60. package/dist/{hosted-client-fHO8yqzc.mjs → hosted-client-D7Pk_Oo1.mjs} +12 -8
  61. package/dist/{hosted-logs-BfbmDM4M.mjs → hosted-logs-B1gqQuva.mjs} +8 -8
  62. package/dist/{hosted-logs-sync-B0pvmOk-.mjs → hosted-logs-sync-Dg3qrZmV.mjs} +5 -5
  63. package/dist/{hosted-macos-CPl0OZ9h.mjs → hosted-macos-B9w4H8hc.mjs} +6 -6
  64. package/dist/{hosted-native-CpDB3-PO.mjs → hosted-native-CdgaiuyP.mjs} +17 -16
  65. package/dist/{idle-shutdown-FfxL1KdG.mjs → idle-shutdown-Cbvo5KEh.mjs} +7 -8
  66. package/dist/{ios-ftxdQbJS.mjs → ios-B5HlVMhQ.mjs} +92 -37
  67. package/dist/{ios-B7-lToDu.mjs → ios-Bk4mWbtS.mjs} +8 -8
  68. package/dist/{ios-ENC4sRPA.mjs → ios-CsRVik64.mjs} +7 -1
  69. package/dist/{ios-WxpDJ5T1.mjs → ios-E26qSpkb.mjs} +27 -11
  70. package/dist/{ios-device-CsyryvpT.mjs → ios-device-C_QkIf1Z.mjs} +3 -3
  71. package/dist/{ios-device-B6HK951C.mjs → ios-device-CiBA-er9.mjs} +1 -1
  72. package/dist/{ios-project-Ty5pHl9O.mjs → ios-project-D8Jcy_br.mjs} +22 -9
  73. package/dist/{ios-signing-4c_qXvQm.mjs → ios-signing-BJzvDPfU.mjs} +2 -2
  74. package/dist/{ios-state-Cw7-WQf2.mjs → ios-state-BZ03NFgF.mjs} +1 -1
  75. package/dist/{js-swap-BMhXYVDS.mjs → js-swap-Dg2a945i.mjs} +8 -7
  76. package/dist/{launch-DOp8RjDz.mjs → launch-CRyBeNsA.mjs} +42 -38
  77. package/dist/lightened-BCsdAGj_.mjs +171 -0
  78. package/dist/{logs-dQDki6Tt.mjs → logs-CC_-ZzEE.mjs} +7 -7
  79. package/dist/{logs-s1dRIG1E.mjs → logs-aJQb-RDg.mjs} +46 -21
  80. package/dist/{macos-B0VEV3Gf.mjs → macos-BGmTpnv9.mjs} +1 -1
  81. package/dist/{macos-DBBPNnIA.mjs → macos-DlCBhMw5.mjs} +73 -38
  82. package/dist/macos-run.mjs +1 -1
  83. package/dist/maintenance-run.mjs +7 -7
  84. package/dist/{metro-CjC10t6E.mjs → metro-CvyD-xwe.mjs} +4 -4
  85. package/dist/{metro-gateway-B6_PgD0L.mjs → metro-gateway-BnHdqMO_.mjs} +3 -3
  86. package/dist/{named-ports-BG0j1X4g.mjs → named-ports-BCyMWA6b.mjs} +3 -3
  87. package/dist/{native-android-CL2NGiik.mjs → native-android-DlpxCyOP.mjs} +17 -18
  88. package/dist/{native-gradle-artifact-inputs-btSUulme.mjs → native-gradle-artifact-inputs-C13qT7R_.mjs} +5 -5
  89. package/dist/{native-runtime-Dq3RBcON.mjs → native-runtime-DqaIBO5w.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-B1W8SrxB.mjs} +3 -3
  92. package/dist/{native-xcode-ios-CBXJAxfC.mjs → native-xcode-ios-QPP0Rm68.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-Bx-0cku-.mjs} +3 -3
  97. package/dist/{page-CzEA_-5_.mjs → page-CQJlcj3x.mjs} +2 -2
  98. package/dist/{phone-reverses-lmj6kcPm.mjs → phone-reverses-C9yAaKEv.mjs} +18 -4
  99. package/dist/{placement-log-DIFPQAXp.mjs → placement-log-BXUbiZM6.mjs} +3 -3
  100. package/dist/{plan-placement-IiiSQhtz.mjs → plan-placement-UxnQjv5Z.mjs} +36 -10
  101. package/dist/{ports-C2_w1Z0Z.mjs → ports-uUrghqWN.mjs} +3 -3
  102. package/dist/{prebuild-gmouvmJZ.mjs → prebuild-BDpToDgR.mjs} +16 -17
  103. package/dist/{project-BUu6Is4k.mjs → project-DYj-HVx6.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-DDBccgJw.mjs} +32 -26
  107. package/dist/{react-native-build-oNwqF5Wb.mjs → react-native-build-DaK2IFyP.mjs} +9 -9
  108. package/dist/{react-native-doctor-BhA3KUte.mjs → react-native-doctor-B-Mw6DcR.mjs} +6 -6
  109. package/dist/{react-native-ios-B-nf4rjN.mjs → react-native-ios-DjYwUF9U.mjs} +23 -17
  110. package/dist/{recordings-BldzVKq0.mjs → recordings-C20iUZfp.mjs} +1 -1
  111. package/dist/{registration-CN6nlhcD.mjs → registration-BwCe64PH.mjs} +1 -1
  112. package/dist/{reload-C9OduiNc.mjs → reload-DJBeF_rC.mjs} +1 -1
  113. package/dist/{reload-CCR7KC_l.mjs → reload-fUdkH2_p.mjs} +16 -16
  114. package/dist/{remote-C8S7FlPF.mjs → remote-y6n99WMW.mjs} +22 -9
  115. package/dist/{result-7F5hEwQJ.mjs → result-CTqBw2Te.mjs} +32 -21
  116. package/dist/{run-BqB0v3pt.mjs → run-DaCeNKRm.mjs} +3 -3
  117. package/dist/{selection-BNPBZ6T5.mjs → selection-Bs8phwhN.mjs} +37 -29
  118. package/dist/{server-bare-A75rDIdD.mjs → server-bare-BOh-iZEj.mjs} +2 -2
  119. package/dist/{server-command-CssKFOD7.mjs → server-command-8CuA51Cv.mjs} +6 -6
  120. package/dist/{server-expo-eQfOdydb.mjs → server-expo-ABQs2XFA.mjs} +4 -4
  121. package/dist/server-expo-Ba_Y21vB.mjs +2 -0
  122. package/dist/{settings-CosW5X-S.mjs → settings-BDVI8Ivc.mjs} +331 -62
  123. package/dist/{settings-OaGQF-ri.mjs → settings-CMHhQNwI.mjs} +24 -3
  124. package/dist/settings-payload-cm60Zhib.mjs +257 -0
  125. package/dist/settings-write-BdNRLlBn.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-0l7RqSpr.mjs} +6 -6
  129. package/dist/{stage-jKQ7CP_B.mjs → stage-F4cAfJGi.mjs} +2 -2
  130. package/dist/{start-C_wefNKB.mjs → start-DcqnF9p8.mjs} +1 -1
  131. package/dist/{start-_BdJ32cZ.mjs → start-DrPwER_2.mjs} +27 -22
  132. package/dist/{state-C1i2nMOP.mjs → state-BX1y5syV.mjs} +4 -4
  133. package/dist/{state-C4OdpOTF.mjs → state-CZxLyetD.mjs} +2 -2
  134. package/dist/{stats-tEpEEH-u.mjs → stats-GxuCbles.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-BfnK9pUd.mjs} +25 -25
  138. package/dist/{status-B9M7x4CZ.mjs → status-Bj7ZYvvc.mjs} +1 -1
  139. package/dist/{status-watch-B5wDIH_o.mjs → status-watch-BfabQn03.mjs} +5 -5
  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-ySNQHXMG.mjs → stop-CH79S3IZ.mjs} +5 -5
  143. package/dist/{stop-DRqQVqDJ.mjs → stop-D-EAr25B.mjs} +21 -20
  144. package/dist/{stop-CmdNhGlC.mjs → stop-x1Yu3He4.mjs} +2 -2
  145. package/dist/supervisor-run.mjs +17 -17
  146. package/dist/{support-CVOCp0Ft.mjs → support-Be0UeVZU.mjs} +10 -10
  147. package/dist/{support-BGSCBoib.mjs → support-CNg_YsOk.mjs} +6 -6
  148. package/dist/{swiftpm-artifact-inputs-CfUzt_0Z.mjs → swiftpm-artifact-inputs-uPqYvGBv.mjs} +4 -4
  149. package/dist/{swiftpm-macos-x6HPpl_2.mjs → swiftpm-macos-Ch4YjY_A.mjs} +11 -12
  150. package/dist/{toolchain-J4J8MrAr.mjs → toolchain-CbCG6C5Z.mjs} +321 -15
  151. package/dist/{toolchain-DoavrvIA.mjs → toolchain-JYAOquPg.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-C0RsbngN.mjs} +731 -727
  155. package/dist/{web-Bihbf7-u.mjs → web-Cq_AQ4DK.mjs} +9 -9
  156. package/dist/web-Je6abcpz.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-BjqdjnJR.mjs} +3 -3
  160. package/dist/{workspaces-g2lhdBXF.mjs → workspaces-DFbj07jp.mjs} +1795 -70
  161. package/dist/{worktree-BKuklFh_.mjs → worktree-COAJ3-OD.mjs} +934 -514
  162. package/dist/{worktree-Bm4cb-nU.mjs → worktree-JGUd_53L.mjs} +1 -1
  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
@@ -1,36 +1,37 @@
1
- import { _ as spawnDeclared, c as throwIfCancelled, t as getExecutor, u as withWorkspaceProcessLock, x as withDrainingCancellation } from "./exec-VFRpu1iA.mjs";
2
- import { E as workspaceDir, a as recordWorkspaceUseAsync, f as writeWorkspaceStateAsync, k as workspaceLogsDir$1, v as ensureWorkspaceStorageAsync, w as workspaceAgentDeviceDir } from "./workspace-state-pUg3_RRA.mjs";
3
- import { E as upsertProject, O as withConfigLockAsync$1, u as getConcurrencyLimits } from "./config-BktkY_zC.mjs";
4
- import { l as phaseLine } from "./command-output-BF5AR2dL.mjs";
5
- import { Y as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY, tt as settingShapeErrors } from "./settings-CosW5X-S.mjs";
6
- import { f as projectRegistry, i as findProjectRoot$1, s as ownedDeviceLabel } from "./project-BUu6Is4k.mjs";
7
- import { i as macosProcess, n as macosDir, o as requiredMacosRecord, r as macosLogFile } from "./state-C4OdpOTF.mjs";
8
- import { r as createNdjsonWriter } from "./ndjson-CgE_o3Dl.mjs";
9
- import { Hn as processContext, I as NO_BUILD_PROGRESS, K as startBuildProgress, U as recordBuildPhase, Un as runProcessOperation, W as recordFinishedBuild, q as tapBuildLog } from "./budget-k2mZGvvk.mjs";
10
- import { d as runCancellationSignal, f as withNativeBuildRun } from "./native-run-BfIDFKLH.mjs";
11
- import { L as acquireBuildSlot, z as releaseBuildSlot } from "./workspaces-g2lhdBXF.mjs";
12
- import { O as sanitizeDeviceLabel } from "./ios-WxpDJ5T1.mjs";
13
- import { S as setRemoteLogSink, c as offloadPlacement, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, r as chooseBuildMachine, u as remotePhaseText } from "./client-D9CaRks-.mjs";
14
- import { a as parseBuildMachineOption, i as namedBuildMachine, l as resolveBuildPlacement, s as requireLocalBuild, t as OffloadRefusal } from "./selection-BNPBZ6T5.mjs";
15
- import { l as connectHost } from "./hosted-client-fHO8yqzc.mjs";
16
- import { t as placeHostedMacos } from "./hosted-macos-CPl0OZ9h.mjs";
17
- import { r as stopMacosAppHeld, t as stopBundleInstances } from "./stop-ySNQHXMG.mjs";
1
+ import { _ as spawnDeclared, c as throwIfCancelled, t as getExecutor, u as withWorkspaceProcessLock, x as withDrainingCancellation } from "./exec-aULwtNly.mjs";
2
+ import { E as workspaceDir, a as recordWorkspaceUseAsync, f as writeWorkspaceStateAsync, k as workspaceLogsDir$1, v as ensureWorkspaceStorageAsync, w as workspaceAgentDeviceDir } from "./workspace-state-BjqdjnJR.mjs";
3
+ import { E as upsertProject, O as withConfigLockAsync$1, u as getConcurrencyLimits } from "./config-Cn94Jc0g.mjs";
4
+ import { l as phaseLine } from "./command-output-Dj-WT4BP.mjs";
5
+ import { Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY, it as settingValueAt, rt as settingShapeErrors } from "./settings-BDVI8Ivc.mjs";
6
+ import { f as projectRegistry, i as findProjectRoot$1, s as ownedDeviceLabel } from "./project-DYj-HVx6.mjs";
7
+ import { i as macosProcess, n as macosDir, o as requiredMacosRecord, r as macosLogFile } from "./state-CZxLyetD.mjs";
8
+ import { i as createNdjsonWriter } from "./ndjson-Dy2W4vRa.mjs";
9
+ import { En as runProcessOperation, Tn as processContext } from "./ccache-BWTze1Ls.mjs";
10
+ import { K as recordBuildPhase, Q as errorRemedy, X as tapBuildLog, Y as startBuildProgress, q as recordFinishedBuild, xt as releaseBuildSlot, yt as acquireBuildSlot, z as NO_BUILD_PROGRESS } from "./workspaces-DFbj07jp.mjs";
11
+ import { ot as runCancellationSignal, st as withNativeBuildRun } from "./toolchain-CbCG6C5Z.mjs";
12
+ import { O as sanitizeDeviceLabel } from "./ios-E26qSpkb.mjs";
13
+ import { S as setRemoteLogSink, c as offloadPlacement, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, r as chooseBuildMachine, u as remotePhaseText } from "./client-xsdxrhWA.mjs";
14
+ import { d as resolveBuildPlacement, l as requireLocalBuild, n as automaticBuild, o as namedBuildMachine, s as parseBuildMachineOption, t as OffloadRefusal } from "./selection-Bs8phwhN.mjs";
15
+ import { l as connectHost } from "./hosted-client-D7Pk_Oo1.mjs";
16
+ import { t as placeHostedMacos } from "./hosted-macos-B9w4H8hc.mjs";
17
+ import { r as stopMacosAppHeld, t as stopBundleInstances } from "./stop-CH79S3IZ.mjs";
18
18
  import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
19
- import { t as buildPlacementRecord } from "./placement-log-DIFPQAXp.mjs";
20
- import { t as reidentifyBundle } from "./stage-jKQ7CP_B.mjs";
21
- import { t as validateMacosArtifactPlatform } from "./artifact-platform-CMRc0M_r.mjs";
22
- import { t as waitForMacosRegistration } from "./registration-CN6nlhcD.mjs";
19
+ import { t as buildPlacementRecord } from "./placement-log-BXUbiZM6.mjs";
20
+ import { n as devicePlacementLine, t as automaticDevicePlacement } from "./auto-placement-z-H5pJza.mjs";
21
+ import { t as reidentifyBundle } from "./stage-F4cAfJGi.mjs";
22
+ import { t as validateMacosArtifactPlatform } from "./artifact-platform-BO2Uvk_A.mjs";
23
+ import { t as waitForMacosRegistration } from "./registration-BwCe64PH.mjs";
23
24
  import { createHash, randomUUID } from "node:crypto";
24
25
  import { closeSync, existsSync, openSync, promises, realpathSync, renameSync } from "node:fs";
25
26
  import { join } from "node:path";
26
27
  import { LOG_ROTATE_BYTES, ambientEnv } from "@stim-cli/core";
27
- import { machineCapacity, validHostedAppArguments } from "@stim-cli/core/state";
28
+ import { machineCapacity, placementWord, validHostedAppArguments } from "@stim-cli/core/state";
28
29
  //#region src/macos/build.ts
29
30
  async function buildMacosBundle({ context, root, recipe, bundle, bundleId, displayName, scratch, writer, note, record, buildMachine, hostServerKey, progress = NO_BUILD_PROGRESS }) {
30
31
  const signal = runCancellationSignal(context) ?? context.signal;
31
32
  return withDrainingCancellation(context, signal, async () => {
32
33
  throwIfCancelled(signal, "macOS build");
33
- const { mode, machines, localEnabled } = buildPlacementCandidates(buildMachine);
34
+ const { machines, localEnabled } = buildPlacementCandidates(buildMachine);
34
35
  const builder = namedBuildMachine(buildMachine) ? machines[0] : void 0;
35
36
  const runsOnWorker = hostServerKey !== void 0 && builder?.serverKey === hostServerKey;
36
37
  if (record) record.buildMachine = buildMachine;
@@ -63,7 +64,7 @@ async function buildMacosBundle({ context, root, recipe, bundle, bundleId, displ
63
64
  }
64
65
  }));
65
66
  if (namedBuildMachine(buildMachine)) throw new OffloadRefusal(buildMachine, reason);
66
- requireLocalBuild(buildMachine);
67
+ requireLocalBuild(buildMachine, reason);
67
68
  offloadFallback = reason;
68
69
  if (record) record.offloadFallback = reason;
69
70
  writer.write({
@@ -161,7 +162,6 @@ async function buildMacosBundle({ context, root, recipe, bundle, bundleId, displ
161
162
  };
162
163
  const here = machineCapacity();
163
164
  const placement = offloadPlacement({
164
- mode,
165
165
  localEnabled,
166
166
  machines: machines.length,
167
167
  here,
@@ -173,7 +173,6 @@ async function buildMacosBundle({ context, root, recipe, bundle, bundleId, displ
173
173
  const chosen = await chooseBuildMachine({
174
174
  projectRoot: root,
175
175
  target: await recipe.offload.target(runsOnWorker),
176
- mode,
177
176
  here,
178
177
  machines,
179
178
  selected: buildMachine,
@@ -268,7 +267,7 @@ async function buildMacosBundle({ context, root, recipe, bundle, bundleId, displ
268
267
  try {
269
268
  slot = await acquireBuildSlot({
270
269
  signal,
271
- automatic: buildMachine === "auto",
270
+ automatic: automaticBuild(buildMachine),
272
271
  max: getConcurrencyLimits().maxBuilds,
273
272
  root,
274
273
  logFile: writer.file,
@@ -345,7 +344,7 @@ async function planMacos(context, root, buildMachineFlag) {
345
344
  if (selected.failure) throw Object.assign(new Error(selected.failure.message), selected.failure);
346
345
  const macos = settings.macos;
347
346
  if (!macos?.product || !macos.infoPlist) throw Object.assign(/* @__PURE__ */ new Error("Set macos.product and macos.infoPlist explicitly in .stim.json. See stim guide macos."), { code: "STIM_BAD_ARG" });
348
- const { swiftpmMacosProject } = await import("./swiftpm-macos-x6HPpl_2.mjs");
347
+ const { swiftpmMacosProject } = await import("./swiftpm-macos-Ch4YjY_A.mjs");
349
348
  const recipe = await swiftpmMacosProject(root).prepare(context, settings);
350
349
  let identity = null;
351
350
  let cacheHit = false;
@@ -374,13 +373,11 @@ async function planMacos(context, root, buildMachineFlag) {
374
373
  //#endregion
375
374
  //#region src/commands/macos.ts
376
375
  /**
377
- * Builds the Debug app and launches it here, or with `remote` on that approved remote Mac. A named host never falls
378
- * back to a local launch.
376
+ * Builds the Debug app and launches it where `remoteFlag` or `macos.remote` says: here, on one named approved remote
377
+ * Mac with no fallback, or on the Mac an automatic placement word chooses. A recorded hosted app keeps its Mac.
379
378
  */
380
- async function runMacos(context, root, note = console.error, remote, buildMachineFlag) {
381
- const backend = remote?.trim().toLowerCase();
382
- if (backend === "eas" || backend === "proxy") throw Object.assign(/* @__PURE__ */ new Error("stim macos --remote takes a remote Mac name from remote.machines; macOS has no eas or proxy backend."), { code: "STIM_BAD_ARG" });
383
- if (backend === "auto") throw Object.assign(/* @__PURE__ */ new Error("stim macos --remote auto is not available yet: automatic placement has not shipped. Name a hosting Mac from remote.machines."), { code: "STIM_BAD_ARG" });
379
+ async function runMacos(context, root, note = console.error, remoteFlag, buildMachineFlag) {
380
+ refuseDeviceBackend(remoteFlag);
384
381
  if (process.platform !== "darwin") throw new Error("stim macos requires a Mac with Swift installed.");
385
382
  root = realpathSync(root);
386
383
  const operation = projectRegistry.selectMacos(root);
@@ -397,6 +394,9 @@ async function runMacos(context, root, note = console.error, remote, buildMachin
397
394
  const selected = resolveBuildPlacement(buildMachineFlag);
398
395
  if (selected.failure) throw Object.assign(new Error(selected.failure.message), selected.failure);
399
396
  const buildMachine = selected.selected;
397
+ const configured = settingValueAt(settings, "macos.remote");
398
+ const requested = remoteFlag ?? (typeof configured === "string" ? configured : void 0);
399
+ refuseDeviceBackend(requested);
400
400
  const macos = await (await operation.load()).prepare(context, settings);
401
401
  await ensureWorkspaceStorageAsync(root, context.signal);
402
402
  return withNativeBuildRun(context, root, {
@@ -412,6 +412,14 @@ async function runMacos(context, root, note = console.error, remote, buildMachin
412
412
  });
413
413
  return withWorkspaceProcessLock(workspaceDir(root), "macos-launch", async () => {
414
414
  const previous = requiredMacosRecord(root);
415
+ const remote = await macosHost({
416
+ requested,
417
+ previous,
418
+ root,
419
+ buildMachine,
420
+ note,
421
+ signal: context.signal
422
+ });
415
423
  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
424
  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
425
  let hostServerKey;
@@ -508,6 +516,29 @@ async function runMacos(context, root, note = console.error, remote, buildMachin
508
516
  }).finally(() => progress.clear());
509
517
  }, { write: note });
510
518
  }
519
+ function refuseDeviceBackend(requested) {
520
+ if (requested !== void 0 && ["eas", "proxy"].includes(requested.trim().toLowerCase())) throw Object.assign(/* @__PURE__ */ new Error("stim macos --remote and macos.remote take local, auto, remote, remote-only or a remote Mac name from remote.machines; macOS has no eas or proxy backend."), { code: "STIM_BAD_ARG" });
521
+ }
522
+ async function macosHost({ requested, previous, root, buildMachine, note, signal }) {
523
+ if (requested === void 0) return void 0;
524
+ const word = placementWord(requested);
525
+ if (word === "local") return void 0;
526
+ if (word === null) return requested.trim();
527
+ if (previous?.host) return previous.host.machine;
528
+ const placed = await automaticDevicePlacement({
529
+ root,
530
+ slot: "default",
531
+ platform: "macos",
532
+ placement: word,
533
+ selectors: {},
534
+ buildMachine,
535
+ noWait: false,
536
+ onWait: (line) => note(phaseLine("placement:", line)),
537
+ signal
538
+ });
539
+ note(phaseLine("placement:", devicePlacementLine(placed.placement, placed.skipped)));
540
+ return placed.placement.decision === "hosted" ? placed.placement.machine : void 0;
541
+ }
511
542
  async function buildBundle(context, root, recipe, record, hosted, hostServerKey, note, progress = NO_BUILD_PROGRESS) {
512
543
  const started = Date.parse(record.build.startedAt);
513
544
  const scratch = join(macosDir(root), "build");
@@ -566,13 +597,13 @@ async function buildBundle(context, root, recipe, record, hosted, hostServerKey,
566
597
  supervisor: void 0,
567
598
  build
568
599
  } });
569
- recordMacosBuild(root, build, progress.steps());
600
+ recordMacosBuild(root, build, progress.steps(), errorRemedy(error));
570
601
  throw error;
571
602
  } finally {
572
603
  writer.close();
573
604
  }
574
605
  }
575
- function recordMacosBuild(root, build, compileSteps) {
606
+ function recordMacosBuild(root, build, compileSteps, remedy) {
576
607
  recordFinishedBuild(root, {
577
608
  platform: "macos",
578
609
  status: build.state === "ok" ? "ok" : "failed",
@@ -588,7 +619,11 @@ function recordMacosBuild(root, build, compileSteps) {
588
619
  builtOn: build.builtOn,
589
620
  offloadedTo: build.offloadedTo,
590
621
  offloadFallback: build.offloadFallback,
591
- ...compileSteps === null ? {} : { compileSteps }
622
+ ...compileSteps === null ? {} : { compileSteps },
623
+ ...build.error ? { ledger: {
624
+ message: build.error,
625
+ remedy
626
+ } } : {}
592
627
  });
593
628
  }
594
629
  const LAUNCH_SERVICES_CALL_MS = 2e3;
@@ -659,7 +694,7 @@ function launchPayload(root, record) {
659
694
  };
660
695
  }
661
696
  function macosCommand(program) {
662
- program.command("macos").description("Build and launch an owned Swift Package macOS Debug app.").option("--remote-build <value>", "Build on auto, local, or one named machine; a name refuses without fallback", parseBuildMachineOption).option("--json", "print one launch or plan payload; build output goes to stderr").option("--plan", "validate the next SwiftPM Debug build without building or launching").option("--remote <machine>", "run it on this approved remote Mac from remote.machines").action(async (options) => {
697
+ program.command("macos").description("Build and launch an owned Swift Package macOS Debug app.").option("--remote-build <value>", "Build on local, auto, remote (remote machines first), remote-only (never here), or one named machine; a name refuses without fallback", parseBuildMachineOption).option("--json", "print one launch or plan payload; build output goes to stderr").option("--plan", "validate the next SwiftPM Debug build without building or launching").option("--remote <placement>", "run it here (local), on the Mac a placement word chooses (auto, remote, remote-only), or on one approved remote Mac from remote.machines").action(async (options) => {
663
698
  const root = findProjectRoot$1(process.cwd());
664
699
  if (options.plan) {
665
700
  try {
@@ -1,2 +1,2 @@
1
- import { n as runMacosSupervisor, t as logLines } from "./run-BqB0v3pt.mjs";
1
+ import { n as runMacosSupervisor, t as logLines } from "./run-DaCeNKRm.mjs";
2
2
  export { logLines, runMacosSupervisor };
@@ -1,10 +1,10 @@
1
- import { P as formatBytes } from "./config-BktkY_zC.mjs";
2
- import { E as maintenanceLogger, T as openGcLog, jt as deviceSweepIsScoped, u as resolveBudget, w as maintenanceItem } from "./budget-k2mZGvvk.mjs";
3
- import { B as memoryCulpritAdvice, F as memoryCulpritsUnder } from "./ios-WxpDJ5T1.mjs";
1
+ import { P as formatBytes } from "./config-Cn94Jc0g.mjs";
2
+ import { A as diskPressureLevel, I as maintenanceItem, L as openGcLog, M as levelStillShort, N as lowestFree, R as maintenanceLogger, _ as resolveBudget, j as levelFloors, mt as deviceSweepIsScoped } from "./ccache-BWTze1Ls.mjs";
3
+ import { I as memoryCulpritsUnder, V as memoryCulpritAdvice } from "./ios-E26qSpkb.mjs";
4
4
  import { t as resolveMaintenanceSettings } from "./settings-Djl-mpjX.mjs";
5
- import { t as relaunchWithLogFile } from "./detached-entry-KmieOKgN.mjs";
6
- 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-BKuklFh_.mjs";
7
- import { i as plannedMaintenance, m as measureOwnedDevices, n as diskRecovered, o as triggeringRoot, r as executeAction } from "./act-C-BqJEpu.mjs";
5
+ import { C as measureSizes, w as sizeScanDeferred, x as measurePressure, y as measureDisk } from "./worktree-COAJ3-OD.mjs";
6
+ import { t as relaunchWithLogFile } from "./detached-entry-BPlSaCwC.mjs";
7
+ import { g as measureOwnedDevices, i as plannedMaintenance, n as diskRecovered, o as triggeringRoot, r as executeAction } from "./act-ROviTF_t.mjs";
8
8
  import { r as due, t as capChildLog } from "./attempt-ClyJlZPT.mjs";
9
9
  import { releaseClaim, tryAcquireClaim } from "@stim-cli/core/ownership-claim";
10
10
  import { randomBytes } from "node:crypto";
@@ -318,7 +318,7 @@ async function runMaintenance(trigger) {
318
318
  },
319
319
  ...action.workspace && action.kind !== "would-remove-worktree" ? { workspace: action.workspace } : {}
320
320
  };
321
- if (outcome.status === "done") record("maintenance_action", action.kind === "would-remove-worktree" ? "warn" : "info", `${describeDone(action)} (${formatBytes(outcome.bytes)}): ${action.reason}`, fields);
321
+ if (outcome.status === "done") record("maintenance_action", action.kind === "would-remove-worktree" ? "warn" : "info", `${describeDone(action)} (${formatBytes(outcome.bytes)}): ${action.kind === "would-remove-worktree" ? outcome.detail : action.reason}`, fields);
322
322
  else if (outcome.status === "failed") {
323
323
  failures.push(`${describeDone(action)} failed: ${outcome.detail}`);
324
324
  record("maintenance_failure", "error", `Could not process ${action.target}: ${outcome.detail}`, {
@@ -1,7 +1,7 @@
1
- import { S as process_identity_exports, l as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
- import { r as readWorkspaceState } from "./workspace-state-pUg3_RRA.mjs";
3
- import { F as isOnMountedVolume, I as listMountedVolumes, O as withConfigLockAsync, _ as loadConfig, n as allMetroPorts, r as claimMetroPort, x as releaseMetroPort } from "./config-BktkY_zC.mjs";
4
- import { t as runOperationFile } from "./operation-exec-CUZifp6Z.mjs";
1
+ import { S as process_identity_exports, l as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-aULwtNly.mjs";
2
+ import { r as readWorkspaceState } from "./workspace-state-BjqdjnJR.mjs";
3
+ import { F as isOnMountedVolume, I as listMountedVolumes, O as withConfigLockAsync, _ as loadConfig, n as allMetroPorts, r as claimMetroPort, x as releaseMetroPort } from "./config-Cn94Jc0g.mjs";
4
+ import { t as runOperationFile } from "./operation-exec-Dp4FuIGR.mjs";
5
5
  import { sep } from "path";
6
6
  import { existsSync, readlinkSync, realpathSync } from "fs";
7
7
  import { readFile } from "node:fs/promises";
@@ -1,6 +1,6 @@
1
- import { S as process_identity_exports, c as throwIfCancelled, s as cancelledError } from "./exec-VFRpu1iA.mjs";
2
- import { j as workspaceStateFile$1, l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-pUg3_RRA.mjs";
3
- import { ct as tailscaleStatusAsync } from "./config-BktkY_zC.mjs";
1
+ import { S as process_identity_exports, c as throwIfCancelled, s as cancelledError } from "./exec-aULwtNly.mjs";
2
+ import { j as workspaceStateFile$1, l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-BjqdjnJR.mjs";
3
+ import { lt as tailscaleStatusAsync } from "./config-Cn94Jc0g.mjs";
4
4
  import { randomBytes, randomUUID } from "node:crypto";
5
5
  import { statSync, watch } from "node:fs";
6
6
  import { HOSTED_METRO_REQUESTS_KEY, findPeer, hostedMetroGateways, hostedMetroRequests, isJsonObject, parseMachine } from "@stim-cli/core/state";
@@ -1,6 +1,6 @@
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-BktkY_zC.mjs";
3
- import { f as signalProcessTree, m as createPortProbe, s as parseNetstatPids } from "./metro-CjC10t6E.mjs";
1
+ import { S as process_identity_exports, t as getExecutor, u as withWorkspaceProcessLock } from "./exec-aULwtNly.mjs";
2
+ import { C as saveConfig, O as withConfigLockAsync, _ as loadConfig, c as ensureConfig, d as getConfigDir, p as getProject } from "./config-Cn94Jc0g.mjs";
3
+ import { f as signalProcessTree, m as createPortProbe, s as parseNetstatPids } from "./metro-CvyD-xwe.mjs";
4
4
  import { realpathSync } from "node:fs";
5
5
  //#region src/named-ports.ts
6
6
  const FIRST_PORT = 8900;
@@ -1,21 +1,20 @@
1
- import { t as getExecutor } from "./exec-VFRpu1iA.mjs";
2
- import { E as workspaceDir, y as sharedBuildCache } from "./workspace-state-pUg3_RRA.mjs";
3
- import { H as deviceSlotPlatforms, p as getProject, q as validateDeviceSlot } from "./config-BktkY_zC.mjs";
4
- import { nt as settingValueAt } from "./settings-CosW5X-S.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-DTAcRwBC.mjs";
6
- import { r as register } from "./cache-manifest-BEZ9Bpl1.mjs";
7
- import { tt as statsProjectKey } from "./budget-k2mZGvvk.mjs";
8
- import { d as runCancellationSignal } from "./native-run-BfIDFKLH.mjs";
9
- import { S as resolveBuild, s as entryDir, t as artifactIn } from "./build-cache-DrXNCy3T.mjs";
10
- import { o as resolveCcache } from "./ccache-Bx5TbxwG.mjs";
11
- import { r as androidToolchainAsync } from "./toolchain-J4J8MrAr.mjs";
12
- import { h as gradleOffloadInputs, y as nativeGradleTransfer } from "./client-D9CaRks-.mjs";
13
- import { d as buildGradle, l as androidSdkRefusal } from "./react-native-build-oNwqF5Wb.mjs";
14
- import { s as explainBuildMiss, u as skippedMissReason } from "./prebuild-gmouvmJZ.mjs";
15
- import { u as resolveAndroidRunPlan } from "./result-7F5hEwQJ.mjs";
16
- import { n as androidProcessRuntime } from "./launch-DOp8RjDz.mjs";
17
- import { n as planFlagRefusal, r as planPayload } from "./build-plan-DrMMdayj.mjs";
18
- import { a as nativeGradleWorkerArtifactIdentity, n as gradleArtifactInputs, r as nativeGradleArtifactSnapshot, t as NATIVE_GRADLE_CACHE_LIMIT } from "./native-gradle-artifact-inputs-btSUulme.mjs";
1
+ import { t as getExecutor } from "./exec-aULwtNly.mjs";
2
+ import { E as workspaceDir, y as sharedBuildCache } from "./workspace-state-BjqdjnJR.mjs";
3
+ import { H as deviceSlotPlatforms, p as getProject, q as validateDeviceSlot } from "./config-Cn94Jc0g.mjs";
4
+ import { it as settingValueAt } from "./settings-BDVI8Ivc.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-DriNoAVy.mjs";
6
+ import { s as resolveCcache } from "./ccache-BWTze1Ls.mjs";
7
+ import { r as register } from "./cache-manifest-DEjqGGat.mjs";
8
+ import { ot as statsProjectKey } from "./workspaces-DFbj07jp.mjs";
9
+ import { ot as runCancellationSignal, r as androidToolchainAsync } from "./toolchain-CbCG6C5Z.mjs";
10
+ import { C as resolveBuild, s as entryDir, t as artifactIn } from "./build-cache-gBJ-WKzA.mjs";
11
+ import { h as gradleOffloadInputs, y as nativeGradleTransfer } from "./client-xsdxrhWA.mjs";
12
+ import { d as buildGradle, l as androidSdkRefusal } from "./react-native-build-DaK2IFyP.mjs";
13
+ import { s as explainBuildMiss, u as skippedMissReason } from "./prebuild-BDpToDgR.mjs";
14
+ import { u as resolveAndroidRunPlan } from "./result-CTqBw2Te.mjs";
15
+ import { n as androidProcessRuntime } from "./launch-CRyBeNsA.mjs";
16
+ import { n as planFlagRefusal, r as planPayload } from "./build-plan-CBqYbzYM.mjs";
17
+ import { a as nativeGradleWorkerArtifactIdentity, n as gradleArtifactInputs, r as nativeGradleArtifactSnapshot, t as NATIVE_GRADLE_CACHE_LIMIT } from "./native-gradle-artifact-inputs-C13qT7R_.mjs";
19
18
  import { createHash } from "node:crypto";
20
19
  import { createReadStream, createWriteStream, existsSync, readFileSync, statSync } from "node:fs";
21
20
  import { tmpdir } from "node:os";
@@ -1,8 +1,8 @@
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-DTAcRwBC.mjs";
4
- import { n as buildCacheKey } from "./build-cache-DrXNCy3T.mjs";
5
- import { _ as nativeGradleLocalSourceDigest, h as gradleOffloadInputs } from "./client-D9CaRks-.mjs";
1
+ import { t as getExecutor } from "./exec-aULwtNly.mjs";
2
+ import { r as childEnvironment } from "./operation-exec-Dp4FuIGR.mjs";
3
+ import { o as androidHome } from "./android-DriNoAVy.mjs";
4
+ import { n as buildCacheKey } from "./build-cache-gBJ-WKzA.mjs";
5
+ import { _ as nativeGradleLocalSourceDigest, h as gradleOffloadInputs } from "./client-xsdxrhWA.mjs";
6
6
  import { n as fingerprintNativeInputs } from "./native-inputs-TRTTTRxt.mjs";
7
7
  import { createHash } from "node:crypto";
8
8
  import { homedir } from "node:os";
@@ -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-BjqdjnJR.mjs";
2
+ import { l as phaseLine } from "./command-output-Dj-WT4BP.mjs";
3
+ import { N as metroPortSetting } from "./settings-BDVI8Ivc.mjs";
4
+ import { d as resolveProjectMetro } from "./metro-CvyD-xwe.mjs";
5
+ import { It as LAUNCH_BUNDLING, Rt as LAUNCH_UNVERIFIED } from "./ccache-BWTze1Ls.mjs";
6
+ import { c as startDevServer } from "./start-DrPwER_2.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-BjqdjnJR.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-DYj-HVx6.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-BjqdjnJR.mjs";
3
+ import { G as remoteIosSetting, J as resolveCacheProviderConfig, Lt as repoRootAsync, rt as settingShapeErrors } from "./settings-BDVI8Ivc.mjs";
4
+ import { g as selectNativeXcodeProject, h as pbxString, p as NativeXcodeError } from "./project-DYj-HVx6.mjs";
5
+ import { Tn as processContext } from "./ccache-BWTze1Ls.mjs";
6
+ import { r as register } from "./cache-manifest-DEjqGGat.mjs";
7
+ import { ot as statsProjectKey } from "./workspaces-DFbj07jp.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-CbCG6C5Z.mjs";
9
+ import { d as filesystemBuildCapability, n as buildCacheKey } from "./build-cache-gBJ-WKzA.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-xsdxrhWA.mjs";
12
+ import { a as deviceModelRefusal, h as resolveDeviceType, m as resolveConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-Be0UeVZU.mjs";
13
+ import { r as gateProfileForDevice } from "./ios-signing-BJzvDPfU.mjs";
14
+ import { s as explainBuildMiss, u as skippedMissReason } from "./prebuild-BDpToDgR.mjs";
15
+ import { n as planFlagRefusal, t as planCachedBuild } from "./build-plan-CBqYbzYM.mjs";
16
+ import { t as IosRecipeRefusal } from "./ios-project-D8Jcy_br.mjs";
17
+ import { c as iosProcessRuntime, t as DEFAULT_DEPS } from "./dependencies-BGokZ-Ng.mjs";
18
+ import { a as nativeXcodeSources, i as nativeXcodePackages, n as nativeXcodeInputSnapshot, t as nativeXcodeHasPackages } from "./native-xcode-inputs-B1W8SrxB.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-BjqdjnJR.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-BDVI8Ivc.mjs";
7
+ import { f as projectRegistry, g as selectNativeXcodeProject } from "./project-DYj-HVx6.mjs";
8
+ import { s as parseNdjsonText } from "./ndjson-Dy2W4vRa.mjs";
9
+ import { Tn as processContext, n as CCACHE_UNAVAILABLE, s as resolveCcache } from "./ccache-BWTze1Ls.mjs";
10
+ import { O as runPodInstall, T as readPodState, b as useJdkMajor, i as availableIphone, w as podsAreStale, x as workerToolchain } from "./toolchain-CbCG6C5Z.mjs";
11
+ import { S as refingerprintAfterMutation, i as compareSourceLists, m as fingerprintProject } from "./build-cache-gBJ-WKzA.mjs";
12
+ import { _ as unmetNodePin, g as projectNodeLine, h as pathNodeVersion, v as withProjectNode } from "./server-expo-ABQs2XFA.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-xsdxrhWA.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-DaK2IFyP.mjs";
17
+ import { f as podAction } from "./support-Be0UeVZU.mjs";
18
+ import { a as runPrebuild, r as recordPrebuild, t as planPrebuild } from "./prebuild-BDpToDgR.mjs";
19
+ import { g as dumpApkManifest, p as apkPackage } from "./support-CNg_YsOk.mjs";
20
+ import { n as buildAndroidOperation, t as buildIosOperation } from "./build-hS0QyFlQ.mjs";
21
+ import { i as stageBundle, n as resolveBundleExtras } from "./stage-F4cAfJGi.mjs";
22
+ import { t as logLines } from "./run-DaCeNKRm.mjs";
23
+ import { r as nativeXcodeMetadataDirectories } from "./native-xcode-inputs-B1W8SrxB.mjs";
24
+ import { n as swiftpmArtifactInputs, r as swiftpmArtifactSnapshot, t as readSwiftpmArtifactToolchain } from "./swiftpm-artifact-inputs-uPqYvGBv.mjs";
25
+ import { a as nativeGradleWorkerArtifactIdentity, i as nativeGradleArtifactSnapshotFromReceipt, o as nativeGradleWorkerScope } from "./native-gradle-artifact-inputs-C13qT7R_.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-BjqdjnJR.mjs";
3
+ import { c as pidExists } from "./metro-CvyD-xwe.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-BjqdjnJR.mjs";
2
+ import { U as parseDeviceSlotKey, V as deviceSlotKey } from "./config-Cn94Jc0g.mjs";
3
+ import { $ as removeMetroReverses } from "./android-DriNoAVy.mjs";
4
+ import { a as stopHostedNative, i as prepareHostedNative, r as placeHostedNative } from "./hosted-native-CdgaiuyP.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-Bs8phwhN.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",