stim 1.10.1 → 1.11.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/{build-progress-BXx-ZBe4.mjs → activity-BtG4Va9l.mjs} +8 -182
- package/dist/{android-DPov-fv2.mjs → android-BA2i_KAV.mjs} +1 -1
- package/dist/{android-Bu4mbDzc.mjs → android-C1q4l523.mjs} +376 -99
- package/dist/{android-787HhP5w.mjs → android-C4zG2Tuc.mjs} +63 -18
- package/dist/{android-cas-CITmIeWY.mjs → android-cas-DfJkwCXW.mjs} +3 -3
- package/dist/{app-install-Cfmqr3TQ.mjs → app-install-DHut6JnV.mjs} +1 -1
- package/dist/{budget-nDCEwtJv.mjs → budget-De3P2rq_.mjs} +9 -9
- package/dist/{dev-client-DExzPiOa.mjs → build-plan-CeAYgKAx.mjs} +415 -24
- package/dist/build-progress-CDwogz6R.mjs +179 -0
- package/dist/cli.mjs +14 -14
- package/dist/collector-run.mjs +1 -1
- package/dist/{deps-DP4eWqea.mjs → deps-OF7CD5Dx.mjs} +2 -2
- package/dist/{device-Czh5kO8A.mjs → device-BwH2iI3O.mjs} +47 -9
- package/dist/{device-lease-CbEaIk7b.mjs → device-lease-D83nqeMX.mjs} +51 -51
- package/dist/{device-pool-BBWLAr55.mjs → device-pool-DHj7cdPy.mjs} +2 -2
- package/dist/{device-remote-powUHdbK.mjs → device-remote-BQZSnnmE.mjs} +7 -7
- package/dist/{doctor-CmqK1LcQ.mjs → doctor-D8QdMRMf.mjs} +12 -12
- package/dist/{error-diagnostics-xxWKNO3-.mjs → error-diagnostics-UYFSQwRy.mjs} +3 -3
- package/dist/{gc-zCDpmdHU.mjs → gc-COZteyiq.mjs} +27 -253
- package/dist/{guide-DwmaD_Wa.mjs → guide-NDvTmMi-.mjs} +336 -48
- package/dist/{idle--jn7pBNe.mjs → idle-NETbeNiQ.mjs} +4 -3
- package/dist/{in-use-CNIWU-r-.mjs → in-use-DVhlSoyn.mjs} +4 -4
- package/dist/{ios-CbdqTqOc.mjs → ios-CQLKpNfr.mjs} +294 -81
- package/dist/{ios-COGcGEcN.mjs → ios-DArbmwer.mjs} +2 -1
- package/dist/{ios-device-DNjPXBnb.mjs → ios-device-CwDZo0X4.mjs} +1 -1
- package/dist/{launch-verify-BhgkYAws.mjs → launch-verify-CuPDGXdr.mjs} +1 -1
- package/dist/logs-B44a1UeU.mjs +485 -0
- package/dist/merge-state-DDxS-XIZ.mjs +232 -0
- package/dist/{named-ports-DiTfSz6p.mjs → named-ports-Dc7neAlc.mjs} +1 -1
- package/dist/native-run-D7yB_AsB.mjs +143 -0
- package/dist/{ownership-BfPNRf3-.mjs → ownership-BiojdtAp.mjs} +3 -3
- package/dist/{ports-CLSSFOuz.mjs → ports-DwBaRFJs.mjs} +1 -1
- package/dist/{reload-CymyF6Kk.mjs → reload-By9Dwsrt.mjs} +4 -4
- package/dist/{server-bare-DVbb7kXH.mjs → server-bare-D_RK1RCj.mjs} +1 -1
- package/dist/server-expo-B-CCUJZj.mjs +2 -0
- package/dist/{server-expo-BvOCeakp.mjs → server-expo-o6H5gcBc.mjs} +1 -1
- package/dist/{settings-DOugPlPz.mjs → settings-B5oFZEri.mjs} +12 -3
- package/dist/{settings-EWYNwe72.mjs → settings-C0ugALSC.mjs} +1 -1
- package/dist/settings.schema.json +52 -0
- package/dist/{simslim-DZUxzsjq.mjs → simslim-CIR3IYJO.mjs} +150 -95
- package/dist/{slot-launch-Dk4oTREM.mjs → slot-launch-rggO1Esw.mjs} +2 -2
- package/dist/{spawn-claims-CUleC2cM.mjs → spawn-claims-BJwXTMPt.mjs} +24 -1
- package/dist/{start-RbmFPeZ7.mjs → start-BSsf2tUs.mjs} +4 -4
- package/dist/{start-qWapeB4W.mjs → start-i8zc9VmS.mjs} +1 -1
- package/dist/{status-Zp8kvexe.mjs → status-CitcBRsC.mjs} +227 -22
- package/dist/{status-Dr4fRkym.mjs → status-Q-WDEGCB.mjs} +20 -6
- package/dist/{stop-DcEv5sk-.mjs → stop-DIhrvu0B.mjs} +188 -27
- package/dist/stop-rst5mL14.mjs +3 -0
- package/dist/supervisor-run.mjs +7 -7
- package/dist/{workspace-process-lock-BXA96myD.mjs → workspace-process-lock-Cx74RSDZ.mjs} +9 -4
- package/dist/{workspaces-wrH6dXfu.mjs → workspaces-COD2xCz-.mjs} +15 -5
- package/dist/{worktree-DEG2o9F8.mjs → worktree-DhxDTK44.mjs} +1 -1
- package/dist/{worktree-Bd4dRvx7.mjs → worktree-KOjMX3zA.mjs} +8 -8
- package/dist/{xcode-B2tBkf0m.mjs → xcode-B5SPD--o.mjs} +3 -3
- package/package.json +5 -5
- package/dist/logs-MARIy6m9.mjs +0 -209
- package/dist/server-expo-DBVTdult.mjs +0 -2
- package/dist/stop-DI4BG4Os.mjs +0 -3
|
@@ -1,12 +1,33 @@
|
|
|
1
|
-
import { u as getConfigDir } from "./config-BEq0Qw_a.mjs";
|
|
1
|
+
import { g as loadConfig$1, u as getConfigDir } from "./config-BEq0Qw_a.mjs";
|
|
2
2
|
import { t as getExecutor } from "./exec-DK8KaVHK.mjs";
|
|
3
3
|
import { P as withDirLock, c as signalProcessTree, i as pidExists } from "./metro-BWLOJ_Wr.mjs";
|
|
4
|
-
import { c as androidDataPartitionSizeBytes } from "./settings-
|
|
4
|
+
import { c as androidDataPartitionSizeBytes } from "./settings-B5oFZEri.mjs";
|
|
5
5
|
import { mkdirSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
6
6
|
import { existsSync as existsSync$1, lstatSync as lstatSync$1, mkdirSync as mkdirSync$1, openSync as openSync$1, readFileSync as readFileSync$1, readdirSync as readdirSync$1, realpathSync as realpathSync$1, renameSync as renameSync$1, rmSync as rmSync$1, statSync as statSync$1, writeFileSync as writeFileSync$1 } from "fs";
|
|
7
7
|
import { dirname, isAbsolute, join, resolve } from "path";
|
|
8
|
-
import { createdDevicesFile, createdDevicesLock, readCreatedDevices, readCreatedDevices as readCreatedDevices$1 } from "@stim-cli/core/state";
|
|
8
|
+
import { ANDROID_EMULATOR_APPS, createdDevicesFile, createdDevicesLock, readCreatedDevices, readCreatedDevices as readCreatedDevices$1, settingDefinition } from "@stim-cli/core/state";
|
|
9
9
|
import { homedir, tmpdir } from "os";
|
|
10
|
+
//#region src/devices/android-emulator-viewer.ts
|
|
11
|
+
function configuredAndroidEmulatorApp() {
|
|
12
|
+
const value = loadConfig$1()?.androidEmulatorApp;
|
|
13
|
+
if (value === void 0) return "emulator";
|
|
14
|
+
if (ANDROID_EMULATOR_APPS.includes(value)) return value;
|
|
15
|
+
const error = /* @__PURE__ */ new Error("Invalid androidEmulatorApp in machine config. Use \"emulator\" or \"stim-desktop\".");
|
|
16
|
+
Object.assign(error, { code: "STIM_BAD_ARG" });
|
|
17
|
+
throw error;
|
|
18
|
+
}
|
|
19
|
+
function openEmulatorInStimDesktop(serial) {
|
|
20
|
+
getExecutor().runFileQuiet("open", [
|
|
21
|
+
"-g",
|
|
22
|
+
"-a",
|
|
23
|
+
"Stim",
|
|
24
|
+
`stim-desktop://open?serial=${serial}`
|
|
25
|
+
], {
|
|
26
|
+
timeoutMs: 5e3,
|
|
27
|
+
killSignal: "SIGKILL"
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//#endregion
|
|
10
31
|
//#region src/devices/created-devices.ts
|
|
11
32
|
function update(platform, change) {
|
|
12
33
|
const dir = getConfigDir();
|
|
@@ -70,7 +91,7 @@ const ANDROID_ABIS = /* @__PURE__ */ new Set([
|
|
|
70
91
|
"x86",
|
|
71
92
|
"x86_64"
|
|
72
93
|
]);
|
|
73
|
-
const
|
|
94
|
+
const DEFAULT_AVD_DEVICE_PROFILE = String(settingDefinition("android.deviceProfile")?.default);
|
|
74
95
|
function androidHome() {
|
|
75
96
|
const configured = process.env.ANDROID_HOME || process.env.ANDROID_SDK_ROOT;
|
|
76
97
|
if (configured) return configured;
|
|
@@ -184,7 +205,7 @@ function pickDefaultSystemImage(images, { systemImage, hostArch } = {}) {
|
|
|
184
205
|
if (matching.length === 0) return null;
|
|
185
206
|
return matching.toSorted((a, b) => pageSizeRank(a) - pageSizeRank(b) || b.api - a.api || (b.tag === "google_apis" ? 1 : 0) - (a.tag === "google_apis" ? 1 : 0))[0] ?? null;
|
|
186
207
|
}
|
|
187
|
-
async function createOwnedAvd(label, { systemImage, spawn = (...args) => getExecutor().spawn(...args) } = {}) {
|
|
208
|
+
async function createOwnedAvd(label, { systemImage, deviceProfile = DEFAULT_AVD_DEVICE_PROFILE, spawn = (...args) => getExecutor().spawn(...args) } = {}) {
|
|
188
209
|
const pick = pickDefaultSystemImage(listInstalledSystemImages(), { systemImage });
|
|
189
210
|
if (!pick) {
|
|
190
211
|
const arch = hostSystemImageArch();
|
|
@@ -201,7 +222,7 @@ async function createOwnedAvd(label, { systemImage, spawn = (...args) => getExec
|
|
|
201
222
|
"-k",
|
|
202
223
|
pick.pkg,
|
|
203
224
|
"--device",
|
|
204
|
-
|
|
225
|
+
deviceProfile
|
|
205
226
|
];
|
|
206
227
|
const child = spawn(tool, args, {
|
|
207
228
|
detached: true,
|
|
@@ -229,17 +250,24 @@ async function createOwnedAvd(label, { systemImage, spawn = (...args) => getExec
|
|
|
229
250
|
if (result.code !== 0) throw new Error(`Command failed: ${tool} ${args.join(" ")} (${result.signal ?? result.code})\n${stderr.trim()}`);
|
|
230
251
|
return {
|
|
231
252
|
avdName,
|
|
232
|
-
systemImage: pick.pkg
|
|
253
|
+
systemImage: pick.pkg,
|
|
254
|
+
deviceProfile
|
|
233
255
|
};
|
|
234
256
|
}
|
|
235
257
|
function parseAvdSystemImage(configIni) {
|
|
258
|
+
const dir = avdIniValue(configIni, "image.sysdir.1")?.replace(/[\\/]+$/, "");
|
|
259
|
+
if (!dir) return null;
|
|
260
|
+
return dir.split(/[\\/]/).join(";");
|
|
261
|
+
}
|
|
262
|
+
function parseAvdDeviceProfile(configIni) {
|
|
263
|
+
return avdIniValue(configIni, "hw.device.name") || null;
|
|
264
|
+
}
|
|
265
|
+
function avdIniValue(configIni, key) {
|
|
236
266
|
for (const line of String(configIni).split(/\r?\n/)) {
|
|
237
267
|
const separator = line.indexOf("=");
|
|
238
268
|
if (separator < 0) continue;
|
|
239
|
-
if (line.slice(0, separator).trim() !==
|
|
240
|
-
|
|
241
|
-
if (!dir) return null;
|
|
242
|
-
return dir.split(/[\\/]/).join(";");
|
|
269
|
+
if (line.slice(0, separator).trim() !== key) continue;
|
|
270
|
+
return line.slice(separator + 1).trim();
|
|
243
271
|
}
|
|
244
272
|
return null;
|
|
245
273
|
}
|
|
@@ -252,6 +280,18 @@ function ownedAvdSystemImage(avdName, { avdDirectory = ownedAvdDirectory, readFi
|
|
|
252
280
|
return null;
|
|
253
281
|
}
|
|
254
282
|
}
|
|
283
|
+
function ownedAvdDeviceProfile(avdName) {
|
|
284
|
+
const configIni = avdConfigIni(avdName);
|
|
285
|
+
return configIni === null ? null : parseAvdDeviceProfile(configIni);
|
|
286
|
+
}
|
|
287
|
+
const AVDMANAGER_LIST_TIMEOUT_MS = 6e4;
|
|
288
|
+
function listAvdDeviceProfiles() {
|
|
289
|
+
return parseAvdList(getExecutor().runFile(androidToolPath("avdmanager"), [
|
|
290
|
+
"list",
|
|
291
|
+
"device",
|
|
292
|
+
"-c"
|
|
293
|
+
], { timeoutMs: AVDMANAGER_LIST_TIMEOUT_MS }));
|
|
294
|
+
}
|
|
255
295
|
function sanitizeAvdLabel(label) {
|
|
256
296
|
return String(label).replace(/[^A-Za-z0-9._-]+/g, "-").replace(/^-+|-+$/g, "");
|
|
257
297
|
}
|
|
@@ -454,8 +494,9 @@ function nextConsolePort(claimedPorts) {
|
|
|
454
494
|
if (claimedPorts.length === 0) return 5554;
|
|
455
495
|
return Math.max(...claimedPorts) + 2;
|
|
456
496
|
}
|
|
457
|
-
function headlessEmulatorArgs(env = process.env, platform = process.platform) {
|
|
497
|
+
function headlessEmulatorArgs(env = process.env, platform = process.platform, app = "emulator") {
|
|
458
498
|
const args = [];
|
|
499
|
+
if (platform === "darwin" && app === "stim-desktop") args.push("-no-window", "-gpu", "host");
|
|
459
500
|
if (platform === "linux" && !env.DISPLAY && !env.WAYLAND_DISPLAY) args.push("-no-window", "-noaudio", "-no-boot-anim", "-gpu", "swiftshader_indirect", "-no-snapshot-save", "-no-snapshot-load");
|
|
460
501
|
return args;
|
|
461
502
|
}
|
|
@@ -631,10 +672,10 @@ function configureNewOwnedAvd(avdName, { dataPartitionSizeGb, avdConfig = {} },
|
|
|
631
672
|
for (const [key, value] of Object.entries(expected)) if (!verified.split(/\r?\n/).includes(`${key}=${value}`)) throw new Error(`Could not verify ${key} in ${configPath}.`);
|
|
632
673
|
return configPath;
|
|
633
674
|
}
|
|
634
|
-
function avdPoolConfiguration(dataPartitionSizeGb, avdConfig) {
|
|
675
|
+
function avdPoolConfiguration(dataPartitionSizeGb, avdConfig, deviceProfile = DEFAULT_AVD_DEVICE_PROFILE) {
|
|
635
676
|
return JSON.stringify(Object.entries({
|
|
636
677
|
...avdConfig,
|
|
637
|
-
"hw.device.name":
|
|
678
|
+
"hw.device.name": deviceProfile,
|
|
638
679
|
"disk.dataPartition.size": String(androidDataPartitionSizeBytes(dataPartitionSizeGb))
|
|
639
680
|
}).toSorted(([a], [b]) => a.localeCompare(b)));
|
|
640
681
|
}
|
|
@@ -751,7 +792,9 @@ function suppressEmulatorCrashConsent({ platform = process.platform, version = e
|
|
|
751
792
|
return [];
|
|
752
793
|
}
|
|
753
794
|
function bootAndroidEmulator(avdName, consolePort, { logFile, platform = process.platform } = {}) {
|
|
754
|
-
const
|
|
795
|
+
const exec = getExecutor();
|
|
796
|
+
const app = configuredAndroidEmulatorApp();
|
|
797
|
+
const child = exec.spawn(androidToolPath("emulator"), [
|
|
755
798
|
"-avd",
|
|
756
799
|
avdName,
|
|
757
800
|
"-port",
|
|
@@ -759,7 +802,7 @@ function bootAndroidEmulator(avdName, consolePort, { logFile, platform = process
|
|
|
759
802
|
"-grpc",
|
|
760
803
|
String(consolePort + 3e3),
|
|
761
804
|
"-grpc-use-token",
|
|
762
|
-
...headlessEmulatorArgs(),
|
|
805
|
+
...headlessEmulatorArgs(process.env, platform, app),
|
|
763
806
|
...suppressEmulatorCrashConsent({ platform })
|
|
764
807
|
], {
|
|
765
808
|
cwd: androidToolCwd(platform),
|
|
@@ -767,7 +810,9 @@ function bootAndroidEmulator(avdName, consolePort, { logFile, platform = process
|
|
|
767
810
|
stdio: emulatorStdio(logFile)
|
|
768
811
|
});
|
|
769
812
|
child?.unref?.();
|
|
770
|
-
|
|
813
|
+
const pid = child?.pid ?? null;
|
|
814
|
+
if (pid !== null && platform === "darwin" && app === "stim-desktop") openEmulatorInStimDesktop(`emulator-${consolePort}`);
|
|
815
|
+
return pid;
|
|
771
816
|
}
|
|
772
817
|
function emulatorStdio(logFile) {
|
|
773
818
|
if (!logFile) return "ignore";
|
|
@@ -997,4 +1042,4 @@ function ownedAvdSerialResolver({ timeoutMs } = {}) {
|
|
|
997
1042
|
};
|
|
998
1043
|
}
|
|
999
1044
|
//#endregion
|
|
1000
|
-
export {
|
|
1045
|
+
export { memoizeEmulatorProbe as A, probeEmulatorSerial as B, hostSystemImageArch as C, listAvds as D, listAvdDeviceProfiles as E, ownedAvdName as F, sleepSync as G, resolveOwnedAvdSerial as H, ownedAvdSerialResolver as I, wipeAvdUserData as J, waitForAndroidEmulatorShutdown as K, ownedAvdSystemImage as L, ownedAvdDeviceProfile as M, ownedAvdDirectory as N, listInstalledSystemImages as O, ownedAvdMatchesConfiguration as P, configuredAndroidEmulatorApp as Q, physicalDeviceModel as R, getAvdNameForSerial as S, listAdbDevices as T, resolvePhysicalDevice as U, resetAdoptedAvd as V, shutdownAndroidEmulator as W, forgetCreatedDevice as X, isStimOwnedSim as Y, recordCreatedDevice as Z, deleteAvd as _, androidPoolCandidates as a, extractEmulatorFailure as b, androidToolCwd as c, avdPathExists as d, avdPoolConfiguration as f, createOwnedAvd as g, configureNewOwnedAvd as h, androidHome as i, nextConsolePort as j, listOrphanedAvdDirectories as k, androidToolPath as l, bootAndroidEmulator as m, androidBuildToolName as n, androidPoolNoCandidatesRefusal as o, avdStorageRoots as p, waitForBoot as q, androidDeviceAbi as r, androidSystemImageAbi as s, DEFAULT_AVD_DEVICE_PROFILE as t, assertOwnedAvdStopped as u, emulatorDiskSpaceRemedy as v, isStimOwnedAvdName as w, findBuildTool as x, emulatorFailureRemedy as y, pickDefaultSystemImage as z };
|
|
@@ -2,11 +2,11 @@ import { u as getConfigDir } from "./config-BEq0Qw_a.mjs";
|
|
|
2
2
|
import { t as getExecutor } from "./exec-DK8KaVHK.mjs";
|
|
3
3
|
import { r as register } from "./cache-manifest-Pubfp8wV.mjs";
|
|
4
4
|
import { C as sharedCcache, P as withDirLock, j as workspaceLogsDir, x as ensureWorkspaceStorage } from "./metro-BWLOJ_Wr.mjs";
|
|
5
|
-
import {
|
|
5
|
+
import { a as spawnDeclared } from "./spawn-claims-BJwXTMPt.mjs";
|
|
6
6
|
import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
|
|
7
7
|
import { l as phaseLine } from "./command-output-D5z2_bcF.mjs";
|
|
8
|
-
import {
|
|
9
|
-
import { d as startBuildHeartbeat, n as HEARTBEAT_INTERVAL_MS } from "./xcode-
|
|
8
|
+
import { i as androidHome } from "./android-C4zG2Tuc.mjs";
|
|
9
|
+
import { d as startBuildHeartbeat, n as HEARTBEAT_INTERVAL_MS } from "./xcode-B5SPD--o.mjs";
|
|
10
10
|
import { accessSync, constants, existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, symlinkSync, writeFileSync } from "node:fs";
|
|
11
11
|
import { isJsonObject, readJsonFile } from "@stim-cli/core/state";
|
|
12
12
|
import { dirname, isAbsolute, join, relative, sep } from "node:path";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-DK8KaVHK.mjs";
|
|
2
|
-
import { T as uninstallIosApp, c as iosSimulatorFailureAdvice, p as listUserApps } from "./ios-
|
|
2
|
+
import { T as uninstallIosApp, c as iosSimulatorFailureAdvice, p as listUserApps } from "./ios-DArbmwer.mjs";
|
|
3
3
|
import { closeSync, lstatSync, openSync, readSync, readdirSync } from "node:fs";
|
|
4
4
|
import { isAbsolute, join } from "node:path";
|
|
5
5
|
import { createHash } from "node:crypto";
|
|
@@ -2,16 +2,16 @@ import { D as process_identity_exports, F as volumeRootFor, H as projectDeviceSl
|
|
|
2
2
|
import { O as workspaceDir, S as sharedBuildCache, m as readWorkspaceState$1, s as resolveProjectMetro, t as killMetroTree } from "./metro-BWLOJ_Wr.mjs";
|
|
3
3
|
import { n as supervisorError } from "./errors-B6W7FkxQ.mjs";
|
|
4
4
|
import { o as clearWorkspaceSupervisor } from "./state-WGdIbi_d.mjs";
|
|
5
|
-
import { n as workspaceProcessLockError, t as withWorkspaceProcessLock } from "./workspace-process-lock-
|
|
5
|
+
import { n as workspaceProcessLockError, t as withWorkspaceProcessLock } from "./workspace-process-lock-Cx74RSDZ.mjs";
|
|
6
6
|
import { l as phaseLine } from "./command-output-D5z2_bcF.mjs";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { t as resolveSupervisorTarget } from "./ownership-
|
|
10
|
-
import { l as listAllIosSims } from "./ios-
|
|
11
|
-
import { i as idleShutdownCandidates, n as collectOwnedDeviceActivity, o as shutDownIdleDevices, s as workspaceBuildInProgress, t as collectIdleDevices } from "./idle
|
|
12
|
-
import { i as canonicalPath, n as withIdleWorkspace } from "./in-use-
|
|
13
|
-
import { n as capacity, o as environmentState, s as formatSpace } from "./status-
|
|
14
|
-
import { A as discoverCaches, D as planCacheEmptying, a as collectWorkspaceOutputs, k as trimCaches, r as clearWorkspaceOutputs, y as deviceSweepIsScoped } from "./workspaces-
|
|
7
|
+
import { a as workspaceActivity } from "./activity-BtG4Va9l.mjs";
|
|
8
|
+
import { I as ownedAvdSerialResolver } from "./android-C4zG2Tuc.mjs";
|
|
9
|
+
import { t as resolveSupervisorTarget } from "./ownership-BiojdtAp.mjs";
|
|
10
|
+
import { l as listAllIosSims } from "./ios-DArbmwer.mjs";
|
|
11
|
+
import { i as idleShutdownCandidates, n as collectOwnedDeviceActivity, o as shutDownIdleDevices, s as workspaceBuildInProgress, t as collectIdleDevices } from "./idle-NETbeNiQ.mjs";
|
|
12
|
+
import { i as canonicalPath, n as withIdleWorkspace } from "./in-use-DVhlSoyn.mjs";
|
|
13
|
+
import { n as capacity, o as environmentState, s as formatSpace } from "./status-Q-WDEGCB.mjs";
|
|
14
|
+
import { A as discoverCaches, D as planCacheEmptying, a as collectWorkspaceOutputs, k as trimCaches, r as clearWorkspaceOutputs, y as deviceSweepIsScoped } from "./workspaces-COD2xCz-.mjs";
|
|
15
15
|
import { existsSync, statSync, statfsSync } from "node:fs";
|
|
16
16
|
import { settingDefinition, settingValueError } from "@stim-cli/core/state";
|
|
17
17
|
import { dirname, join, sep } from "node:path";
|