stim 1.21.0 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/README.md +60 -7
  2. package/dist/{acquire-artifact-CD4lbiWE.mjs → acquire-artifact-Co2k4f7O.mjs} +21 -3
  3. package/dist/{act-DHAw2A2S.mjs → act-DsuqEkiM.mjs} +298 -164
  4. package/dist/{activity-BzVfHSrY.mjs → activity-CMLmzp7o.mjs} +33 -12
  5. package/dist/{agent-device-usage-output-zh1vhbLp.mjs → agent-device-usage-output-DUFaTMdd.mjs} +7 -7
  6. package/dist/{android-BLgbNqox.mjs → android-ByRMUoiJ.mjs} +66 -52
  7. package/dist/{android-DUYkNF4u.mjs → android-C7sVmyI9.mjs} +160 -59
  8. package/dist/{android-CV_GCELZ.mjs → android-DGkNqa_c.mjs} +5 -5
  9. package/dist/{android-BEJ8Jpl7.mjs → android-DR5lZ2Az.mjs} +2 -2
  10. package/dist/android-cas-compiler.mjs +1 -1
  11. package/dist/{android-cas-Ct5b1xCK.mjs → android-cas-ngferVq2.mjs} +3 -3
  12. package/dist/{client-B7QVOlCr.d.mts → android-project-DVWyCbWU.d.mts} +145 -7
  13. package/dist/api.d.mts +132 -118
  14. package/dist/api.mjs +239 -42
  15. package/dist/{artifact-B8T3S5gi.mjs → artifact-8EY8SAPw.mjs} +40 -35
  16. package/dist/{artifact-DAuZ-FNU.mjs → artifact-DJPy518Y.mjs} +69 -40
  17. package/dist/artifact-platform-CXcmX_j3.mjs +27 -0
  18. package/dist/{browser-web-QQzVjz3O.mjs → browser-web-Bcv99PBM.mjs} +187 -59
  19. package/dist/{budget-Bs6SxxzO.mjs → budget-Cvwn54qV.mjs} +830 -699
  20. package/dist/{build-CoPzQRNw.mjs → build-CabC3G23.mjs} +34 -27
  21. package/dist/{build-cache-DmyR9Zzc.mjs → build-cache-Dv7RN200.mjs} +4 -4
  22. package/dist/{build-plan-CaFskB7_.mjs → build-plan-DUC8Ka9y.mjs} +74 -14
  23. package/dist/{cache-manifest-DkkqguoK.mjs → cache-manifest-DSeQjt-Q.mjs} +1 -1
  24. package/dist/cache-manifest.mjs +1 -1
  25. package/dist/{ccache-BJRZ9pG3.mjs → ccache-Btwc36-I.mjs} +6 -6
  26. package/dist/{cdp-CWmIUMbw.mjs → cdp-3fwICjzi.mjs} +1 -1
  27. package/dist/{chrome-B6tfCta1.mjs → chrome-Bbw689-6.mjs} +1 -1
  28. package/dist/{cli-0DYf8QhQ.mjs → cli-CHZa9Lvk.mjs} +20 -20
  29. package/dist/cli.mjs +1 -1
  30. package/dist/{client-UXD70ZbM.mjs → client-OyRoEuSr.mjs} +218 -47
  31. package/dist/collector-run.d.mts +1 -1
  32. package/dist/collector-run.mjs +6 -6
  33. package/dist/{command-output-B1UrjZHL.mjs → command-output-gwpm28fu.mjs} +1 -1
  34. package/dist/{config-CYcBF478.mjs → config-DlrsduwG.mjs} +17 -11
  35. package/dist/{created-devices-CqeBlrEn.mjs → created-devices-x9rN6bhs.mjs} +13 -3
  36. package/dist/{dependency-state-BbKQW83h.mjs → dependency-state-1I9KZT1Y.mjs} +2 -2
  37. package/dist/{detached-entry-DFRyG1_o.mjs → detached-entry-BwNEtIrP.mjs} +1 -1
  38. package/dist/{dev-client-UOeESKm6.mjs → dev-client-BSDR5h3F.mjs} +2 -2
  39. package/dist/{device-ExJq8Ei7.mjs → device-B-L3Fbxy.mjs} +71 -14
  40. package/dist/{device-DCxH7_By.mjs → device-DklWZLqb.mjs} +16 -16
  41. package/dist/{device-capacity-CMlqEcvw.mjs → device-capacity-DK5_EwRS.mjs} +9 -10
  42. package/dist/device-host-worker.mjs +25 -32
  43. package/dist/{device-ios-DRUeKaFV.mjs → device-ios-DoB6KFCO.mjs} +39 -16
  44. package/dist/{device-lease-run-C8raGFoP.mjs → device-lease-run-xJPQ_QQG.mjs} +5 -5
  45. package/dist/{device-pool-DMRpVX9a.mjs → device-pool-BMkdsefq.mjs} +3 -3
  46. package/dist/{doctor-DTvaDOda.mjs → doctor-Bo7BXLux.mjs} +24 -37
  47. package/dist/{doctor-Dhqebm0q.mjs → doctor-D5_EzwfA.mjs} +19 -16
  48. package/dist/doctor-fingerprint-DZLoYFVb.mjs +16 -0
  49. package/dist/doctor-fingerprint.mjs +1 -1
  50. package/dist/{doctor-BLHCYxzi.mjs → doctor-thjWAV0z.mjs} +1 -1
  51. package/dist/{doctor-watchman-Cv1F10Kj.mjs → doctor-watchman-N2wDotwQ.mjs} +5 -5
  52. package/dist/{eas-build-BomfRnFT.mjs → eas-build-CwknaQYj.mjs} +4 -4
  53. package/dist/{eas-fallback-DJwZpy0c.mjs → eas-fallback-CSgAulr5.mjs} +27 -18
  54. package/dist/{eas-session-ledger-op6A54yi.mjs → eas-session-ledger-DlY_serQ.mjs} +8 -7
  55. package/dist/{error-diagnostics-Bf0rZvG9.mjs → error-diagnostics-DBWO2rxE.mjs} +10 -10
  56. package/dist/{exec-_UbtCQcG.mjs → exec-DEoAhcze.mjs} +155 -47
  57. package/dist/{exec-H20xSg2T.d.mts → exec-DnYc4HGH.d.mts} +17 -4
  58. package/dist/{gc-_-dCXdyL.mjs → gc-CXxN-4SE.mjs} +587 -313
  59. package/dist/gc-DnNDQyaP.mjs +3 -0
  60. package/dist/{guide-Yqwt2bd6.mjs → guide-Br0LEfKy.mjs} +239 -43
  61. package/dist/{hosted-android-Bw-honsd.mjs → hosted-android-B-9f-jkd.mjs} +6 -6
  62. package/dist/{hosted-client-DB_gBPfY.mjs → hosted-client-DZAPrcro.mjs} +4 -4
  63. package/dist/{hosted-ios-CUvOf4Vr.mjs → hosted-ios-CsCS21hn.mjs} +1 -1
  64. package/dist/{hosted-logs-DL_P5AdN.mjs → hosted-logs-FIRx9X2f.mjs} +5 -5
  65. package/dist/{hosted-macos-QI141yKk.mjs → hosted-macos-_awYSpfv.mjs} +21 -12
  66. package/dist/{hosted-native-Ksyjgzq-.mjs → hosted-native-BdzE668-.mjs} +27 -14
  67. package/dist/{idle-BVeRGroT.d.mts → idle-C4cZ757K.d.mts} +3 -3
  68. package/dist/{idle-shutdown-DaKmZi0z.mjs → idle-shutdown-DDg3SdvY.mjs} +7 -7
  69. package/dist/ios-CDvlmUs7.d.mts +24 -0
  70. package/dist/{ios-CQ68hG9s.mjs → ios-Ds1clbIt.mjs} +8 -8
  71. package/dist/{ios-device-CwFMehUS.mjs → ios-device--h_-8ENa.mjs} +3 -3
  72. package/dist/{ios-device-CXGP1bsD.mjs → ios-device-BXZ0c7Kb.mjs} +1 -1
  73. package/dist/{ios-CpByZy12.mjs → ios-hcBpnEGk.mjs} +81 -34
  74. package/dist/{ios-ubFsBzwq.mjs → ios-pm4nL6By.mjs} +59 -50
  75. package/dist/{ios-project-WuwwBdvW.mjs → ios-project-CZhKODF3.mjs} +5 -5
  76. package/dist/{ios-signing-DTTIChGs.mjs → ios-signing-BtAffm0A.mjs} +2 -2
  77. package/dist/{ios-state-DvFX-K_l.mjs → ios-state-Dtw5K2aI.mjs} +1 -1
  78. package/dist/{ios-qNJt4dFm.mjs → ios-xtlRHaeB.mjs} +1 -1
  79. package/dist/{js-swap-Cc1dttps.mjs → js-swap-Bwhh4S7V.mjs} +7 -29
  80. package/dist/{launch-Zq2mOSDy.mjs → launch-BjxemNpK.mjs} +40 -39
  81. package/dist/{launch-CD1yVc7U.mjs → launch-CCzXlc8r.mjs} +16 -16
  82. package/dist/{logs-BS00Anxf.mjs → logs-BfwwadsZ.mjs} +151 -24
  83. package/dist/{logs-CMm05HxN.mjs → logs-jTS_lHSo.mjs} +10 -17
  84. package/dist/{macos-B65--pPd.mjs → macos-DVlSSyUg.mjs} +1 -1
  85. package/dist/{macos-C-0qJ6zq.mjs → macos-NfV2D7dO.mjs} +143 -46
  86. package/dist/macos-run.mjs +1 -1
  87. package/dist/maintenance-run.mjs +8 -8
  88. package/dist/{metro-DEXpIhHC.mjs → metro-DiXtA3Ty.mjs} +59 -37
  89. package/dist/{metro-gateway-BMJNlj3E.mjs → metro-gateway-CKZqKqx7.mjs} +120 -22
  90. package/dist/{named-ports-BWTzt6mu.mjs → named-ports-DkEzOfzO.mjs} +40 -33
  91. package/dist/{native-android-JACyjTZs.mjs → native-android-CqgnOgsT.mjs} +43 -242
  92. package/dist/native-gradle-artifact-inputs-DHFnmrVf.mjs +270 -0
  93. package/dist/{native-gradle-inputs-Bep9JcSF.mjs → native-gradle-inputs-Dnh84Zbd.mjs} +3 -129
  94. package/dist/{native-run-DY_RLx3C.mjs → native-run-NwUuxbkg.mjs} +4 -5
  95. package/dist/{native-runtime-Dg1Q7tfF.mjs → native-runtime-B7KIafpM.mjs} +8 -7
  96. package/dist/native-source-Y0yLhFyQ.mjs +133 -0
  97. package/dist/{native-xcode-inputs-CB2iQeWq.mjs → native-xcode-inputs-D_VOfFL7.mjs} +2 -3
  98. package/dist/{native-xcode-ios-CXX39F7o.mjs → native-xcode-ios-BYDOHWLN.mjs} +27 -32
  99. package/dist/offload-worker.d.mts +65 -2
  100. package/dist/offload-worker.mjs +305 -73
  101. package/dist/operation-exec-BW0em61G.mjs +171 -0
  102. package/dist/{ownership-DEmM5vhh.mjs → ownership-C5fo5Edb.mjs} +3 -3
  103. package/dist/{page-CPaHeYqj.mjs → page-DBL2PiUU.mjs} +8 -4
  104. package/dist/{placement-log-BqGbTa61.mjs → placement-log-BnGgJRRZ.mjs} +1 -1
  105. package/dist/{plan-placement-Bwj-IjY1.mjs → plan-placement-DIsMtN-d.mjs} +12 -8
  106. package/dist/{ports-D-MmCTdv.mjs → ports-Cy1RkmuQ.mjs} +3 -3
  107. package/dist/{prebuild-uD_ipCxF.mjs → prebuild-D4JoEAEs.mjs} +49 -14
  108. package/dist/{project-BZNjmW_8.mjs → project-wM_XFTvE.mjs} +16 -16
  109. package/dist/{pull-request-Lfetn8Kr.mjs → pull-request-W1IuLXDt.mjs} +102 -20
  110. package/dist/{pull-request-zjCSAryH.d.mts → pull-request-eODyIqZF.d.mts} +6 -2
  111. package/dist/pull-requests.d.mts +2 -2
  112. package/dist/pull-requests.mjs +2 -2
  113. package/dist/{react-native-android-DuzH0cn3.mjs → react-native-android-6OZ7MSM7.mjs} +71 -48
  114. package/dist/{react-native-build-rhk4smwQ.mjs → react-native-build-Dvd8hC21.mjs} +8 -8
  115. package/dist/{react-native-doctor-CQpuIMso.mjs → react-native-doctor-DsoSF1Y9.mjs} +7 -7
  116. package/dist/{react-native-ios-Bhq1rJeV.mjs → react-native-ios-4u1Rn-GR.mjs} +40 -26
  117. package/dist/{recordings-DYteQSu4.mjs → recordings-CQmfzAh7.mjs} +1 -1
  118. package/dist/registration-BcRgF6Ox.mjs +51 -0
  119. package/dist/{reload-CmTRFJaX.mjs → reload-BzkYabB-.mjs} +16 -15
  120. package/dist/{reload-DzjSl5P_.mjs → reload-D7AVlb8N.mjs} +1 -1
  121. package/dist/{remote-ByYkXdGD.mjs → remote-DjGDmlTZ.mjs} +18 -15
  122. package/dist/{result-DNiS-tTP.mjs → result-D2Ykz_iD.mjs} +24 -23
  123. package/dist/{run-D23HmJMs.mjs → run-DidHghD1.mjs} +3 -2
  124. package/dist/{selection-CSl9i5qU.mjs → selection-DSMbWEX2.mjs} +6 -5
  125. package/dist/{server-bare-CxTrvDg8.mjs → server-bare-CafzuyFB.mjs} +2 -2
  126. package/dist/{server-command-CtzloH3v.mjs → server-command-C6QjeupS.mjs} +5 -5
  127. package/dist/{server-expo-DT_F_uVI.mjs → server-expo-CrjB29pq.mjs} +7 -5
  128. package/dist/server-expo-D58c9L0M.mjs +2 -0
  129. package/dist/{settings-CsJDEXgK.mjs → settings-C7O8A6ZI.mjs} +223 -243
  130. package/dist/{settings-T1gtc3bf.mjs → settings-DpR-1Wnn.mjs} +1 -1
  131. package/dist/{settings-write-HyVZ8eQ8.mjs → settings-write-CzD60rOD.mjs} +7 -6
  132. package/dist/settings.schema.json +13 -0
  133. package/dist/{simslim-Cgk17SXV.mjs → simslim-BNckWpXi.mjs} +2 -2
  134. package/dist/{slot-launch-DF8VfT64.mjs → slot-launch-CbfmNgM6.mjs} +6 -6
  135. package/dist/{stage-BIS0ydsV.mjs → stage-Bps5oius.mjs} +21 -4
  136. package/dist/{start-RChynRDp.mjs → start-Br-oxqMD.mjs} +1 -1
  137. package/dist/{start-7lpH7hmN.mjs → start-EojN4WFz.mjs} +622 -393
  138. package/dist/{state-C4ZtUisW.mjs → state--smjFSTL.mjs} +22 -7
  139. package/dist/{state-XMziexv2.mjs → state-08I3hw3_.mjs} +2 -2
  140. package/dist/{stats-53T7OTb9.mjs → stats-D3GerlFW.mjs} +5 -5
  141. package/dist/{stats-report-BFfMpWWF.mjs → stats-report-BzaPrRm6.mjs} +1 -1
  142. package/dist/{status-DqEUSSxs.mjs → status-BRROykC8.mjs} +2 -2
  143. package/dist/{status-CSi6tlRq.mjs → status-EvrK72L2.mjs} +1 -1
  144. package/dist/{status-BL7jVyAB.mjs → status-WBDajew2.mjs} +43 -29
  145. package/dist/{status-watch-GDCfqpTE.mjs → status-watch-Bg_u-pwR.mjs} +48 -16
  146. package/dist/status-worker.mjs +1 -1
  147. package/dist/{stim-desktop-C12we7lz.mjs → stim-desktop-D5OGpYZM.mjs} +2 -2
  148. package/dist/{stop-Bk_1qiV6.mjs → stop-DTZ9uTw3.mjs} +2 -2
  149. package/dist/{stop-D7h6jAXQ.mjs → stop-Dky10AEJ.mjs} +31 -22
  150. package/dist/{stop-CPzlM1L-.mjs → stop-Mv6W9FAk.mjs} +15 -16
  151. package/dist/supervisor-run.d.mts +3 -3
  152. package/dist/supervisor-run.mjs +28 -36
  153. package/dist/{support-Dlu37g6H.mjs → support-CNioewsd.mjs} +10 -10
  154. package/dist/{support-67vraa1Q.mjs → support-yUiOjnVY.mjs} +8 -8
  155. package/dist/swiftpm-artifact-inputs-DFcGsXDP.mjs +153 -0
  156. package/dist/swiftpm-macos-BIak-Rxv.mjs +532 -0
  157. package/dist/toolchain-BY8X8HXx.mjs +2 -0
  158. package/dist/{toolchain-Hp9sCpK4.mjs → toolchain-DpJMHq0n.mjs} +9 -6
  159. package/dist/{trigger-BAahxUPq.mjs → trigger-Cbyc41d_.mjs} +3 -3
  160. package/dist/trigger-yb_nFzPF.mjs +2 -0
  161. package/dist/{warm-progress-BHX5r0Ei.mjs → warm-progress-CA3TgT3-.mjs} +29 -16
  162. package/dist/web-CZ07gd77.mjs +2 -0
  163. package/dist/{web-CJmIj6AI.mjs → web-DKx6yoFA.mjs} +11 -10
  164. package/dist/web-run.mjs +11 -9
  165. package/dist/windows-report.mjs +1 -1
  166. package/dist/{workspace-state-Cjuigeeu.mjs → workspace-state-U08dEzhG.mjs} +3 -3
  167. package/dist/{workspaces-BccMFmGQ.mjs → workspaces-CpANmBlq.mjs} +594 -266
  168. package/dist/{worktree-DQ6Zi2Mv.mjs → worktree-CHecZ4Oq.mjs} +850 -551
  169. package/dist/worktree-ZqZVjD9K.mjs +2 -0
  170. package/dist/{xcode-Zlx3qjEs.mjs → xcode-BXn9-xYx.mjs} +5 -5
  171. package/package.json +7 -7
  172. package/shim/android-audio/Main.java +24 -0
  173. package/shim/android-audio/README.md +17 -0
  174. package/shim/android-audio.jar +0 -0
  175. package/dist/gc-C-WwL0yi.mjs +0 -3
  176. package/dist/git-C3iTsJaZ.mjs +0 -73
  177. package/dist/server-expo-C-90EhcG.mjs +0 -2
  178. package/dist/settings-DkdmlelE.d.mts +0 -15
  179. package/dist/swiftpm-macos-p8WZbxKU.mjs +0 -130
  180. package/dist/toolchain-DhKwp9iI.mjs +0 -2
  181. package/dist/trigger-Bf3uDcpv.mjs +0 -2
  182. package/dist/web-DknQETPs.mjs +0 -2
  183. package/dist/workspace-process-lock-1_1OoVW5.mjs +0 -57
  184. package/dist/worktree-CK2MpJW5.mjs +0 -2
package/dist/api.d.mts CHANGED
@@ -1,23 +1,51 @@
1
- import { a as DoctorPlatform, c as AndroidFacts, d as IosFacts, i as TailnetMachineIo, l as CcacheActivity, n as BuildMachinesInspection, o as Finding, r as GeneratedTickets, u as CompilationCacheActivity } from "./client-B7QVOlCr.mjs";
2
- import { i as WorkspaceLaunchPlatform } from "./settings-DkdmlelE.mjs";
3
- import "./exec-H20xSg2T.mjs";
4
- import { t as IdleDevice } from "./idle-BVeRGroT.mjs";
5
- import { readFileSync, writeFileSync } from "node:fs";
6
- import { StimContext, hostSimulatorArch } from "@stim-cli/core";
7
- import { ANDROID_EMULATOR_APPS, AgentDeviceUsage, ArchivedWorkspace, MacosBuild, MaintenanceAction, MaintenanceMode, MaintenancePressure, MaintenanceStatus, NdjsonRecord, SettingScope, SettingWriteResult, SettingsPayload, SimRuntimeUsage, StatsReport, SwiftpmCacheUsage, WebBrowserState, WebViewport, machineCapacity } from "@stim-cli/core/state";
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-DVWyCbWU.mjs";
2
+ import { a as WorkspaceLaunchPlatform } from "./ios-CDvlmUs7.mjs";
3
+ import "./exec-DnYc4HGH.mjs";
4
+ import "./pull-request-eODyIqZF.mjs";
5
+ import { t as IdleDevice } from "./idle-C4cZ757K.mjs";
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";
8
+ import { statSync } from "fs";
8
9
  import { Command } from "commander";
9
- import "@expo/fingerprint";
10
- import { loadCacheProvider } from "@stim-cli/cache";
11
10
  import { ToolchainEntry } from "@stim-cli/core/toolchain";
12
- import { ChildProcess } from "node:child_process";
13
- import { HelloResult } from "@stim-cli/core/protocol";
14
- //#region src/commands/android/build.d.ts
15
- interface AndroidBuildOptions {
16
- variant?: string;
17
- abi?: "arm64-v8a" | "armeabi-v7a" | "x86" | "x86_64" | "all";
18
- buildCache?: boolean;
19
- remoteBuild?: string;
11
+ import { HelloResult, PlatformBuildOptions, PlatformRunOptions } from "@stim-cli/core/protocol";
12
+ //#region src/engine/device-lease.d.ts
13
+ type LeasePlatform = "ios" | "android";
14
+ interface ReleasedLease {
15
+ platform: LeasePlatform;
16
+ id: string;
17
+ deviceName: string | null;
18
+ expiresAt: string;
20
19
  }
20
+ //#endregion
21
+ //#region src/commands/gc/results.d.ts
22
+ type GcResultKind = "archive" | "device" | "parkedDevice" | "parkedHostedDevice" | "idleDevice" | "deviceRecord" | "workspaceOutputs" | "recording" | "workspaceDirectory" | "project" | "buildLock" | "buildSlot" | "deviceLease" | "easSession" | "worktree" | "cache" | "statusCache" | "tempLeftover" | "watchmanRoot" | "watchman" | "gradleDaemon" | "gradleVersion" | "kotlinDaemon";
23
+ type GcResultStatus = "done" | "kept" | "failed";
24
+ interface GcResult {
25
+ kind: GcResultKind;
26
+ status: GcResultStatus;
27
+ label: string;
28
+ id: string | null;
29
+ bytes: number | null;
30
+ detail: string | null;
31
+ }
32
+ //#endregion
33
+ //#region src/supervisor/start-facts.d.ts
34
+ interface StartFacts {
35
+ port: number;
36
+ supervisorPid: number | null;
37
+ mode: string | null;
38
+ logsDir: string;
39
+ agentDevice?: {
40
+ stateDir: string;
41
+ };
42
+ alreadyRunning: boolean;
43
+ }
44
+ //#endregion
45
+ //#region src/commands/android/build.d.ts
46
+ type AndroidBuildOptions = Omit<Extract<PlatformBuildOptions, {
47
+ platform: "android";
48
+ }>, "platform">;
21
49
  interface AndroidBuildFacts {
22
50
  /** Owned copy, retained with this workspace until explicitly removed. */
23
51
  apkPath: string;
@@ -40,9 +68,9 @@ interface AndroidBuildFacts {
40
68
  }
41
69
  //#endregion
42
70
  //#region src/commands/macos-build.d.ts
43
- interface MacosBuildOptions {
44
- remoteBuild?: string;
45
- }
71
+ type MacosBuildOptions = Omit<Extract<PlatformBuildOptions, {
72
+ platform: "macos";
73
+ }>, "platform">;
46
74
  interface MacosBuildFacts {
47
75
  product: string;
48
76
  /** Owned copy, retained with this workspace until explicitly removed. */
@@ -59,14 +87,9 @@ interface MacosBuildFacts {
59
87
  }
60
88
  //#endregion
61
89
  //#region src/commands/ios/build.d.ts
62
- interface IosBuildOptions {
63
- configuration?: string;
64
- scheme?: string;
65
- /** Simulator architecture. Defaults to the host for Debug, or all architectures otherwise. */
66
- arch?: "arm64" | "x86_64" | "all";
67
- buildCache?: boolean;
68
- remoteBuild?: string;
69
- }
90
+ type IosBuildOptions = Omit<Extract<PlatformBuildOptions, {
91
+ platform: "ios";
92
+ }>, "platform">;
70
93
  interface IosBuildFacts {
71
94
  /** Owned simulator app, retained with this workspace until explicitly removed. */
72
95
  appPath: string;
@@ -89,15 +112,6 @@ interface IosBuildFacts {
89
112
  };
90
113
  }
91
114
  //#endregion
92
- //#region src/engine/device-lease.d.ts
93
- type LeasePlatform = "ios" | "android";
94
- interface ReleasedLease {
95
- platform: LeasePlatform;
96
- id: string;
97
- deviceName: string | null;
98
- expiresAt: string;
99
- }
100
- //#endregion
101
115
  //#region src/commands/stop.d.ts
102
116
  interface SupervisorOutcome {
103
117
  status: string;
@@ -165,9 +179,6 @@ interface TunnelOutcome {
165
179
  reason?: string;
166
180
  }
167
181
  //#endregion
168
- //#region src/web/launch.d.ts
169
- type WebLaunched = true | "bundling" | "unverified";
170
- //#endregion
171
182
  //#region src/commands/web.d.ts
172
183
  interface WebFacts extends WebBrowserState {
173
184
  platform: "web";
@@ -183,42 +194,20 @@ interface WebFacts extends WebBrowserState {
183
194
  //#region src/maintenance/status.d.ts
184
195
  declare function maintenanceStatus(env?: NodeJS.ProcessEnv): MaintenanceStatus;
185
196
  //#endregion
186
- //#region src/commands/gc/results.d.ts
187
- type GcResultKind = "archive" | "device" | "parkedDevice" | "parkedHostedDevice" | "idleDevice" | "deviceRecord" | "workspaceOutputs" | "recording" | "workspaceDirectory" | "project" | "buildLock" | "buildSlot" | "deviceLease" | "easSession" | "worktree" | "cache" | "statusCache" | "tempLeftover" | "watchmanRoot" | "watchman" | "gradleDaemon" | "gradleVersion" | "kotlinDaemon";
188
- type GcResultStatus = "done" | "kept" | "failed";
189
- interface GcResult {
190
- kind: GcResultKind;
191
- status: GcResultStatus;
192
- label: string;
193
- id: string | null;
194
- bytes: number | null;
195
- detail: string | null;
197
+ //#region src/diagnostics/stim-installations.d.ts
198
+ interface StimInstallation {
199
+ path: string;
200
+ realPath: string;
201
+ version: string | null;
196
202
  }
197
- //#endregion
198
- //#region src/budget.d.ts
199
- type ReclaimStepName = "idle-devices" | "idle-dev-servers" | "workspace-outputs" | "stale-cache-entries";
200
- interface ReclaimedStep {
201
- step: ReclaimStepName;
202
- targets: string[];
203
- failures: number;
204
- freedMb?: number;
205
- }
206
- interface BudgetReport {
207
- budget: {
208
- minFreeDiskGb: number;
209
- hardFloorDiskGb: number;
210
- maxCommittedMemoryGb: number;
211
- maxLiveWorkspaces: number;
212
- };
213
- volumes: {
214
- volume: string;
215
- freeGb: number;
216
- }[];
217
- memory: {
218
- committedGb: number;
219
- liveWorkspaces: number;
220
- } | null;
221
- plan: ReclaimedStep[];
203
+ interface StimVersionReport {
204
+ runningVersion: string;
205
+ runningPath: string | null;
206
+ resolved: StimInstallation | null;
207
+ installations: StimInstallation[];
208
+ versions: string[];
209
+ highestVersion: string | null;
210
+ resolvedIsOlder: boolean;
222
211
  }
223
212
  //#endregion
224
213
  //#region src/device-host/machines.d.ts
@@ -246,22 +235,6 @@ declare function inspectDeviceHostMachines({ fix, version, tickets, operation }:
246
235
  operation?: StimContext;
247
236
  }, io?: TailnetMachineIo, entries?: string[] | null): Promise<Inspection>;
248
237
  //#endregion
249
- //#region src/diagnostics/stim-installations.d.ts
250
- interface StimInstallation {
251
- path: string;
252
- realPath: string;
253
- version: string | null;
254
- }
255
- interface StimVersionReport {
256
- runningVersion: string;
257
- runningPath: string | null;
258
- resolved: StimInstallation | null;
259
- installations: StimInstallation[];
260
- versions: string[];
261
- highestVersion: string | null;
262
- resolvedIsOlder: boolean;
263
- }
264
- //#endregion
265
238
  //#region src/commands/doctor.d.ts
266
239
  /**
267
240
  * Where the toolchain a process without a login shell, such as stim-server under Stim Desktop, finds each tool,
@@ -847,30 +820,7 @@ interface StimOptions {
847
820
  */
848
821
  onProgress?: (event: StimProgress) => void;
849
822
  }
850
- interface NativeRunOptions {
851
- slot?: string;
852
- metroCheck?: boolean;
853
- buildCache?: boolean;
854
- remoteBuild?: string;
855
- }
856
- type StimRunOptions = ((NativeRunOptions & {
857
- platform: "ios";
858
- configuration?: string;
859
- scheme?: string;
860
- deviceType?: string;
861
- runtime?: string;
862
- }) | (NativeRunOptions & {
863
- platform: "android";
864
- variant?: string;
865
- systemImage?: string;
866
- deviceProfile?: string;
867
- }) | {
868
- platform: "macos";
869
- remoteBuild?: string;
870
- } | {
871
- platform: "web";
872
- headed?: boolean;
873
- }) & {
823
+ type StimRunOptions = PlatformRunOptions & {
874
824
  signal?: AbortSignal;
875
825
  };
876
826
  type StimRunResult = {
@@ -887,7 +837,7 @@ type StimRunResult = {
887
837
  bundleId: string;
888
838
  executable: string;
889
839
  pid: number | null;
890
- launched: boolean;
840
+ launched: boolean | "unverified";
891
841
  build: MacosBuild;
892
842
  logs: {
893
843
  dir: string;
@@ -919,8 +869,19 @@ type StimBuildResult = {
919
869
  interface StimStopOptions {
920
870
  slot?: string;
921
871
  signal?: AbortSignal;
872
+ /** Runs once with the resolved workspace before teardown; throwing refuses the operation. */
873
+ beforeStop?: (workspace: string) => void;
922
874
  }
923
875
  type StimStopResult = StopResult;
876
+ interface StimStartOptions {
877
+ remote?: boolean;
878
+ resetCache?: boolean;
879
+ waitSeconds?: number;
880
+ signal?: AbortSignal;
881
+ /** Runs once with the resolved app before usage recording or startup; throwing refuses the operation. */
882
+ beforeStart?: (workspace: string) => void;
883
+ }
884
+ type StimStartResult = StartFacts;
924
885
  interface StimReloadOptions {
925
886
  platform?: ReloadPlatform;
926
887
  signal?: AbortSignal;
@@ -951,16 +912,57 @@ interface StimLogsOptions {
951
912
  interface StimReadOptions {
952
913
  signal?: AbortSignal;
953
914
  }
915
+ type StimPlanOptions = ({
916
+ platform: "ios" | "android";
917
+ slot?: string;
918
+ } | {
919
+ platform: "macos";
920
+ }) & StimReadOptions;
921
+ type StimPlan = BuildPlanPayload | MacosBuildPlanPayload;
954
922
  interface StimDoctorOptions extends StimReadOptions {
955
923
  platform?: "ios" | "android";
956
924
  /** Records completed iOS/Android checks in project state. Defaults to false for report-only reads. */
957
925
  record?: boolean;
958
926
  }
927
+ interface StimMachineAccessOptions extends StimReadOptions {
928
+ /** The setup ticket generated by the caller. Omit to reuse or generate tickets for the configured machines. */
929
+ ticket?: string;
930
+ }
959
931
  type StimDoctorReport = DoctorReport;
960
932
  type StimGcOptions = GcReadOptions & StimReadOptions;
961
933
  type StimGcReport = Exclude<GcPayload, {
962
934
  code: string;
963
935
  }>;
936
+ type StimGcMutationOptions = StimGcOptions & {
937
+ delete?: boolean;
938
+ /** Shuts down owned devices idle for at least this many milliseconds, including without `delete`. */
939
+ idleMs?: number;
940
+ };
941
+ interface StimGcMutationResult {
942
+ report: StimGcReport;
943
+ exitCode: 0 | 1;
944
+ }
945
+ interface StimWorktreeWarmOptions extends StimReadOptions {
946
+ /** Called for each canonical workspace in the resolved warming scope before effects; throwing refuses warming. */
947
+ beforeWarm?: (workspace: string) => void;
948
+ }
949
+ interface StimWorktreeWarmResult {
950
+ exitCode: 0 | 1;
951
+ }
952
+ interface StimWorktreeRemoveOptions extends StimReadOptions {
953
+ /** Called for each canonical workspace in the resolved cleanup scope before effects; throwing refuses cleanup. */
954
+ beforeRemove?: (workspace: string) => void;
955
+ /** Defaults to the client's projectRoot. Relative paths resolve against that directory. */
956
+ target?: string;
957
+ /** Allows removal with uncommitted or unpushed work or initialized submodules, as CLI --force does. */
958
+ force?: boolean;
959
+ }
960
+ interface StimWorktreeRemoveResult {
961
+ /** True once the linked Git worktree is removed, even if later branch cleanup fails. */
962
+ removed: boolean;
963
+ /** Source checkout environment cleanup can succeed without removing the checkout. */
964
+ exitCode: 0 | 1;
965
+ }
964
966
  type StimSettings = SettingsPayload;
965
967
  type StimSettingWriteResult = SettingWriteResult;
966
968
  interface StimSettingWriteOptions extends StimReadOptions {
@@ -971,12 +973,24 @@ interface StimSettingWriteOptions extends StimReadOptions {
971
973
  type StimStats = StatsReport;
972
974
  interface StimClient {
973
975
  readonly projectRoot: string;
976
+ /** Starts or reuses the app's dev server; resources remain workspace-owned until stop is called. */
977
+ start(options?: StimStartOptions): Promise<StimStartResult>;
974
978
  /** Returns this home's persistent nonsecret identity, initializing it under the config lock on first use. */
975
979
  identity(options?: StimReadOptions): Promise<string>;
976
980
  /** Reads findings with a 60 second execution and 35 second cleanup budget. Never repairs; records a completed check only with `record: true`. */
977
981
  doctor(options?: StimDoctorOptions): Promise<StimDoctorReport>;
982
+ /** Requests build/device-host approval with a 120 second execution and 35 second cleanup budget. Never grants access or repairs project state. */
983
+ requestMachineAccess(options?: StimMachineAccessOptions): Promise<StimDoctorReport>;
984
+ /** Predicts the configured native build with a 60 second execution and 35 second cleanup budget; never builds or launches. */
985
+ plan(options: StimPlanOptions): Promise<StimPlan>;
978
986
  /** Reads the GC dry-run report with a 60 second execution and 35 second cleanup budget. Never deletes, repairs or shuts down idle resources. */
979
987
  gc(options?: StimGcOptions): Promise<StimGcReport>;
988
+ /** Executes requested GC actions, preserving partial results and waiting for owned cleanup before releasing maintenance admission. */
989
+ collectGarbage(options?: StimGcMutationOptions): Promise<StimGcMutationResult>;
990
+ /** Copies missing ignored state from the source checkout into this linked worktree. */
991
+ warmWorktree(options?: StimWorktreeWarmOptions): Promise<StimWorktreeWarmResult>;
992
+ /** Removes a linked worktree or reclaims a source checkout's environment using the CLI safety checks. */
993
+ removeWorktree(options?: StimWorktreeRemoveOptions): Promise<StimWorktreeRemoveResult>;
980
994
  /** Builds an artifact without acquiring a device or starting a runtime. */
981
995
  build<P extends StimBuildOptions["platform"]>(options: StimBuildOptions & {
982
996
  platform: P;
@@ -1030,7 +1044,7 @@ declare class StimError extends Error {
1030
1044
  readonly details: unknown;
1031
1045
  constructor({ code, message, remedy, details }: Omit<StimFailure, "remedy"> & {
1032
1046
  remedy?: string | null;
1033
- });
1047
+ }, options?: ErrorOptions);
1034
1048
  }
1035
1049
  /**
1036
1050
  * Creates a client without starting processes or changing the caller's cwd, environment, or signal handlers.
@@ -1041,4 +1055,4 @@ declare class StimError extends Error {
1041
1055
  */
1042
1056
  declare function createStim(options: StimOptions): StimClient;
1043
1057
  //#endregion
1044
- export { type StimBuildOptions, type StimBuildResult, type StimClient, type StimDiagnostics, type StimDiagnosticsOptions, type StimDoctorOptions, type StimDoctorReport, StimError, type StimGcOptions, type StimGcReport, type StimLogsOptions, type StimOptions, type StimPlatform, type StimProgress, type StimReadOptions, type StimReloadOptions, type StimReloadResult, type StimRunOptions, type StimRunResult, type StimSettingWriteOptions, type StimSettingWriteResult, type StimSettings, type StimStats, type StimStopOptions, type StimStopResult, createStim };
1058
+ export { type StimBuildOptions, type StimBuildResult, type StimClient, type StimDiagnostics, type StimDiagnosticsOptions, type StimDoctorOptions, type StimDoctorReport, StimError, type StimGcMutationOptions, type StimGcMutationResult, type StimGcOptions, type StimGcReport, type StimLogsOptions, type StimMachineAccessOptions, type StimOptions, type StimPlan, type StimPlanOptions, type StimPlatform, type StimProgress, type StimReadOptions, type StimReloadOptions, type StimReloadResult, type StimRunOptions, type StimRunResult, type StimSettingWriteOptions, type StimSettingWriteResult, type StimSettings, type StimStartOptions, type StimStartResult, type StimStats, type StimStopOptions, type StimStopResult, type StimWorktreeRemoveOptions, type StimWorktreeRemoveResult, type StimWorktreeWarmOptions, type StimWorktreeWarmResult, createStim };