stim 1.27.0 → 1.29.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 (154) hide show
  1. package/dist/{acquire-artifact-BKN2Yuhg.mjs → acquire-artifact-C2DKfenN.mjs} +1 -1
  2. package/dist/{act-ROviTF_t.mjs → act-CrTcskiE.mjs} +502 -34
  3. package/dist/{activity-Cd-ysFes.mjs → activity-BR5oHSO5.mjs} +6 -5
  4. package/dist/{agent-device-usage-output-C5nCKWp9.mjs → agent-device-usage-output-W0x4SoC7.mjs} +4 -4
  5. package/dist/{android-DriNoAVy.mjs → android-BHKgeOuq.mjs} +5 -5
  6. package/dist/{android--HBgpvpW.mjs → android-BPmCmyAy.mjs} +5 -5
  7. package/dist/{android-Deb9X3_Y.mjs → android-CLU_MMnb.mjs} +1 -1
  8. package/dist/{android-cas-D5e6ecUg.mjs → android-cas-BH6K12__.mjs} +4 -4
  9. package/dist/{android-Cd6w7_qw.mjs → android-l616dRP1.mjs} +42 -39
  10. package/dist/{android-project-DUGMbq28.d.mts → android-project-CCEQyYJK.d.mts} +6 -2
  11. package/dist/api.d.mts +8 -5
  12. package/dist/api.mjs +27 -27
  13. package/dist/{apk-signed-tail-BHQHx3Rm.mjs → apk-signed-tail-B-wKoF_8.mjs} +2 -2
  14. package/dist/{artifact-0AGJYB9O.mjs → artifact-DHuFYfhD.mjs} +12 -12
  15. package/dist/{artifact-faemIZv5.mjs → artifact-Dm9ScLrh.mjs} +12 -12
  16. package/dist/{auto-placement-z-H5pJza.mjs → auto-placement-C8sJsyMN.mjs} +8 -8
  17. package/dist/{browser-web-slD8AvLp.mjs → browser-web-_tQTbQUs.mjs} +12 -12
  18. package/dist/{build-hS0QyFlQ.mjs → build-DtCU9Kim.mjs} +23 -23
  19. package/dist/{build-cache-gBJ-WKzA.mjs → build-cache-BGwTsIEa.mjs} +4 -4
  20. package/dist/{build-plan-CBqYbzYM.mjs → build-plan-CWyjMPKo.mjs} +6 -6
  21. package/dist/{cache-manifest-DEjqGGat.mjs → cache-manifest-evF_zJ9U.mjs} +1 -1
  22. package/dist/cache-manifest.mjs +1 -1
  23. package/dist/{ccache-BWTze1Ls.mjs → ccache-DsDkdP72.mjs} +19 -18
  24. package/dist/{cli-ftXDLto1.mjs → cli-3fjOg-Oc.mjs} +19 -19
  25. package/dist/cli.mjs +1 -1
  26. package/dist/{client-xsdxrhWA.mjs → client-BTUH8TF1.mjs} +41 -8
  27. package/dist/collector-run.mjs +5 -5
  28. package/dist/{command-output-Dj-WT4BP.mjs → command-output-DjCsmzLZ.mjs} +1 -1
  29. package/dist/{config-Cn94Jc0g.mjs → config-AbUjIBOQ.mjs} +121 -19
  30. package/dist/{dependencies-BGokZ-Ng.mjs → dependencies-CHNqX6Pr.mjs} +38 -38
  31. package/dist/{dependency-state-C3OtgG94.mjs → dependency-state-CPKAKCZ8.mjs} +1 -1
  32. package/dist/{dev-client-BMca82xo.mjs → dev-client-CROrxj1x.mjs} +2 -2
  33. package/dist/{device-tM41-TUq.mjs → device-Bmm5qjM-.mjs} +14 -14
  34. package/dist/device-BvpasThQ.mjs +297 -0
  35. package/dist/{device-capacity-6LP7QsaA.mjs → device-capacity-B2ChA-bz.mjs} +86 -18
  36. package/dist/device-host-worker.mjs +15 -13
  37. package/dist/{device-ios-534c14fz.mjs → device-ios-CYzivd31.mjs} +9 -9
  38. package/dist/{device-lease-run-DwsGfjUN.mjs → device-lease-run-qRq_2W2V.mjs} +4 -4
  39. package/dist/{device-pool-BnQqvs6o.mjs → device-pool-CrmiE4_x.mjs} +3 -3
  40. package/dist/{device-BJm0irrq.mjs → device-provision-CK2XiEp1.mjs} +11 -302
  41. package/dist/{doctor-Dbx1ZpD2.mjs → doctor-BO_kaFWX.mjs} +1 -1
  42. package/dist/{doctor-DyqE9n1J.mjs → doctor-Cp4-HN1f.mjs} +20 -15
  43. package/dist/{doctor-F-3VUUyN.mjs → doctor-Dr3C1iXV.mjs} +19 -19
  44. package/dist/doctor-fingerprint.mjs +1 -1
  45. package/dist/{doctor-watchman-CxDbyrrt.mjs → doctor-watchman-CJr2aXXv.mjs} +4 -4
  46. package/dist/{eas-build-CjNSWmjo.mjs → eas-build-D-9HmGZS.mjs} +2 -2
  47. package/dist/{eas-fallback-9fqb46kW.mjs → eas-fallback-Cemt2GVL.mjs} +4 -4
  48. package/dist/{eas-session-ledger-DrP4OuuM.mjs → eas-session-ledger-B0KLZx5m.mjs} +36 -7
  49. package/dist/{error-diagnostics-snej9k4j.mjs → error-diagnostics-CV_1RoEH.mjs} +8 -8
  50. package/dist/{gc-CGZ1Yg88.mjs → gc-CKHqL4aS.mjs} +81 -18
  51. package/dist/{gc-BRwAY3qT.mjs → gc-DjXwQXHK.mjs} +2 -2
  52. package/dist/{guide-_rfEh_zM.mjs → guide-CeRlWVsS.mjs} +230 -62
  53. package/dist/{hosted-android-BMKzUNnY.mjs → hosted-android-DI_vvv7U.mjs} +5 -6
  54. package/dist/{hosted-client-D7Pk_Oo1.mjs → hosted-client-CgoxdU9j.mjs} +44 -17
  55. package/dist/{hosted-logs-B1gqQuva.mjs → hosted-logs-C-4INmkn.mjs} +17 -8
  56. package/dist/{hosted-logs-sync-Dg3qrZmV.mjs → hosted-logs-sync-Bf5s02fi.mjs} +5 -5
  57. package/dist/{hosted-macos-B9w4H8hc.mjs → hosted-macos-Doh85YUM.mjs} +5 -5
  58. package/dist/{hosted-native-CdgaiuyP.mjs → hosted-native-DvZENAL-.mjs} +11 -8
  59. package/dist/{idle-shutdown-Cbvo5KEh.mjs → idle-shutdown-BM37gMfU.mjs} +7 -7
  60. package/dist/{ios-Bk4mWbtS.mjs → ios-CNDH6fNF.mjs} +8 -8
  61. package/dist/{ios-E26qSpkb.mjs → ios-CoMCWfub.mjs} +4 -4
  62. package/dist/{ios-B5HlVMhQ.mjs → ios-UM_dManb.mjs} +31 -29
  63. package/dist/{ios-device-C_QkIf1Z.mjs → ios-device-L1-pota_.mjs} +1 -1
  64. package/dist/{ios-project-D8Jcy_br.mjs → ios-project-DJYptOCh.mjs} +7 -7
  65. package/dist/{ios-state-BZ03NFgF.mjs → ios-state-Ce_dystM.mjs} +1 -1
  66. package/dist/{js-swap-Dg2a945i.mjs → js-swap-BthE4kZC.mjs} +4 -4
  67. package/dist/{launch-CRyBeNsA.mjs → launch-D798aSm8.mjs} +19 -19
  68. package/dist/{lightened-BCsdAGj_.mjs → lightened-vSxkstg6.mjs} +4 -4
  69. package/dist/{logs-aJQb-RDg.mjs → logs-BND8MiBq.mjs} +9 -8
  70. package/dist/{logs-CC_-ZzEE.mjs → logs-CilPftm3.mjs} +5 -5
  71. package/dist/{macos-BGmTpnv9.mjs → macos-BOQrKYeJ.mjs} +1 -1
  72. package/dist/{macos-DlCBhMw5.mjs → macos-CxUi9xcE.mjs} +20 -20
  73. package/dist/macos-run.mjs +1 -1
  74. package/dist/maintenance-run.mjs +13 -9
  75. package/dist/{metro-CvyD-xwe.mjs → metro-BMQHczcf.mjs} +2 -2
  76. package/dist/{metro-gateway-BnHdqMO_.mjs → metro-request-BtF7ox53.mjs} +25 -46
  77. package/dist/{named-ports-BCyMWA6b.mjs → named-ports-DcktE2Pw.mjs} +2 -2
  78. package/dist/{native-android-DlpxCyOP.mjs → native-android-BkhrCjdX.mjs} +16 -16
  79. package/dist/{native-gradle-artifact-inputs-C13qT7R_.mjs → native-gradle-artifact-inputs-Cw4P6Gyr.mjs} +3 -3
  80. package/dist/{native-runtime-DqaIBO5w.mjs → native-runtime-DyH2gkXK.mjs} +6 -6
  81. package/dist/{native-xcode-inputs-B1W8SrxB.mjs → native-xcode-inputs-DV8jr3kJ.mjs} +2 -2
  82. package/dist/{native-xcode-ios-QPP0Rm68.mjs → native-xcode-ios-DdpPG2iT.mjs} +15 -15
  83. package/dist/{ndjson-Dy2W4vRa.mjs → ndjson-CrjIsGzw.mjs} +2 -2
  84. package/dist/offload-worker.d.mts +1 -1
  85. package/dist/offload-worker.mjs +22 -22
  86. package/dist/{ownership-Bx-0cku-.mjs → ownership-Dtz9G5Gl.mjs} +2 -2
  87. package/dist/{phone-reverses-C9yAaKEv.mjs → phone-reverses-DZRad8HT.mjs} +4 -4
  88. package/dist/{placement-log-BXUbiZM6.mjs → placement-log-CoN6xrjY.mjs} +1 -1
  89. package/dist/{plan-placement-UxnQjv5Z.mjs → plan-placement-7sHuqR-r.mjs} +6 -6
  90. package/dist/{ports-uUrghqWN.mjs → ports-VQSAPZhl.mjs} +3 -3
  91. package/dist/{prebuild-BDpToDgR.mjs → prebuild-Bqp0LFGN.mjs} +9 -9
  92. package/dist/{project-DYj-HVx6.mjs → project-D1n0K4yg.mjs} +15 -15
  93. package/dist/{react-native-android-DDBccgJw.mjs → react-native-android-FQ-yX3Mv.mjs} +22 -22
  94. package/dist/{react-native-build-DaK2IFyP.mjs → react-native-build-D58bIqV9.mjs} +7 -7
  95. package/dist/{react-native-doctor-B-Mw6DcR.mjs → react-native-doctor-AkUH2aca.mjs} +5 -5
  96. package/dist/{react-native-ios-DjYwUF9U.mjs → react-native-ios-Dmsv8j7T.mjs} +14 -14
  97. package/dist/{recordings-C20iUZfp.mjs → recordings-CHMaF73C.mjs} +1 -1
  98. package/dist/{reload-fUdkH2_p.mjs → reload-BV0nD-k9.mjs} +14 -14
  99. package/dist/{reload-DJBeF_rC.mjs → reload-CDKEzzaf.mjs} +1 -1
  100. package/dist/{remote-y6n99WMW.mjs → remote-C8xyslUa.mjs} +9 -9
  101. package/dist/{result-CTqBw2Te.mjs → result-9fqcJ90W.mjs} +16 -16
  102. package/dist/{run-DaCeNKRm.mjs → run-BQAmrohh.mjs} +2 -2
  103. package/dist/{selection-Bs8phwhN.mjs → selection-D1ZDzHFX.mjs} +105 -62
  104. package/dist/{server-bare-BOh-iZEj.mjs → server-bare-CEQdB_F4.mjs} +37 -1
  105. package/dist/{server-command-8CuA51Cv.mjs → server-command-RlS-Kl4a.mjs} +5 -5
  106. package/dist/server-expo-BVV9qy31.mjs +2 -0
  107. package/dist/{server-expo-ABQs2XFA.mjs → server-expo-bB1VV2k-.mjs} +8 -5
  108. package/dist/{settings-CMHhQNwI.mjs → settings-BcVCcAT5.mjs} +2 -2
  109. package/dist/{settings-BDVI8Ivc.mjs → settings-D776ygML.mjs} +47 -3
  110. package/dist/{settings-Djl-mpjX.mjs → settings-D9LtQaUw.mjs} +2 -1
  111. package/dist/{settings-payload-cm60Zhib.mjs → settings-payload-_aatELz2.mjs} +4 -4
  112. package/dist/{settings-write-BdNRLlBn.mjs → settings-write-CkTVGQ4O.mjs} +5 -5
  113. package/dist/settings.schema.json +58 -9
  114. package/dist/{simslim-DCQwzoPy.mjs → simslim-CbpHERcv.mjs} +1 -1
  115. package/dist/{slot-launch-0l7RqSpr.mjs → slot-launch-Dbgfh8gc.mjs} +6 -6
  116. package/dist/{stage-F4cAfJGi.mjs → stage-BuHuRj1y.mjs} +1 -1
  117. package/dist/{start-DcqnF9p8.mjs → start-Cr-c3Xhq.mjs} +1 -1
  118. package/dist/{start-DrPwER_2.mjs → start-Dlv4XXTP.mjs} +11 -11
  119. package/dist/{state-CZxLyetD.mjs → state-C2AUjjhg.mjs} +1 -1
  120. package/dist/{state-BX1y5syV.mjs → state-D5ZxwCGJ.mjs} +2 -2
  121. package/dist/{stats-GxuCbles.mjs → stats-D5c-uIBp.mjs} +4 -4
  122. package/dist/{status-7ULDEJ1e.mjs → status-CK7ZoEhV.mjs} +2 -2
  123. package/dist/{status-BfnK9pUd.mjs → status-D6PBK6_-.mjs} +49 -26
  124. package/dist/{status-Bj7ZYvvc.mjs → status-DbQv--Yb.mjs} +1 -1
  125. package/dist/{status-watch-BfabQn03.mjs → status-watch-okrpea4i.mjs} +17 -6
  126. package/dist/status-worker.mjs +1 -1
  127. package/dist/{stim-desktop-CbWo21kb.mjs → stim-desktop-CYXLFpFS.mjs} +1 -1
  128. package/dist/{stop-x1Yu3He4.mjs → stop-CHtAiv79.mjs} +2 -2
  129. package/dist/{stop-D-EAr25B.mjs → stop-p9uSKuGE.mjs} +20 -19
  130. package/dist/{stop-CH79S3IZ.mjs → stop-uRQ-zYcl.mjs} +9 -5
  131. package/dist/supervisor-run.d.mts +1 -0
  132. package/dist/supervisor-run.mjs +243 -65
  133. package/dist/{support-Be0UeVZU.mjs → support-BMpQIug0.mjs} +11 -10
  134. package/dist/{support-CNg_YsOk.mjs → support-PFyTkrnr.mjs} +4 -4
  135. package/dist/{swiftpm-artifact-inputs-uPqYvGBv.mjs → swiftpm-artifact-inputs-Cddq6jN2.mjs} +1 -1
  136. package/dist/{swiftpm-macos-Ch4YjY_A.mjs → swiftpm-macos-BSj9iZlI.mjs} +8 -8
  137. package/dist/{toolchain-JYAOquPg.mjs → toolchain-B-mzR9Rh.mjs} +1 -1
  138. package/dist/{toolchain-CbCG6C5Z.mjs → toolchain-CLGnEUgT.mjs} +4 -4
  139. package/dist/{trigger-DMou-X7j.mjs → trigger-CfnOfpDd.mjs} +1 -1
  140. package/dist/trigger-DBZ-GBrl.mjs +2 -0
  141. package/dist/{warm-progress-C0RsbngN.mjs → warm-progress--KkkBBaq.mjs} +3 -3
  142. package/dist/web-BxSo493O.mjs +2 -0
  143. package/dist/web-run.mjs +5 -5
  144. package/dist/{web-Cq_AQ4DK.mjs → web-xlVssjQf.mjs} +8 -8
  145. package/dist/{workspace-state-BjqdjnJR.mjs → workspace-state-DGwkPXwq.mjs} +2 -2
  146. package/dist/{workspaces-DFbj07jp.mjs → workspaces-CvSYD_78.mjs} +106 -26
  147. package/dist/{worktree-COAJ3-OD.mjs → worktree-CaQBf6kh.mjs} +26 -47
  148. package/dist/worktree-DTOIohFe.mjs +2 -0
  149. package/package.json +7 -7
  150. package/shim/bundle-response.cjs +37 -0
  151. package/dist/server-expo-Ba_Y21vB.mjs +0 -2
  152. package/dist/trigger-qp2ji5wE.mjs +0 -2
  153. package/dist/web-Je6abcpz.mjs +0 -2
  154. package/dist/worktree-JGUd_53L.mjs +0 -2
@@ -1,9 +1,9 @@
1
1
  import { D as ownership_claim_exports, S as process_identity_exports, m as declareSpawnsOn, t as getExecutor, v as stopDeclaringSpawnsOn } from "./exec-aULwtNly.mjs";
2
- import { M as withDirLock$1, N as withDirLockAsync$1, c as withWorkspaceStateLock, d as writeWorkspaceState, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1 } from "./workspace-state-BjqdjnJR.mjs";
3
- import { U as parseDeviceSlotKey, V as deviceSlotKey, d as getConfigDir, q as validateDeviceSlot } from "./config-Cn94Jc0g.mjs";
4
- import { a as formatElapsed, i as formatDuration, m as shortHash } from "./command-output-Dj-WT4BP.mjs";
2
+ import { M as withDirLock$1, N as withDirLockAsync$1, c as withWorkspaceStateLock, d as writeWorkspaceState, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1 } from "./workspace-state-DGwkPXwq.mjs";
3
+ import { U as parseDeviceSlotKey, V as deviceSlotKey, d as getConfigDir, q as validateDeviceSlot } from "./config-AbUjIBOQ.mjs";
4
+ import { a as formatElapsed, i as formatDuration, m as shortHash } from "./command-output-DjCsmzLZ.mjs";
5
5
  import { n as runOperationFileQuiet } from "./operation-exec-Dp4FuIGR.mjs";
6
- import { C as resolveBuild } from "./build-cache-gBJ-WKzA.mjs";
6
+ import { C as resolveBuild } from "./build-cache-BGwTsIEa.mjs";
7
7
  import { randomBytes } from "node:crypto";
8
8
  import { closeSync, fstatSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
9
9
  import { homedir } from "node:os";
@@ -814,7 +814,8 @@ function classifyActivity(evidence, now) {
814
814
  state: "driven",
815
815
  driver,
816
816
  ...lastActivityAt,
817
- basis: [...new Set(evidence.drivers.map((entry) => entry.basis))]
817
+ basis: [...new Set(evidence.drivers.map((entry) => entry.basis))],
818
+ ...evidence.unknown.length ? { unknown: [...new Set(evidence.unknown)] } : {}
818
819
  };
819
820
  }
820
821
  if (evidence.unknown.length) return {
@@ -1,8 +1,8 @@
1
1
  import { S as process_identity_exports } from "./exec-aULwtNly.mjs";
2
- import { P as formatBytes } from "./config-Cn94Jc0g.mjs";
3
- import { o as formatLongDuration } from "./command-output-Dj-WT4BP.mjs";
4
- import { _t as measureDu, gt as canonical, l as listWorkspaceDirs, vt as writeUsageCache } from "./workspaces-DFbj07jp.mjs";
5
- import { c as parseAgentDeviceRecord, o as envDir, u as processMatches } from "./activity-Cd-ysFes.mjs";
2
+ import { P as formatBytes } from "./config-AbUjIBOQ.mjs";
3
+ import { o as formatLongDuration } from "./command-output-DjCsmzLZ.mjs";
4
+ import { bt as measureDu, u as listWorkspaceDirs, xt as writeUsageCache, yt as canonical } from "./workspaces-CvSYD_78.mjs";
5
+ import { c as parseAgentDeviceRecord, o as envDir, u as processMatches } from "./activity-BR5oHSO5.mjs";
6
6
  import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
7
7
  import { homedir } from "node:os";
8
8
  import { isAbsolute, join, relative, sep } from "node:path";
@@ -1,10 +1,10 @@
1
1
  import { D as ownership_claim_exports, S as process_identity_exports, l as WorkspaceProcessCleanupError, m as declareSpawnsOn, o as cancellableSleep, t as getExecutor, v as stopDeclaringSpawnsOn } from "./exec-aULwtNly.mjs";
2
- import { M as withDirLock$1, N as withDirLockAsync$1 } from "./workspace-state-BjqdjnJR.mjs";
3
- import { C as saveConfig, D as withConfigLock$1, G as projectDeviceSlots, H as deviceSlotPlatforms, K as removeSlotDevice, O as withConfigLockAsync$1, _ as loadConfig$1, c as ensureConfig, d as getConfigDir, f as getConfigPath$1, z as assignSlotDevice } from "./config-Cn94Jc0g.mjs";
2
+ import { M as withDirLock$1, N as withDirLockAsync$1 } from "./workspace-state-DGwkPXwq.mjs";
3
+ import { C as saveConfig, D as withConfigLock$1, G as projectDeviceSlots, H as deviceSlotPlatforms, K as removeSlotDevice, O as withConfigLockAsync$1, _ as loadConfig$1, c as ensureConfig, d as getConfigDir, f as getConfigPath$1, z as assignSlotDevice } from "./config-AbUjIBOQ.mjs";
4
4
  import { n as runOperationFileQuiet, t as runOperationFile } from "./operation-exec-Dp4FuIGR.mjs";
5
- import { c as androidDataPartitionSizeBytes } from "./settings-BDVI8Ivc.mjs";
6
- import { i as stimDesktopInstalledAsync, n as settingDefault, t as STIM_DESKTOP_OPEN_OPTIONS } from "./stim-desktop-CbWo21kb.mjs";
7
- import { c as pidExists, p as signalProcessTreeAsync } from "./metro-CvyD-xwe.mjs";
5
+ import { c as androidDataPartitionSizeBytes } from "./settings-D776ygML.mjs";
6
+ import { i as stimDesktopInstalledAsync, n as settingDefault, t as STIM_DESKTOP_OPEN_OPTIONS } from "./stim-desktop-CYXLFpFS.mjs";
7
+ import { c as pidExists, p as signalProcessTreeAsync } from "./metro-BMQHczcf.mjs";
8
8
  import { renameSync, rmSync, writeFileSync } from "node:fs";
9
9
  import { isDeepStrictEqual } from "node:util";
10
10
  import { join } from "node:path";
@@ -1,6 +1,6 @@
1
- import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-Dj-WT4BP.mjs";
2
- import { E as resolveVariant, T as resolveSystemImage, _ as findAapt, b as noDeviceDiagnostic, d as androidVariantSetting, f as apkDevClientFacts, g as dumpApkManifest, h as displayPath, i as NO_FINGERPRINT, p as apkPackage, r as NO_DEVICE, s as androidDevClientScheme, u as androidSystemImageSetting, x as parseXmltree, y as isReleaseVariant } from "./support-CNg_YsOk.mjs";
3
- import { r as lastBuildRecord, t as androidFacts } from "./result-CTqBw2Te.mjs";
4
- import { i as runAndroidOperation, n as registerAndroid, r as runAndroid, t as androidCommand } from "./android-Cd6w7_qw.mjs";
5
- import { a as collectorLogFile, o as killPreviousCollector, s as startCollector } from "./launch-CRyBeNsA.mjs";
1
+ import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-DjCsmzLZ.mjs";
2
+ import { E as resolveVariant, T as resolveSystemImage, _ as findAapt, b as noDeviceDiagnostic, d as androidVariantSetting, f as apkDevClientFacts, g as dumpApkManifest, h as displayPath, i as NO_FINGERPRINT, p as apkPackage, r as NO_DEVICE, s as androidDevClientScheme, u as androidSystemImageSetting, x as parseXmltree, y as isReleaseVariant } from "./support-PFyTkrnr.mjs";
3
+ import { r as lastBuildRecord, t as androidFacts } from "./result-9fqcJ90W.mjs";
4
+ import { i as runAndroidOperation, n as registerAndroid, r as runAndroid, t as androidCommand } from "./android-l616dRP1.mjs";
5
+ import { a as collectorLogFile, o as killPreviousCollector, s as startCollector } from "./launch-D798aSm8.mjs";
6
6
  export { NO_DEVICE, NO_FINGERPRINT, androidDevClientScheme, androidFacts, androidSystemImageSetting, androidVariantSetting, apkDevClientFacts, apkPackage, collectorLogFile, androidCommand as default, displayPath, dumpApkManifest, findAapt, formatDuration, isReleaseVariant, killPreviousCollector, lastBuildRecord, noDeviceDiagnostic, parseXmltree, phaseLine, registerAndroid, resolveSystemImage, resolveVariant, runAndroid, runAndroidOperation, shortHash, startCollector };
@@ -1,5 +1,5 @@
1
1
  import { t as getExecutor } from "./exec-aULwtNly.mjs";
2
- import { u as androidToolCwd } from "./android-DriNoAVy.mjs";
2
+ import { u as androidToolCwd } from "./android-BHKgeOuq.mjs";
3
3
  //#region src/collector/android.ts
4
4
  const LEVEL_BY_LETTER = {
5
5
  V: "debug",
@@ -1,7 +1,7 @@
1
- import { M as withDirLock$1, _ as ensureWorkspaceStorage } from "./workspace-state-BjqdjnJR.mjs";
2
- import { d as getConfigDir } from "./config-Cn94Jc0g.mjs";
3
- import { m as defaultAndroidLayout } from "./settings-BDVI8Ivc.mjs";
4
- import { r as register } from "./cache-manifest-DEjqGGat.mjs";
1
+ import { M as withDirLock$1, _ as ensureWorkspaceStorage } from "./workspace-state-DGwkPXwq.mjs";
2
+ import { d as getConfigDir } from "./config-AbUjIBOQ.mjs";
3
+ import { m as defaultAndroidLayout } from "./settings-D776ygML.mjs";
4
+ import { r as register } from "./cache-manifest-evF_zJ9U.mjs";
5
5
  import { createHash, randomUUID } from "node:crypto";
6
6
  import { accessSync, constants, existsSync, mkdirSync, readFileSync, realpathSync, renameSync, statSync, writeFileSync } from "node:fs";
7
7
  import { join } from "node:path";
@@ -1,42 +1,42 @@
1
1
  import { D as ownership_claim_exports, t as getExecutor } from "./exec-aULwtNly.mjs";
2
- import { a as recordWorkspaceUseAsync, f as writeWorkspaceStateAsync, g as emulatorLogFile, k as workspaceLogsDir$1, r as readWorkspaceState$1 } from "./workspace-state-BjqdjnJR.mjs";
3
- import { B as deviceSlotFileKey, E as upsertProject, H as deviceSlotPlatforms, O as withConfigLockAsync$1, W as parseDeviceSlotOption, p as getProject, q as validateDeviceSlot, u as getConcurrencyLimits } from "./config-Cn94Jc0g.mjs";
4
- import { _ as stepTimer, f as refuseNoProject, g as stepClock, i as formatDuration, l as phaseLine } from "./command-output-Dj-WT4BP.mjs";
5
- import { B as publicUrlSetting, F as metroWarmupUrlSetting, J as resolveCacheProviderConfig, N as metroPortSetting, Q as resolveSettings, W as remoteEasFallbackSetting, Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY, dt as detectProviders, g as deviceReclaimIdleMinutesSetting, ot as tunnelModeSetting, z as projectSettingsContextAsync } from "./settings-BDVI8Ivc.mjs";
6
- import { f as projectRegistry, i as findProjectRoot$1, l as projectShortcut, t as NO_PROJECT_REFUSAL, z as writeWorkspaceLaunchAsync } from "./project-DYj-HVx6.mjs";
7
- import { A as listAdbDevices, Dt as configuredAndroidEmulatorApp, I as listInstalledSystemImages, Y as physicalDeviceModel, Z as probeEmulatorSerial, a as androidDeviceAbi, ct as waitForBoot, nt as resolveOwnedAvdSerialAsync, rt as resolvePhysicalDevice } from "./android-DriNoAVy.mjs";
8
- import { c as pidExists, d as resolveProjectMetro } from "./metro-CvyD-xwe.mjs";
9
- import { i as createNdjsonWriter } from "./ndjson-Dy2W4vRa.mjs";
10
- import { An as checkEasAuth, At as ensureRemoteBootOwned, En as runProcessOperation, Et as binOnPath, Jt as verifyLaunch, Ln as resolveEasCliBin, Mt as remoteAndroidDeps, Pt as resolveRemoteContext, Qt as DEFAULT_METRO_PORT, Rn as resolveRemote, Zt as ADB_INSTALL_TIMEOUT_MS, c as budgetGate, kt as ensureMetroReachable, ln as installAndroidApp, mn as launchAndroidReleaseApp, pn as launchAndroidApp, qn as ownedSessionName, qt as verifyAndroidReleaseLaunch, t as CCACHE_NOT_RUN, wn as exitAfterFlush, zn as uploadRemote } from "./ccache-BWTze1Ls.mjs";
11
- import { J as runFailureRecord, X as tapBuildLog, Y as startBuildProgress, Z as thrownRunFailureRecord, at as recordRunStats, et as createRunRecorder, ot as statsProjectKey$1, rt as recordCapacityRefusal, tt as readRunEstimates, xt as releaseBuildSlot, yt as acquireBuildSlot, z as NO_BUILD_PROGRESS } from "./workspaces-DFbj07jp.mjs";
12
- import { Q as cancelledFailure, at as runCancellation, ot as runCancellationSignal, st as withNativeBuildRun } from "./toolchain-CbCG6C5Z.mjs";
13
- import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-Cd-ysFes.mjs";
14
- import { T as storedAppId } from "./build-cache-gBJ-WKzA.mjs";
15
- import { S as setRemoteLogSink } from "./client-xsdxrhWA.mjs";
16
- import { d as resolveBuildPlacement, s as parseBuildMachineOption } from "./selection-Bs8phwhN.mjs";
17
- import { r as hostedMetroSettings } from "./metro-gateway-BnHdqMO_.mjs";
18
- import { a as writeHostedAndroidAsync, i as writeDevicePlacementAsync, t as readHostedAndroid } from "./ios-state-BZ03NFgF.mjs";
19
- import { n as prepareHostedAndroid, t as placeHostedAndroid } from "./hosted-android-BMKzUNnY.mjs";
20
- import { n as verifyCollectorOwnership } from "./ownership-Bx-0cku-.mjs";
21
- import { i as restoreLightenedDependencies, n as printLightenedFailure } from "./lightened-BCsdAGj_.mjs";
22
- import { c as startDevServer } from "./start-DrPwER_2.mjs";
23
- import { a as acquireRunLease, d as runLease, f as waitFlagConflict, o as leaseExpiryText, u as releaseLeaseOnAbort } from "./device-lease-run-DwsGfjUN.mjs";
24
- import { n as DeviceAdmissionRefusal, r as checkDeviceCapacity } from "./device-capacity-6LP7QsaA.mjs";
25
- import { a as resolveEasDevelopmentBuild, r as isEasBuildFailure } from "./eas-build-CjNSWmjo.mjs";
26
- import { t as followHostedLaunchLogs } from "./hosted-logs-sync-Dg3qrZmV.mjs";
27
- import { f as settleFingerprintCheck } from "./prebuild-BDpToDgR.mjs";
28
- import { i as launchOutcomeRecord, n as ensureWorkspaceStorageSafely, r as isPhysicalDeviceRequest, t as ensureDevServer } from "./native-runtime-DqaIBO5w.mjs";
29
- import { n as devicePlacementRecord } from "./placement-log-BXUbiZM6.mjs";
30
- import { S as pooledAndroidDevice, a as PLATFORM, b as noDeviceDiagnostic, g as dumpApkManifest, h as displayPath, o as androidBuildOptions, p as apkPackage, r as NO_DEVICE, s as androidDevClientScheme } from "./support-CNg_YsOk.mjs";
31
- import { t as acquireAndroidArtifact } from "./artifact-0AGJYB9O.mjs";
32
- import { a as persistLastBuild, c as androidDeviceSelectorRefusal, i as logPostBuildFailure, n as finishAndroidUpload, o as persistThrownBuild, s as reportAndroidResult, u as resolveAndroidRunPlan } from "./result-CTqBw2Te.mjs";
33
- import { n as devicePlacementLine, t as automaticDevicePlacement } from "./auto-placement-z-H5pJza.mjs";
34
- import { i as verifyAndroidMetroRun, r as finishAndroidRun } from "./launch-CRyBeNsA.mjs";
35
- import { t as checkEasFallback } from "./eas-fallback-9fqb46kW.mjs";
36
- import { a as AvdRecoveryError, i as AvdBootError, n as ensureBooted, o as warmMetro, r as ensureOwnedDevice, t as didSetUpDevice } from "./device-tM41-TUq.mjs";
37
- import { t as selectFromPool } from "./device-pool-BnQqvs6o.mjs";
2
+ import { a as recordWorkspaceUseAsync, f as writeWorkspaceStateAsync, g as emulatorLogFile, k as workspaceLogsDir$1, r as readWorkspaceState$1 } from "./workspace-state-DGwkPXwq.mjs";
3
+ import { B as deviceSlotFileKey, E as upsertProject, H as deviceSlotPlatforms, O as withConfigLockAsync$1, W as parseDeviceSlotOption, p as getProject, q as validateDeviceSlot, u as getConcurrencyLimits } from "./config-AbUjIBOQ.mjs";
4
+ import { _ as stepTimer, f as refuseNoProject, g as stepClock, i as formatDuration, l as phaseLine } from "./command-output-DjCsmzLZ.mjs";
5
+ import { B as publicUrlSetting, F as metroWarmupUrlSetting, J as resolveCacheProviderConfig, N as metroPortSetting, Q as resolveSettings, W as remoteEasFallbackSetting, Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY, dt as detectProviders, g as deviceReclaimIdleMinutesSetting, ot as tunnelModeSetting, z as projectSettingsContextAsync } from "./settings-D776ygML.mjs";
6
+ import { f as projectRegistry, i as findProjectRoot$1, l as projectShortcut, t as NO_PROJECT_REFUSAL, z as writeWorkspaceLaunchAsync } from "./project-D1n0K4yg.mjs";
7
+ import { A as listAdbDevices, Dt as configuredAndroidEmulatorApp, I as listInstalledSystemImages, Y as physicalDeviceModel, Z as probeEmulatorSerial, a as androidDeviceAbi, ct as waitForBoot, nt as resolveOwnedAvdSerialAsync, rt as resolvePhysicalDevice } from "./android-BHKgeOuq.mjs";
8
+ import { c as pidExists, d as resolveProjectMetro } from "./metro-BMQHczcf.mjs";
9
+ import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
10
+ import { An as checkEasAuth, At as ensureRemoteBootOwned, En as runProcessOperation, Et as binOnPath, Jt as verifyLaunch, Ln as resolveEasCliBin, Mt as remoteAndroidDeps, Pt as resolveRemoteContext, Qt as DEFAULT_METRO_PORT, Rn as resolveRemote, Zt as ADB_INSTALL_TIMEOUT_MS, c as budgetGate, kt as ensureMetroReachable, ln as installAndroidApp, mn as launchAndroidReleaseApp, pn as launchAndroidApp, qn as ownedSessionName, qt as verifyAndroidReleaseLaunch, t as CCACHE_NOT_RUN, wn as exitAfterFlush, zn as uploadRemote } from "./ccache-DsDkdP72.mjs";
11
+ import { $ as tapBuildLog, H as NO_BUILD_PROGRESS, Q as startBuildProgress, St as acquireBuildSlot, Tt as releaseBuildSlot, Z as runFailureRecord, ct as recordRunStats, et as thrownRunFailureRecord, it as readRunEstimates, lt as statsProjectKey$1, ot as recordCapacityRefusal, rt as createRunRecorder } from "./workspaces-CvSYD_78.mjs";
12
+ import { Q as cancelledFailure, at as runCancellation, ot as runCancellationSignal, st as withNativeBuildRun } from "./toolchain-CLGnEUgT.mjs";
13
+ import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-BR5oHSO5.mjs";
14
+ import { T as storedAppId } from "./build-cache-BGwTsIEa.mjs";
15
+ import { S as setRemoteLogSink } from "./client-BTUH8TF1.mjs";
16
+ import { d as resolveBuildPlacement, s as parseBuildMachineOption } from "./selection-D1ZDzHFX.mjs";
17
+ import { r as hostedMetroSettings } from "./metro-request-BtF7ox53.mjs";
18
+ import { a as writeHostedAndroidAsync, i as writeDevicePlacementAsync, t as readHostedAndroid } from "./ios-state-Ce_dystM.mjs";
19
+ import { n as prepareHostedAndroid, t as placeHostedAndroid } from "./hosted-android-DI_vvv7U.mjs";
20
+ import { n as verifyCollectorOwnership } from "./ownership-Dtz9G5Gl.mjs";
21
+ import { i as restoreLightenedDependencies, n as printLightenedFailure } from "./lightened-vSxkstg6.mjs";
22
+ import { c as startDevServer } from "./start-Dlv4XXTP.mjs";
23
+ import { a as acquireRunLease, d as runLease, f as waitFlagConflict, o as leaseExpiryText, u as releaseLeaseOnAbort } from "./device-lease-run-qRq_2W2V.mjs";
24
+ import { n as DeviceAdmissionRefusal, r as checkDeviceCapacity } from "./device-capacity-B2ChA-bz.mjs";
25
+ import { a as resolveEasDevelopmentBuild, r as isEasBuildFailure } from "./eas-build-D-9HmGZS.mjs";
26
+ import { t as followHostedLaunchLogs } from "./hosted-logs-sync-Bf5s02fi.mjs";
27
+ import { f as settleFingerprintCheck } from "./prebuild-Bqp0LFGN.mjs";
28
+ import { i as launchOutcomeRecord, n as ensureWorkspaceStorageSafely, r as isPhysicalDeviceRequest, t as ensureDevServer } from "./native-runtime-DyH2gkXK.mjs";
29
+ import { n as devicePlacementRecord } from "./placement-log-CoN6xrjY.mjs";
30
+ import { S as pooledAndroidDevice, a as PLATFORM, b as noDeviceDiagnostic, g as dumpApkManifest, h as displayPath, o as androidBuildOptions, p as apkPackage, r as NO_DEVICE, s as androidDevClientScheme } from "./support-PFyTkrnr.mjs";
31
+ import { t as acquireAndroidArtifact } from "./artifact-DHuFYfhD.mjs";
32
+ import { a as persistLastBuild, c as androidDeviceSelectorRefusal, i as logPostBuildFailure, n as finishAndroidUpload, o as persistThrownBuild, s as reportAndroidResult, u as resolveAndroidRunPlan } from "./result-9fqcJ90W.mjs";
33
+ import { n as devicePlacementLine, t as automaticDevicePlacement } from "./auto-placement-C8sJsyMN.mjs";
34
+ import { i as verifyAndroidMetroRun, r as finishAndroidRun } from "./launch-D798aSm8.mjs";
35
+ import { t as checkEasFallback } from "./eas-fallback-Cemt2GVL.mjs";
36
+ import { a as AvdRecoveryError, i as AvdBootError, n as ensureBooted, o as warmMetro, r as ensureOwnedDevice, t as didSetUpDevice } from "./device-Bmm5qjM-.mjs";
37
+ import { t as selectFromPool } from "./device-pool-CrmiE4_x.mjs";
38
38
  import { t as unsupportedPlan } from "./project-plan-BPwbLwQu.mjs";
39
- import { a as refusePlan, i as printPlan, n as planFlagRefusal } from "./build-plan-CBqYbzYM.mjs";
39
+ import { a as refusePlan, i as printPlan, n as planFlagRefusal } from "./build-plan-CWyjMPKo.mjs";
40
40
  import { join } from "node:path";
41
41
  import { workspaceId } from "@stim-cli/core";
42
42
  import { hostedAndroidStatus, parseMachine } from "@stim-cli/core/state";
@@ -193,7 +193,7 @@ async function selectAndroidPlacement({ target: selected, automatic = automaticD
193
193
  }
194
194
  //#endregion
195
195
  //#region src/commands/android/hosted.ts
196
- async function finishHostedAndroidRun({ target, artifact, root, slot = "default", release, appMode = release ? "release" : "development", isExpo, metroPort, logsDir, selectors, place, writePlacement, verifyLaunch: verify, followLogs, writeLaunch, readApkPackage, resolveDevClientScheme, now, started, startedAt, fail, phase, enterPhase, enterActivity, out, recordBuild, ...report }) {
196
+ async function finishHostedAndroidRun({ target, operation, artifact, root, slot = "default", release, appMode = release ? "release" : "development", isExpo, metroPort, logsDir, selectors, place, writePlacement, verifyLaunch: verify, followLogs, writeLaunch, readApkPackage, resolveDevClientScheme, now, started, startedAt, fail, phase, enterPhase, enterActivity, out, recordBuild, ...report }) {
197
197
  const packageName = artifact.androidPackage ?? await readApkPackage(artifact.apkPath);
198
198
  if (!artifact.apkPath || !packageName) return fail("STIM_INSTALL_FAILED", "The built APK has no package identity.");
199
199
  const devClientScheme = appMode === "development" && isExpo ? await resolveDevClientScheme(root, artifact.apkPath) ?? void 0 : void 0;
@@ -250,6 +250,7 @@ async function finishHostedAndroidRun({ target, artifact, root, slot = "default"
250
250
  let verification;
251
251
  try {
252
252
  verification = await verifyAndroidMetroRun({
253
+ operation,
253
254
  root,
254
255
  slot,
255
256
  remoteDevice: false,
@@ -786,6 +787,7 @@ async function runAndroid(options = {}) {
786
787
  waitMs: plan.deviceSlotWaitMs,
787
788
  reclaimIdleMinutes: deviceReclaimIdleMinutesSetting(settings),
788
789
  waitingFor: (info) => progress.waitingFor(info, "device-slot"),
790
+ onBootStart: () => progress.bootStarted(),
789
791
  onWait: (ms) => {
790
792
  stats.addDeviceSlotWaitMs(ms);
791
793
  if (record.devicePlacement?.decision === "local" && ms > 0) record.devicePlacement.decision = "waited-locally";
@@ -854,7 +856,7 @@ async function runAndroid(options = {}) {
854
856
  const remoteBackend = target.kind === "remote" ? target.backend : null;
855
857
  if (hostedTarget) {
856
858
  if (settings.androidEmulatorApp !== void 0) phase("device", "androidEmulatorApp is ignored on a hosting Mac; the emulator boots headless.");
857
- if (appMode === "development" && (publicUrlSetting(settings) || tunnelModeSetting(settings))) phase("metro", "metro.publicUrl and metro.tunnel are ignored on a hosting Mac; Metro uses the private tailnet bridge.");
859
+ if (appMode === "development" && (publicUrlSetting(settings) || tunnelModeSetting(settings))) phase("metro", "metro.publicUrl and metro.tunnel are ignored on a hosting Mac; Metro uses links this machine opens to the host.");
858
860
  }
859
861
  reclaimed = budget.reclaimed;
860
862
  if (budget.refusal) return fail(budget.refusal.code, budget.refusal.message, budget.refusal.remedy);
@@ -1206,6 +1208,7 @@ async function runAndroid(options = {}) {
1206
1208
  artifactAcquired = true;
1207
1209
  if (runCancellation(context)) return fail("STIM_CANCELLED", "before install");
1208
1210
  if (hostedTarget) return finishHostedAndroidRun({
1211
+ operation: context,
1209
1212
  target: hostedTarget,
1210
1213
  artifact,
1211
1214
  root,
@@ -352,6 +352,8 @@ type GeneratedTickets = Map<string, {
352
352
  ticket: string;
353
353
  expiresAt: string;
354
354
  }>;
355
+ /** Whether a person confirmed that `serverKey` is the key of the stim-server on `machine`. */
356
+ type KeyConfirmer = (machine: string, serverKey: string) => Promise<boolean>;
355
357
  //#endregion
356
358
  //#region src/offload/build-machines.d.ts
357
359
  /**
@@ -361,9 +363,11 @@ type GeneratedTickets = Map<string, {
361
363
  */
362
364
  interface BuildMachineReport {
363
365
  machine: string;
364
- state: "invalid" | "tailscale-off" | "not-on-tailnet" | "key-changed" | "not-asked" | "pending" | "approved" | "revoked" | "lapsed" | "outdated" | "unreachable";
366
+ state: "invalid" | "tailscale-off" | "not-on-tailnet" | "key-changed" | "key-unconfirmed" | "not-asked" | "pending" | "approved" | "revoked" | "lapsed" | "outdated" | "unreachable";
365
367
  diagnosis?: RemoteDiagnosis;
366
368
  dnsName?: string;
369
+ /** For `key-unconfirmed`: the fingerprint of the key the machine answered with, for a person to compare. */
370
+ fingerprint?: string;
367
371
  deviceId?: string;
368
372
  requestedAt?: string;
369
373
  expiresAt?: string;
@@ -446,4 +450,4 @@ interface AndroidArtifactContext {
446
450
  estimates: () => RunEstimates;
447
451
  }
448
452
  //#endregion
449
- export { IosFacts as _, BuildMachinesInspection as a, IosToolchain as c, DoctorPlatform as d, Finding as f, CompilationCacheActivity as g, CcacheActivity as h, AndroidBuildOptions as i, WorkerToolchain as l, AndroidFacts as m, WebLaunched as n, GeneratedTickets as o, Optimizations as p, SwiftpmArtifactToolchain as r, TailnetMachineIo as s, NativeGradleArtifactReceipt as t, BudgetReport as u };
453
+ export { CompilationCacheActivity as _, BuildMachinesInspection as a, TailnetMachineIo as c, BudgetReport as d, DoctorPlatform as f, CcacheActivity as g, AndroidFacts as h, AndroidBuildOptions as i, IosToolchain as l, Optimizations as m, WebLaunched as n, GeneratedTickets as o, Finding as p, SwiftpmArtifactToolchain as r, KeyConfirmer as s, NativeGradleArtifactReceipt as t, WorkerToolchain as u, IosFacts as v };
package/dist/api.d.mts CHANGED
@@ -1,10 +1,10 @@
1
- import { _ as IosFacts, a as BuildMachinesInspection, d as DoctorPlatform, f as Finding, g as CompilationCacheActivity, h as CcacheActivity, m as AndroidFacts, n as WebLaunched, o as GeneratedTickets, s as TailnetMachineIo, u as BudgetReport } from "./android-project-DUGMbq28.mjs";
1
+ import { _ as CompilationCacheActivity, a as BuildMachinesInspection, c as TailnetMachineIo, d as BudgetReport, f as DoctorPlatform, g as CcacheActivity, h as AndroidFacts, n as WebLaunched, o as GeneratedTickets, p as Finding, s as KeyConfirmer, v as IosFacts } from "./android-project-CCEQyYJK.mjs";
2
2
  import { a as WorkspaceLaunchPlatform } from "./ios-CDvlmUs7.mjs";
3
3
  import "./exec-DnYc4HGH.mjs";
4
4
  import "./pull-request-eODyIqZF.mjs";
5
5
  import { t as IdleDevice } from "./idle-C4cZ757K.mjs";
6
6
  import { StimContext } from "@stim-cli/core";
7
- import { AgentDeviceUsage, ArchivedWorkspace, BuildPlanPayload, MacosBuild, MacosBuildPlanPayload, MaintenanceAction, MaintenanceMode, MaintenancePressure, MaintenanceStatus, NdjsonRecord, SettingScope, SettingWriteResult, SettingsPayload, SimRuntimeUsage, StatsReport, SwiftpmCacheUsage, WebBrowserState } from "@stim-cli/core/state";
7
+ import { AgentDeviceUsage, ArchivedWorkspace, BuildPlanPayload, DevServerStopRecord, MacosBuild, MacosBuildPlanPayload, MaintenanceAction, MaintenanceMode, MaintenancePressure, MaintenanceStatus, NdjsonRecord, SettingScope, SettingWriteResult, SettingsPayload, SimRuntimeUsage, StatsReport, SwiftpmCacheUsage, WebBrowserState } from "@stim-cli/core/state";
8
8
  import { statSync } from "fs";
9
9
  import { Command } from "commander";
10
10
  import { ToolchainEntry } from "@stim-cli/core/toolchain";
@@ -213,9 +213,11 @@ interface StimVersionReport {
213
213
  //#region src/device-host/machines.d.ts
214
214
  interface MachineReport {
215
215
  machine: string;
216
- state: "invalid" | "tailscale-off" | "not-on-tailnet" | "key-changed" | "not-asked" | "pending" | "approved" | "revoked" | "lapsed" | "outdated" | "unreachable" | "credentials-unavailable" | "busy";
216
+ state: "invalid" | "tailscale-off" | "not-on-tailnet" | "key-changed" | "key-unconfirmed" | "not-asked" | "pending" | "approved" | "revoked" | "lapsed" | "outdated" | "unreachable" | "credentials-unavailable" | "busy";
217
217
  diagnosis?: RemoteDiagnosis;
218
218
  dnsName?: string;
219
+ /** For `key-unconfirmed`: the fingerprint of the key the machine answered with, for a person to compare. */
220
+ fingerprint?: string;
219
221
  deviceId?: string;
220
222
  requestedAt?: string;
221
223
  expiresAt?: string;
@@ -229,11 +231,12 @@ interface Inspection {
229
231
  * Reports the device-host approval of each remote machine, separate from its build approval. Only --fix makes a setup
230
232
  * ticket or forgets credentials; every server key stays pinned.
231
233
  */
232
- declare function inspectDeviceHostMachines({ fix, version, tickets, operation }: {
234
+ declare function inspectDeviceHostMachines({ fix, version, tickets, operation, confirmKey }: {
233
235
  fix: boolean;
234
236
  version?: string;
235
237
  tickets?: GeneratedTickets;
236
238
  operation?: StimContext;
239
+ confirmKey?: KeyConfirmer;
237
240
  }, io?: TailnetMachineIo, entries?: string[] | null): Promise<Inspection>;
238
241
  //#endregion
239
242
  //#region src/commands/doctor.d.ts
@@ -436,7 +439,7 @@ interface GradleVersionSweep {
436
439
  }
437
440
  //#endregion
438
441
  //#region src/commands/gc/workspaces.d.ts
439
- type WorkspaceKeptCode = "unresolved" | "in-use" | "last-use-unknown" | "recently-used";
442
+ type WorkspaceKeptCode = "unresolved" | "locked" | "lock-unknown" | "in-use" | "last-use-unknown" | "recently-used";
440
443
  //#endregion
441
444
  //#region src/commands/gc/logs.d.ts
442
445
  type WorkspaceLogsKeptCode = "unresolved" | "in-use" | "collector";
package/dist/api.mjs CHANGED
@@ -1,32 +1,32 @@
1
1
  import { D as ownership_claim_exports, T as trackReportResource, b as operationState, c as throwIfCancelled, l as WorkspaceProcessCleanupError, s as cancelledError, w as runReport } from "./exec-aULwtNly.mjs";
2
- import { E as workspaceDir, a as recordWorkspaceUseAsync, k as workspaceLogsDir$1, v as ensureWorkspaceStorageAsync } from "./workspace-state-BjqdjnJR.mjs";
3
- import { E as upsertProject, O as withConfigLockAsync$1, p as getProject, q as validateDeviceSlot, y as refuseRelativeStimPaths } from "./config-Cn94Jc0g.mjs";
4
- import { l as phaseLine } from "./command-output-Dj-WT4BP.mjs";
5
- import { Lt as repoRootAsync, Z as resolveProjectSettingsAsync, _ as inertSettingWarning, a as SETTING_SHAPE_REMEDY, p as cacheProviderSettingError, rt as settingShapeErrors, st as unknownSettingKeys } from "./settings-BDVI8Ivc.mjs";
6
- import { c as projectProblem, f as projectRegistry, i as findProjectRoot$1, r as findCommandWorkspaceAsync, t as NO_PROJECT_REFUSAL } from "./project-DYj-HVx6.mjs";
7
- import { n as macosDir } from "./state-CZxLyetD.mjs";
8
- import { c as ensureHomeIdentity, s as workspaceShareURL } from "./stim-desktop-CbWo21kb.mjs";
9
- import { i as createNdjsonWriter } from "./ndjson-Dy2W4vRa.mjs";
10
- import { Q as errorRemedy, X as tapBuildLog, Y as startBuildProgress, q as recordFinishedBuild } from "./workspaces-DFbj07jp.mjs";
11
- import { ot as runCancellationSignal, st as withNativeBuildRun } from "./toolchain-CbCG6C5Z.mjs";
12
- import { d as resolveBuildPlacement } from "./selection-Bs8phwhN.mjs";
13
- import { c as stopWorkspaceNow } from "./stop-D-EAr25B.mjs";
14
- import { r as runReload } from "./reload-fUdkH2_p.mjs";
15
- import { h as warmWorktreeTarget, m as removeWorktreeTarget } from "./worktree-COAJ3-OD.mjs";
16
- import { i as restoreLightenedDependencies } from "./lightened-BCsdAGj_.mjs";
17
- import { c as startDevServer } from "./start-DrPwER_2.mjs";
18
- import { s as recordDoctorCheck } from "./doctor-watchman-CxDbyrrt.mjs";
19
- import { c as readSettingsPayload, s as readSettingsContext, t as SettingsRefusal } from "./settings-payload-cm60Zhib.mjs";
20
- import { a as readDoctorReport } from "./doctor-DyqE9n1J.mjs";
21
- import { i as readGcReport, n as executeGc, o as withGcMaintenanceClaim } from "./gc-CGZ1Yg88.mjs";
22
- import { r as readWorkspaceLogs, t as followWorkspaceLogs } from "./logs-CC_-ZzEE.mjs";
2
+ import { E as workspaceDir, a as recordWorkspaceUseAsync, k as workspaceLogsDir$1, v as ensureWorkspaceStorageAsync } from "./workspace-state-DGwkPXwq.mjs";
3
+ import { E as upsertProject, O as withConfigLockAsync$1, p as getProject, q as validateDeviceSlot, y as refuseRelativeStimPaths } from "./config-AbUjIBOQ.mjs";
4
+ import { l as phaseLine } from "./command-output-DjCsmzLZ.mjs";
5
+ import { Vt as repoRootAsync, Z as resolveProjectSettingsAsync, _ as inertSettingWarning, a as SETTING_SHAPE_REMEDY, p as cacheProviderSettingError, rt as settingShapeErrors, st as unknownSettingKeys } from "./settings-D776ygML.mjs";
6
+ import { c as projectProblem, f as projectRegistry, i as findProjectRoot$1, r as findCommandWorkspaceAsync, t as NO_PROJECT_REFUSAL } from "./project-D1n0K4yg.mjs";
7
+ import { n as macosDir } from "./state-C2AUjjhg.mjs";
8
+ import { c as ensureHomeIdentity, s as workspaceShareURL } from "./stim-desktop-CYXLFpFS.mjs";
9
+ import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
10
+ import { $ as tapBuildLog, Q as startBuildProgress, X as recordFinishedBuild, tt as errorRemedy } from "./workspaces-CvSYD_78.mjs";
11
+ import { ot as runCancellationSignal, st as withNativeBuildRun } from "./toolchain-CLGnEUgT.mjs";
12
+ import { d as resolveBuildPlacement } from "./selection-D1ZDzHFX.mjs";
13
+ import { c as stopWorkspaceNow } from "./stop-p9uSKuGE.mjs";
14
+ import { r as runReload } from "./reload-BV0nD-k9.mjs";
15
+ import { m as warmWorktreeTarget, p as removeWorktreeTarget } from "./worktree-CaQBf6kh.mjs";
16
+ import { i as restoreLightenedDependencies } from "./lightened-vSxkstg6.mjs";
17
+ import { c as startDevServer } from "./start-Dlv4XXTP.mjs";
18
+ import { s as recordDoctorCheck } from "./doctor-watchman-CJr2aXXv.mjs";
19
+ import { c as readSettingsPayload, s as readSettingsContext, t as SettingsRefusal } from "./settings-payload-_aatELz2.mjs";
20
+ import { a as readDoctorReport } from "./doctor-Cp4-HN1f.mjs";
21
+ import { i as readGcReport, n as executeGc, o as withGcMaintenanceClaim } from "./gc-CKHqL4aS.mjs";
22
+ import { r as readWorkspaceLogs, t as followWorkspaceLogs } from "./logs-CilPftm3.mjs";
23
23
  import { t as readProjectStats } from "./stats-report-B86Cv7Uc.mjs";
24
- import { n as buildAndroidOperation, t as buildIosOperation } from "./build-hS0QyFlQ.mjs";
25
- import { a as readAndroidBuildPlan, i as runAndroidOperation } from "./android-Cd6w7_qw.mjs";
26
- import { i as readIosBuildPlan, r as runIosOperation } from "./ios-B5HlVMhQ.mjs";
27
- import { a as buildMacosBundle, i as planMacos, n as runMacos } from "./macos-DlCBhMw5.mjs";
28
- import { t as runWeb } from "./web-Cq_AQ4DK.mjs";
29
- import { t as mutateSetting } from "./settings-write-BdNRLlBn.mjs";
24
+ import { n as buildAndroidOperation, t as buildIosOperation } from "./build-DtCU9Kim.mjs";
25
+ import { a as readAndroidBuildPlan, i as runAndroidOperation } from "./android-l616dRP1.mjs";
26
+ import { i as readIosBuildPlan, r as runIosOperation } from "./ios-UM_dManb.mjs";
27
+ import { a as buildMacosBundle, i as planMacos, n as runMacos } from "./macos-CxUi9xcE.mjs";
28
+ import { t as runWeb } from "./web-xlVssjQf.mjs";
29
+ import { t as mutateSetting } from "./settings-write-CkTVGQ4O.mjs";
30
30
  import { randomBytes } from "node:crypto";
31
31
  import { mkdirSync, mkdtempSync, readFileSync, realpathSync, rmSync } from "node:fs";
32
32
  import { stripVTControlCharacters } from "node:util";
@@ -1,5 +1,5 @@
1
- import { y as sharedBuildCache } from "./workspace-state-BjqdjnJR.mjs";
2
- import { E as findBuildTool } from "./android-DriNoAVy.mjs";
1
+ import { y as sharedBuildCache } from "./workspace-state-DGwkPXwq.mjs";
2
+ import { E as findBuildTool } from "./android-BHKgeOuq.mjs";
3
3
  import { createHash, randomUUID } from "node:crypto";
4
4
  import { closeSync, fstatSync, openSync, readFileSync, readSync, realpathSync, renameSync, rmSync } from "node:fs";
5
5
  import { basename, dirname, join } from "node:path";
@@ -1,16 +1,16 @@
1
1
  import { D as ownership_claim_exports, c as throwIfCancelled, x as withDrainingCancellation } from "./exec-aULwtNly.mjs";
2
- import { E as workspaceDir } from "./workspace-state-BjqdjnJR.mjs";
3
- import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-Dj-WT4BP.mjs";
4
- import { Dn as RESOLVE_TIMEOUT_MS, Mn as isEasAuthFailureText, jn as easAuthNote, n as CCACHE_UNAVAILABLE, r as ccacheActivityLine, t as CCACHE_NOT_RUN } from "./ccache-BWTze1Ls.mjs";
5
- import { Q as cancelledFailure, ot as runCancellationSignal } from "./toolchain-CbCG6C5Z.mjs";
6
- import { b as providerDownloadPath, y as prepareProviderDownloadDir } from "./build-cache-gBJ-WKzA.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-xsdxrhWA.mjs";
8
- import { a as missingPackageManagerRemedy, i as fingerprintMismatchRemedy, l as requireLocalBuild, n as automaticBuild, o as namedBuildMachine, t as OffloadRefusal } from "./selection-Bs8phwhN.mjs";
9
- import { f as formatDiagnostic } from "./react-native-build-DaK2IFyP.mjs";
10
- import { u as skippedMissReason } from "./prebuild-BDpToDgR.mjs";
11
- import { t as buildPlacementRecord } from "./placement-log-BXUbiZM6.mjs";
12
- import { n as settleArtifactUploads, t as acquireArtifact } from "./acquire-artifact-BKN2Yuhg.mjs";
13
- import { a as PLATFORM, h as displayPath } from "./support-CNg_YsOk.mjs";
2
+ import { E as workspaceDir } from "./workspace-state-DGwkPXwq.mjs";
3
+ import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-DjCsmzLZ.mjs";
4
+ import { Dn as RESOLVE_TIMEOUT_MS, Mn as isEasAuthFailureText, jn as easAuthNote, n as CCACHE_UNAVAILABLE, r as ccacheActivityLine, t as CCACHE_NOT_RUN } from "./ccache-DsDkdP72.mjs";
5
+ import { Q as cancelledFailure, ot as runCancellationSignal } from "./toolchain-CLGnEUgT.mjs";
6
+ import { b as providerDownloadPath, y as prepareProviderDownloadDir } from "./build-cache-BGwTsIEa.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-BTUH8TF1.mjs";
8
+ import { a as missingPackageManagerRemedy, i as fingerprintMismatchRemedy, l as requireLocalBuild, n as automaticBuild, o as namedBuildMachine, t as OffloadRefusal } from "./selection-D1ZDzHFX.mjs";
9
+ import { f as formatDiagnostic } from "./react-native-build-D58bIqV9.mjs";
10
+ import { u as skippedMissReason } from "./prebuild-Bqp0LFGN.mjs";
11
+ import { t as buildPlacementRecord } from "./placement-log-CoN6xrjY.mjs";
12
+ import { n as settleArtifactUploads, t as acquireArtifact } from "./acquire-artifact-C2DKfenN.mjs";
13
+ import { a as PLATFORM, h as displayPath } from "./support-PFyTkrnr.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";
@@ -1,16 +1,16 @@
1
1
  import { D as ownership_claim_exports, c as throwIfCancelled, x as withDrainingCancellation } from "./exec-aULwtNly.mjs";
2
- import { E as workspaceDir } from "./workspace-state-BjqdjnJR.mjs";
3
- import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-Dj-WT4BP.mjs";
4
- import { Dn as RESOLVE_TIMEOUT_MS, Mn as isEasAuthFailureText, jn as easAuthNote } from "./ccache-BWTze1Ls.mjs";
5
- import { P as compilationCacheActivityLine, Q as cancelledFailure, k as COMPILATION_CACHE_NOT_RUN, ot as runCancellationSignal } from "./toolchain-CbCG6C5Z.mjs";
6
- import { T as storedAppId, b as providerDownloadPath, x as providerUploadOutcome, y as prepareProviderDownloadDir } from "./build-cache-gBJ-WKzA.mjs";
7
- import { C as COMPILATION_CACHE_CORRUPT, 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 clearCorruptCompilationCache } from "./client-xsdxrhWA.mjs";
8
- import { a as missingPackageManagerRemedy, c as podsFailedRemedy, h as predictedRefusal, i as fingerprintMismatchRemedy, l as requireLocalBuild, n as automaticBuild, o as namedBuildMachine, t as OffloadRefusal } from "./selection-Bs8phwhN.mjs";
9
- import { S as xcodeFailureReport, p as printDiagnostics } from "./support-Be0UeVZU.mjs";
10
- import { f as settleFingerprintCheck, u as skippedMissReason } from "./prebuild-BDpToDgR.mjs";
11
- import { t as buildPlacementRecord } from "./placement-log-BXUbiZM6.mjs";
12
- import { n as settleArtifactUploads, t as acquireArtifact } from "./acquire-artifact-BKN2Yuhg.mjs";
13
- import { r as finishIosUpload, t as IosRecipeRefusal } from "./ios-project-D8Jcy_br.mjs";
2
+ import { E as workspaceDir } from "./workspace-state-DGwkPXwq.mjs";
3
+ import { _ as stepTimer, i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-DjCsmzLZ.mjs";
4
+ import { Dn as RESOLVE_TIMEOUT_MS, Mn as isEasAuthFailureText, jn as easAuthNote } from "./ccache-DsDkdP72.mjs";
5
+ import { P as compilationCacheActivityLine, Q as cancelledFailure, k as COMPILATION_CACHE_NOT_RUN, ot as runCancellationSignal } from "./toolchain-CLGnEUgT.mjs";
6
+ import { T as storedAppId, b as providerDownloadPath, x as providerUploadOutcome, y as prepareProviderDownloadDir } from "./build-cache-BGwTsIEa.mjs";
7
+ import { C as COMPILATION_CACHE_CORRUPT, 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 clearCorruptCompilationCache } from "./client-BTUH8TF1.mjs";
8
+ import { a as missingPackageManagerRemedy, c as podsFailedRemedy, h as predictedRefusal, i as fingerprintMismatchRemedy, l as requireLocalBuild, n as automaticBuild, o as namedBuildMachine, t as OffloadRefusal } from "./selection-D1ZDzHFX.mjs";
9
+ import { S as xcodeFailureReport, p as printDiagnostics } from "./support-BMpQIug0.mjs";
10
+ import { f as settleFingerprintCheck, u as skippedMissReason } from "./prebuild-Bqp0LFGN.mjs";
11
+ import { t as buildPlacementRecord } from "./placement-log-CoN6xrjY.mjs";
12
+ import { n as settleArtifactUploads, t as acquireArtifact } from "./acquire-artifact-C2DKfenN.mjs";
13
+ import { r as finishIosUpload, t as IosRecipeRefusal } from "./ios-project-DJYptOCh.mjs";
14
14
  import { rmSync } from "node:fs";
15
15
  import { join } from "node:path";
16
16
  import { machineCapacity } from "@stim-cli/core/state";
@@ -1,11 +1,11 @@
1
- import { _ as loadConfig$1, p as getProject } from "./config-Cn94Jc0g.mjs";
2
- import { m as peekBudget } from "./ccache-BWTze1Ls.mjs";
3
- import { z as readHostMemoryPressureAsync } from "./ios-E26qSpkb.mjs";
4
- import { _ as hostingMachines, o as namedBuildMachine, u as resolveBuildMachine } from "./selection-Bs8phwhN.mjs";
5
- import { c as call, l as connectHost, p as requireHostedAppMode } from "./hosted-client-D7Pk_Oo1.mjs";
6
- import { c as writeHostedNativeAsync, r as readHostedNative } from "./ios-state-BZ03NFgF.mjs";
7
- import { i as prepareHostedNative } from "./hosted-native-CdgaiuyP.mjs";
8
- import { l as peekDeviceSlots, t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-6LP7QsaA.mjs";
1
+ import { _ as loadConfig$1, p as getProject } from "./config-AbUjIBOQ.mjs";
2
+ import { m as peekBudget } from "./ccache-DsDkdP72.mjs";
3
+ import { z as readHostMemoryPressureAsync } from "./ios-CoMCWfub.mjs";
4
+ import { _ as hostingMachines, o as namedBuildMachine, u as resolveBuildMachine } from "./selection-D1ZDzHFX.mjs";
5
+ import { c as call, l as connectHost, m as requireHostedAppMode } from "./hosted-client-CgoxdU9j.mjs";
6
+ import { c as writeHostedNativeAsync, r as readHostedNative } from "./ios-state-Ce_dystM.mjs";
7
+ import { i as prepareHostedNative } from "./hosted-native-DvZENAL-.mjs";
8
+ import { t as DEFAULT_DEVICE_SLOT_WAIT_MS, u as peekDeviceSlots } from "./device-capacity-B2ChA-bz.mjs";
9
9
  import { ambientEnv } from "@stim-cli/core";
10
10
  import { automaticMachineEnabled, isJsonObject, machineCapacity, mayRunHere, parseHostedChoice, parseHostedNativeOffer, prefersRemote } from "@stim-cli/core/state";
11
11
  import { setTimeout } from "node:timers/promises";
@@ -1,17 +1,17 @@
1
1
  import { D as ownership_claim_exports, S as process_identity_exports, c as throwIfCancelled, l as WorkspaceProcessCleanupError, s as cancelledError, t as getExecutor, u as withWorkspaceProcessLock } from "./exec-aULwtNly.mjs";
2
- import { E as workspaceDir, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, r as readWorkspaceState$1 } from "./workspace-state-BjqdjnJR.mjs";
3
- import { p as getProject } from "./config-Cn94Jc0g.mjs";
4
- import { l as phaseLine } from "./command-output-Dj-WT4BP.mjs";
5
- import { N as metroPortSetting, a as SETTING_SHAPE_REMEDY, ct as webSettings } from "./settings-BDVI8Ivc.mjs";
6
- import { b as isPackageResolvable, v as detectIsExpo } from "./project-DYj-HVx6.mjs";
7
- import { d as resolveProjectMetro } from "./metro-CvyD-xwe.mjs";
8
- import { c as readNdjsonGenerations$1 } from "./ndjson-Dy2W4vRa.mjs";
9
- import { Wt as readMetroRecords } from "./ccache-BWTze1Ls.mjs";
10
- import { f as webLogFile, m as webSupervisorLogFile, o as readWebRecord, s as updateWebRecord } from "./state-BX1y5syV.mjs";
11
- import { b as resolveSupervisorTarget, lt as teardownBrowserHeld } from "./workspaces-DFbj07jp.mjs";
12
- import { i as reserveBrowserPort, n as getNamedPort } from "./named-ports-BCyMWA6b.mjs";
2
+ import { E as workspaceDir, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, r as readWorkspaceState$1 } from "./workspace-state-DGwkPXwq.mjs";
3
+ import { p as getProject } from "./config-AbUjIBOQ.mjs";
4
+ import { l as phaseLine } from "./command-output-DjCsmzLZ.mjs";
5
+ import { N as metroPortSetting, a as SETTING_SHAPE_REMEDY, ct as webSettings } from "./settings-D776ygML.mjs";
6
+ import { b as isPackageResolvable, v as detectIsExpo } from "./project-D1n0K4yg.mjs";
7
+ import { d as resolveProjectMetro } from "./metro-BMQHczcf.mjs";
8
+ import { c as readNdjsonGenerations$1 } from "./ndjson-CrjIsGzw.mjs";
9
+ import { Wt as readMetroRecords } from "./ccache-DsDkdP72.mjs";
10
+ import { f as webLogFile, m as webSupervisorLogFile, o as readWebRecord, s as updateWebRecord } from "./state-D5ZxwCGJ.mjs";
11
+ import { ft as teardownBrowserHeld, x as resolveSupervisorTarget } from "./workspaces-CvSYD_78.mjs";
12
+ import { i as reserveBrowserPort, n as getNamedPort } from "./named-ports-DcktE2Pw.mjs";
13
13
  import { n as sendToOwnedPage, t as liveWebRecord } from "./page-CQJlcj3x.mjs";
14
- import { o as resolveWorkspaceMetroPort } from "./start-DrPwER_2.mjs";
14
+ import { o as resolveWorkspaceMetroPort } from "./start-Dlv4XXTP.mjs";
15
15
  import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
16
16
  import { n as windowsLauncherArgs } from "./detached-entry-BPlSaCwC.mjs";
17
17
  import { a as findChrome, t as CHROME_INSTALL_REMEDY } from "./chrome-DyDWurWG.mjs";
@@ -1,28 +1,28 @@
1
1
  import { c as throwIfCancelled, s as cancelledError, x as withDrainingCancellation } from "./exec-aULwtNly.mjs";
2
- import { E as workspaceDir, a as recordWorkspaceUseAsync, k as workspaceLogsDir } from "./workspace-state-BjqdjnJR.mjs";
3
- import { E as upsertProject, O as withConfigLockAsync, p as getProject, u as getConcurrencyLimits } from "./config-Cn94Jc0g.mjs";
4
- import { l as phaseLine } from "./command-output-Dj-WT4BP.mjs";
5
- import { J as resolveCacheProviderConfig, Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY } from "./settings-BDVI8Ivc.mjs";
6
- import { f as projectRegistry, v as detectIsExpo } from "./project-DYj-HVx6.mjs";
7
- import { s as workspaceShareURL } from "./stim-desktop-CbWo21kb.mjs";
8
- import { k as hostSystemImageArch } from "./android-DriNoAVy.mjs";
9
- import { i as createNdjsonWriter } from "./ndjson-Dy2W4vRa.mjs";
10
- import { An as checkEasAuth, Rn as resolveRemote, zn as uploadRemote } from "./ccache-BWTze1Ls.mjs";
11
- import { X as tapBuildLog, Y as startBuildProgress, at as recordRunStats, et as createRunRecorder, ot as statsProjectKey, q as recordFinishedBuild, tt as readRunEstimates, xt as releaseBuildSlot, yt as acquireBuildSlot } from "./workspaces-DFbj07jp.mjs";
12
- import { V as readBundleId, ot as runCancellationSignal, st as withNativeBuildRun } from "./toolchain-CbCG6C5Z.mjs";
13
- import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-Cd-ysFes.mjs";
14
- import { T as storedAppId, x as providerUploadOutcome } from "./build-cache-gBJ-WKzA.mjs";
15
- import { m as listIosRuntimes } from "./ios-E26qSpkb.mjs";
2
+ import { E as workspaceDir, a as recordWorkspaceUseAsync, k as workspaceLogsDir } from "./workspace-state-DGwkPXwq.mjs";
3
+ import { E as upsertProject, O as withConfigLockAsync, p as getProject, u as getConcurrencyLimits } from "./config-AbUjIBOQ.mjs";
4
+ import { l as phaseLine } from "./command-output-DjCsmzLZ.mjs";
5
+ import { J as resolveCacheProviderConfig, Z as resolveProjectSettingsAsync, a as SETTING_SHAPE_REMEDY } from "./settings-D776ygML.mjs";
6
+ import { f as projectRegistry, v as detectIsExpo } from "./project-D1n0K4yg.mjs";
7
+ import { s as workspaceShareURL } from "./stim-desktop-CYXLFpFS.mjs";
8
+ import { k as hostSystemImageArch } from "./android-BHKgeOuq.mjs";
9
+ import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
10
+ import { An as checkEasAuth, Rn as resolveRemote, zn as uploadRemote } from "./ccache-DsDkdP72.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-CvSYD_78.mjs";
12
+ import { V as readBundleId, ot as runCancellationSignal, st as withNativeBuildRun } from "./toolchain-CLGnEUgT.mjs";
13
+ import { F as waitForBuild, M as acquireBuildLock, P as releaseBuildLock } from "./activity-BR5oHSO5.mjs";
14
+ import { T as storedAppId, x as providerUploadOutcome } from "./build-cache-BGwTsIEa.mjs";
15
+ import { m as listIosRuntimes } from "./ios-CoMCWfub.mjs";
16
16
  import { d as optimizationBuildProfile, l as artifactCachePolicy } from "./errors-DHm_U5gv.mjs";
17
- import { S as setRemoteLogSink } from "./client-xsdxrhWA.mjs";
18
- import { d as resolveBuildPlacement } from "./selection-Bs8phwhN.mjs";
19
- import { c as iosProjectPathError, g as resolveIosBuildSetup, m as resolveConfiguration, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-Be0UeVZU.mjs";
20
- import { f as settleFingerprintCheck } from "./prebuild-BDpToDgR.mjs";
21
- import { n as ensureWorkspaceStorageSafely } from "./native-runtime-DqaIBO5w.mjs";
22
- import { t as acquireAndroidArtifact } from "./artifact-0AGJYB9O.mjs";
23
- import { a as persistLastBuild, l as resolveAndroidBuildPlan, n as finishAndroidUpload } from "./result-CTqBw2Te.mjs";
24
- import { o as lastBuildRecord } from "./ios-project-D8Jcy_br.mjs";
25
- import { t as acquireIosArtifact } from "./artifact-faemIZv5.mjs";
17
+ import { S as setRemoteLogSink } from "./client-BTUH8TF1.mjs";
18
+ import { d as resolveBuildPlacement } from "./selection-D1ZDzHFX.mjs";
19
+ import { c as iosProjectPathError, g as resolveIosBuildSetup, m as resolveConfiguration, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-BMpQIug0.mjs";
20
+ import { f as settleFingerprintCheck } from "./prebuild-Bqp0LFGN.mjs";
21
+ import { n as ensureWorkspaceStorageSafely } from "./native-runtime-DyH2gkXK.mjs";
22
+ import { t as acquireAndroidArtifact } from "./artifact-DHuFYfhD.mjs";
23
+ import { a as persistLastBuild, l as resolveAndroidBuildPlan, n as finishAndroidUpload } from "./result-9fqcJ90W.mjs";
24
+ import { o as lastBuildRecord } from "./ios-project-DJYptOCh.mjs";
25
+ import { t as acquireIosArtifact } from "./artifact-Dm9ScLrh.mjs";
26
26
  import { constants, promises } from "node:fs";
27
27
  import { basename, join } from "node:path";
28
28
  import { hostSimulatorArch } from "@stim-cli/core";
@@ -1,9 +1,9 @@
1
1
  import { c as throwIfCancelled, t as getExecutor, x as withDrainingCancellation } from "./exec-aULwtNly.mjs";
2
- import { y as sharedBuildCache } from "./workspace-state-BjqdjnJR.mjs";
2
+ import { y as sharedBuildCache } from "./workspace-state-DGwkPXwq.mjs";
3
3
  import { a as killOnAbort, c as gitQuiet, o as git, r as childEnvironment, s as gitAsync } from "./operation-exec-Dp4FuIGR.mjs";
4
- import { m as defaultAndroidLayout } from "./settings-BDVI8Ivc.mjs";
5
- import { r as register } from "./cache-manifest-DEjqGGat.mjs";
6
- import { r as writeSignedTail, t as computeSignedTail } from "./apk-signed-tail-BHQHx3Rm.mjs";
4
+ import { m as defaultAndroidLayout } from "./settings-D776ygML.mjs";
5
+ import { r as register } from "./cache-manifest-evF_zJ9U.mjs";
6
+ import { r as writeSignedTail, t as computeSignedTail } from "./apk-signed-tail-B-wKoF_8.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";