stim 1.21.0 → 1.23.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 (184) hide show
  1. package/README.md +60 -7
  2. package/dist/{acquire-artifact-CD4lbiWE.mjs → acquire-artifact-ybouwJSR.mjs} +21 -3
  3. package/dist/{act-DHAw2A2S.mjs → act-DG54PWtJ.mjs} +298 -164
  4. package/dist/{activity-BzVfHSrY.mjs → activity-B5RtpFda.mjs} +33 -12
  5. package/dist/{agent-device-usage-output-zh1vhbLp.mjs → agent-device-usage-output-UJ5gC80l.mjs} +7 -7
  6. package/dist/{android-BLgbNqox.mjs → android-BoUJKbfz.mjs} +66 -52
  7. package/dist/{android-DUYkNF4u.mjs → android-C7sVmyI9.mjs} +160 -59
  8. package/dist/{android-CV_GCELZ.mjs → android-CHH4KLOR.mjs} +5 -5
  9. package/dist/{android-BEJ8Jpl7.mjs → android-DR5lZ2Az.mjs} +2 -2
  10. package/dist/android-cas-compiler.mjs +1 -1
  11. package/dist/{android-cas-Ct5b1xCK.mjs → android-cas-ngferVq2.mjs} +3 -3
  12. package/dist/{client-B7QVOlCr.d.mts → android-project-DVWyCbWU.d.mts} +145 -7
  13. package/dist/api.d.mts +132 -118
  14. package/dist/api.mjs +239 -42
  15. package/dist/{artifact-DAuZ-FNU.mjs → artifact-5RteZem7.mjs} +69 -40
  16. package/dist/{artifact-B8T3S5gi.mjs → artifact-Dwdo7k1E.mjs} +40 -35
  17. package/dist/artifact-platform-CXcmX_j3.mjs +27 -0
  18. package/dist/{browser-web-QQzVjz3O.mjs → browser-web-CeEVlGug.mjs} +187 -59
  19. package/dist/{budget-Bs6SxxzO.mjs → budget-DnPX3DXj.mjs} +830 -699
  20. package/dist/{build-CoPzQRNw.mjs → build-CqufZFqy.mjs} +34 -27
  21. package/dist/{build-cache-DmyR9Zzc.mjs → build-cache-Dv7RN200.mjs} +4 -4
  22. package/dist/{build-plan-CaFskB7_.mjs → build-plan-C8CIvRyi.mjs} +74 -14
  23. package/dist/{cache-manifest-DkkqguoK.mjs → cache-manifest-DSeQjt-Q.mjs} +1 -1
  24. package/dist/cache-manifest.mjs +1 -1
  25. package/dist/{ccache-BJRZ9pG3.mjs → ccache-RcAy92gH.mjs} +6 -6
  26. package/dist/{cdp-CWmIUMbw.mjs → cdp-3fwICjzi.mjs} +1 -1
  27. package/dist/{chrome-B6tfCta1.mjs → chrome-Bbw689-6.mjs} +1 -1
  28. package/dist/{cli-0DYf8QhQ.mjs → cli-D-J9fWGV.mjs} +20 -20
  29. package/dist/cli.mjs +1 -1
  30. package/dist/{client-UXD70ZbM.mjs → client-yyso1bwi.mjs} +218 -47
  31. package/dist/collector-run.d.mts +1 -1
  32. package/dist/collector-run.mjs +6 -6
  33. package/dist/{command-output-B1UrjZHL.mjs → command-output-Db8BqzxH.mjs} +1 -1
  34. package/dist/{config-CYcBF478.mjs → config-DlrsduwG.mjs} +17 -11
  35. package/dist/{created-devices-CqeBlrEn.mjs → created-devices-x9rN6bhs.mjs} +13 -3
  36. package/dist/{dependency-state-BbKQW83h.mjs → dependency-state-1I9KZT1Y.mjs} +2 -2
  37. package/dist/{detached-entry-DFRyG1_o.mjs → detached-entry-BwNEtIrP.mjs} +1 -1
  38. package/dist/{dev-client-UOeESKm6.mjs → dev-client-BnYSDiKa.mjs} +2 -2
  39. package/dist/{device-DCxH7_By.mjs → device-BvzPUBs3.mjs} +16 -16
  40. package/dist/{device-ExJq8Ei7.mjs → device-CCkWmkAA.mjs} +71 -14
  41. package/dist/{device-capacity-CMlqEcvw.mjs → device-capacity-CjaSdrhg.mjs} +9 -10
  42. package/dist/device-host-worker.mjs +25 -32
  43. package/dist/{device-ios-DRUeKaFV.mjs → device-ios-uOiEETX2.mjs} +39 -16
  44. package/dist/{device-lease-run-C8raGFoP.mjs → device-lease-run-BgwPHc6u.mjs} +5 -5
  45. package/dist/{device-pool-DMRpVX9a.mjs → device-pool-C-ptmZTa.mjs} +3 -3
  46. package/dist/{doctor-DTvaDOda.mjs → doctor-8sr2tFOL.mjs} +24 -37
  47. package/dist/{doctor-Dhqebm0q.mjs → doctor-D2SN3Ltx.mjs} +19 -16
  48. package/dist/doctor-fingerprint-DZLoYFVb.mjs +16 -0
  49. package/dist/doctor-fingerprint.mjs +1 -1
  50. package/dist/{doctor-BLHCYxzi.mjs → doctor-pxxvipYC.mjs} +1 -1
  51. package/dist/{doctor-watchman-Cv1F10Kj.mjs → doctor-watchman-sy_RNhFt.mjs} +5 -5
  52. package/dist/{eas-build-BomfRnFT.mjs → eas-build-CyjU5K7E.mjs} +4 -4
  53. package/dist/{eas-fallback-DJwZpy0c.mjs → eas-fallback-DV3Wytf1.mjs} +27 -18
  54. package/dist/{eas-session-ledger-op6A54yi.mjs → eas-session-ledger-BzzsX97d.mjs} +8 -7
  55. package/dist/{error-diagnostics-Bf0rZvG9.mjs → error-diagnostics-C6sVoeqO.mjs} +10 -10
  56. package/dist/{exec-_UbtCQcG.mjs → exec-DEoAhcze.mjs} +155 -47
  57. package/dist/{exec-H20xSg2T.d.mts → exec-DnYc4HGH.d.mts} +17 -4
  58. package/dist/{gc-_-dCXdyL.mjs → gc-CDoogxAI.mjs} +587 -313
  59. package/dist/gc-DLbzvTP2.mjs +3 -0
  60. package/dist/{guide-Yqwt2bd6.mjs → guide-BC37GcDG.mjs} +288 -59
  61. package/dist/{hosted-android-Bw-honsd.mjs → hosted-android-CkclQig_.mjs} +6 -6
  62. package/dist/{hosted-client-DB_gBPfY.mjs → hosted-client-ByuMMO5s.mjs} +4 -4
  63. package/dist/{hosted-ios-CUvOf4Vr.mjs → hosted-ios-DtYHeuYR.mjs} +1 -1
  64. package/dist/{hosted-logs-DL_P5AdN.mjs → hosted-logs-Br84qWy1.mjs} +5 -5
  65. package/dist/{hosted-macos-QI141yKk.mjs → hosted-macos-DdtYajZt.mjs} +21 -12
  66. package/dist/{hosted-native-Ksyjgzq-.mjs → hosted-native-UPI9zdZ4.mjs} +27 -14
  67. package/dist/{idle-BVeRGroT.d.mts → idle-C4cZ757K.d.mts} +3 -3
  68. package/dist/{idle-shutdown-DaKmZi0z.mjs → idle-shutdown-DO7oIRlc.mjs} +7 -7
  69. package/dist/ios-CDvlmUs7.d.mts +24 -0
  70. package/dist/{ios-ubFsBzwq.mjs → ios-DZZbNYlY.mjs} +59 -50
  71. package/dist/{ios-device-CXGP1bsD.mjs → ios-device-BXZ0c7Kb.mjs} +1 -1
  72. package/dist/{ios-device-CwFMehUS.mjs → ios-device-JC3uWM4K.mjs} +3 -3
  73. package/dist/{ios-CpByZy12.mjs → ios-hcBpnEGk.mjs} +81 -34
  74. package/dist/{ios-project-WuwwBdvW.mjs → ios-project-CVyNwjAF.mjs} +5 -5
  75. package/dist/{ios-signing-DTTIChGs.mjs → ios-signing-BtAffm0A.mjs} +2 -2
  76. package/dist/{ios-state-DvFX-K_l.mjs → ios-state-Dtw5K2aI.mjs} +1 -1
  77. package/dist/{ios-CQ68hG9s.mjs → ios-vbUOqGXu.mjs} +8 -8
  78. package/dist/{ios-qNJt4dFm.mjs → ios-xtlRHaeB.mjs} +1 -1
  79. package/dist/{js-swap-Cc1dttps.mjs → js-swap-C3QxUFJR.mjs} +7 -29
  80. package/dist/{launch-CD1yVc7U.mjs → launch-Bz7JtaC4.mjs} +16 -16
  81. package/dist/{launch-Zq2mOSDy.mjs → launch-CHY3p-yz.mjs} +40 -39
  82. package/dist/{logs-CMm05HxN.mjs → logs-CtNeNDuq.mjs} +10 -17
  83. package/dist/{logs-BS00Anxf.mjs → logs-mxqsWpJs.mjs} +151 -24
  84. package/dist/{macos-B65--pPd.mjs → macos-inNFbBWc.mjs} +1 -1
  85. package/dist/macos-run.mjs +1 -1
  86. package/dist/{macos-C-0qJ6zq.mjs → macos-u0BoHKnO.mjs} +143 -46
  87. package/dist/maintenance-run.mjs +8 -8
  88. package/dist/{metro-DEXpIhHC.mjs → metro-DiXtA3Ty.mjs} +59 -37
  89. package/dist/{metro-gateway-BMJNlj3E.mjs → metro-gateway-CKZqKqx7.mjs} +120 -22
  90. package/dist/{named-ports-BWTzt6mu.mjs → named-ports-DkEzOfzO.mjs} +40 -33
  91. package/dist/{native-android-JACyjTZs.mjs → native-android-CdCSylTn.mjs} +43 -242
  92. package/dist/native-gradle-artifact-inputs-DHFnmrVf.mjs +270 -0
  93. package/dist/{native-gradle-inputs-Bep9JcSF.mjs → native-gradle-inputs-Dnh84Zbd.mjs} +3 -129
  94. package/dist/{native-run-DY_RLx3C.mjs → native-run-BUTu8T7A.mjs} +4 -5
  95. package/dist/{native-runtime-Dg1Q7tfF.mjs → native-runtime-CRSOZxKY.mjs} +8 -7
  96. package/dist/native-source-Y0yLhFyQ.mjs +133 -0
  97. package/dist/{native-xcode-inputs-CB2iQeWq.mjs → native-xcode-inputs-G6rkkhxu.mjs} +2 -3
  98. package/dist/{native-xcode-ios-CXX39F7o.mjs → native-xcode-ios-_os2PlCD.mjs} +27 -32
  99. package/dist/offload-worker.d.mts +65 -2
  100. package/dist/offload-worker.mjs +305 -73
  101. package/dist/operation-exec-BW0em61G.mjs +171 -0
  102. package/dist/{ownership-DEmM5vhh.mjs → ownership-C5fo5Edb.mjs} +3 -3
  103. package/dist/{page-CPaHeYqj.mjs → page-DBL2PiUU.mjs} +8 -4
  104. package/dist/{placement-log-BqGbTa61.mjs → placement-log-BnGgJRRZ.mjs} +1 -1
  105. package/dist/{plan-placement-Bwj-IjY1.mjs → plan-placement-BU42oOyT.mjs} +12 -8
  106. package/dist/{ports-D-MmCTdv.mjs → ports-BSmQKzW7.mjs} +3 -3
  107. package/dist/{prebuild-uD_ipCxF.mjs → prebuild-BFm63bQ0.mjs} +63 -16
  108. package/dist/{project-BZNjmW_8.mjs → project-CTLNHCfE.mjs} +16 -16
  109. package/dist/{pull-request-Lfetn8Kr.mjs → pull-request-W1IuLXDt.mjs} +102 -20
  110. package/dist/{pull-request-zjCSAryH.d.mts → pull-request-eODyIqZF.d.mts} +6 -2
  111. package/dist/pull-requests.d.mts +2 -2
  112. package/dist/pull-requests.mjs +2 -2
  113. package/dist/{react-native-android-DuzH0cn3.mjs → react-native-android-CFgUroxW.mjs} +73 -53
  114. package/dist/{react-native-build-rhk4smwQ.mjs → react-native-build-CmJkTljQ.mjs} +8 -8
  115. package/dist/{react-native-doctor-CQpuIMso.mjs → react-native-doctor-LTF-Xt8l.mjs} +7 -7
  116. package/dist/{react-native-ios-Bhq1rJeV.mjs → react-native-ios-ChBF1MkB.mjs} +43 -29
  117. package/dist/{recordings-DYteQSu4.mjs → recordings-CQmfzAh7.mjs} +1 -1
  118. package/dist/registration-BcRgF6Ox.mjs +51 -0
  119. package/dist/{reload-CmTRFJaX.mjs → reload-DF9hqUUB.mjs} +16 -15
  120. package/dist/{reload-DzjSl5P_.mjs → reload-RBi1nj6Z.mjs} +1 -1
  121. package/dist/{remote-ByYkXdGD.mjs → remote-BmvMCcJw.mjs} +18 -15
  122. package/dist/{result-DNiS-tTP.mjs → result-Cx5CRLvS.mjs} +24 -23
  123. package/dist/{run-D23HmJMs.mjs → run-DidHghD1.mjs} +3 -2
  124. package/dist/{selection-CSl9i5qU.mjs → selection-DSMbWEX2.mjs} +6 -5
  125. package/dist/{server-bare-CxTrvDg8.mjs → server-bare-CafzuyFB.mjs} +2 -2
  126. package/dist/{server-command-CtzloH3v.mjs → server-command-BTiGPEjS.mjs} +5 -5
  127. package/dist/server-expo-C-Buqvn_.mjs +2 -0
  128. package/dist/{server-expo-DT_F_uVI.mjs → server-expo-D9lEz4aq.mjs} +7 -5
  129. package/dist/{settings-CsJDEXgK.mjs → settings-C7O8A6ZI.mjs} +223 -243
  130. package/dist/{settings-T1gtc3bf.mjs → settings-eKF_vJJs.mjs} +1 -1
  131. package/dist/{settings-write-HyVZ8eQ8.mjs → settings-write-79mQRr9C.mjs} +7 -6
  132. package/dist/settings.schema.json +13 -0
  133. package/dist/{simslim-Cgk17SXV.mjs → simslim-BNckWpXi.mjs} +2 -2
  134. package/dist/{slot-launch-DF8VfT64.mjs → slot-launch-D7M2nE4b.mjs} +6 -6
  135. package/dist/{stage-BIS0ydsV.mjs → stage-DKNM4ZPd.mjs} +21 -4
  136. package/dist/{start-RChynRDp.mjs → start-CRfN1kWV.mjs} +1 -1
  137. package/dist/{start-7lpH7hmN.mjs → start-bjfiScgz.mjs} +622 -393
  138. package/dist/{state-C4ZtUisW.mjs → state--smjFSTL.mjs} +22 -7
  139. package/dist/{state-XMziexv2.mjs → state-08I3hw3_.mjs} +2 -2
  140. package/dist/{stats-53T7OTb9.mjs → stats-DioA6cBU.mjs} +5 -5
  141. package/dist/{stats-report-BFfMpWWF.mjs → stats-report-BzaPrRm6.mjs} +1 -1
  142. package/dist/{status-DqEUSSxs.mjs → status-BRROykC8.mjs} +2 -2
  143. package/dist/{status-CSi6tlRq.mjs → status-Eqx_20WC.mjs} +1 -1
  144. package/dist/{status-BL7jVyAB.mjs → status-kzbeWk4x.mjs} +43 -29
  145. package/dist/{status-watch-GDCfqpTE.mjs → status-watch-BIqqbJ6q.mjs} +48 -16
  146. package/dist/status-worker.mjs +1 -1
  147. package/dist/{stim-desktop-C12we7lz.mjs → stim-desktop-D5OGpYZM.mjs} +2 -2
  148. package/dist/{stop-Bk_1qiV6.mjs → stop-B18d8KDw.mjs} +2 -2
  149. package/dist/{stop-CPzlM1L-.mjs → stop-B2uLQfoM.mjs} +15 -16
  150. package/dist/{stop-D7h6jAXQ.mjs → stop-DzLJc7Ei.mjs} +31 -22
  151. package/dist/supervisor-run.d.mts +3 -3
  152. package/dist/supervisor-run.mjs +28 -36
  153. package/dist/{support-Dlu37g6H.mjs → support-BTpZ6RAJ.mjs} +15 -11
  154. package/dist/{support-67vraa1Q.mjs → support-DTBV56gy.mjs} +8 -8
  155. package/dist/swiftpm-artifact-inputs-DFcGsXDP.mjs +153 -0
  156. package/dist/swiftpm-macos-r_WSKlXr.mjs +532 -0
  157. package/dist/{toolchain-Hp9sCpK4.mjs → toolchain-CWeGJgCc.mjs} +9 -6
  158. package/dist/toolchain-GVgnf8d1.mjs +2 -0
  159. package/dist/{trigger-BAahxUPq.mjs → trigger-Cbyc41d_.mjs} +3 -3
  160. package/dist/trigger-yb_nFzPF.mjs +2 -0
  161. package/dist/{warm-progress-BHX5r0Ei.mjs → warm-progress-CA3TgT3-.mjs} +29 -16
  162. package/dist/web-Cduk0NSE.mjs +2 -0
  163. package/dist/{web-CJmIj6AI.mjs → web-CwREhjD-.mjs} +11 -10
  164. package/dist/web-run.mjs +11 -9
  165. package/dist/windows-report.mjs +1 -1
  166. package/dist/{workspace-state-Cjuigeeu.mjs → workspace-state-U08dEzhG.mjs} +3 -3
  167. package/dist/{workspaces-BccMFmGQ.mjs → workspaces-BxzYlo3P.mjs} +594 -266
  168. package/dist/{worktree-DQ6Zi2Mv.mjs → worktree-8lqn_lBp.mjs} +850 -551
  169. package/dist/worktree-BxfVxG_b.mjs +2 -0
  170. package/dist/{xcode-Zlx3qjEs.mjs → xcode-iQnROM5o.mjs} +5 -5
  171. package/package.json +7 -7
  172. package/shim/android-audio/Main.java +24 -0
  173. package/shim/android-audio/README.md +17 -0
  174. package/shim/android-audio.jar +0 -0
  175. package/dist/gc-C-WwL0yi.mjs +0 -3
  176. package/dist/git-C3iTsJaZ.mjs +0 -73
  177. package/dist/server-expo-C-90EhcG.mjs +0 -2
  178. package/dist/settings-DkdmlelE.d.mts +0 -15
  179. package/dist/swiftpm-macos-p8WZbxKU.mjs +0 -130
  180. package/dist/toolchain-DhKwp9iI.mjs +0 -2
  181. package/dist/trigger-Bf3uDcpv.mjs +0 -2
  182. package/dist/web-DknQETPs.mjs +0 -2
  183. package/dist/workspace-process-lock-1_1OoVW5.mjs +0 -57
  184. package/dist/worktree-CK2MpJW5.mjs +0 -2
@@ -1,35 +1,36 @@
1
- import { d as withDrainingCancellation } from "./exec-_UbtCQcG.mjs";
1
+ import { h as withDrainingCancellation } from "./exec-DEoAhcze.mjs";
2
2
  import { d as workspaceDir, m as workspaceLogsDir } from "./paths-DQtTgsBf.mjs";
3
- import { E as upsertProject, p as getProject, u as getConcurrencyLimits } from "./config-CYcBF478.mjs";
4
- import { l as phaseLine } from "./command-output-B1UrjZHL.mjs";
5
- import { i as recordWorkspaceUse } from "./workspace-state-Cjuigeeu.mjs";
6
- import { $t as cancelledError, G as resolveCacheProviderConfig, J as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY, en as throwIfCancelled } from "./settings-CsJDEXgK.mjs";
7
- import { f as projectRegistry, v as detectIsExpo } from "./project-BZNjmW_8.mjs";
3
+ import { E as upsertProject, p as getProject, u as getConcurrencyLimits } from "./config-DlrsduwG.mjs";
4
+ import { l as phaseLine } from "./command-output-Db8BqzxH.mjs";
5
+ import { d as cancelledError, f as throwIfCancelled } from "./operation-exec-BW0em61G.mjs";
6
+ import { i as recordWorkspaceUse } from "./workspace-state-U08dEzhG.mjs";
7
+ import { G as resolveCacheProviderConfig, J as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY } from "./settings-C7O8A6ZI.mjs";
8
+ import { f as projectRegistry, v as detectIsExpo } from "./project-CTLNHCfE.mjs";
8
9
  import { r as createNdjsonWriter } from "./ndjson-CgE_o3Dl.mjs";
9
- import { B as recordFinishedBuild, Bn as checkEasAuth, H as tapBuildLog, J as recordRunStats, Jn as resolveRemote, U as createRunRecorder, V as startBuildProgress, W as readRunEstimates, Y as statsProjectKey, Yn as uploadRemote } from "./budget-Bs6SxxzO.mjs";
10
- import { d as runCancellationSignal, f as withNativeBuildRun } from "./native-run-DY_RLx3C.mjs";
11
- import { F as acquireBuildSlot, L as releaseBuildSlot } from "./workspaces-BccMFmGQ.mjs";
12
- import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-BzVfHSrY.mjs";
13
- import { p as providerUploadOutcome } from "./build-cache-DmyR9Zzc.mjs";
14
- import { O as hostSystemImageArch } from "./android-DUYkNF4u.mjs";
15
- import { m as listIosRuntimes } from "./ios-CpByZy12.mjs";
16
- import { s as workspaceShareURL } from "./stim-desktop-C12we7lz.mjs";
10
+ import { B as recordFinishedBuild, Bn as checkEasAuth, H as tapBuildLog, J as recordRunStats, Jn as resolveRemote, U as createRunRecorder, V as startBuildProgress, W as readRunEstimates, Y as statsProjectKey, Yn as uploadRemote } from "./budget-DnPX3DXj.mjs";
11
+ import { d as runCancellationSignal, f as withNativeBuildRun } from "./native-run-BUTu8T7A.mjs";
12
+ import { I as acquireBuildSlot, R as releaseBuildSlot } from "./workspaces-BxzYlo3P.mjs";
13
+ import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-B5RtpFda.mjs";
14
+ import { p as providerUploadOutcome } from "./build-cache-Dv7RN200.mjs";
15
+ import { k as hostSystemImageArch } from "./android-C7sVmyI9.mjs";
16
+ import { m as listIosRuntimes } from "./ios-hcBpnEGk.mjs";
17
+ import { s as workspaceShareURL } from "./stim-desktop-D5OGpYZM.mjs";
17
18
  import { d as optimizationBuildProfile, l as artifactCachePolicy } from "./errors-ccaPc4ox.mjs";
18
- import { p as readBundleId } from "./xcode-Zlx3qjEs.mjs";
19
- import { f as setRemoteLogSink } from "./client-UXD70ZbM.mjs";
20
- import { s as resolveBuildPlacement } from "./selection-CSl9i5qU.mjs";
21
- import { c as iosProjectPathError, g as resolveIosBuildSetup, m as resolveConfiguration, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-Dlu37g6H.mjs";
22
- import { n as ensureWorkspaceStorageSafely } from "./native-runtime-Dg1Q7tfF.mjs";
23
- import { t as acquireAndroidArtifact } from "./artifact-DAuZ-FNU.mjs";
24
- import { i as persistLastBuild, n as finishAndroidUpload, s as resolveAndroidBuildPlan } from "./result-DNiS-tTP.mjs";
25
- import { a as lastBuildRecord } from "./ios-project-WuwwBdvW.mjs";
26
- import { t as acquireIosArtifact } from "./artifact-B8T3S5gi.mjs";
19
+ import { p as readBundleId } from "./xcode-iQnROM5o.mjs";
20
+ import { h as setRemoteLogSink } from "./client-yyso1bwi.mjs";
21
+ import { s as resolveBuildPlacement } from "./selection-DSMbWEX2.mjs";
22
+ import { c as iosProjectPathError, g as resolveIosBuildSetup, m as resolveConfiguration, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-BTpZ6RAJ.mjs";
23
+ import { n as ensureWorkspaceStorageSafely } from "./native-runtime-CRSOZxKY.mjs";
24
+ import { t as acquireAndroidArtifact } from "./artifact-5RteZem7.mjs";
25
+ import { i as persistLastBuild, n as finishAndroidUpload, s as resolveAndroidBuildPlan } from "./result-Cx5CRLvS.mjs";
26
+ import { a as lastBuildRecord } from "./ios-project-CVyNwjAF.mjs";
27
+ import { t as acquireIosArtifact } from "./artifact-Dwdo7k1E.mjs";
27
28
  import { constants, promises } from "node:fs";
28
29
  import { basename, join } from "node:path";
29
30
  import { hostSimulatorArch } from "@stim-cli/core";
30
31
  import { loadCacheProvider } from "@stim-cli/cache";
31
32
  //#region src/commands/android/build.ts
32
- async function buildAndroidOperation(context, root, options, { cacheArtifacts = true } = {}) {
33
+ async function buildAndroidOperation(context, root, options, { artifactScope, cachePolicy } = {}) {
33
34
  const note = (line) => context.output("stderr", `${line}\n`);
34
35
  const selected = projectRegistry.selectAndroid(root);
35
36
  if ("problem" in selected) throw Object.assign(new Error(selected.problem.message), {
@@ -132,12 +133,15 @@ async function buildAndroidOperation(context, root, options, { cacheArtifacts =
132
133
  writer,
133
134
  recipe: integration.artifact({
134
135
  operation: context,
135
- cacheArtifacts,
136
+ artifactScope,
136
137
  root,
137
138
  buildLog,
138
139
  writer,
139
140
  settings,
140
- buildPlan: plan.plan.build,
141
+ buildPlan: {
142
+ ...plan.plan.build,
143
+ ...cachePolicy ? { cache: cachePolicy } : {}
144
+ },
141
145
  target: { abi },
142
146
  phase,
143
147
  out: note,
@@ -148,7 +152,10 @@ async function buildAndroidOperation(context, root, options, { cacheArtifacts =
148
152
  })
149
153
  }),
150
154
  targetOffloadRefusal: null,
151
- buildPlan: plan.plan.build,
155
+ buildPlan: {
156
+ ...plan.plan.build,
157
+ ...cachePolicy ? { cache: cachePolicy } : {}
158
+ },
152
159
  cacheProviderConfig: plan.plan.cacheProviderConfig,
153
160
  requestedBuildCache: options.buildCache !== false,
154
161
  easBuild: null,
@@ -1,8 +1,8 @@
1
- import { d as withDrainingCancellation, t as getExecutor } from "./exec-_UbtCQcG.mjs";
1
+ import { h as withDrainingCancellation, t as getExecutor } from "./exec-DEoAhcze.mjs";
2
2
  import { i as sharedBuildCache } from "./paths-DQtTgsBf.mjs";
3
- import { Gt as childEnvironment, en as throwIfCancelled, m as defaultAndroidLayout, qt as killOnAbort } from "./settings-CsJDEXgK.mjs";
4
- import { r as gitQuiet, t as git } from "./git-C3iTsJaZ.mjs";
5
- import { r as register } from "./cache-manifest-DkkqguoK.mjs";
3
+ import { a as killOnAbort, c as gitQuiet, f as throwIfCancelled, o as git, r as childEnvironment } from "./operation-exec-BW0em61G.mjs";
4
+ import { m as defaultAndroidLayout } from "./settings-C7O8A6ZI.mjs";
5
+ import { r as register } from "./cache-manifest-DSeQjt-Q.mjs";
6
6
  import { createHash } from "node:crypto";
7
7
  import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
8
8
  import { join } from "node:path";
@@ -1,10 +1,11 @@
1
- import { i as formatDuration, l as phaseLine, m as shortHash, u as plural } from "./command-output-B1UrjZHL.mjs";
2
- import { Xt as removeTemporaryEntry, Yt as makeTemporaryDirectory } from "./settings-CsJDEXgK.mjs";
3
- import { G as readStats, L as estimateBuild, Vn as easAuthNote } from "./budget-Bs6SxxzO.mjs";
4
- import { o as entryDir, t as artifactIn } from "./build-cache-DmyR9Zzc.mjs";
5
- import { i as staleNativeDirRefusal, s as predictBuildMiss } from "./prebuild-uD_ipCxF.mjs";
1
+ import { y as trackReportResource } from "./exec-DEoAhcze.mjs";
2
+ import { i as formatDuration, l as phaseLine, m as shortHash, u as plural } from "./command-output-Db8BqzxH.mjs";
3
+ import { Ht as makeTemporaryDirectory, Wt as removeTemporaryEntryAsync } from "./settings-C7O8A6ZI.mjs";
4
+ import { G as readStats, L as estimateBuild, Vn as easAuthNote } from "./budget-DnPX3DXj.mjs";
5
+ import { o as entryDir, t as artifactIn } from "./build-cache-Dv7RN200.mjs";
6
+ import { a as staleNativeDirRefusal, c as predictBuildMiss } from "./prebuild-BFm63bQ0.mjs";
6
7
  import chalk from "chalk";
7
- import { resolveTieredBuild } from "@stim-cli/cache";
8
+ import { PROVIDER_LOAD_TIMEOUT_ENV, PROVIDER_LOAD_TIMEOUT_MS, buildResolveTimeoutMs, resolveTieredBuild, timeoutFromEnv } from "@stim-cli/cache";
8
9
  //#region src/commands/build-plan.ts
9
10
  const DISCARD = {
10
11
  file: "",
@@ -28,16 +29,53 @@ async function providerHit({ root, platform, cacheKey, providerConfig }, deps) {
28
29
  deps.note(chalk.yellow(phaseLine("cache", `provider not checked: ${error?.message || error}`)));
29
30
  return null;
30
31
  }
32
+ let pending = Promise.resolve();
33
+ const cleanupFailure = Object.assign(/* @__PURE__ */ new Error(`Cache provider cleanup did not finish within 35 seconds. Retained ${destinationDir}.`), {
34
+ code: "STIM_CLAIM_UNAVAILABLE",
35
+ reportCleanup: true,
36
+ remedy: "Confirm that no cache work is still using the retained download directory before inspecting its permissions and removing it."
37
+ });
38
+ let cleanup;
39
+ let close;
40
+ const closed = new Promise((resolve) => {
41
+ close = resolve;
42
+ });
43
+ const finish = () => cleanup ??= finishProviderDownload(pending, destinationDir, cleanupFailure).finally(() => close());
44
+ trackReportResource(deps.operation, closed, finish, deps.operation?.signal, cleanupFailure);
31
45
  try {
32
46
  const found = await resolveTieredBuild({
33
47
  local: {
34
48
  resolve: () => null,
35
49
  store: () => null
36
50
  },
37
- loadProvider: () => deps.loadCacheProvider({
38
- projectRoot: root,
39
- config: providerConfig
40
- }),
51
+ loadProvider: async () => {
52
+ const loaded = await deps.loadCacheProvider({
53
+ projectRoot: root,
54
+ config: providerConfig,
55
+ ...deps.operation ? { env: deps.operation.env } : {},
56
+ timeoutMs: timeoutFromEnv(PROVIDER_LOAD_TIMEOUT_ENV, PROVIDER_LOAD_TIMEOUT_MS, deps.operation?.env)
57
+ });
58
+ const capability = loaded?.provider?.builds;
59
+ if (!capability) return loaded;
60
+ return {
61
+ ...loaded,
62
+ provider: {
63
+ ...loaded.provider,
64
+ builds: {
65
+ store: capability.store.bind(capability),
66
+ resolve: (request) => {
67
+ const resolving = Promise.resolve().then(() => capability.resolve(request));
68
+ pending = resolving.then(() => void 0, (cause) => {
69
+ if (cause instanceof Error && "reportCleanup" in cause) throw cause;
70
+ });
71
+ return resolving;
72
+ }
73
+ }
74
+ }
75
+ };
76
+ },
77
+ signal: deps.operation?.signal,
78
+ timeoutMs: buildResolveTimeoutMs(deps.operation?.env),
41
79
  target: {
42
80
  projectRoot: root,
43
81
  platform,
@@ -48,13 +86,31 @@ async function providerHit({ root, platform, cacheKey, providerConfig }, deps) {
48
86
  });
49
87
  return found ? found.providerName ?? "the cache provider" : null;
50
88
  } finally {
51
- removeTemporaryEntry(destinationDir);
89
+ await finish();
90
+ }
91
+ }
92
+ async function finishProviderDownload(pending, destinationDir, cleanupFailure) {
93
+ let timer;
94
+ if (!await Promise.race([pending.then(() => true), new Promise((resolve) => {
95
+ timer = setTimeout(() => resolve(false), 35e3);
96
+ })]).finally(() => clearTimeout(timer))) throw cleanupFailure;
97
+ try {
98
+ await removeTemporaryEntryAsync(destinationDir);
99
+ } catch (cause) {
100
+ throw Object.assign(new Error(`Cache provider download cleanup failed. Retained ${destinationDir}.`, { cause }), {
101
+ code: "STIM_CLAIM_UNAVAILABLE",
102
+ reportCleanup: true,
103
+ remedy: "Check the retained directory permissions and remove it before retrying."
104
+ });
52
105
  }
53
106
  }
54
107
  async function expoRemoteHit(lookup, deps) {
55
108
  if (!lookup.expoRemote) return null;
56
109
  const { root, platform, isExpo, fingerprint } = lookup;
57
- const loaded = await deps.loadProjectProvider(root, { isExpo });
110
+ const loaded = await deps.loadProjectProvider(root, {
111
+ isExpo,
112
+ context: deps.operation
113
+ });
58
114
  if (loaded?.unavailable) {
59
115
  deps.note(chalk.yellow(phaseLine("cache", `provider not usable: ${loaded.unavailable}`)));
60
116
  return null;
@@ -63,6 +119,7 @@ async function expoRemoteHit(lookup, deps) {
63
119
  const name = loaded.name ?? "the build cache provider";
64
120
  if (name === "eas") {
65
121
  const auth = await deps.checkEasAuth({
122
+ context: deps.operation,
66
123
  projectRoot: root,
67
124
  owner: loaded.owner || null
68
125
  });
@@ -71,6 +128,7 @@ async function expoRemoteHit(lookup, deps) {
71
128
  if (auth?.code === "logged-out") return null;
72
129
  }
73
130
  const hit = await deps.resolveRemote({
131
+ context: deps.operation,
74
132
  provider: loaded.provider,
75
133
  platform,
76
134
  projectRoot: root,
@@ -84,6 +142,7 @@ async function expoRemoteHit(lookup, deps) {
84
142
  }
85
143
  async function planCachedBuild(lookup, deps) {
86
144
  const { root, platform, isExpo, fingerprint, sources, cacheKey, cachePolicy } = lookup;
145
+ deps.operation?.signal.throwIfAborted();
87
146
  let cacheHit = false;
88
147
  let provider = null;
89
148
  if (cachePolicy.read) {
@@ -93,15 +152,16 @@ async function planCachedBuild(lookup, deps) {
93
152
  if (provider) cacheHit = "remote";
94
153
  }
95
154
  }
155
+ deps.operation?.signal.throwIfAborted();
96
156
  let prebuild = null;
97
157
  let refusal = null;
98
158
  let missReason;
99
159
  if (!cacheHit) {
100
- prebuild = deps.planPrebuild(root, platform, {
160
+ prebuild = await deps.planPrebuild(root, platform, {
101
161
  isExpo,
102
162
  fingerprint,
103
163
  sources
104
- });
164
+ }, deps.operation?.signal);
105
165
  if (prebuild === "refuse") refusal = staleNativeDirRefusal(platform);
106
166
  else if (cachePolicy.read) missReason = predictBuildMiss({
107
167
  root,
@@ -1,4 +1,4 @@
1
- import { d as getConfigDir } from "./config-CYcBF478.mjs";
1
+ import { d as getConfigDir } from "./config-DlrsduwG.mjs";
2
2
  import { cacheDirRefusal, readCacheManifest, updateCacheManifest } from "@stim-cli/core";
3
3
  import { join, resolve } from "path";
4
4
  import { existsSync } from "fs";
@@ -1,2 +1,2 @@
1
- import { a as unregister, i as registeredCaches, n as readManifest, r as register, t as manifestPath } from "./cache-manifest-DkkqguoK.mjs";
1
+ import { a as unregister, i as registeredCaches, n as readManifest, r as register, t as manifestPath } from "./cache-manifest-DSeQjt-Q.mjs";
2
2
  export { manifestPath, readManifest, register, registeredCaches, unregister };
@@ -1,10 +1,10 @@
1
- import { t as getExecutor } from "./exec-_UbtCQcG.mjs";
1
+ import { t as getExecutor } from "./exec-DEoAhcze.mjs";
2
2
  import { a as sharedCcache, m as workspaceLogsDir } from "./paths-DQtTgsBf.mjs";
3
- import { _ as loadConfig } from "./config-CYcBF478.mjs";
4
- import { l as phaseLine } from "./command-output-B1UrjZHL.mjs";
5
- import { m as defaultAndroidLayout } from "./settings-CsJDEXgK.mjs";
6
- import { r as register } from "./cache-manifest-DkkqguoK.mjs";
7
- import { o as machineNumber } from "./budget-Bs6SxxzO.mjs";
3
+ import { _ as loadConfig } from "./config-DlrsduwG.mjs";
4
+ import { l as phaseLine } from "./command-output-Db8BqzxH.mjs";
5
+ import { m as defaultAndroidLayout } from "./settings-C7O8A6ZI.mjs";
6
+ import { r as register } from "./cache-manifest-DSeQjt-Q.mjs";
7
+ import { o as machineNumber } from "./budget-DnPX3DXj.mjs";
8
8
  import { readFileSync, realpathSync } from "node:fs";
9
9
  import { isAbsolute, join, relative } from "node:path";
10
10
  import chalk from "chalk";
@@ -1,4 +1,4 @@
1
- import { $t as cancelledError, en as throwIfCancelled } from "./settings-CsJDEXgK.mjs";
1
+ import { d as cancelledError, f as throwIfCancelled } from "./operation-exec-BW0em61G.mjs";
2
2
  import { WebSocket } from "ws";
3
3
  //#region src/web/cdp.ts
4
4
  const COMMAND_TIMEOUT_MS = 15e3;
@@ -1,4 +1,4 @@
1
- import { t as getExecutor } from "./exec-_UbtCQcG.mjs";
1
+ import { t as getExecutor } from "./exec-DEoAhcze.mjs";
2
2
  import { existsSync } from "node:fs";
3
3
  import { homedir } from "node:os";
4
4
  import { join } from "node:path";
@@ -1,27 +1,27 @@
1
- import { _ as debugLog } from "./exec-_UbtCQcG.mjs";
2
- import { y as refuseRelativeStimPaths } from "./config-CYcBF478.mjs";
1
+ import { b as debugLog } from "./exec-DEoAhcze.mjs";
2
+ import { y as refuseRelativeStimPaths } from "./config-DlrsduwG.mjs";
3
3
  import { readFileSync } from "node:fs";
4
4
  import { runId } from "@stim-cli/core/state";
5
5
  import { Command } from "commander";
6
6
  //#region bin/cli.ts
7
7
  const commands = /* @__PURE__ */ new Map([
8
- ["doctor", () => import("./doctor-BLHCYxzi.mjs")],
9
- ["worktree", () => import("./worktree-CK2MpJW5.mjs")],
10
- ["start", () => import("./start-RChynRDp.mjs")],
11
- ["ports", () => import("./ports-D-MmCTdv.mjs")],
12
- ["stop", () => import("./stop-Bk_1qiV6.mjs")],
13
- ["ios", () => import("./ios-CQ68hG9s.mjs")],
14
- ["android", () => import("./android-CV_GCELZ.mjs")],
15
- ["web", () => import("./web-DknQETPs.mjs")],
16
- ["macos", () => import("./macos-B65--pPd.mjs")],
17
- ["reload", () => import("./reload-DzjSl5P_.mjs")],
18
- ["device", () => import("./device-DCxH7_By.mjs")],
19
- ["logs", () => import("./logs-CMm05HxN.mjs")],
20
- ["settings", () => import("./settings-T1gtc3bf.mjs")],
21
- ["status", () => import("./status-CSi6tlRq.mjs")],
22
- ["stats", () => import("./stats-53T7OTb9.mjs")],
23
- ["gc", () => import("./gc-C-WwL0yi.mjs")],
24
- ["guide", () => import("./guide-Yqwt2bd6.mjs")]
8
+ ["doctor", () => import("./doctor-pxxvipYC.mjs")],
9
+ ["worktree", () => import("./worktree-BxfVxG_b.mjs")],
10
+ ["start", () => import("./start-CRfN1kWV.mjs")],
11
+ ["ports", () => import("./ports-BSmQKzW7.mjs")],
12
+ ["stop", () => import("./stop-B18d8KDw.mjs")],
13
+ ["ios", () => import("./ios-vbUOqGXu.mjs")],
14
+ ["android", () => import("./android-CHH4KLOR.mjs")],
15
+ ["web", () => import("./web-Cduk0NSE.mjs")],
16
+ ["macos", () => import("./macos-inNFbBWc.mjs")],
17
+ ["reload", () => import("./reload-RBi1nj6Z.mjs")],
18
+ ["device", () => import("./device-BvzPUBs3.mjs")],
19
+ ["logs", () => import("./logs-CtNeNDuq.mjs")],
20
+ ["settings", () => import("./settings-eKF_vJJs.mjs")],
21
+ ["status", () => import("./status-Eqx_20WC.mjs")],
22
+ ["stats", () => import("./stats-DioA6cBU.mjs")],
23
+ ["gc", () => import("./gc-DLbzvTP2.mjs")],
24
+ ["guide", () => import("./guide-BC37GcDG.mjs")]
25
25
  ]);
26
26
  const pkg = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf-8"));
27
27
  const program = new Command();
@@ -52,7 +52,7 @@ try {
52
52
  }));
53
53
  }
54
54
  try {
55
- const { triggerMaintenance } = await import("./trigger-Bf3uDcpv.mjs");
55
+ const { triggerMaintenance } = await import("./trigger-yb_nFzPF.mjs");
56
56
  triggerMaintenance(action.name());
57
57
  } catch {}
58
58
  });
package/dist/cli.mjs CHANGED
@@ -4,6 +4,6 @@ const encode = (version) => version.split(".", 3).reduce((sum, part) => sum * 1e
4
4
  if (encode(process.versions.node) < encode("22.12.0")) {
5
5
  process.stderr.write(`STIM_NODE_UNSUPPORTED: Stim needs Node 22.12.0 or later; this is Node ${process.versions.node} at ${process.execPath}. To run Stim where a project pins an older Node, see https://stim.appandflow.com/docs/requirements#older-node-pins\n`);
6
6
  process.exitCode = 1;
7
- } else import("./cli-0DYf8QhQ.mjs");
7
+ } else import("./cli-D-J9fWGV.mjs");
8
8
  //#endregion
9
9
  export {};