stim 1.35.0 → 1.37.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/README.md +3 -1
  2. package/dist/{acquire-artifact-0E_iw7Rf.mjs → acquire-artifact-zBUbPuDP.mjs} +20 -4
  3. package/dist/{act-CyxFP8Vj.mjs → act-BGAFjY8f.mjs} +21 -21
  4. package/dist/{activity-BQpJpAjA.mjs → activity-CdpXXSq2.mjs} +6 -6
  5. package/dist/{agent-device-usage-output-BoOC3ZF9.mjs → agent-device-usage-output-D0582GHy.mjs} +5 -5
  6. package/dist/{android-YRb1UzSy.mjs → android-BBwLpxRh.mjs} +51 -40
  7. package/dist/{android-B2DSKg-A.mjs → android-BPBARZMR.mjs} +2 -2
  8. package/dist/{android-Iq0M2t2d.mjs → android-CGctfYpv.mjs} +7 -7
  9. package/dist/{android-CjcJE7uA.mjs → android-CaSsewbu.mjs} +5 -5
  10. package/dist/android-cas-compiler.mjs +1 -1
  11. package/dist/{android-cas-Dhcjkys1.mjs → android-cas-p8gna03x.mjs} +4 -4
  12. package/dist/{android-image-DFk26aY6.mjs → android-image-DY8KxK2m.mjs} +3 -3
  13. package/dist/{android-project-DhO6el8N.d.mts → android-project-v_1nej_x.d.mts} +3 -1
  14. package/dist/api.d.mts +30 -9
  15. package/dist/api.mjs +36 -28
  16. package/dist/{apk-signed-tail-CPpA-3vu.mjs → apk-signed-tail-BMv-KLcB.mjs} +2 -2
  17. package/dist/{artifact-2NIRz6SC.mjs → artifact-BrNZTZtA.mjs} +44 -15
  18. package/dist/{artifact-BG4h_WTC.mjs → artifact-BsimBWxG.mjs} +37 -15
  19. package/dist/{artifact-platform-DqCWUieN.mjs → artifact-platform-BaGL1i1X.mjs} +1 -1
  20. package/dist/{auto-placement-CBdWa87P.mjs → auto-placement-CFKNrWLU.mjs} +7 -7
  21. package/dist/{browser-web-CNlRugJv.mjs → browser-web-YFsgCP_a.mjs} +15 -15
  22. package/dist/{build-CNE3Wo5-.mjs → build-DIhuoozz.mjs} +77 -28
  23. package/dist/{build-cache-_fkewiwH.mjs → build-cache-Dt-dhCJF.mjs} +6 -6
  24. package/dist/{build-plan-BSgR9yKo.mjs → build-plan-CgnLDof9.mjs} +7 -7
  25. package/dist/{cache-manifest-8JX9S1QJ.mjs → cache-manifest-BO0TIcPV.mjs} +1 -1
  26. package/dist/cache-manifest.mjs +1 -1
  27. package/dist/{cdp-C216kOAn.mjs → cdp-CgT47_9A.mjs} +1 -1
  28. package/dist/{chrome-C8sC5tdl.mjs → chrome-DL5znvmo.mjs} +1 -1
  29. package/dist/{cli-DK24VzHi.mjs → cli-BGUrlSH3.mjs} +21 -20
  30. package/dist/cli.mjs +1 -1
  31. package/dist/{client-Dy0eJJtz.mjs → client-DU6dnGX1.mjs} +7 -7
  32. package/dist/collector-run.mjs +7 -7
  33. package/dist/{command-output-CGxrQ3Bd.mjs → command-output-ByEmIwur.mjs} +1 -1
  34. package/dist/{config-BW0fAtoK.mjs → config-CNmN-ndb.mjs} +61 -12
  35. package/dist/{dependencies-IVl2Ga2D.mjs → dependencies-BozoTBqa.mjs} +102 -64
  36. package/dist/{dependency-state-mL5g4H6K.mjs → dependency-state-BQeC4FVn.mjs} +2 -2
  37. package/dist/{detached-entry-tfrgGVWb.mjs → detached-entry-VqFeEE9W.mjs} +1 -1
  38. package/dist/{dev-client-DDApoVvd.mjs → dev-client-3SQzMRXZ.mjs} +2 -2
  39. package/dist/{device-p_cp8IzW.mjs → device-BIg1iExg.mjs} +11 -11
  40. package/dist/{device-mOFYiHiw.mjs → device-DGMvzoZZ.mjs} +13 -13
  41. package/dist/{device-android-C-biM49_.mjs → device-android-CBat355q.mjs} +9 -9
  42. package/dist/{device-capacity-C0PiTyRb.mjs → device-capacity-DWUOvY13.mjs} +19 -19
  43. package/dist/device-host-worker.mjs +16 -16
  44. package/dist/{device-pool-nsMvt2X2.mjs → device-pool-B8IqZKqm.mjs} +3 -3
  45. package/dist/{device-provision-BYYJuRKZ.mjs → device-provision-DWAoSKEw.mjs} +10 -10
  46. package/dist/{doctor-RosbBfTV.mjs → doctor-Bknt0121.mjs} +24 -24
  47. package/dist/{doctor-BptE4PaK.mjs → doctor-CPzwqcXY.mjs} +15 -15
  48. package/dist/{doctor-BBAb8NLe.mjs → doctor-CxgR5vPi.mjs} +1 -1
  49. package/dist/{doctor-fingerprint-DqWvIhMb.mjs → doctor-fingerprint-Bo4z8YNP.mjs} +1 -1
  50. package/dist/doctor-fingerprint.mjs +1 -1
  51. package/dist/{doctor-watchman-CKOnCINh.mjs → doctor-watchman-CPE4C8KV.mjs} +5 -5
  52. package/dist/{eas-build-BxJdzQnF.mjs → eas-build-CwOXKJwa.mjs} +4 -4
  53. package/dist/{eas-fallback-DU2WDF8r.mjs → eas-fallback-Cnb12a50.mjs} +6 -6
  54. package/dist/{eas-session-ledger-DCUfh6m7.mjs → eas-session-ledger-TE1miVz5.mjs} +6 -6
  55. package/dist/{error-diagnostics-D6wlK-yX.mjs → error-diagnostics-CXTT3bYC.mjs} +10 -10
  56. package/dist/{exec-CGuDzt40.mjs → exec-L37dbiIb.mjs} +7 -1
  57. package/dist/{gc-BUkonUfz.mjs → gc-0jdcnDHs.mjs} +19 -19
  58. package/dist/{gc-CvMEytXz.mjs → gc-1ZLq1djg.mjs} +2 -2
  59. package/dist/{guide-BWozWG7D.mjs → guide-COxIANZu.mjs} +179 -86
  60. package/dist/{hosted-android-y6K3DKQT.mjs → hosted-android-D8JbIzgC.mjs} +4 -4
  61. package/dist/{hosted-client-Bb89P6an.mjs → hosted-client-BLwuXEZS.mjs} +7 -7
  62. package/dist/{hosted-logs-DYPsnWMF.mjs → hosted-logs-BWEQNJx_.mjs} +7 -7
  63. package/dist/{hosted-logs-sync-DfUJ2GpF.mjs → hosted-logs-sync-uWSrH2mf.mjs} +5 -5
  64. package/dist/{hosted-macos-DsEzYVY_.mjs → hosted-macos-BnCYAv1y.mjs} +6 -6
  65. package/dist/{hosted-native-C9xQYYFb.mjs → hosted-native-OBT2sJxn.mjs} +8 -8
  66. package/dist/{ios-Qam0bT9n.mjs → ios-2Qr4_Zu2.mjs} +1 -1
  67. package/dist/{ios-BCKxjpRp.mjs → ios-Bjz7aPLy.mjs} +8 -8
  68. package/dist/{ios-BdZdNsAj.mjs → ios-BveW7qK1.mjs} +16 -6
  69. package/dist/{ios-FhMkDfNC.mjs → ios-CGyx4PA7.mjs} +44 -34
  70. package/dist/{ios-device-DMOnaH5n.mjs → ios-device-ByrDWSpC.mjs} +3 -3
  71. package/dist/{ios-device-DLdEDWJj.mjs → ios-device-ygijU78G.mjs} +1 -1
  72. package/dist/{ios-project-PXBDoaii.mjs → ios-project-XHg87vyQ.mjs} +7 -7
  73. package/dist/{ios-signing-CCFNjjWU.mjs → ios-signing-CRYQ1W42.mjs} +3 -3
  74. package/dist/{ios-state-CWsBysyN.mjs → ios-state-enWc5P6U.mjs} +1 -1
  75. package/dist/{js-swap-07ikLRJJ.mjs → js-swap-C6vl3vEd.mjs} +60 -13
  76. package/dist/{launch-CTq5gBim.mjs → launch-f3RnbFW5.mjs} +48 -28
  77. package/dist/{lightened-DikgC3-S.mjs → lightened-Cdfmo8MO.mjs} +5 -5
  78. package/dist/{logs-YDMfEohb.mjs → logs-DAjxBF3c.mjs} +6 -6
  79. package/dist/{logs-DwI3Rkpf.mjs → logs-x3em2-oI.mjs} +7 -7
  80. package/dist/{macos-BoNM-l6f.mjs → macos-D_LAseN9.mjs} +22 -22
  81. package/dist/{macos-C_e9f5-5.mjs → macos-ZfpWlzBO.mjs} +1 -1
  82. package/dist/macos-run.mjs +1 -1
  83. package/dist/maintenance-run.mjs +6 -6
  84. package/dist/{metro-B5PVz0Wv.mjs → metro-TIQ1Wft-.mjs} +4 -4
  85. package/dist/{metro-request-2LmFpC1z.mjs → metro-request-DcUxyaq8.mjs} +2 -2
  86. package/dist/{named-ports-CA0nB9Yw.mjs → named-ports-BfEMi9bK.mjs} +3 -3
  87. package/dist/{native-android-Mv4YTrVN.mjs → native-android-COOrNDk2.mjs} +18 -18
  88. package/dist/{native-gradle-artifact-inputs-C_TU6wPq.mjs → native-gradle-artifact-inputs-B4Mwydmf.mjs} +5 -5
  89. package/dist/{native-runtime-oDqT4UES.mjs → native-runtime-UxUBU8up.mjs} +6 -6
  90. package/dist/{native-source-ChAGj7R1.mjs → native-source-D2ZfiQ6U.mjs} +1 -1
  91. package/dist/{native-xcode-inputs-DsozghTX.mjs → native-xcode-inputs-DUv7Q3ok.mjs} +3 -3
  92. package/dist/{native-xcode-ios-UXnH9NRY.mjs → native-xcode-ios-DXcteLVi.mjs} +18 -19
  93. package/dist/offload-worker.d.mts +1 -1
  94. package/dist/offload-worker.mjs +22 -22
  95. package/dist/{operation-exec-DKlBcKAL.mjs → operation-exec-DNynwpqO.mjs} +1 -1
  96. package/dist/{ownership-hC7xvvxF.mjs → ownership-CQTg6v1d.mjs} +3 -3
  97. package/dist/{page-Dj8IqvGM.mjs → page-CoN9al_x.mjs} +2 -2
  98. package/dist/{phone-reverses-B9WyCBKQ.mjs → phone-reverses-CHtco460.mjs} +4 -4
  99. package/dist/{placement-log-D0DZLcJk.mjs → placement-log-oQnELAvQ.mjs} +1 -1
  100. package/dist/{plan-placement-DqmLrWoX.mjs → plan-placement-45EOlIG1.mjs} +6 -6
  101. package/dist/{ports-C1_1Qgdy.mjs → ports-DKO7EUNt.mjs} +3 -3
  102. package/dist/{prebuild-BptrXmh_.mjs → prebuild-BKkj3OyL.mjs} +12 -12
  103. package/dist/{project-Dqqj3IkW.mjs → project-BCtQz48d.mjs} +16 -16
  104. package/dist/{pull-request-BpMTNkMB.mjs → pull-request-m8cMZ3aE.mjs} +2 -2
  105. package/dist/pull-requests.mjs +1 -1
  106. package/dist/{react-native-android-Bsm_o4A8.mjs → react-native-android-MI4ktuhL.mjs} +27 -31
  107. package/dist/{react-native-build-BTUcE926.mjs → react-native-build-dixAL2G8.mjs} +9 -9
  108. package/dist/{react-native-doctor-CfsCTKZt.mjs → react-native-doctor-CvkWincj.mjs} +6 -6
  109. package/dist/{react-native-ios-_cK2pjZn.mjs → react-native-ios-DF5otoBR.mjs} +17 -18
  110. package/dist/recorded-build-CGHGCO8m.mjs +76 -0
  111. package/dist/{recordings-AKZfsW2W.mjs → recordings-BcOzqFD1.mjs} +1 -1
  112. package/dist/{registration-DKjJGQ6p.mjs → registration-C-3PDR3X.mjs} +1 -1
  113. package/dist/{reload-DsTMtMDU.mjs → reload-DGWfNFwQ.mjs} +16 -16
  114. package/dist/{reload-CXgce4Yo.mjs → reload-DWxmO9dY.mjs} +1 -1
  115. package/dist/{remote-BsmYHUxH.mjs → remote-CV2jBcLv.mjs} +9 -9
  116. package/dist/remote-DWYGW2f5.mjs +158 -0
  117. package/dist/{result-DK6nTO-M.mjs → result-CWyxwPvZ.mjs} +23 -17
  118. package/dist/{run-N-BbRxnC.mjs → run-FZtMQgrx.mjs} +2 -2
  119. package/dist/{server-bare-BTlICuaX.mjs → server-bare-Ksh1NKeI.mjs} +2 -2
  120. package/dist/{server-command-Cu2w-UjB.mjs → server-command-BO2DIsJV.mjs} +5 -5
  121. package/dist/server-expo-9hQwyLze.mjs +2 -0
  122. package/dist/{server-expo-CjQwxvIi.mjs → server-expo-ZS9_WaNG.mjs} +3 -3
  123. package/dist/{settings-B5IBDfTx.mjs → settings-Ag4pbs0z.mjs} +5 -4
  124. package/dist/{settings-DcmVICCn.mjs → settings-TYrzDh8T.mjs} +2 -2
  125. package/dist/{settings-payload-BoiFMiFq.mjs → settings-payload-CUM0DYwz.mjs} +5 -5
  126. package/dist/{settings-write-B3LzEVwf.mjs → settings-write-D_9_IEx7.mjs} +6 -6
  127. package/dist/settings.schema.json +1 -1
  128. package/dist/{simslim-DKdJx0LL.mjs → simslim-BMgpTRWe.mjs} +2 -2
  129. package/dist/{slot-launch-DsQmPdlg.mjs → slot-launch-DW_29Bmu.mjs} +6 -6
  130. package/dist/{stage-Dqk0qvaI.mjs → stage-_8k8p7uq.mjs} +2 -2
  131. package/dist/{start-GkRBR1e3.mjs → start-CdgtOksb.mjs} +1 -1
  132. package/dist/{start-DIFiT2P5.mjs → start-CzBB5R7N.mjs} +12 -12
  133. package/dist/{state-CtmYTRWm.mjs → state-CfP-ccP8.mjs} +4 -4
  134. package/dist/{state-DSOUqO-o.mjs → state-DsrFh3yv.mjs} +2 -2
  135. package/dist/{stats-Dz08IopP.mjs → stats-BgTyuzib.mjs} +5 -5
  136. package/dist/{stats-report-BVRCqwWA.mjs → stats-report-Ci6TAfFm.mjs} +1 -1
  137. package/dist/{status-DhKv_e8a.mjs → status-Bcdy5eHt.mjs} +24 -24
  138. package/dist/{status-DTFhDnd1.mjs → status-C2PdxK6q.mjs} +1 -1
  139. package/dist/{status-Dost__Vn.mjs → status-C7Zzb-Eh.mjs} +1 -1
  140. package/dist/{status-watch-UecLnPQD.mjs → status-watch-DY0EZcmg.mjs} +5 -5
  141. package/dist/status-worker.mjs +1 -1
  142. package/dist/{stim-desktop-_WTria-r.mjs → stim-desktop-DWGAfaud.mjs} +2 -2
  143. package/dist/{stop-CcZISot5.mjs → stop-CbxsTKyZ.mjs} +5 -5
  144. package/dist/{stop-vRe6TQk5.mjs → stop-CkmBkNyg.mjs} +16 -16
  145. package/dist/{stop-QFOqgICJ.mjs → stop-iGkvEvDn.mjs} +2 -2
  146. package/dist/supervisor-run.mjs +15 -15
  147. package/dist/{support-DW575Dnx.mjs → support-CfYmOdQs.mjs} +76 -38
  148. package/dist/{support-CNqJDBrH.mjs → support-JZ4KRW0C.mjs} +7 -7
  149. package/dist/{swiftpm-artifact-inputs-DQTJTczX.mjs → swiftpm-artifact-inputs-C1rZDRDs.mjs} +4 -4
  150. package/dist/{swiftpm-macos-BKczZ0k9.mjs → swiftpm-macos-DRTjC7Ff.mjs} +11 -11
  151. package/dist/{toolchain-DRQyCvlp.mjs → toolchain-BeD7tbBW.mjs} +73 -9
  152. package/dist/{toolchain-BDlugtoh.mjs → toolchain-CNlKc9pH.mjs} +1 -1
  153. package/dist/trigger-Bp3lruF2.mjs +2 -0
  154. package/dist/{trigger-BtB4kbe0.mjs → trigger-G_gbfIVB.mjs} +2 -2
  155. package/dist/{warm-progress-q11Vdvhh.mjs → warm-progress-CJQ8tk5O.mjs} +6 -6
  156. package/dist/{web-TDWjHUT3.mjs → web-BXbmysa1.mjs} +9 -9
  157. package/dist/web-BcaySU05.mjs +2 -0
  158. package/dist/web-run.mjs +8 -8
  159. package/dist/windows-report.mjs +1 -1
  160. package/dist/{workspace-state-BdZ-QgmB.mjs → workspace-state-DOPXG2Gp.mjs} +3 -3
  161. package/dist/{workspaces-CY3KSdC0.mjs → workspaces-DCzDzydB.mjs} +15 -14
  162. package/dist/{worktree-D6myrQ2H.mjs → worktree-6ngObKkw.mjs} +1 -1
  163. package/dist/{worktree-fKKe8j5M.mjs → worktree-BAC43Kio.mjs} +27 -27
  164. package/package.json +7 -7
  165. package/dist/server-expo-DbSypdNl.mjs +0 -2
  166. package/dist/trigger-D8B7QR0q.mjs +0 -2
  167. package/dist/web-D1m1LKEz.mjs +0 -2
@@ -1,15 +1,15 @@
1
- import { D as ownership_claim_exports, d as throwIfCancelled, w as withDrainingCancellation } from "./exec-CGuDzt40.mjs";
2
- import { E as workspaceDir } from "./workspace-state-BdZ-QgmB.mjs";
3
- import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-CGxrQ3Bd.mjs";
4
- import { Gn as RESOLVE_TIMEOUT_MS, Xn as isEasAuthFailureText, Yn as easAuthNote } from "./device-capacity-C0PiTyRb.mjs";
5
- import { A as COMPILATION_CACHE_NOT_RUN, F as compilationCacheActivityLine, _t as runCancellationSignal, lt as cancelledFailure } from "./toolchain-DRQyCvlp.mjs";
6
- import { C as providerUploadOutcome, D as storedAppId, S as providerDownloadPath, x as prepareProviderDownloadDir } from "./build-cache-_fkewiwH.mjs";
7
- import { T as clearCorruptCompilationCache, c as offloadPlacement, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, r as chooseBuildMachine, s as offloadCheck, u as remotePhaseText, w as COMPILATION_CACHE_CORRUPT } from "./client-Dy0eJJtz.mjs";
8
- import { A as fingerprintMismatchRemedy, D as OffloadRefusal, F as requireLocalBuild, M as namedBuildMachine, O as automaticBuild, P as podsFailedRemedy, S as xcodeFailureReport, et as predictedRefusal, j as missingPackageManagerRemedy, p as printDiagnostics, u as isReleaseConfiguration } from "./support-DW575Dnx.mjs";
9
- import { f as settleFingerprintCheck, u as skippedMissReason } from "./prebuild-BptrXmh_.mjs";
10
- import { t as buildPlacementRecord } from "./placement-log-D0DZLcJk.mjs";
11
- import { n as settleArtifactUploads, t as acquireArtifact } from "./acquire-artifact-0E_iw7Rf.mjs";
12
- import { r as finishIosUpload, t as IosRecipeRefusal } from "./ios-project-PXBDoaii.mjs";
1
+ import { D as ownership_claim_exports, d as throwIfCancelled, w as withDrainingCancellation } from "./exec-L37dbiIb.mjs";
2
+ import { E as workspaceDir } from "./workspace-state-DOPXG2Gp.mjs";
3
+ import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-ByEmIwur.mjs";
4
+ import { Gn as RESOLVE_TIMEOUT_MS, Xn as isEasAuthFailureText, Yn as easAuthNote } from "./device-capacity-DWUOvY13.mjs";
5
+ import { A as COMPILATION_CACHE_NOT_RUN, F as compilationCacheActivityLine, _t as runCancellationSignal, lt as cancelledFailure } from "./toolchain-BeD7tbBW.mjs";
6
+ import { C as providerUploadOutcome, D as storedAppId, S as providerDownloadPath, x as prepareProviderDownloadDir } from "./build-cache-Dt-dhCJF.mjs";
7
+ import { T as clearCorruptCompilationCache, c as offloadPlacement, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, r as chooseBuildMachine, s as offloadCheck, u as remotePhaseText, w as COMPILATION_CACHE_CORRUPT } from "./client-DU6dnGX1.mjs";
8
+ import { A as fingerprintMismatchRemedy, D as OffloadRefusal, F as requireLocalBuild, M as namedBuildMachine, O as automaticBuild, P as podsFailedRemedy, S as xcodeFailureReport, j as missingPackageManagerRemedy, p as printDiagnostics, tt as predictedRefusal, u as isReleaseConfiguration } from "./support-CfYmOdQs.mjs";
9
+ import { f as settleFingerprintCheck, u as skippedMissReason } from "./prebuild-BKkj3OyL.mjs";
10
+ import { n as settleArtifactUploads, r as retainFailedTranscript, t as acquireArtifact } from "./acquire-artifact-zBUbPuDP.mjs";
11
+ import { t as buildPlacementRecord } from "./placement-log-oQnELAvQ.mjs";
12
+ import { r as finishIosUpload, t as IosRecipeRefusal } from "./ios-project-XHg87vyQ.mjs";
13
13
  import { rmSync } from "node:fs";
14
14
  import { join } from "node:path";
15
15
  import { machineCapacity } from "@stim-cli/core/state";
@@ -622,15 +622,16 @@ async function acquireIosArtifact({ context, root, logFile, recipe, physical, co
622
622
  if (!result.ok) {
623
623
  phase("build", `FAILED after ${formatDuration(result.durationMs)}`);
624
624
  printDiagnostics(note, result);
625
+ const transcript = retainFailedTranscript(logFile);
625
626
  const report = result.compilationCacheCorruption ? await clearCorruptCompilationCache(result.compilationCacheCorruption, root) : {
626
627
  code: result.code,
627
- ...xcodeFailureReport(result, logFile)
628
+ ...xcodeFailureReport(result, transcript)
628
629
  };
629
630
  fail({
630
631
  code: report.code,
631
632
  message: report.message,
632
633
  remedy: report.remedy,
633
- logPath: logFile,
634
+ logPath: transcript,
634
635
  build: {
635
636
  ...buildFailure,
636
637
  diagnostics: result.diagnostics
@@ -858,5 +859,33 @@ async function acquireIosArtifact({ context, root, logFile, recipe, physical, co
858
859
  }
859
860
  };
860
861
  }
862
+ async function acquireIosArtifactOrRecorded(recorded, request, d) {
863
+ return recorded ? recordedIosArtifact(recorded) : acquireIosArtifact(request, d);
864
+ }
865
+ function recordedIosArtifact(recorded) {
866
+ return {
867
+ ok: true,
868
+ artifact: {
869
+ path: recorded.appPath,
870
+ bundleId: recorded.bundleId,
871
+ cache: {
872
+ identity: null,
873
+ hit: false,
874
+ providerName: null,
875
+ buildMachine: "local",
876
+ offloadedTo: null,
877
+ offloadFallback: null,
878
+ readEnabled: false,
879
+ missReason: null,
880
+ waitedForBuild: null,
881
+ compilation: COMPILATION_CACHE_NOT_RUN
882
+ },
883
+ failureFields: {},
884
+ completeUploads: async () => false,
885
+ release: () => {},
886
+ cancelFingerprintCheck: () => {}
887
+ }
888
+ };
889
+ }
861
890
  //#endregion
862
- export { acquireIosArtifact as t };
891
+ export { acquireIosArtifactOrRecorded as n, acquireIosArtifact as t };
@@ -1,16 +1,16 @@
1
- import { D as ownership_claim_exports, d as throwIfCancelled, w as withDrainingCancellation } from "./exec-CGuDzt40.mjs";
2
- import { E as workspaceDir } from "./workspace-state-BdZ-QgmB.mjs";
3
- import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-CGxrQ3Bd.mjs";
4
- import { C as CCACHE_UNAVAILABLE, Gn as RESOLVE_TIMEOUT_MS, S as CCACHE_NOT_RUN, Xn as isEasAuthFailureText, Yn as easAuthNote, w as ccacheActivityLine } from "./device-capacity-C0PiTyRb.mjs";
5
- import { _t as runCancellationSignal, lt as cancelledFailure } from "./toolchain-DRQyCvlp.mjs";
6
- import { S as providerDownloadPath, x as prepareProviderDownloadDir } from "./build-cache-_fkewiwH.mjs";
7
- import { c as offloadPlacement, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, r as chooseBuildMachine, u as remotePhaseText } from "./client-Dy0eJJtz.mjs";
8
- import { A as fingerprintMismatchRemedy, D as OffloadRefusal, F as requireLocalBuild, M as namedBuildMachine, O as automaticBuild, j as missingPackageManagerRemedy } from "./support-DW575Dnx.mjs";
9
- import { f as formatDiagnostic } from "./react-native-build-BTUcE926.mjs";
10
- import { u as skippedMissReason } from "./prebuild-BptrXmh_.mjs";
11
- import { t as buildPlacementRecord } from "./placement-log-D0DZLcJk.mjs";
12
- import { n as settleArtifactUploads, t as acquireArtifact } from "./acquire-artifact-0E_iw7Rf.mjs";
13
- import { a as PLATFORM, h as displayPath } from "./support-CNqJDBrH.mjs";
1
+ import { D as ownership_claim_exports, d as throwIfCancelled, w as withDrainingCancellation } from "./exec-L37dbiIb.mjs";
2
+ import { E as workspaceDir } from "./workspace-state-DOPXG2Gp.mjs";
3
+ import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-ByEmIwur.mjs";
4
+ import { C as CCACHE_UNAVAILABLE, Gn as RESOLVE_TIMEOUT_MS, S as CCACHE_NOT_RUN, Xn as isEasAuthFailureText, Yn as easAuthNote, w as ccacheActivityLine } from "./device-capacity-DWUOvY13.mjs";
5
+ import { _t as runCancellationSignal, lt as cancelledFailure } from "./toolchain-BeD7tbBW.mjs";
6
+ import { S as providerDownloadPath, x as prepareProviderDownloadDir } from "./build-cache-Dt-dhCJF.mjs";
7
+ import { c as offloadPlacement, i as closeOffload, l as placementLoad, n as buildPlacementCandidates, o as offloadBuild, r as chooseBuildMachine, u as remotePhaseText } from "./client-DU6dnGX1.mjs";
8
+ import { A as fingerprintMismatchRemedy, D as OffloadRefusal, F as requireLocalBuild, M as namedBuildMachine, O as automaticBuild, j as missingPackageManagerRemedy } from "./support-CfYmOdQs.mjs";
9
+ import { f as formatDiagnostic } from "./react-native-build-dixAL2G8.mjs";
10
+ import { u as skippedMissReason } from "./prebuild-BKkj3OyL.mjs";
11
+ import { a as PLATFORM, h as displayPath } from "./support-JZ4KRW0C.mjs";
12
+ import { n as settleArtifactUploads, r as retainFailedTranscript, t as acquireArtifact } from "./acquire-artifact-zBUbPuDP.mjs";
13
+ import { t as buildPlacementRecord } from "./placement-log-oQnELAvQ.mjs";
14
14
  import { t as AndroidRecipeRefusal } from "./android-project-BCAAmMwz.mjs";
15
15
  import { rmSync } from "node:fs";
16
16
  import { join } from "node:path";
@@ -634,7 +634,7 @@ async function acquireAndroidArtifact({ context, root, buildLog, writer, recipe,
634
634
  diagnostics: extracted,
635
635
  buildDiagnostics: diagnostics,
636
636
  lines: extracted.length ? [] : tail(built.lastLines),
637
- logPath: displayPath(root, buildLog)
637
+ logPath: displayPath(root, retainFailedTranscript(buildLog))
638
638
  });
639
639
  throw new AndroidRecipeRefusal(phaseFailure);
640
640
  }
@@ -809,5 +809,27 @@ async function acquireAndroidArtifact({ context, root, buildLog, writer, recipe,
809
809
  function tail(lines, n = FALLBACK_LINES) {
810
810
  return (Array.isArray(lines) ? lines : []).slice(-n);
811
811
  }
812
+ async function acquireAndroidArtifactOrRecorded(recorded, request, deps) {
813
+ return recorded ? recordedAndroidArtifact(recorded) : acquireAndroidArtifact(request, deps);
814
+ }
815
+ function recordedAndroidArtifact(recorded) {
816
+ return {
817
+ ok: true,
818
+ artifact: {
819
+ apkPath: recorded.appPath,
820
+ androidPackage: recorded.bundleId,
821
+ apkPackage: recorded.bundleId,
822
+ fingerprintCheck: null,
823
+ release: () => {},
824
+ waitedForBuild: null,
825
+ ccache: CCACHE_NOT_RUN,
826
+ uploadPending: null,
827
+ providerUpload: null,
828
+ providerName: null,
829
+ remote: null,
830
+ abandonedRemote: false
831
+ }
832
+ };
833
+ }
812
834
  //#endregion
813
- export { acquireAndroidArtifact as t };
835
+ export { acquireAndroidArtifactOrRecorded as n, acquireAndroidArtifact as t };
@@ -1,4 +1,4 @@
1
- import { t as getExecutor } from "./exec-CGuDzt40.mjs";
1
+ import { t as getExecutor } from "./exec-L37dbiIb.mjs";
2
2
  import { join } from "node:path";
3
3
  //#region src/macos/artifact-platform.ts
4
4
  async function validateMacosArtifactPlatform(context, bundle, product, signal, nodeArch = process.arch) {
@@ -1,10 +1,10 @@
1
- import { m as getProject, v as loadConfig$1 } from "./config-BW0fAtoK.mjs";
2
- import { F as peekBudget, d as peekDeviceSlots, t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-C0PiTyRb.mjs";
3
- import { z as readHostMemoryPressureAsync } from "./ios-BdZdNsAj.mjs";
4
- import { I as resolveBuildMachine, M as namedBuildMachine, nt as hostingMachines } from "./support-DW575Dnx.mjs";
5
- import { h as requireHostedAppMode, l as call, u as connectHost } from "./hosted-client-Bb89P6an.mjs";
6
- import { c as writeHostedNativeAsync, r as readHostedNative } from "./ios-state-CWsBysyN.mjs";
7
- import { i as prepareHostedNative } from "./hosted-native-C9xQYYFb.mjs";
1
+ import { m as getProject, v as loadConfig$1 } from "./config-CNmN-ndb.mjs";
2
+ import { F as peekBudget, d as peekDeviceSlots, t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-DWUOvY13.mjs";
3
+ import { z as readHostMemoryPressureAsync } from "./ios-BveW7qK1.mjs";
4
+ import { I as resolveBuildMachine, M as namedBuildMachine, it as hostingMachines } from "./support-CfYmOdQs.mjs";
5
+ import { h as requireHostedAppMode, l as call, u as connectHost } from "./hosted-client-BLwuXEZS.mjs";
6
+ import { c as writeHostedNativeAsync, r as readHostedNative } from "./ios-state-enWc5P6U.mjs";
7
+ import { i as prepareHostedNative } from "./hosted-native-OBT2sJxn.mjs";
8
8
  import { ambientEnv } from "@stim-cli/core";
9
9
  import { automaticMachineEnabled, isJsonObject, machineCapacity, mayRunHere, parseHostedChoice, parseHostedNativeOffer, prefersRemote } from "@stim-cli/core/state";
10
10
  import { setTimeout } from "node:timers/promises";
@@ -1,20 +1,20 @@
1
- import { D as ownership_claim_exports, T as process_identity_exports, d as throwIfCancelled, f as WorkspaceProcessCleanupError, p as withWorkspaceProcessLock, t as getExecutor, u as cancelledError } from "./exec-CGuDzt40.mjs";
2
- import { E as workspaceDir, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, r as readWorkspaceState$1 } from "./workspace-state-BdZ-QgmB.mjs";
3
- import { l as phaseLine } from "./command-output-CGxrQ3Bd.mjs";
4
- import { m as getProject } from "./config-BW0fAtoK.mjs";
5
- import { N as metroPortSetting, a as SETTING_SHAPE_REMEDY, ct as webSettings } from "./settings-B5IBDfTx.mjs";
6
- import { b as isPackageResolvable, v as detectIsExpo } from "./project-Dqqj3IkW.mjs";
7
- import { d as resolveProjectMetro } from "./metro-B5PVz0Wv.mjs";
1
+ import { D as ownership_claim_exports, T as process_identity_exports, d as throwIfCancelled, f as WorkspaceProcessCleanupError, p as withWorkspaceProcessLock, t as getExecutor, u as cancelledError } from "./exec-L37dbiIb.mjs";
2
+ import { E as workspaceDir, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, r as readWorkspaceState$1 } from "./workspace-state-DOPXG2Gp.mjs";
3
+ import { l as phaseLine } from "./command-output-ByEmIwur.mjs";
4
+ import { m as getProject } from "./config-CNmN-ndb.mjs";
5
+ import { N as metroPortSetting, a as SETTING_SHAPE_REMEDY, ct as webSettings } from "./settings-Ag4pbs0z.mjs";
6
+ import { b as isPackageResolvable, v as detectIsExpo } from "./project-BCtQz48d.mjs";
7
+ import { d as resolveProjectMetro } from "./metro-TIQ1Wft-.mjs";
8
8
  import { c as readNdjsonGenerations$1 } from "./ndjson-CrjIsGzw.mjs";
9
- import { dn as readMetroRecords } from "./device-capacity-C0PiTyRb.mjs";
10
- import { f as webLogFile, m as webSupervisorLogFile, o as readWebRecord, s as updateWebRecord } from "./state-CtmYTRWm.mjs";
11
- import { ft as teardownBrowserHeld, x as resolveSupervisorTarget } from "./workspaces-CY3KSdC0.mjs";
12
- import { i as reserveBrowserPort, n as getNamedPort } from "./named-ports-CA0nB9Yw.mjs";
13
- import { n as sendToOwnedPage, t as liveWebRecord } from "./page-Dj8IqvGM.mjs";
14
- import { o as resolveWorkspaceMetroPort } from "./start-DIFiT2P5.mjs";
9
+ import { dn as readMetroRecords } from "./device-capacity-DWUOvY13.mjs";
10
+ import { f as webLogFile, m as webSupervisorLogFile, o as readWebRecord, s as updateWebRecord } from "./state-CfP-ccP8.mjs";
11
+ import { ft as teardownBrowserHeld, x as resolveSupervisorTarget } from "./workspaces-DCzDzydB.mjs";
12
+ import { i as reserveBrowserPort, n as getNamedPort } from "./named-ports-BfEMi9bK.mjs";
13
+ import { n as sendToOwnedPage, t as liveWebRecord } from "./page-CoN9al_x.mjs";
14
+ import { o as resolveWorkspaceMetroPort } from "./start-CzBB5R7N.mjs";
15
15
  import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
16
- import { n as windowsLauncherArgs } from "./detached-entry-tfrgGVWb.mjs";
17
- import { a as findChrome, t as CHROME_INSTALL_REMEDY } from "./chrome-C8sC5tdl.mjs";
16
+ import { n as windowsLauncherArgs } from "./detached-entry-VqFeEE9W.mjs";
17
+ import { a as findChrome, t as CHROME_INSTALL_REMEDY } from "./chrome-DL5znvmo.mjs";
18
18
  import { randomUUID } from "node:crypto";
19
19
  import { mkdirSync, openSync, statSync, watch } from "node:fs";
20
20
  import { ambientEnv } from "@stim-cli/core";
@@ -1,29 +1,32 @@
1
- import { d as throwIfCancelled, u as cancelledError, w as withDrainingCancellation } from "./exec-CGuDzt40.mjs";
2
- import { E as workspaceDir, a as recordWorkspaceUseAsync, k as workspaceLogsDir } from "./workspace-state-BdZ-QgmB.mjs";
3
- import { l as phaseLine } from "./command-output-CGxrQ3Bd.mjs";
4
- import { D as upsertProject, k as withConfigLockAsync, m as getProject, u as getConcurrencyLimits } from "./config-BW0fAtoK.mjs";
5
- import { J as resolveCacheProviderConfig, Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY } from "./settings-B5IBDfTx.mjs";
6
- import { f as projectRegistry, v as detectIsExpo } from "./project-Dqqj3IkW.mjs";
7
- import { s as workspaceShareURL } from "./stim-desktop-_WTria-r.mjs";
8
- import { j as hostSystemImageArch } from "./android-Iq0M2t2d.mjs";
1
+ import { d as throwIfCancelled, u as cancelledError, w as withDrainingCancellation } from "./exec-L37dbiIb.mjs";
2
+ import { E as workspaceDir, a as recordWorkspaceUseAsync, k as workspaceLogsDir } from "./workspace-state-DOPXG2Gp.mjs";
3
+ import { l as phaseLine } from "./command-output-ByEmIwur.mjs";
4
+ import { A as withConfigLockAsync, O as upsertProject, m as getProject, u as getConcurrencyLimits } from "./config-CNmN-ndb.mjs";
5
+ import { J as resolveCacheProviderConfig, Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY } from "./settings-Ag4pbs0z.mjs";
6
+ import { f as projectRegistry, v as detectIsExpo } from "./project-BCtQz48d.mjs";
7
+ import { s as workspaceShareURL } from "./stim-desktop-DWGAfaud.mjs";
8
+ import { j as hostSystemImageArch } from "./android-CGctfYpv.mjs";
9
9
  import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
10
- import { Jn as checkEasAuth, nr as resolveRemote, rr as uploadRemote } from "./device-capacity-C0PiTyRb.mjs";
11
- import { $ as tapBuildLog, Q as startBuildProgress, St as acquireBuildSlot, Tt as releaseBuildSlot, X as recordFinishedBuild, ct as recordRunStats, it as readRunEstimates, lt as statsProjectKey, rt as createRunRecorder } from "./workspaces-CY3KSdC0.mjs";
12
- import { H as readBundleId, _t as runCancellationSignal, vt as withNativeBuildRun } from "./toolchain-DRQyCvlp.mjs";
13
- import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-BQpJpAjA.mjs";
14
- import { C as providerUploadOutcome, D as storedAppId } from "./build-cache-_fkewiwH.mjs";
15
- import { m as listIosRuntimes } from "./ios-BdZdNsAj.mjs";
10
+ import { Jn as checkEasAuth, nr as resolveRemote, rr as uploadRemote } from "./device-capacity-DWUOvY13.mjs";
11
+ import { $ as tapBuildLog, Q as startBuildProgress, St as acquireBuildSlot, Tt as releaseBuildSlot, X as recordFinishedBuild, ct as recordRunStats, it as readRunEstimates, lt as statsProjectKey, rt as createRunRecorder } from "./workspaces-DCzDzydB.mjs";
12
+ import { H as readBundleId, _t as runCancellationSignal, vt as withNativeBuildRun } from "./toolchain-BeD7tbBW.mjs";
13
+ import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-CdpXXSq2.mjs";
14
+ import { C as providerUploadOutcome, D as storedAppId } from "./build-cache-Dt-dhCJF.mjs";
15
+ import { m as listIosRuntimes } from "./ios-BveW7qK1.mjs";
16
16
  import { d as optimizationBuildProfile, l as artifactCachePolicy } from "./errors-DHm_U5gv.mjs";
17
- import { C as setRemoteLogSink } from "./client-Dy0eJJtz.mjs";
18
- import { L as resolveBuildPlacement, c as iosProjectPathError, g as resolveIosBuildSetup, m as resolveConfiguration, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-DW575Dnx.mjs";
19
- import { f as settleFingerprintCheck } from "./prebuild-BptrXmh_.mjs";
20
- import { n as ensureWorkspaceStorageSafely } from "./native-runtime-oDqT4UES.mjs";
21
- import { t as acquireAndroidArtifact } from "./artifact-BG4h_WTC.mjs";
22
- import { a as persistLastBuild, l as resolveAndroidBuildPlan, n as finishAndroidUpload } from "./result-DK6nTO-M.mjs";
23
- import { o as lastBuildRecord } from "./ios-project-PXBDoaii.mjs";
24
- import { t as acquireIosArtifact } from "./artifact-2NIRz6SC.mjs";
17
+ import { C as setRemoteLogSink } from "./client-DU6dnGX1.mjs";
18
+ import { L as resolveBuildPlacement, c as iosProjectPathError, g as resolveIosBuildSetup, m as resolveConfiguration, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-CfYmOdQs.mjs";
19
+ import { a as resolveEasDevelopmentBuild, r as isEasBuildFailure } from "./eas-build-CwOXKJwa.mjs";
20
+ import { f as settleFingerprintCheck } from "./prebuild-BKkj3OyL.mjs";
21
+ import { n as ensureWorkspaceStorageSafely } from "./native-runtime-UxUBU8up.mjs";
22
+ import { i as recordedBuildKey, n as pruneArtifactCopies, r as recordBuild } from "./recorded-build-CGHGCO8m.mjs";
23
+ import { E as resolveVariant } from "./support-JZ4KRW0C.mjs";
24
+ import { t as acquireAndroidArtifact } from "./artifact-BsimBWxG.mjs";
25
+ import { a as persistLastBuild, l as resolveAndroidBuildPlan, n as finishAndroidUpload } from "./result-CWyxwPvZ.mjs";
26
+ import { o as lastBuildRecord } from "./ios-project-XHg87vyQ.mjs";
27
+ import { t as acquireIosArtifact } from "./artifact-BrNZTZtA.mjs";
25
28
  import { constants, promises } from "node:fs";
26
- import { basename, join } from "node:path";
29
+ import { basename, dirname, join } from "node:path";
27
30
  import { hostSimulatorArch } from "@stim-cli/core";
28
31
  import chalk from "chalk";
29
32
  import { loadCacheProvider } from "@stim-cli/cache";
@@ -48,6 +51,7 @@ async function buildAndroidOperation(context, root, options, { artifactScope, ca
48
51
  settings,
49
52
  settingsContext,
50
53
  env: context.env,
54
+ easProfile: options.easProfile,
51
55
  variant: options.variant ?? null,
52
56
  buildCache: options.buildCache !== false
53
57
  }, {
@@ -111,6 +115,20 @@ async function buildAndroidOperation(context, root, options, { artifactScope, ca
111
115
  buildMachine: placement.selected,
112
116
  configuration: plan.plan.build.variant
113
117
  };
118
+ const easBuild = await resolveEasDevelopmentBuild({
119
+ context,
120
+ root,
121
+ platform: "android",
122
+ profile: options.easProfile,
123
+ note,
124
+ isExpo: integration.isExpo,
125
+ physical: false,
126
+ selectors: [options.variant],
127
+ buildCache: options.buildCache,
128
+ env: context.env,
129
+ signal: runCancellationSignal(context) ?? context.signal
130
+ });
131
+ if (isEasBuildFailure(easBuild)) throw Object.assign(new Error(easBuild.message ?? easBuild.code), easBuild, { details: easBuild });
114
132
  let artifact;
115
133
  let directory;
116
134
  let built = null;
@@ -159,7 +177,7 @@ async function buildAndroidOperation(context, root, options, { artifactScope, ca
159
177
  },
160
178
  cacheProviderConfig: plan.plan.cacheProviderConfig,
161
179
  requestedBuildCache: options.buildCache !== false,
162
- easBuild: null,
180
+ easBuild,
163
181
  androidPackage: (await integration.appIds()).androidPackage,
164
182
  record,
165
183
  maxBuilds: getConcurrencyLimits().maxBuilds,
@@ -244,6 +262,14 @@ async function buildAndroidOperation(context, root, options, { artifactScope, ca
244
262
  });
245
263
  if (built && !failureAfterCleanup) {
246
264
  finishRecord("ok");
265
+ recordBuild(root, recordedBuildKey({
266
+ platform: "android",
267
+ configuration: resolveVariant(options.variant, settings)
268
+ }), {
269
+ appPath: built.apkPath,
270
+ bundleId: built.androidPackage
271
+ });
272
+ await pruneArtifactCopies(root, "android", dirname(built.apkPath), (line) => phase("artifacts", chalk.yellow(line)));
247
273
  stats.record({
248
274
  failed: false,
249
275
  cacheHit: record.cacheHit === "local" || record.cacheHit === "remote" ? record.cacheHit : false,
@@ -284,7 +310,7 @@ async function buildIosOperation(context, root, options) {
284
310
  throw Object.assign(new Error(failure.message ?? failure.code), failure, { details: failure });
285
311
  }
286
312
  const { buildMachine, optimizations } = setup;
287
- const configuration = resolveConfiguration(options.configuration, settings);
313
+ const configuration = options.easProfile !== void 0 ? null : resolveConfiguration(options.configuration, settings);
288
314
  const buildScheme = resolveSchemeSelection(options, settings);
289
315
  const problem = await integration.schemeProblem(buildScheme, configuration);
290
316
  if (problem) throw Object.assign(new Error(problem.message ?? problem.code), problem);
@@ -296,8 +322,7 @@ async function buildIosOperation(context, root, options) {
296
322
  const arch = options.arch === "all" ? null : options.arch ?? simulatorBuildArch({
297
323
  physical: false,
298
324
  remoteArch: null,
299
- hostArch: hostSimulatorArch(),
300
- configuration
325
+ hostArch: hostSimulatorArch()
301
326
  });
302
327
  const cache = artifactCachePolicy(optimizations, options.buildCache !== false, integration.runtimeKind(configuration) === "embedded-js");
303
328
  const phase = (label, line) => note(phaseLine(label, line));
@@ -341,6 +366,20 @@ async function buildIosOperation(context, root, options) {
341
366
  });
342
367
  stats.setProject(projectKey);
343
368
  progress.estimate(projectKey);
369
+ const easBuild = await resolveEasDevelopmentBuild({
370
+ context,
371
+ root,
372
+ platform: "ios",
373
+ profile: options.easProfile,
374
+ note,
375
+ isExpo: integration.isExpo,
376
+ physical: false,
377
+ selectors: [options.scheme, options.configuration],
378
+ buildCache: options.buildCache,
379
+ env: context.env,
380
+ signal: runCancellationSignal(context) ?? context.signal
381
+ });
382
+ if (isEasBuildFailure(easBuild)) throw Object.assign(new Error(easBuild.message ?? easBuild.code), easBuild, { details: easBuild });
344
383
  let artifact;
345
384
  let directory;
346
385
  let built = null;
@@ -399,6 +438,7 @@ async function buildIosOperation(context, root, options) {
399
438
  },
400
439
  device: null,
401
440
  optimizations: optimizations.ios,
441
+ easProfile: options.easProfile,
402
442
  cache,
403
443
  phase,
404
444
  note,
@@ -415,7 +455,7 @@ async function buildIosOperation(context, root, options) {
415
455
  providerConfig: resolveCacheProviderConfig(settingsContext),
416
456
  disabledByFlag: options.buildCache === false
417
457
  },
418
- easBuild: null,
458
+ easBuild,
419
459
  maxBuilds: getConcurrencyLimits().maxBuilds,
420
460
  progress: {
421
461
  phase,
@@ -503,6 +543,15 @@ async function buildIosOperation(context, root, options) {
503
543
  });
504
544
  if (built && !failureAfterCleanup) {
505
545
  finish("ok", built.appPath);
546
+ recordBuild(root, recordedBuildKey({
547
+ platform: "ios",
548
+ scheme: resolveSchemeSelection({ scheme: options.scheme }, settings),
549
+ configuration: resolveConfiguration(options.configuration, settings)
550
+ }), {
551
+ appPath: built.appPath,
552
+ bundleId: built.bundleId
553
+ });
554
+ await pruneArtifactCopies(root, "ios", dirname(built.appPath), (line) => phase("artifacts", chalk.yellow(line)));
506
555
  stats.record({
507
556
  failed: false,
508
557
  durationMs: Date.now() - started,
@@ -1,9 +1,9 @@
1
- import { d as throwIfCancelled, t as getExecutor, w as withDrainingCancellation } from "./exec-CGuDzt40.mjs";
2
- import { y as sharedBuildCache } from "./workspace-state-BdZ-QgmB.mjs";
3
- import { a as killOnAbort, c as gitQuiet, o as git, r as childEnvironment, s as gitAsync } from "./operation-exec-DKlBcKAL.mjs";
4
- import { m as defaultAndroidLayout } from "./settings-B5IBDfTx.mjs";
5
- import { r as register } from "./cache-manifest-8JX9S1QJ.mjs";
6
- import { r as writeSignedTail, t as computeSignedTail } from "./apk-signed-tail-CPpA-3vu.mjs";
1
+ import { d as throwIfCancelled, t as getExecutor, w as withDrainingCancellation } from "./exec-L37dbiIb.mjs";
2
+ import { y as sharedBuildCache } from "./workspace-state-DOPXG2Gp.mjs";
3
+ import { a as killOnAbort, c as gitQuiet, o as git, r as childEnvironment, s as gitAsync } from "./operation-exec-DNynwpqO.mjs";
4
+ import { m as defaultAndroidLayout } from "./settings-Ag4pbs0z.mjs";
5
+ import { r as register } from "./cache-manifest-BO0TIcPV.mjs";
6
+ import { r as writeSignedTail, t as computeSignedTail } from "./apk-signed-tail-BMv-KLcB.mjs";
7
7
  import { createHash } from "node:crypto";
8
8
  import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
9
9
  import { join } from "node:path";
@@ -1,10 +1,10 @@
1
- import { a as trackReportResource } from "./exec-CGuDzt40.mjs";
2
- import { i as formatDuration, l as phaseLine, m as shortHash, u as plural } from "./command-output-CGxrQ3Bd.mjs";
3
- import { an as makeTemporaryDirectory, sn as removeTemporaryEntryAsync } from "./settings-B5IBDfTx.mjs";
4
- import { Yn as easAuthNote } from "./device-capacity-C0PiTyRb.mjs";
5
- import { at as readStats, q as estimateBuild } from "./workspaces-CY3KSdC0.mjs";
6
- import { c as entryDir, t as artifactIn } from "./build-cache-_fkewiwH.mjs";
7
- import { l as predictBuildMiss, o as staleNativeDirRefusal } from "./prebuild-BptrXmh_.mjs";
1
+ import { a as trackReportResource } from "./exec-L37dbiIb.mjs";
2
+ import { i as formatDuration, l as phaseLine, m as shortHash, u as plural } from "./command-output-ByEmIwur.mjs";
3
+ import { an as makeTemporaryDirectory, sn as removeTemporaryEntryAsync } from "./settings-Ag4pbs0z.mjs";
4
+ import { Yn as easAuthNote } from "./device-capacity-DWUOvY13.mjs";
5
+ import { at as readStats, q as estimateBuild } from "./workspaces-DCzDzydB.mjs";
6
+ import { c as entryDir, t as artifactIn } from "./build-cache-Dt-dhCJF.mjs";
7
+ import { l as predictBuildMiss, o as staleNativeDirRefusal } from "./prebuild-BKkj3OyL.mjs";
8
8
  import chalk from "chalk";
9
9
  import { PROVIDER_LOAD_TIMEOUT_ENV, PROVIDER_LOAD_TIMEOUT_MS, buildResolveTimeoutMs, resolveTieredBuild, timeoutFromEnv } from "@stim-cli/cache";
10
10
  //#region src/commands/build-plan.ts
@@ -1,4 +1,4 @@
1
- import { d as getConfigDir } from "./config-BW0fAtoK.mjs";
1
+ import { d as getConfigDir } from "./config-CNmN-ndb.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-8JX9S1QJ.mjs";
1
+ import { a as unregister, i as registeredCaches, n as readManifest, r as register, t as manifestPath } from "./cache-manifest-BO0TIcPV.mjs";
2
2
  export { manifestPath, readManifest, register, registeredCaches, unregister };
@@ -1,4 +1,4 @@
1
- import { d as throwIfCancelled, u as cancelledError } from "./exec-CGuDzt40.mjs";
1
+ import { d as throwIfCancelled, u as cancelledError } from "./exec-L37dbiIb.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-CGuDzt40.mjs";
1
+ import { t as getExecutor } from "./exec-L37dbiIb.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,28 @@
1
- import { E as debugLog } from "./exec-CGuDzt40.mjs";
2
- import { b as refuseRelativeStimPaths } from "./config-BW0fAtoK.mjs";
1
+ import { E as debugLog } from "./exec-L37dbiIb.mjs";
2
+ import { b as refuseRelativeStimPaths } from "./config-CNmN-ndb.mjs";
3
3
  import { readFileSync } from "node:fs";
4
4
  import { runId, trace } 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-BBAb8NLe.mjs")],
9
- ["worktree", () => import("./worktree-D6myrQ2H.mjs")],
10
- ["start", () => import("./start-GkRBR1e3.mjs")],
11
- ["ports", () => import("./ports-C1_1Qgdy.mjs")],
12
- ["stop", () => import("./stop-QFOqgICJ.mjs")],
13
- ["ios", () => import("./ios-BCKxjpRp.mjs")],
14
- ["android", () => import("./android-CjcJE7uA.mjs")],
15
- ["web", () => import("./web-D1m1LKEz.mjs")],
16
- ["macos", () => import("./macos-C_e9f5-5.mjs")],
17
- ["reload", () => import("./reload-CXgce4Yo.mjs")],
18
- ["device", () => import("./device-mOFYiHiw.mjs")],
19
- ["logs", () => import("./logs-DwI3Rkpf.mjs")],
20
- ["settings", () => import("./settings-DcmVICCn.mjs")],
21
- ["status", () => import("./status-Dost__Vn.mjs")],
22
- ["stats", () => import("./stats-Dz08IopP.mjs")],
23
- ["gc", () => import("./gc-CvMEytXz.mjs")],
24
- ["guide", () => import("./guide-BWozWG7D.mjs")]
8
+ ["doctor", () => import("./doctor-CxgR5vPi.mjs")],
9
+ ["worktree", () => import("./worktree-6ngObKkw.mjs")],
10
+ ["start", () => import("./start-CdgtOksb.mjs")],
11
+ ["ports", () => import("./ports-DKO7EUNt.mjs")],
12
+ ["stop", () => import("./stop-iGkvEvDn.mjs")],
13
+ ["ios", () => import("./ios-Bjz7aPLy.mjs")],
14
+ ["android", () => import("./android-CaSsewbu.mjs")],
15
+ ["web", () => import("./web-BcaySU05.mjs")],
16
+ ["macos", () => import("./macos-ZfpWlzBO.mjs")],
17
+ ["reload", () => import("./reload-DWxmO9dY.mjs")],
18
+ ["device", () => import("./device-DGMvzoZZ.mjs")],
19
+ ["logs", () => import("./logs-x3em2-oI.mjs")],
20
+ ["remote", () => import("./remote-DWYGW2f5.mjs")],
21
+ ["settings", () => import("./settings-TYrzDh8T.mjs")],
22
+ ["status", () => import("./status-C7Zzb-Eh.mjs")],
23
+ ["stats", () => import("./stats-BgTyuzib.mjs")],
24
+ ["gc", () => import("./gc-1ZLq1djg.mjs")],
25
+ ["guide", () => import("./guide-COxIANZu.mjs")]
25
26
  ]);
26
27
  const pkg = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf-8"));
27
28
  const program = new Command();
@@ -53,7 +54,7 @@ try {
53
54
  }));
54
55
  }
55
56
  try {
56
- const { triggerMaintenance } = await import("./trigger-D8B7QR0q.mjs");
57
+ const { triggerMaintenance } = await import("./trigger-Bp3lruF2.mjs");
57
58
  triggerMaintenance(action.name());
58
59
  } catch {}
59
60
  });
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-DK24VzHi.mjs");
7
+ } else import("./cli-BGUrlSH3.mjs");
8
8
  //#endregion
9
9
  export {};
@@ -1,13 +1,13 @@
1
- import { C as operationState, E as debugLog, d as throwIfCancelled, r as reportSignal, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { K as resolveEndpoint, V as openAuthenticated, q as sayHello, v as loadConfig$1 } from "./config-BW0fAtoK.mjs";
3
- import { o as git, s as gitAsync } from "./operation-exec-DKlBcKAL.mjs";
4
- import { C as CCACHE_UNAVAILABLE, Or as discoverCaches, S as CCACHE_NOT_RUN, at as maintenanceLogger, ft as planCacheEmptying, ot as emptyCaches } from "./device-capacity-C0PiTyRb.mjs";
1
+ import { C as operationState, E as debugLog, d as throwIfCancelled, r as reportSignal, t as getExecutor } from "./exec-L37dbiIb.mjs";
2
+ import { H as openAuthenticated, J as sayHello, q as resolveEndpoint, v as loadConfig$1 } from "./config-CNmN-ndb.mjs";
3
+ import { o as git, s as gitAsync } from "./operation-exec-DNynwpqO.mjs";
4
+ import { C as CCACHE_UNAVAILABLE, Or as discoverCaches, S as CCACHE_NOT_RUN, at as maintenanceLogger, ft as planCacheEmptying, ot as emptyCaches } from "./device-capacity-DWUOvY13.mjs";
5
5
  import { t as canonicalPath } from "./paths-BsJMoPP2.mjs";
6
- import { A as COMPILATION_CACHE_NOT_RUN, D as readRubyVersion, S as workerToolchain, _t as runCancellationSignal, a as buildsOnlyOnWorker, b as toolchainNotes, c as iosToolchainAsync, j as COMPILATION_CACHE_UNAVAILABLE, o as cocoapodsDifference, y as toolchainMismatches } from "./toolchain-DRQyCvlp.mjs";
6
+ import { A as COMPILATION_CACHE_NOT_RUN, D as readRubyVersion, S as workerToolchain, _t as runCancellationSignal, a as buildsOnlyOnWorker, b as toolchainNotes, c as iosToolchainAsync, j as COMPILATION_CACHE_UNAVAILABLE, o as cocoapodsDifference, y as toolchainMismatches } from "./toolchain-BeD7tbBW.mjs";
7
7
  import { t as resolveMaintenanceSettings } from "./settings-D9LtQaUw.mjs";
8
- import { $ as pairedMachines, D as OffloadRefusal, M as namedBuildMachine, R as workerFailureReason, u as isReleaseConfiguration } from "./support-DW575Dnx.mjs";
8
+ import { D as OffloadRefusal, M as namedBuildMachine, R as workerFailureReason, et as pairedMachines, u as isReleaseConfiguration } from "./support-CfYmOdQs.mjs";
9
9
  import { n as fingerprintNativeInputs, r as manifestDigest } from "./native-inputs-TRTTTRxt.mjs";
10
- import { a as sourceManifest, i as nativeTransferManifest, n as gitVisiblePaths, r as nativeFileDigest, t as checkNativeTransferMembership } from "./native-source-ChAGj7R1.mjs";
10
+ import { a as sourceManifest, i as nativeTransferManifest, n as gitVisiblePaths, r as nativeFileDigest, t as checkNativeTransferMembership } from "./native-source-D2ZfiQ6U.mjs";
11
11
  import { t as BuildArtifactCache } from "./build-artifact-cache-D7B6seMj.mjs";
12
12
  import { createHash, webcrypto } from "node:crypto";
13
13
  import { closeSync, existsSync, lstatSync, mkdirSync, openSync, readFileSync, readdirSync, realpathSync, rmSync, writeSync } from "node:fs";
@@ -1,12 +1,12 @@
1
- import { T as process_identity_exports } from "./exec-CGuDzt40.mjs";
2
- import { k as workspaceLogsDir } from "./workspace-state-BdZ-QgmB.mjs";
1
+ import { T as process_identity_exports } from "./exec-L37dbiIb.mjs";
2
+ import { k as workspaceLogsDir } from "./workspace-state-DOPXG2Gp.mjs";
3
3
  import { t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
4
- import { _t as validateDeviceSlot, dt as deviceSlotKey } from "./config-BW0fAtoK.mjs";
5
- import { c as watchAppPid, i as parseLogcatLine, o as startAndroidLogcat, s as waitForAppPid, t as androidClockOffset } from "./android-B2DSKg-A.mjs";
4
+ import { ft as deviceSlotKey, vt as validateDeviceSlot } from "./config-CNmN-ndb.mjs";
5
+ import { c as watchAppPid, i as parseLogcatLine, o as startAndroidLogcat, s as waitForAppPid, t as androidClockOffset } from "./android-BPBARZMR.mjs";
6
6
  import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
7
- import { a as startIosDeviceConsole, i as parseDeviceConsoleLine } from "./ios-device-DLdEDWJj.mjs";
8
- import { a as unregisterCollector, i as registerCollector, r as readCollectors, t as collectorProcessTitle } from "./ownership-hC7xvvxF.mjs";
9
- import { n as parseLogStreamLine, r as startIosLogStream, t as appNameFromBundleId } from "./ios-Qam0bT9n.mjs";
7
+ import { a as startIosDeviceConsole, i as parseDeviceConsoleLine } from "./ios-device-ygijU78G.mjs";
8
+ import { a as unregisterCollector, i as registerCollector, r as readCollectors, t as collectorProcessTitle } from "./ownership-CQTg6v1d.mjs";
9
+ import { n as parseLogStreamLine, r as startIosLogStream, t as appNameFromBundleId } from "./ios-2Qr4_Zu2.mjs";
10
10
  import { existsSync } from "node:fs";
11
11
  import { isAbsolute, join, resolve } from "node:path";
12
12
  import { LOG_ROTATE_BYTES } from "@stim-cli/core";
@@ -1,5 +1,5 @@
1
1
  import { n as stripAnsi } from "./process-output-Fpl8PYi8.mjs";
2
- import { t as NO_PROJECT_REFUSAL } from "./project-Dqqj3IkW.mjs";
2
+ import { t as NO_PROJECT_REFUSAL } from "./project-BCtQz48d.mjs";
3
3
  import { quotedPath as quotedPath$1 } from "@stim-cli/core";
4
4
  import chalk from "chalk";
5
5
  //#region src/diagnostics/launch-error-preview.ts