stim 1.26.0 → 1.28.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.
- package/dist/{acquire-artifact-DVsvSwf7.mjs → acquire-artifact-CKByBnTD.mjs} +2 -2
- package/dist/{act-C-BqJEpu.mjs → act-8iswyfRa.mjs} +319 -126
- package/dist/{activity-Lnb_EoRY.mjs → activity-DRMg4_mD.mjs} +6 -6
- package/dist/{agent-device-usage-output-DbXy5tg8.mjs → agent-device-usage-output-tE90fDdo.mjs} +5 -5
- package/dist/{android-CiNQw3kq.mjs → android-CHmSU4B4.mjs} +101 -45
- package/dist/{android-DTAcRwBC.mjs → android-CsPs-7Mg.mjs} +23 -18
- package/dist/{android-B5P81yI-.mjs → android-D577ApKG.mjs} +37 -15
- package/dist/{android-CSbLRD53.mjs → android-YWCbmkVK.mjs} +5 -5
- package/dist/{android-cas-BTVhZ0Qs.mjs → android-cas-_aDifWW0.mjs} +4 -4
- package/dist/android-cas-compiler.mjs +1 -1
- package/dist/api.d.mts +14 -4
- package/dist/api.mjs +39 -29
- package/dist/{apk-signed-tail-B46U9hXc.mjs → apk-signed-tail-CQbwM0qO.mjs} +2 -2
- package/dist/{artifact-CsAP6AGK.mjs → artifact-DYtHjxsn.mjs} +19 -24
- package/dist/{artifact-BxREhAaV.mjs → artifact-bFkfD3vf.mjs} +18 -23
- package/dist/{artifact-platform-CMRc0M_r.mjs → artifact-platform-BO2Uvk_A.mjs} +1 -1
- package/dist/auto-placement-BVqs8AJi.mjs +350 -0
- package/dist/{browser-web-rYPyqhTf.mjs → browser-web-BUaLcafY.mjs} +16 -16
- package/dist/{build-DPhApsjV.mjs → build-cQURy_KW.mjs} +35 -31
- package/dist/{build-cache-DrXNCy3T.mjs → build-cache-CZULpXVl.mjs} +43 -21
- package/dist/{build-plan-DrMMdayj.mjs → build-plan-CxoYfxsc.mjs} +7 -6
- package/dist/{cache-manifest-BEZ9Bpl1.mjs → cache-manifest-DEjqGGat.mjs} +1 -1
- package/dist/cache-manifest.mjs +1 -1
- package/dist/{budget-k2mZGvvk.mjs → ccache-Bm_A1xX9.mjs} +562 -1604
- package/dist/{cdp-BG3FJCCx.mjs → cdp-C3svvXiE.mjs} +1 -1
- package/dist/{chrome-BvV8ssI3.mjs → chrome-DyDWurWG.mjs} +1 -1
- package/dist/{cli-BBKFGOFl.mjs → cli-CpbaLDa7.mjs} +24 -23
- package/dist/cli.mjs +1 -1
- package/dist/{client-D9CaRks-.mjs → client-YxCer6ab.mjs} +84 -65
- package/dist/collector-run.d.mts +10 -9
- package/dist/collector-run.mjs +42 -27
- package/dist/{command-output-BF5AR2dL.mjs → command-output-C8R1KIvi.mjs} +1 -1
- package/dist/{config-BktkY_zC.mjs → config-Cn94Jc0g.mjs} +23 -4
- package/dist/{dependencies-Dw6wfQdv.mjs → dependencies-DKeMzwXY.mjs} +108 -60
- package/dist/{dependency-state-DFB41vfr.mjs → dependency-state-CojA2o0t.mjs} +14 -7
- package/dist/{detached-entry-KmieOKgN.mjs → detached-entry-BPlSaCwC.mjs} +1 -1
- package/dist/{dev-client-DXR_tPVY.mjs → dev-client-D-BW5uiq.mjs} +2 -2
- package/dist/{device-BK-zwyd_.mjs → device-CgXfbcz5.mjs} +25 -24
- package/dist/{device-capacity-DCSvUF0l.mjs → device-capacity-Cd8lMSn3.mjs} +175 -22
- package/dist/{device-BcYeHSFu.mjs → device-eeK95Lir.mjs} +16 -16
- package/dist/device-host-worker.mjs +22 -20
- package/dist/{device-ios-BLGfXQeK.mjs → device-ios-Cc9ulihb.mjs} +251 -23
- package/dist/{device-lease-run-BmvIl7bI.mjs → device-lease-run-Mtzp4THX.mjs} +5 -5
- package/dist/{device-pool-Dluix4H3.mjs → device-pool-eRz6DtCg.mjs} +3 -3
- package/dist/{doctor-Bhg1ii70.mjs → doctor-Bz_ouYAW.mjs} +28 -16
- package/dist/{doctor-Cp-BhzTS.mjs → doctor-C2QyhejJ.mjs} +1 -1
- package/dist/{doctor-fingerprint-D3a04Mhu.mjs → doctor-fingerprint-o7ZI9YLn.mjs} +1 -1
- package/dist/doctor-fingerprint.mjs +1 -1
- package/dist/{doctor-watchman-BStK05nt.mjs → doctor-watchman-BTW82PDC.mjs} +5 -5
- package/dist/{doctor-OnwP94ne.mjs → doctor-xf7ht-5n.mjs} +76 -32
- package/dist/{eas-build-Dsj93iM9.mjs → eas-build-Dm6q68QY.mjs} +4 -4
- package/dist/eas-fallback-DajNpxf-.mjs +87 -0
- package/dist/{eas-session-ledger-B5vygTiD.mjs → eas-session-ledger-CBFo_Uo1.mjs} +37 -8
- package/dist/{error-diagnostics-BOOm9Db7.mjs → error-diagnostics-D1QfyJzQ.mjs} +51 -25
- package/dist/{exec-VFRpu1iA.mjs → exec-aULwtNly.mjs} +57 -6
- package/dist/{gc-ldgr-hXU.mjs → gc-DM5oMm-J.mjs} +161 -45
- package/dist/{gc-C_79zvz4.mjs → gc-PLFwb0k4.mjs} +2 -2
- package/dist/{guide-D7K0X6KG.mjs → guide-C4I46XAk.mjs} +674 -213
- package/dist/{hosted-android-Bk54ej6n.mjs → hosted-android-DlaKLbW0.mjs} +6 -7
- package/dist/{hosted-client-fHO8yqzc.mjs → hosted-client-DDRm9hPJ.mjs} +51 -20
- package/dist/{hosted-logs-BfbmDM4M.mjs → hosted-logs-bSebOKbz.mjs} +8 -8
- package/dist/{hosted-logs-sync-B0pvmOk-.mjs → hosted-logs-sync-B0c53W_c.mjs} +5 -5
- package/dist/{hosted-macos-CPl0OZ9h.mjs → hosted-macos-B7-8Pv4H.mjs} +6 -6
- package/dist/{hosted-native-CpDB3-PO.mjs → hosted-native-CDe33CSr.mjs} +22 -18
- package/dist/{idle-shutdown-FfxL1KdG.mjs → idle-shutdown-CQ0QwU9J.mjs} +7 -8
- package/dist/{ios-WxpDJ5T1.mjs → ios-B1DYuOjh.mjs} +27 -11
- package/dist/{ios-B7-lToDu.mjs → ios-B1HvafEG.mjs} +8 -8
- package/dist/{ios-ENC4sRPA.mjs → ios-CsRVik64.mjs} +7 -1
- package/dist/{ios-device-CsyryvpT.mjs → ios-device-B4elVFKi.mjs} +3 -3
- package/dist/{ios-device-B6HK951C.mjs → ios-device-CiBA-er9.mjs} +1 -1
- package/dist/{ios-project-Ty5pHl9O.mjs → ios-project-CR4mZ7CH.mjs} +22 -9
- package/dist/{ios-signing-4c_qXvQm.mjs → ios-signing-BJzvDPfU.mjs} +2 -2
- package/dist/{ios-state-Cw7-WQf2.mjs → ios-state-BPHqMDdZ.mjs} +1 -1
- package/dist/{ios-ftxdQbJS.mjs → ios-tg4tp3q1.mjs} +94 -37
- package/dist/{js-swap-BMhXYVDS.mjs → js-swap-CVpSW1fn.mjs} +8 -7
- package/dist/{launch-DOp8RjDz.mjs → launch-DoySmhjz.mjs} +42 -38
- package/dist/lightened-DFAJgfIk.mjs +171 -0
- package/dist/{logs-s1dRIG1E.mjs → logs-BGsW7iPe.mjs} +46 -21
- package/dist/{logs-dQDki6Tt.mjs → logs-DI5ILkYB.mjs} +7 -7
- package/dist/{macos-DBBPNnIA.mjs → macos-Bo9st9Di.mjs} +73 -38
- package/dist/{macos-B0VEV3Gf.mjs → macos-C12RMJQF.mjs} +1 -1
- package/dist/macos-run.mjs +1 -1
- package/dist/maintenance-run.mjs +7 -7
- package/dist/{metro-CjC10t6E.mjs → metro-BnhXV2Mj.mjs} +4 -4
- package/dist/{metro-gateway-B6_PgD0L.mjs → metro-request-DXyKjVDF.mjs} +26 -47
- package/dist/{named-ports-BG0j1X4g.mjs → named-ports-Phoi2POD.mjs} +3 -3
- package/dist/{native-android-CL2NGiik.mjs → native-android-vxgtLD7w.mjs} +17 -18
- package/dist/{native-gradle-artifact-inputs-btSUulme.mjs → native-gradle-artifact-inputs-BN96IVw8.mjs} +5 -5
- package/dist/{native-runtime-Dq3RBcON.mjs → native-runtime-DG4Rodzj.mjs} +9 -8
- package/dist/{native-source-D-4Dh4JU.mjs → native-source-D1AzWiuP.mjs} +1 -1
- package/dist/{native-xcode-inputs-BW7H8JGu.mjs → native-xcode-inputs-BKarCoKg.mjs} +3 -3
- package/dist/{native-xcode-ios-CBXJAxfC.mjs → native-xcode-ios-8A-efGa5.mjs} +17 -17
- package/dist/{ndjson-CgE_o3Dl.mjs → ndjson-Dy2W4vRa.mjs} +2 -2
- package/dist/offload-worker.mjs +23 -24
- package/dist/{operation-exec-CUZifp6Z.mjs → operation-exec-Dp4FuIGR.mjs} +1 -1
- package/dist/{ownership-BjYvMNX_.mjs → ownership-DJCq48IJ.mjs} +3 -3
- package/dist/{page-CzEA_-5_.mjs → page-CQJlcj3x.mjs} +2 -2
- package/dist/{phone-reverses-lmj6kcPm.mjs → phone-reverses-BzTa8g1F.mjs} +18 -4
- package/dist/{placement-log-DIFPQAXp.mjs → placement-log-Cvhta5ib.mjs} +3 -3
- package/dist/{plan-placement-IiiSQhtz.mjs → plan-placement-WkZdccuN.mjs} +36 -10
- package/dist/{ports-C2_w1Z0Z.mjs → ports-UV4mJgyC.mjs} +3 -3
- package/dist/{prebuild-gmouvmJZ.mjs → prebuild-k8d_tqOq.mjs} +16 -17
- package/dist/{project-BUu6Is4k.mjs → project-Sui52ywT.mjs} +17 -17
- package/dist/{pull-request-CbNlkFok.mjs → pull-request-BzLmzAIQ.mjs} +2 -2
- package/dist/pull-requests.mjs +1 -1
- package/dist/{react-native-android-Cgg99REN.mjs → react-native-android-DANlGGQf.mjs} +32 -26
- package/dist/{react-native-build-oNwqF5Wb.mjs → react-native-build-jUHnIfZ9.mjs} +9 -9
- package/dist/{react-native-doctor-BhA3KUte.mjs → react-native-doctor-DCWRjS7K.mjs} +6 -6
- package/dist/{react-native-ios-B-nf4rjN.mjs → react-native-ios-BwMsFMXi.mjs} +23 -17
- package/dist/{recordings-BldzVKq0.mjs → recordings-iy0mkm7b.mjs} +1 -1
- package/dist/{registration-CN6nlhcD.mjs → registration-BwCe64PH.mjs} +1 -1
- package/dist/{reload-C9OduiNc.mjs → reload-Bj7QyuDy.mjs} +1 -1
- package/dist/{reload-CCR7KC_l.mjs → reload-c_uEyc_X.mjs} +16 -16
- package/dist/{remote-C8S7FlPF.mjs → remote-DFlpAqdV.mjs} +23 -10
- package/dist/{result-7F5hEwQJ.mjs → result-BIcXREyC.mjs} +32 -21
- package/dist/{run-BqB0v3pt.mjs → run-y2HwyNvg.mjs} +3 -3
- package/dist/{selection-BNPBZ6T5.mjs → selection-CXgM_VK_.mjs} +37 -29
- package/dist/{server-bare-A75rDIdD.mjs → server-bare-2N4vSRZG.mjs} +2 -2
- package/dist/{server-command-CssKFOD7.mjs → server-command-qneHPcRI.mjs} +6 -6
- package/dist/{server-expo-eQfOdydb.mjs → server-expo-Ccm9zB0o.mjs} +4 -4
- package/dist/server-expo-WulkyAwT.mjs +2 -0
- package/dist/{settings-CosW5X-S.mjs → settings-CY5JZlNN.mjs} +375 -62
- package/dist/{settings-OaGQF-ri.mjs → settings-Cfd_Q6ys.mjs} +24 -3
- package/dist/settings-payload-DwQiEMCn.mjs +257 -0
- package/dist/settings-write-CJpjkeAd.mjs +185 -0
- package/dist/settings.schema.json +51 -33
- package/dist/{simslim-Bax1qcxu.mjs → simslim-DCQwzoPy.mjs} +2 -2
- package/dist/{slot-launch-CYCEhfBY.mjs → slot-launch-BpmanOnk.mjs} +6 -6
- package/dist/{stage-jKQ7CP_B.mjs → stage-CmugrSG5.mjs} +2 -2
- package/dist/{start-C_wefNKB.mjs → start-CHH3zgIU.mjs} +1 -1
- package/dist/{start-_BdJ32cZ.mjs → start-DYLk6GXn.mjs} +27 -22
- package/dist/{state-C1i2nMOP.mjs → state-B2QJbDwz.mjs} +4 -4
- package/dist/{state-C4OdpOTF.mjs → state-BXC1Lfxw.mjs} +2 -2
- package/dist/{stats-tEpEEH-u.mjs → stats-DxKqhcGp.mjs} +5 -5
- package/dist/{stats-report-n2U5plhk.mjs → stats-report-B86Cv7Uc.mjs} +1 -1
- package/dist/{status-CRXz-Gtj.mjs → status-7ULDEJ1e.mjs} +1 -1
- package/dist/{status-DQrqodLj.mjs → status-BHCkOZga.mjs} +51 -28
- package/dist/{status-B9M7x4CZ.mjs → status-D_Ljc89p.mjs} +1 -1
- package/dist/{status-watch-B5wDIH_o.mjs → status-watch-BmsPqYSU.mjs} +18 -7
- package/dist/status-worker.mjs +1 -1
- package/dist/{stim-desktop-6Dqp-gjX.mjs → stim-desktop-CbWo21kb.mjs} +2 -2
- package/dist/{stop-DRqQVqDJ.mjs → stop-D-dGE9gh.mjs} +21 -20
- package/dist/{stop-ySNQHXMG.mjs → stop-DQvE-P76.mjs} +10 -6
- package/dist/{stop-CmdNhGlC.mjs → stop-b2pouxAO.mjs} +2 -2
- package/dist/supervisor-run.mjs +237 -63
- package/dist/{support-BGSCBoib.mjs → support-04IhBUTT.mjs} +6 -6
- package/dist/{support-CVOCp0Ft.mjs → support-BtlJKjyQ.mjs} +12 -11
- package/dist/{swiftpm-artifact-inputs-CfUzt_0Z.mjs → swiftpm-artifact-inputs-Cj2UpmPN.mjs} +4 -4
- package/dist/{swiftpm-macos-x6HPpl_2.mjs → swiftpm-macos-BhF2stxY.mjs} +11 -12
- package/dist/{toolchain-J4J8MrAr.mjs → toolchain-mLA_km-b.mjs} +321 -15
- package/dist/{toolchain-DoavrvIA.mjs → toolchain-qktiV8xc.mjs} +1 -1
- package/dist/{trigger-KVaWWNyn.mjs → trigger-DMou-X7j.mjs} +2 -2
- package/dist/trigger-qp2ji5wE.mjs +2 -0
- package/dist/{warm-progress-DvhTX_eu.mjs → warm-progress-B0Vpuvpl.mjs} +731 -727
- package/dist/{web-Bihbf7-u.mjs → web-BYmK0TjL.mjs} +9 -9
- package/dist/web-CrVLVQZY.mjs +2 -0
- package/dist/web-run.mjs +9 -9
- package/dist/windows-report.mjs +1 -1
- package/dist/{workspace-state-pUg3_RRA.mjs → workspace-state-kIZrdlSg.mjs} +3 -3
- package/dist/{workspaces-g2lhdBXF.mjs → workspaces-CmOcceDN.mjs} +1879 -74
- package/dist/{worktree-BKuklFh_.mjs → worktree-2dk5edza.mjs} +933 -534
- package/dist/worktree-nliAoHxB.mjs +2 -0
- package/package.json +7 -7
- package/dist/ccache-Bx5TbxwG.mjs +0 -143
- package/dist/eas-fallback-FwkeqqGi.mjs +0 -381
- package/dist/hosted-ios-D55QhYaD.mjs +0 -15
- package/dist/native-run-BfIDFKLH.mjs +0 -275
- package/dist/server-expo-wvcj5tiZ.mjs +0 -2
- package/dist/settings-write-QjYfSrjF.mjs +0 -360
- package/dist/trigger-DzJu208Q.mjs +0 -2
- package/dist/web-BFLueSh-.mjs +0 -2
- package/dist/worktree-Bm4cb-nU.mjs +0 -2
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { r as readWorkspaceState$1 } from "./workspace-state-
|
|
2
|
-
import { G as projectDeviceSlots, U as parseDeviceSlotKey, p as getProject } from "./config-
|
|
3
|
-
import { O as getAvdNameForSerialAsync, j as listAdbDevicesAsync } from "./android-
|
|
4
|
-
import {
|
|
5
|
-
import { y as fileLeaseIo } from "./activity-
|
|
6
|
-
import { f as listAllIosSimsAsync } from "./ios-
|
|
1
|
+
import { r as readWorkspaceState$1 } from "./workspace-state-kIZrdlSg.mjs";
|
|
2
|
+
import { G as projectDeviceSlots, U as parseDeviceSlotKey, p as getProject } from "./config-Cn94Jc0g.mjs";
|
|
3
|
+
import { O as getAvdNameForSerialAsync, j as listAdbDevicesAsync } from "./android-CsPs-7Mg.mjs";
|
|
4
|
+
import { on as deviceShellArg } from "./ccache-Bm_A1xX9.mjs";
|
|
5
|
+
import { y as fileLeaseIo } from "./activity-DRMg4_mD.mjs";
|
|
6
|
+
import { f as listAllIosSimsAsync } from "./ios-B1DYuOjh.mjs";
|
|
7
7
|
import { hostedNativeRecords } from "@stim-cli/core/state";
|
|
8
8
|
//#region src/engine/slot-launch.ts
|
|
9
9
|
function launchSlotScope(root, slot = "default") {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as throwIfCancelled, t as getExecutor, x as withDrainingCancellation } from "./exec-
|
|
2
|
-
import {
|
|
1
|
+
import { c as throwIfCancelled, t as getExecutor, x as withDrainingCancellation } from "./exec-aULwtNly.mjs";
|
|
2
|
+
import { ot as runCancellationSignal } from "./toolchain-mLA_km-b.mjs";
|
|
3
3
|
import { existsSync, lstatSync, promises, readdirSync, realpathSync, statSync } from "node:fs";
|
|
4
4
|
import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
5
5
|
import { validMacosResourceDestination } from "@stim-cli/core";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as registerStart, c as startDevServer, d as supervisorSignalable, f as tailLines, i as readLogTail, l as startFacts, n as liveSupervisor, o as resolveWorkspaceMetroPort, p as wantsExpoOwnTunnel, r as parseWait, s as startCommand, t as failureEvidence, u as supervisorEntry } from "./start-
|
|
1
|
+
import { a as registerStart, c as startDevServer, d as supervisorSignalable, f as tailLines, i as readLogTail, l as startFacts, n as liveSupervisor, o as resolveWorkspaceMetroPort, p as wantsExpoOwnTunnel, r as parseWait, s as startCommand, t as failureEvidence, u as supervisorEntry } from "./start-DYLk6GXn.mjs";
|
|
2
2
|
export { startCommand as default, failureEvidence, liveSupervisor, parseWait, readLogTail, registerStart, resolveWorkspaceMetroPort, startDevServer, startFacts, supervisorEntry, supervisorSignalable, tailLines, wantsExpoOwnTunnel };
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import { D as ownership_claim_exports, S as process_identity_exports, a as waitForGroupExit, c as throwIfCancelled, d as workspaceProcessLockError, l as WorkspaceProcessCleanupError, o as cancellableSleep, r as groupExitBudgetMs, t as getExecutor, u as withWorkspaceProcessLock, x as withDrainingCancellation } from "./exec-
|
|
2
|
-
import { S as supervisorLogFile, _ as ensureWorkspaceStorage, i as recordWorkspaceUse, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, s as updateWorkspaceStateAsync, w as workspaceAgentDeviceDir } from "./workspace-state-
|
|
3
|
-
import { E as upsertProject, O as withConfigLockAsync$1, p as getProject, x as releaseMetroPort } from "./config-
|
|
4
|
-
import { _ as stepTimer, l as phaseLine } from "./command-output-
|
|
5
|
-
import { A as
|
|
6
|
-
import { E as MODE_EXPO, M as readMetroTunnel, O as clearManagedMetroTunnel, S as readAppJson, T as MODE_COMMAND, c as projectProblem, i as findProjectRoot$1, t as NO_PROJECT_REFUSAL, v as detectIsExpo, w as MODE_BARE, x as readAppConfigText } from "./project-
|
|
7
|
-
import { a as workspaceLinkLine, o as workspaceLinks } from "./stim-desktop-
|
|
8
|
-
import { _ as PORT_INSPECTION_REMEDY, a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, f as signalProcessTree, g as reserveMetroPort, h as isMetroRunning, m as createPortProbe, u as processCwds, v as PortInspectionError } from "./metro-
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
1
|
+
import { D as ownership_claim_exports, S as process_identity_exports, a as waitForGroupExit, c as throwIfCancelled, d as workspaceProcessLockError, l as WorkspaceProcessCleanupError, o as cancellableSleep, r as groupExitBudgetMs, t as getExecutor, u as withWorkspaceProcessLock, x as withDrainingCancellation } from "./exec-aULwtNly.mjs";
|
|
2
|
+
import { S as supervisorLogFile, _ as ensureWorkspaceStorage, i as recordWorkspaceUse, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, s as updateWorkspaceStateAsync, w as workspaceAgentDeviceDir } from "./workspace-state-kIZrdlSg.mjs";
|
|
3
|
+
import { E as upsertProject, O as withConfigLockAsync$1, p as getProject, x as releaseMetroPort } from "./config-Cn94Jc0g.mjs";
|
|
4
|
+
import { _ as stepTimer, l as phaseLine } from "./command-output-C8R1KIvi.mjs";
|
|
5
|
+
import { A as metroCommandSetting, B as publicUrlSetting, G as remoteIosSetting, I as ngrokUrlSetting, J as resolveCacheProviderConfig, M as metroIdleStopMinutesSetting, N as metroPortSetting, P as metroTunnelSettingError, U as remoteAndroidSetting, Y as resolveIosProjectDir, Z as resolveProjectSettingsAsync, _ as inertSettingWarning, a as SETTING_SHAPE_REMEDY, dt as detectProviders, ft as planMetroReach, h as deviceIdleShutdownMinutesSetting, j as metroCommandSettingError, m as defaultAndroidLayout, ot as tunnelModeSetting, p as cacheProviderSettingError, q as resolveAndroidLayout, rt as settingShapeErrors, st as unknownSettingKeys, ut as PUBLIC_METRO_ENV } from "./settings-CY5JZlNN.mjs";
|
|
6
|
+
import { E as MODE_EXPO, M as readMetroTunnel, O as clearManagedMetroTunnel, S as readAppJson, T as MODE_COMMAND, c as projectProblem, i as findProjectRoot$1, t as NO_PROJECT_REFUSAL, v as detectIsExpo, w as MODE_BARE, x as readAppConfigText } from "./project-Sui52ywT.mjs";
|
|
7
|
+
import { a as workspaceLinkLine, o as workspaceLinks } from "./stim-desktop-CbWo21kb.mjs";
|
|
8
|
+
import { _ as PORT_INSPECTION_REMEDY, a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, f as signalProcessTree, g as reserveMetroPort, h as isMetroRunning, m as createPortProbe, u as processCwds, v as PortInspectionError } from "./metro-BnhXV2Mj.mjs";
|
|
9
|
+
import { a as levelRank } from "./ndjson-Dy2W4vRa.mjs";
|
|
10
|
+
import { En as runProcessOperation, In as readProjectConfig, Vn as remoteCliInvocation, b as stopOwnedMetroForReset, c as budgetGate, wn as exitAfterFlush } from "./ccache-Bm_A1xX9.mjs";
|
|
11
|
+
import { C as stopTunnel, D as withManagedTunnelLock, S as startTunnelSequence, T as withManagedRemoteWorktreeLock, w as terminateChild, x as resolveSupervisorTarget } from "./workspaces-CmOcceDN.mjs";
|
|
12
|
+
import { i as restoreLightenedDependencies } from "./lightened-DFAJgfIk.mjs";
|
|
12
13
|
import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
|
|
13
|
-
import { n as windowsLauncherArgs } from "./detached-entry-
|
|
14
|
+
import { n as windowsLauncherArgs } from "./detached-entry-BPlSaCwC.mjs";
|
|
14
15
|
import { appendFileSync, closeSync, mkdirSync, openSync, readFileSync } from "node:fs";
|
|
15
16
|
import { dirname } from "node:path";
|
|
16
17
|
import { ambientContext, ambientEnv } from "@stim-cli/core";
|
|
17
|
-
import { IDLE_STOP_KEY, queryLogs } from "@stim-cli/core/state";
|
|
18
|
+
import { IDLE_STOP_KEY, queryLogs, trace } from "@stim-cli/core/state";
|
|
18
19
|
import { join as join$1 } from "path";
|
|
19
20
|
import chalk from "chalk";
|
|
20
21
|
import { existsSync as existsSync$1, readFileSync as readFileSync$1, readdirSync as readdirSync$1 } from "fs";
|
|
@@ -293,6 +294,8 @@ function registerStart(program, overrides = {}) {
|
|
|
293
294
|
const waitSeconds = wait.seconds;
|
|
294
295
|
const root = findProjectRoot$1(process.cwd());
|
|
295
296
|
if (!root) return fail(NO_PROJECT_REFUSAL);
|
|
297
|
+
const lightened = (await runProcessOperation(root, (context) => restoreLightenedDependencies(root, context))).value;
|
|
298
|
+
if (lightened) return fail(lightened);
|
|
296
299
|
const problem = projectProblem(root, "dev-server");
|
|
297
300
|
if (problem) return fail({
|
|
298
301
|
code: "STIM_NO_PROJECT",
|
|
@@ -317,7 +320,7 @@ function registerStart(program, overrides = {}) {
|
|
|
317
320
|
lines: moreShapeErrors,
|
|
318
321
|
remedy: SETTING_SHAPE_REMEDY
|
|
319
322
|
});
|
|
320
|
-
for (const key of unknownSettingKeys(settings)) note(chalk.yellow(
|
|
323
|
+
for (const key of unknownSettingKeys(settings)) note(chalk.yellow(inertSettingWarning(settings, key)));
|
|
321
324
|
const cacheProviderError = cacheProviderSettingError(settings);
|
|
322
325
|
if (cacheProviderError) note(chalk.yellow(`Warning: ${cacheProviderError} No cache provider is used.`));
|
|
323
326
|
const { value: result, interrupted } = await runProcessOperation(root, (context) => withDrainingCancellation(context, context.signal, async () => {
|
|
@@ -1346,14 +1349,16 @@ async function reservePort(root, pinned, hostedPorts) {
|
|
|
1346
1349
|
}
|
|
1347
1350
|
}
|
|
1348
1351
|
async function waitForMetro({ root, port, seconds, aborted = () => false, probe = resolveStartupMetro }) {
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1352
|
+
return trace.spanAsync("wait for metro", async () => {
|
|
1353
|
+
const deadline = Date.now() + seconds * 1e3;
|
|
1354
|
+
while (Date.now() < deadline) {
|
|
1355
|
+
if ((await probe(port, root)).metro) return true;
|
|
1356
|
+
if (aborted()) return false;
|
|
1357
|
+
await waitForStartup(POLL_MS);
|
|
1358
|
+
}
|
|
1359
|
+
const last = await probe(port, root);
|
|
1360
|
+
return Boolean(last.metro);
|
|
1361
|
+
}, { port });
|
|
1357
1362
|
}
|
|
1358
1363
|
async function waitForExpoTunnel({ root, seconds, aborted = () => false }) {
|
|
1359
1364
|
const deadline = Date.now() + seconds * 1e3;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { D as ownership_claim_exports, S as process_identity_exports, l as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-
|
|
2
|
-
import { E as workspaceDir, d as writeWorkspaceState, k as workspaceLogsDir$1, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey } from "./workspace-state-
|
|
3
|
-
import { t as runOperationFile } from "./operation-exec-
|
|
4
|
-
import { c as pidExists } from "./metro-
|
|
1
|
+
import { D as ownership_claim_exports, S as process_identity_exports, l as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-aULwtNly.mjs";
|
|
2
|
+
import { E as workspaceDir, d as writeWorkspaceState, k as workspaceLogsDir$1, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey } from "./workspace-state-kIZrdlSg.mjs";
|
|
3
|
+
import { t as runOperationFile } from "./operation-exec-Dp4FuIGR.mjs";
|
|
4
|
+
import { c as pidExists } from "./metro-BnhXV2Mj.mjs";
|
|
5
5
|
import { readFileSync, readlinkSync, rmSync } from "node:fs";
|
|
6
6
|
import { hostname } from "node:os";
|
|
7
7
|
import { join } from "node:path";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as process_identity_exports } from "./exec-
|
|
2
|
-
import { E as workspaceDir, k as workspaceLogsDir$1, o as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-
|
|
1
|
+
import { S as process_identity_exports } from "./exec-aULwtNly.mjs";
|
|
2
|
+
import { E as workspaceDir, k as workspaceLogsDir$1, o as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-kIZrdlSg.mjs";
|
|
3
3
|
import { existsSync } from "node:fs";
|
|
4
4
|
import { join } from "node:path";
|
|
5
5
|
import { readMacosRecord } from "@stim-cli/core/state";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { P as formatBytes } from "./config-
|
|
2
|
-
import { o as formatLongDuration } from "./command-output-
|
|
3
|
-
import { i as findProjectRoot$1 } from "./project-
|
|
4
|
-
import { i as getSwiftpmCacheUsage, n as swiftpmCacheLines, r as getAgentDeviceUsage, t as agentDeviceLines } from "./agent-device-usage-output-
|
|
5
|
-
import { t as readProjectStats } from "./stats-report-
|
|
1
|
+
import { P as formatBytes } from "./config-Cn94Jc0g.mjs";
|
|
2
|
+
import { o as formatLongDuration } from "./command-output-C8R1KIvi.mjs";
|
|
3
|
+
import { i as findProjectRoot$1 } from "./project-Sui52ywT.mjs";
|
|
4
|
+
import { i as getSwiftpmCacheUsage, n as swiftpmCacheLines, r as getAgentDeviceUsage, t as agentDeviceLines } from "./agent-device-usage-output-tE90fDdo.mjs";
|
|
5
|
+
import { t as readProjectStats } from "./stats-report-B86Cv7Uc.mjs";
|
|
6
6
|
import { archivedUsage, readArchives } from "@stim-cli/core/state";
|
|
7
7
|
import chalk from "chalk";
|
|
8
8
|
//#region src/commands/stats.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as gitPath } from "./operation-exec-
|
|
1
|
+
import { i as gitPath } from "./operation-exec-Dp4FuIGR.mjs";
|
|
2
2
|
import { readStatsReport, statsProjectKey } from "@stim-cli/core/state";
|
|
3
3
|
//#region src/engine/stats-report.ts
|
|
4
4
|
/** The stats report for the project at `root`, keyed like the run recorders; Git runs with `env` and dies when `signal` aborts. */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as formatBytes } from "./config-
|
|
1
|
+
import { P as formatBytes } from "./config-Cn94Jc0g.mjs";
|
|
2
2
|
import { t as resolveMaintenanceSettings } from "./settings-Djl-mpjX.mjs";
|
|
3
3
|
import { claimRemoveCommand, readClaimSet } from "@stim-cli/core/ownership-claim";
|
|
4
4
|
import { maintenanceRunClaims, readMaintenanceState } from "@stim-cli/core/state";
|
|
@@ -1,34 +1,35 @@
|
|
|
1
|
-
import { S as process_identity_exports, t as getExecutor } from "./exec-
|
|
2
|
-
import { O as workspaceLogErrorIndex, k as workspaceLogsDir$1, r as readWorkspaceState$1 } from "./workspace-state-
|
|
3
|
-
import { G as projectDeviceSlots, P as formatBytes, R as volumeRootFor, U as parseDeviceSlotKey, V as deviceSlotKey, _ as loadConfig$1, d as getConfigDir } from "./config-
|
|
4
|
-
import { a as formatElapsed, i as formatDuration, r as clockTime, u as plural } from "./command-output-
|
|
5
|
-
import { s as gitAsync } from "./operation-exec-
|
|
6
|
-
import {
|
|
7
|
-
import { I as readWorkspaceLaunches, M as readMetroTunnel, P as readRemoteSession, S as readAppJson, a as findServerWorkspace, l as projectShortcut, u as detectPlatforms, v as detectIsExpo, y as detectTutorial } from "./project-
|
|
8
|
-
import { A as listAdbDevices, B as ownedAvdDeviceProfile, W as ownedAvdSerialResolver, ft as POOL_SETTING_REMEDY, vt as parkedMaxSetting, yt as readParked } from "./android-
|
|
9
|
-
import { c as pidExists, d as resolveProjectMetro, h as isMetroRunning, i as listeningPids, l as processCwd, o as listeningPidsByPort, u as processCwds } from "./metro-
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import { a as createDeviceProcessTables, b as leaseIsExpired, h as tailLines, m as readWebActivity, r as createActivityReader, w as parseWorkspaceLeases, x as listLeaseFiles } from "./activity-
|
|
16
|
-
import { b as parseSimctlList, f as listAllIosSimsAsync } from "./ios-
|
|
17
|
-
import {
|
|
18
|
-
import "./hosted-macos-
|
|
19
|
-
import { i as readSupervisorState } from "./stop-
|
|
20
|
-
import { n as
|
|
21
|
-
import {
|
|
22
|
-
import { r as
|
|
23
|
-
import {
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
1
|
+
import { S as process_identity_exports, t as getExecutor } from "./exec-aULwtNly.mjs";
|
|
2
|
+
import { O as workspaceLogErrorIndex, k as workspaceLogsDir$1, r as readWorkspaceState$1 } from "./workspace-state-kIZrdlSg.mjs";
|
|
3
|
+
import { G as projectDeviceSlots, P as formatBytes, R as volumeRootFor, U as parseDeviceSlotKey, V as deviceSlotKey, _ as loadConfig$1, d as getConfigDir, u as getConcurrencyLimits } from "./config-Cn94Jc0g.mjs";
|
|
4
|
+
import { a as formatElapsed, i as formatDuration, r as clockTime, u as plural } from "./command-output-C8R1KIvi.mjs";
|
|
5
|
+
import { s as gitAsync } from "./operation-exec-Dp4FuIGR.mjs";
|
|
6
|
+
import { Bt as repoRoot, Ct as gitCommonDirOnDisk, Ot as linkedWorktreesOnDisk, Q as resolveSettings, lt as workspaceHiddenSetting, xt as gitCommonDir } from "./settings-CY5JZlNN.mjs";
|
|
7
|
+
import { I as readWorkspaceLaunches, M as readMetroTunnel, P as readRemoteSession, S as readAppJson, a as findServerWorkspace, l as projectShortcut, u as detectPlatforms, v as detectIsExpo, y as detectTutorial } from "./project-Sui52ywT.mjs";
|
|
8
|
+
import { A as listAdbDevices, B as ownedAvdDeviceProfile, W as ownedAvdSerialResolver, ft as POOL_SETTING_REMEDY, j as listAdbDevicesAsync, vt as parkedMaxSetting, yt as readParked } from "./android-CsPs-7Mg.mjs";
|
|
9
|
+
import { c as pidExists, d as resolveProjectMetro, h as isMetroRunning, i as listeningPids, l as processCwd, o as listeningPidsByPort, u as processCwds } from "./metro-BnhXV2Mj.mjs";
|
|
10
|
+
import { o as parseNdjsonLine } from "./ndjson-Dy2W4vRa.mjs";
|
|
11
|
+
import { E as metroLastStop, S as describeMetroLastStop, cn as hasMetroReverse, cr as attributeMachineUsage, lr as readFootprints, p as machineNumber } from "./ccache-Bm_A1xX9.mjs";
|
|
12
|
+
import { a as readWebPage, o as readWebRecord, u as webFacts } from "./state-B2QJbDwz.mjs";
|
|
13
|
+
import { A as poolLine, C as diskLine, D as loadLine, E as gitSummaryText, F as tightVolumes, I as unprovisionedWorktrees, L as withWebFacts, M as remoteDeviceState, N as slotUsageLines, O as metroReverseTargets, P as statusActivity, S as deviceLeaseStates, _ as addReverseMissingIssue, b as capacityLoad, g as activityLabel, j as remoteDeviceLine, k as parseDfFree, r as readEasSessionLedger$1, v as applyMachineMemory, w as environmentState, x as deviceLeaseLines, y as capacity } from "./eas-session-ledger-CBFo_Uo1.mjs";
|
|
14
|
+
import { Ct as buildSlotUsage, G as buildStatusLine, J as parseActiveBuild, K as bundlingActivity, U as activeBuildState, V as ACTIVE_BUILD_KEY, W as buildReport, at as readStats$1, lt as statsProjectKey$1, x as resolveSupervisorTarget } from "./workspaces-CmOcceDN.mjs";
|
|
15
|
+
import { a as createDeviceProcessTables, b as leaseIsExpired, h as tailLines, m as readWebActivity, r as createActivityReader, w as parseWorkspaceLeases, x as listLeaseFiles } from "./activity-DRMg4_mD.mjs";
|
|
16
|
+
import { b as parseSimctlList, f as listAllIosSimsAsync } from "./ios-B1DYuOjh.mjs";
|
|
17
|
+
import { p as probeHostedSession } from "./hosted-client-DDRm9hPJ.mjs";
|
|
18
|
+
import "./hosted-macos-B7-8Pv4H.mjs";
|
|
19
|
+
import { i as readSupervisorState } from "./stop-D-dGE9gh.mjs";
|
|
20
|
+
import { l as applyStatusMeasures, n as workspacePhase, s as mergeState, u as createStatusMeasurer } from "./warm-progress-B0Vpuvpl.mjs";
|
|
21
|
+
import { r as workspaceRecordingEnabled } from "./recordings-iy0mkm7b.mjs";
|
|
22
|
+
import { n as maintenanceLines, r as maintenanceStatus } from "./status-7ULDEJ1e.mjs";
|
|
23
|
+
import { s as deviceSlotUsage } from "./device-capacity-Cd8lMSn3.mjs";
|
|
24
|
+
import { d as readIosDevices, s as isReachable } from "./ios-device-B4elVFKi.mjs";
|
|
25
|
+
import { t as triggerMaintenance } from "./trigger-DMou-X7j.mjs";
|
|
26
|
+
import { a as createRefreshScheduler, c as watchStatusSources, n as WATCH_LIGHT_INTERVAL_MS, o as watchChangeKey, r as WATCH_MACHINE_INTERVAL_MS, s as watchPayload, t as WATCH_FALLBACK_MS } from "./status-watch-BmsPqYSU.mjs";
|
|
26
27
|
import { t as watchStdoutReader } from "./stdout-reader-C8yjre1x.mjs";
|
|
27
28
|
import { createHash, randomUUID } from "node:crypto";
|
|
28
29
|
import { mkdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
29
30
|
import { join, posix, resolve } from "node:path";
|
|
30
31
|
import { rotatedLogPath } from "@stim-cli/core";
|
|
31
|
-
import { DEVICE_RECLAIM_REASON, ERROR_SOURCES, archiveRoot, archivedUsage, bundleMarkerPlatform, countErrorEntries, gitMergeCacheDir, hostedAndroidPlacements, hostedAndroidRecords, hostedAndroidStatus, hostedIosPlacements, hostedIosRecords, hostedIosStatus, linkReplacedArchives, logFiles, macosAppState, parseHostedAndroidPlacement, parseHostedIosPlacement, queryLogs, readArchives, readBuildDetail, readBuildHistory, readDeviceIdleShutdowns, readDevicePlacement, readIdleStop, readLastBuilds, readMacosRecord, recordMatches, sortByTs, unreadableHostedAndroid, unreadableHostedIos, withDerivedFacts, withGitChip, withStateReadCache } from "@stim-cli/core/state";
|
|
32
|
+
import { DEVICE_RECLAIM_REASON, ERROR_SOURCES, archiveRoot, archivedUsage, bundleMarkerPlatform, countErrorEntries, gitMergeCacheDir, hostedAndroidPlacements, hostedAndroidRecords, hostedAndroidStatus, hostedIosPlacements, hostedIosRecords, hostedIosStatus, linkReplacedArchives, loadPerCore, logFiles, macosAppState, maxLoadPerCore, parseHostedAndroidPlacement, parseHostedIosPlacement, queryLogs, readArchives, readBuildDetail, readBuildHistory, readDeviceIdleShutdowns, readDevicePlacement, readIdleStop, readLastBuilds, readMacosRecord, recordMatches, sortByTs, unreadableHostedAndroid, unreadableHostedIos, withDerivedFacts, withGitChip, withStateReadCache } from "@stim-cli/core/state";
|
|
32
33
|
import { basename as basename$1, dirname as dirname$1, join as join$1 } from "path";
|
|
33
34
|
import chalk from "chalk";
|
|
34
35
|
import { closeSync as closeSync$1, existsSync as existsSync$1, fstatSync as fstatSync$1, openSync as openSync$1, readFileSync as readFileSync$1, readSync as readSync$1, renameSync as renameSync$1, rmSync as rmSync$1, statSync as statSync$1, writeFileSync as writeFileSync$1 } from "fs";
|
|
@@ -880,10 +881,12 @@ async function readStatusFacts(probes, gitScope, cwd) {
|
|
|
880
881
|
const simsByUdid = {};
|
|
881
882
|
let simsAvailable = true;
|
|
882
883
|
let simctlError = null;
|
|
884
|
+
let simctlFailure = null;
|
|
883
885
|
try {
|
|
884
886
|
for (const sim of await simsRead) simsByUdid[sim.udid] = sim;
|
|
885
887
|
} catch (e) {
|
|
886
888
|
simsAvailable = false;
|
|
889
|
+
simctlFailure = e;
|
|
887
890
|
simctlError = String(e?.message || e).split("\n")[0] ?? "";
|
|
888
891
|
}
|
|
889
892
|
const running = await processes;
|
|
@@ -1034,6 +1037,17 @@ async function readStatusFacts(probes, gitScope, cwd) {
|
|
|
1034
1037
|
busy: sims.some((sim) => sim.state === "Booted"),
|
|
1035
1038
|
probes
|
|
1036
1039
|
});
|
|
1040
|
+
const { maxBuilds, maxDevices } = getConcurrencyLimits();
|
|
1041
|
+
const slotUsage = {
|
|
1042
|
+
...maxBuilds > 0 ? { builds: buildSlotUsage(maxBuilds) } : {},
|
|
1043
|
+
...maxDevices > 0 ? { devices: await deviceSlotUsage(maxDevices, {
|
|
1044
|
+
config: cfg,
|
|
1045
|
+
sims: process.platform !== "darwin" ? [] : simsAvailable ? sims : () => {
|
|
1046
|
+
throw simctlFailure;
|
|
1047
|
+
},
|
|
1048
|
+
adb: () => listAdbDevicesAsync({ timeoutMs: PHYSICAL_DEVICE_LIST_TIMEOUT_MS })
|
|
1049
|
+
}) } : {}
|
|
1050
|
+
};
|
|
1037
1051
|
const archives = probes.archives();
|
|
1038
1052
|
const maxCount = machineNumber("archive.maxCount", cfg, process.env);
|
|
1039
1053
|
return {
|
|
@@ -1051,6 +1065,7 @@ async function readStatusFacts(probes, gitScope, cwd) {
|
|
|
1051
1065
|
cwdRoot,
|
|
1052
1066
|
tables,
|
|
1053
1067
|
machine,
|
|
1068
|
+
slotUsage,
|
|
1054
1069
|
roots,
|
|
1055
1070
|
simNames,
|
|
1056
1071
|
probes,
|
|
@@ -1431,10 +1446,14 @@ function statusCommand(program) {
|
|
|
1431
1446
|
for (const line of renderStatus(await readStatus(), json)) console.log(line);
|
|
1432
1447
|
});
|
|
1433
1448
|
}
|
|
1434
|
-
function renderStatus({ archived, archivedUsage: usage, projects, states, labelOnlyRoots, leases, leaseNow, orphanWorktrees, simsAvailable, simctlError, cwdRoot, machine }, json, settle = (payload) => payload, cwd = process.cwd()) {
|
|
1449
|
+
function renderStatus({ archived, archivedUsage: usage, projects, states, labelOnlyRoots, leases, leaseNow, orphanWorktrees, simsAvailable, simctlError, cwdRoot, machine, slotUsage }, json, settle = (payload) => payload, cwd = process.cwd()) {
|
|
1435
1450
|
const out = [];
|
|
1436
1451
|
const totalMemoryMb = Math.round(totalmem() / 1048576);
|
|
1437
|
-
const cap =
|
|
1452
|
+
const cap = {
|
|
1453
|
+
...capacity(states, totalMemoryMb),
|
|
1454
|
+
...slotUsage,
|
|
1455
|
+
load: capacityLoad(loadPerCore(), maxLoadPerCore(), null)
|
|
1456
|
+
};
|
|
1438
1457
|
const pools = ["ios", "android"].map((platform) => {
|
|
1439
1458
|
const { max, error } = parkedMaxSetting(platform);
|
|
1440
1459
|
return {
|
|
@@ -1474,6 +1493,8 @@ function renderStatus({ archived, archivedUsage: usage, projects, states, labelO
|
|
|
1474
1493
|
if (pool.line) out.push(chalk.dim(pool.line));
|
|
1475
1494
|
}
|
|
1476
1495
|
for (const line of deviceLeaseLines(leases, leaseNow)) out.push(line);
|
|
1496
|
+
out.push(chalk.dim(loadLine(cap.load)));
|
|
1497
|
+
for (const line of slotUsageLines(cap)) out.push(chalk.dim(line));
|
|
1477
1498
|
return out;
|
|
1478
1499
|
}
|
|
1479
1500
|
if (!simsAvailable) out.push(chalk.yellow(`simctl could not be read (${simctlError}), so no iOS sim below could be checked.`));
|
|
@@ -1552,6 +1573,8 @@ function renderStatus({ archived, archivedUsage: usage, projects, states, labelO
|
|
|
1552
1573
|
for (const w of orphanWorktrees) out.push(chalk.dim(` ${orphanWorktreeLine(w)}`));
|
|
1553
1574
|
}
|
|
1554
1575
|
out.push(chalk.dim(machine?.memorySource === "footprint" ? `\n${cap.liveCount} active environment(s) use ${formatGb(cap.committedMb)} of ${formatGb(cap.totalMemoryMb)}.` : `\n${cap.liveCount} active environment(s), roughly ${formatGb(cap.committedMb)} of ${formatGb(cap.totalMemoryMb)} committed.`));
|
|
1576
|
+
out.push(chalk.dim(loadLine(cap.load)));
|
|
1577
|
+
for (const line of slotUsageLines(cap)) out.push(chalk.dim(line));
|
|
1555
1578
|
const volumes = readVolumes(cwdRoot || cwd);
|
|
1556
1579
|
const line = diskLine(volumes);
|
|
1557
1580
|
if (line) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as runStatusWatch, r as statusCommand, t as readVolumes } from "./status-
|
|
1
|
+
import { n as runStatusWatch, r as statusCommand, t as readVolumes } from "./status-BHCkOZga.mjs";
|
|
2
2
|
export { statusCommand as default, readVolumes, runStatusWatch };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as getExecutor } from "./exec-
|
|
2
|
-
import { d as androidToolPath } from "./android-
|
|
3
|
-
import { c as pidExists } from "./metro-
|
|
4
|
-
import { n as easMachineStateRoot } from "./eas-session-ledger-
|
|
5
|
-
import { b as parseSimctlList } from "./ios-
|
|
1
|
+
import { t as getExecutor } from "./exec-aULwtNly.mjs";
|
|
2
|
+
import { d as androidToolPath } from "./android-CsPs-7Mg.mjs";
|
|
3
|
+
import { c as pidExists } from "./metro-BnhXV2Mj.mjs";
|
|
4
|
+
import { n as easMachineStateRoot } from "./eas-session-ledger-CBFo_Uo1.mjs";
|
|
5
|
+
import { b as parseSimctlList } from "./ios-B1DYuOjh.mjs";
|
|
6
6
|
import { existsSync, readdirSync, statSync, watch } from "node:fs";
|
|
7
7
|
import { basename, dirname, join } from "node:path";
|
|
8
8
|
//#region src/status-watch.ts
|
|
@@ -417,9 +417,13 @@ function ownerKey(owner) {
|
|
|
417
417
|
function ownerSteady(before, after) {
|
|
418
418
|
return Math.abs(after.cpuPercent - before.cpuPercent) < 5 && Math.abs(after.memoryMb - before.memoryMb) < 16;
|
|
419
419
|
}
|
|
420
|
+
function loadSteady(before, after) {
|
|
421
|
+
return before.state === after.state && before.limit === after.limit && before.busyAt === after.busyAt && before.cpus === after.cpus && Math.abs(Math.round((after.loadPerCore - before.loadPerCore) * 10)) < 10;
|
|
422
|
+
}
|
|
420
423
|
/**
|
|
421
424
|
* The payload `status --watch --json` prints. A usage figure keeps its value from the `previous` printed payload until it moves by a step: an owner's `cpuPercent`
|
|
422
|
-
* and `memoryMb`, an environment's `memoryMb` and `capacity.
|
|
425
|
+
* and `memoryMb`, an environment's `memoryMb`, `capacity.committedMb`, and `capacity.load` while its `state`, `limit`,
|
|
426
|
+
* `busyAt` and `cpus` stay the same and its `loadPerCore` moves less than a step. An owner's row is kept whole, `residentMb`
|
|
423
427
|
* and `processes` included, until one of its two figures moves, so a machine whose processes only jitter prints no new line.
|
|
424
428
|
*/
|
|
425
429
|
function watchPayload(previous, next) {
|
|
@@ -444,7 +448,14 @@ function watchPayload(previous, next) {
|
|
|
444
448
|
} : env;
|
|
445
449
|
});
|
|
446
450
|
const { capacity } = previous;
|
|
447
|
-
if (capacity.overCapacity === next.capacity.overCapacity && capacity.liveCount === next.capacity.liveCount && capacity.totalMemoryMb === next.capacity.totalMemoryMb && Math.abs(next.capacity.committedMb - capacity.committedMb) < 16) payload.capacity =
|
|
451
|
+
if (capacity.overCapacity === next.capacity.overCapacity && capacity.liveCount === next.capacity.liveCount && capacity.totalMemoryMb === next.capacity.totalMemoryMb && Math.abs(next.capacity.committedMb - capacity.committedMb) < 16) payload.capacity = {
|
|
452
|
+
...payload.capacity,
|
|
453
|
+
committedMb: capacity.committedMb
|
|
454
|
+
};
|
|
455
|
+
if (capacity.load && next.capacity.load && loadSteady(capacity.load, next.capacity.load)) payload.capacity = {
|
|
456
|
+
...payload.capacity,
|
|
457
|
+
load: capacity.load
|
|
458
|
+
};
|
|
448
459
|
return payload;
|
|
449
460
|
}
|
|
450
461
|
const holdPullRequest = (worktree) => worktree.pullRequest ? {
|
package/dist/status-worker.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as getExecutor } from "./exec-
|
|
2
|
-
import { C as saveConfig, c as ensureConfig } from "./config-
|
|
1
|
+
import { t as getExecutor } from "./exec-aULwtNly.mjs";
|
|
2
|
+
import { C as saveConfig, c as ensureConfig } from "./config-Cn94Jc0g.mjs";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { workspaceId } from "@stim-cli/core";
|
|
5
5
|
import { readHomeIdentity, withConfigLockAsync } from "@stim-cli/core/state";
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import { D as ownership_claim_exports, E as debugLog, S as process_identity_exports, l as WorkspaceProcessCleanupError, u as withWorkspaceProcessLock } from "./exec-
|
|
2
|
-
import { E as workspaceDir, c as withWorkspaceStateLock, d as writeWorkspaceState, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-
|
|
3
|
-
import { E as upsertProject, G as projectDeviceSlots, H as deviceSlotPlatforms, O as withConfigLockAsync$1, U as parseDeviceSlotKey, W as parseDeviceSlotOption, o as clearSupervisor, p as getProject, q as validateDeviceSlot } from "./config-
|
|
4
|
-
import { f as refuseNoProject, l as phaseLine, p as releasedLeaseFact, u as plural } from "./command-output-
|
|
5
|
-
import { A as clearWorkspaceLaunches, M as readMetroTunnel, O as clearManagedMetroTunnel, P as readRemoteSession, T as MODE_COMMAND, j as clearWorkspaceSupervisor, k as clearRemoteSession, n as findCommandWorkspace } from "./project-
|
|
6
|
-
import { t as macosAppPresent } from "./state-
|
|
7
|
-
import { et as removeOwnedEmulatorMetroReverses } from "./android-
|
|
8
|
-
import { a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, h as isMetroRunning, p as signalProcessTreeAsync, r as killMetroTreeAsync, u as processCwds } from "./metro-
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { O as releaseWorkspaceLeasesAsync, y as fileLeaseIo } from "./activity-
|
|
13
|
-
import { i as stopHostedAndroid } from "./hosted-android-
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { n as verifyCollectorOwnership } from "./ownership-
|
|
17
|
-
import { n as removePhoneReverses } from "./phone-reverses-lmj6kcPm.mjs";
|
|
1
|
+
import { D as ownership_claim_exports, E as debugLog, S as process_identity_exports, l as WorkspaceProcessCleanupError, u as withWorkspaceProcessLock } from "./exec-aULwtNly.mjs";
|
|
2
|
+
import { E as workspaceDir, c as withWorkspaceStateLock, d as writeWorkspaceState, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, s as updateWorkspaceStateAsync } from "./workspace-state-kIZrdlSg.mjs";
|
|
3
|
+
import { E as upsertProject, G as projectDeviceSlots, H as deviceSlotPlatforms, O as withConfigLockAsync$1, U as parseDeviceSlotKey, W as parseDeviceSlotOption, o as clearSupervisor, p as getProject, q as validateDeviceSlot } from "./config-Cn94Jc0g.mjs";
|
|
4
|
+
import { f as refuseNoProject, l as phaseLine, p as releasedLeaseFact, u as plural } from "./command-output-C8R1KIvi.mjs";
|
|
5
|
+
import { A as clearWorkspaceLaunches, M as readMetroTunnel, O as clearManagedMetroTunnel, P as readRemoteSession, T as MODE_COMMAND, j as clearWorkspaceSupervisor, k as clearRemoteSession, n as findCommandWorkspace } from "./project-Sui52ywT.mjs";
|
|
6
|
+
import { t as macosAppPresent } from "./state-BXC1Lfxw.mjs";
|
|
7
|
+
import { et as removeOwnedEmulatorMetroReverses } from "./android-CsPs-7Mg.mjs";
|
|
8
|
+
import { a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, h as isMetroRunning, p as signalProcessTreeAsync, r as killMetroTreeAsync, u as processCwds } from "./metro-BnhXV2Mj.mjs";
|
|
9
|
+
import { D as requestDevServerStop, Ln as resolveEasCliBin, Ot as endRecordedSession, T as logVanishedSupervisor, k as withdrawDevServerStopRequest } from "./ccache-Bm_A1xX9.mjs";
|
|
10
|
+
import { C as stopTunnel, ht as teardownOwnedIosSim, mt as teardownOwnedBrowser, pt as teardownOwnedAvd, x as resolveSupervisorTarget } from "./workspaces-CmOcceDN.mjs";
|
|
11
|
+
import { $ as clearNativeRunCancel, X as NATIVE_RUN_LOCK, Z as NATIVE_RUN_WAIT_MS, et as decideStopAction, it as requestNativeRunCancel, nt as nativeRunHolder, rt as nativeRunWaitNotice, tt as describeNativeRunHolder } from "./toolchain-mLA_km-b.mjs";
|
|
12
|
+
import { O as releaseWorkspaceLeasesAsync, y as fileLeaseIo } from "./activity-DRMg4_mD.mjs";
|
|
13
|
+
import { i as stopHostedAndroid } from "./hosted-android-DlaKLbW0.mjs";
|
|
14
|
+
import { a as stopHostedIos, n as removePhoneReverses } from "./phone-reverses-BzTa8g1F.mjs";
|
|
15
|
+
import { r as stopMacosApp } from "./stop-DQvE-P76.mjs";
|
|
16
|
+
import { n as verifyCollectorOwnership } from "./ownership-DJCq48IJ.mjs";
|
|
18
17
|
import { hostedAndroidDeviceName, hostedAndroidRecords, hostedIosRecords, hostedNativeRecords, isJsonObject, parseHostedNativePlacement } from "@stim-cli/core/state";
|
|
19
18
|
import chalk from "chalk";
|
|
20
19
|
//#region src/commands/stop.ts
|
|
@@ -218,7 +217,8 @@ async function stopBrowserOnly({ root, project = void 0, teardownBrowser = (proj
|
|
|
218
217
|
summary: summarize(root, outcomes, ok)
|
|
219
218
|
};
|
|
220
219
|
}
|
|
221
|
-
async function stopWorkspaceHostedNative(root, slot, report, failed) {
|
|
220
|
+
async function stopWorkspaceHostedNative(root, slot, report, failed, operation) {
|
|
221
|
+
const signal = operation?.signal;
|
|
222
222
|
const devices = {};
|
|
223
223
|
let anyFailed = false;
|
|
224
224
|
for (const platform of ["ios", "android"]) for (const [name, record] of Object.entries(hostedNativeRecords(readWorkspaceState$1(root), platform))) {
|
|
@@ -226,13 +226,14 @@ async function stopWorkspaceHostedNative(root, slot, report, failed) {
|
|
|
226
226
|
const placement = parseHostedNativePlacement(record, platform);
|
|
227
227
|
const label = placement ? `${placement.device ? "udid" in placement.device ? placement.device.name : hostedAndroidDeviceName(placement.device) : `${platform} device`} on ${placement.machine}` : `hosted ${platform === "ios" ? "iOS simulator" : "Android emulator"} for slot ${name}`;
|
|
228
228
|
try {
|
|
229
|
-
await (platform === "ios" ? stopHostedIos : stopHostedAndroid)(root, name);
|
|
229
|
+
await (platform === "ios" ? stopHostedIos : stopHostedAndroid)(root, name, signal);
|
|
230
230
|
devices[`${platform}:host:${name}`] = {
|
|
231
231
|
status: "shut-down",
|
|
232
232
|
label
|
|
233
233
|
};
|
|
234
234
|
report(chalk.dim(phaseLine("device", `stopped ${label}`)));
|
|
235
235
|
} catch (error) {
|
|
236
|
+
signal?.throwIfAborted();
|
|
236
237
|
const reason = error.message;
|
|
237
238
|
devices[`${platform}:host:${name}`] = {
|
|
238
239
|
status: "failed",
|
|
@@ -478,7 +479,7 @@ async function stopWorkspace({ root, operation, project = void 0, state = void 0
|
|
|
478
479
|
}, stopMacos);
|
|
479
480
|
const hosted = await stopWorkspaceHostedNative(root, hostedSlot, report, () => {
|
|
480
481
|
ok = false;
|
|
481
|
-
});
|
|
482
|
+
}, operation);
|
|
482
483
|
Object.assign(outcomes.device, hosted.devices);
|
|
483
484
|
await updateWorkspaceStateAsync(root, (workspace) => {
|
|
484
485
|
const slots = isJsonObject(workspace.deviceSlots) ? workspace.deviceSlots : {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { D as ownership_claim_exports, S as process_identity_exports, u as withWorkspaceProcessLock } from "./exec-
|
|
2
|
-
import { E as workspaceDir, d as writeWorkspaceState, l as withWorkspaceStateLockAsync } from "./workspace-state-
|
|
3
|
-
import { a as macosRuntimeClaim, o as requiredMacosRecord } from "./state-
|
|
4
|
-
import {
|
|
5
|
-
import { n as stopHostedMacos } from "./hosted-macos-
|
|
1
|
+
import { D as ownership_claim_exports, S as process_identity_exports, u as withWorkspaceProcessLock } from "./exec-aULwtNly.mjs";
|
|
2
|
+
import { E as workspaceDir, d as writeWorkspaceState, l as withWorkspaceStateLockAsync } from "./workspace-state-kIZrdlSg.mjs";
|
|
3
|
+
import { a as macosRuntimeClaim, o as requiredMacosRecord } from "./state-BXC1Lfxw.mjs";
|
|
4
|
+
import { A as runningBundleInstancesAsync, j as runningInstancesInAsync, k as hostedBundleDirs } from "./workspaces-CmOcceDN.mjs";
|
|
5
|
+
import { n as stopHostedMacos } from "./hosted-macos-B7-8Pv4H.mjs";
|
|
6
6
|
import { readMacosRecord } from "@stim-cli/core/state";
|
|
7
7
|
//#region src/macos/stop.ts
|
|
8
8
|
const APP_EXIT_MS = 5e3;
|
|
@@ -40,6 +40,10 @@ async function stopBundleInstances(root, operation) {
|
|
|
40
40
|
await stopProcesses(instances, void 0, operation);
|
|
41
41
|
return instances.length > 0;
|
|
42
42
|
}
|
|
43
|
+
/** Stops every running copy of a hosted session's app bundles, including copies LaunchServices started from an earlier attempt. */
|
|
44
|
+
async function stopHostedBundleInstances(area, operation) {
|
|
45
|
+
await stopProcesses(await runningInstancesInAsync(hostedBundleDirs(area), operation), void 0, operation);
|
|
46
|
+
}
|
|
43
47
|
async function stopMacosAppHeld(root, operation) {
|
|
44
48
|
operation?.signal.throwIfAborted();
|
|
45
49
|
const record = requiredMacosRecord(root);
|
|
@@ -78,4 +82,4 @@ function stopMacosApp(root, operation) {
|
|
|
78
82
|
});
|
|
79
83
|
}
|
|
80
84
|
//#endregion
|
|
81
|
-
export {
|
|
85
|
+
export { stopMacosAppHeld as i, stopHostedBundleInstances as n, stopMacosApp as r, stopBundleInstances as t };
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as resolveCollectorTargets, c as stopWorkspaceNow, i as readSupervisorState, n as clearSupervisorState, o as runStop, r as readCollectorState, s as stopCommand, t as clearCollectorState } from "./stop-
|
|
1
|
+
import { x as resolveSupervisorTarget } from "./workspaces-CmOcceDN.mjs";
|
|
2
|
+
import { a as resolveCollectorTargets, c as stopWorkspaceNow, i as readSupervisorState, n as clearSupervisorState, o as runStop, r as readCollectorState, s as stopCommand, t as clearCollectorState } from "./stop-D-dGE9gh.mjs";
|
|
3
3
|
export { clearCollectorState, clearSupervisorState, stopCommand as default, readCollectorState, readSupervisorState, resolveCollectorTargets, resolveSupervisorTarget, runStop, stopWorkspaceNow };
|