stim 1.16.0 → 1.17.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/{activity-BxwdD81S.mjs → activity-IRvJY_ru.mjs} +23 -3
- package/dist/{agent-device-usage-output-Dpih1Tfa.mjs → agent-device-usage-output-BK41vnzN.mjs} +3 -3
- package/dist/{android-Ift4kVvt.mjs → android--GorydsK.mjs} +679 -317
- package/dist/{android-B_NumVyQ.mjs → android-B_YNZy61.mjs} +7 -43
- package/dist/{android-r2rBL8kV.mjs → android-DE4v59Mb.mjs} +12 -3
- package/dist/{android-cas-8U4DPqeR.mjs → android-cas-ZFpjJBL_.mjs} +6 -5
- package/dist/{app-install-CKWdbXIX.mjs → app-install-VPkI5WEg.mjs} +6 -5
- package/dist/{budget-DjrURfQn.mjs → budget-DM984mnd.mjs} +34 -18
- package/dist/{build-plan-DjeSb2Xl.mjs → build-plan-CmQCoyT-.mjs} +345 -86
- package/dist/{build-slots-rUk77xqh.mjs → build-slots-41v_d2x9.mjs} +35 -25
- package/dist/{cli-BkYZ_6hy.mjs → cli-Daxug5-K.mjs} +17 -17
- package/dist/cli.mjs +1 -1
- package/dist/collector-run.mjs +3 -3
- package/dist/{command-output-DnJMdEY-.mjs → command-output-CDAIFD-8.mjs} +3 -3
- package/dist/{created-devices-D5owjN4C.mjs → created-devices-CpvzBL25.mjs} +1 -1
- package/dist/{dependency-state-B6cMXZab.mjs → dependency-state-CLcBHH2M.mjs} +1 -1
- package/dist/{deps-urbmfXig.mjs → deps-DNWaQs4V.mjs} +1 -1
- package/dist/{dev-client-CroAIjjj.mjs → dev-client-B-XC4uRH.mjs} +2 -2
- package/dist/{device-DZQjF7H5.mjs → device-C8IOoJPv.mjs} +7 -7
- package/dist/device-capacity-D0GWHnTM.mjs +580 -0
- package/dist/device-host-worker.mjs +436 -154
- package/dist/{device-ios-BadmeL2V.mjs → device-ios-Bc7vbGwl.mjs} +75 -44
- package/dist/{device-lease-D-hLqx1b.mjs → device-lease-DpoS36_u.mjs} +2 -2
- package/dist/{device-lease-run-CqjShqWW.mjs → device-lease-run-B8YltIH_.mjs} +3 -3
- package/dist/{device-pool-CUaEWMMm.mjs → device-pool-3o7s5lo4.mjs} +2 -2
- package/dist/{device-remote-D5WVWqOq.mjs → device-remote-hFSkpfQu.mjs} +12 -12
- package/dist/{doctor-Cimf-gGB.mjs → doctor-Cnk9d7Hm.mjs} +32 -51
- package/dist/{error-diagnostics-B9L4Ae0x.mjs → error-diagnostics-C-NMnhrk.mjs} +7 -7
- package/dist/{gc-Bqy4bjEu.mjs → gc-DxCL2A46.mjs} +308 -26
- package/dist/{gradle-BsO1MdsH.mjs → gradle-D7-L2Th3.mjs} +3 -3
- package/dist/{guide-B_uyKTxW.mjs → guide-DjrTQGik.mjs} +1662 -565
- package/dist/{guide-status-CjEZMAD4.mjs → guide-status-Du-ZQ3FD.mjs} +1 -1
- package/dist/hosted-android-DwLS4Mse.mjs +32 -0
- package/dist/{hosted-client-a-WmqE2L.mjs → hosted-client-wk1W_CNW.mjs} +2 -3
- package/dist/hosted-ios-aMo7Cljf.mjs +15 -0
- package/dist/{hosted-logs-D5g041Q3.mjs → hosted-logs-DqYmWtXc.mjs} +16 -16
- package/dist/{hosted-macos-BSZyIb3y.mjs → hosted-macos-dlHXEeF5.mjs} +4 -4
- package/dist/{hosted-ios-CIWelIqf.mjs → hosted-native-C9xJ9rpA.mjs} +77 -42
- package/dist/{idle-DYVymG92.mjs → idle-B2m-Ovod.mjs} +122 -58
- package/dist/{idle-shutdown-CTsDnAde.mjs → idle-shutdown-_3oOV1V_.mjs} +25 -17
- package/dist/{in-use-DvBw0Kxo.mjs → in-use-CvGOUn-x.mjs} +11 -11
- package/dist/{ios-aq3QoGI3.mjs → ios-DE6duQoz.mjs} +170 -88
- package/dist/{ios-BaInn3sW.mjs → ios-DSfnPfse.mjs} +4 -4
- package/dist/{ios-device-FfCN_C8p.mjs → ios-device-pAN4t54-.mjs} +1 -1
- package/dist/ios-state-8L3lgum6.mjs +89 -0
- package/dist/{launch-verify-2DBRizjo.mjs → launch-verify-lTnWZikR.mjs} +2 -2
- package/dist/{logs-CHEVK8zD.mjs → logs-DUoKlDoS.mjs} +36 -23
- package/dist/{client-BTY686R6.mjs → machines-C2XiNwh9.mjs} +278 -20
- package/dist/{macos-CSYEAFmF.mjs → macos-32po3kUq.mjs} +14 -14
- package/dist/macos-run.mjs +1 -1
- package/dist/maintenance-run.mjs +2 -2
- package/dist/{metro-BeK1ZPz1.mjs → metro-g8NqiJp-.mjs} +1 -1
- package/dist/{metro-gateway-BJ-rxQAB.mjs → metro-gateway-DmslUM30.mjs} +22 -3
- package/dist/{named-ports-Bk_YXEmE.mjs → named-ports-C8m8EQs2.mjs} +2 -2
- package/dist/{native-run-NaBrRFtQ.mjs → native-run-D1Q56rAD.mjs} +17 -6
- package/dist/{native-runtime-DBzRnEKS.mjs → native-runtime-DhJI3IVQ.mjs} +6 -6
- package/dist/offload-worker.mjs +8 -8
- package/dist/{teardown-CL6vDs2Y.mjs → ownership-BMLqyBgJ.mjs} +603 -26
- package/dist/{ownership-DiA16AsN.mjs → ownership-DyRQru0q.mjs} +2 -2
- package/dist/{ports-R2k4Knz3.mjs → ports-4nYqxPWC.mjs} +2 -2
- package/dist/{prebuild-D2fsca_Z.mjs → prebuild-D7RUMkwN.mjs} +3 -3
- package/dist/{preview-DhVbvPAZ.mjs → preview-CxPRIEht.mjs} +7 -7
- package/dist/{project-Du91Ilvc.mjs → project-D47Rh0ly.mjs} +7 -2
- package/dist/{recordings-BIXOzVnr.mjs → recordings-BNgsD1Tr.mjs} +1 -1
- package/dist/{reload-rM9jV1fz.mjs → reload-qZei6iWn.mjs} +62 -35
- package/dist/{remote-cache-C8-V13XN.mjs → remote-cache-Ci4DQYYj.mjs} +3 -3
- package/dist/{run-f4vI6EnK.mjs → run-CkE9y0nc.mjs} +1 -1
- package/dist/{server-bare-CpPGmnmO.mjs → server-bare-BkrSxSsZ.mjs} +1 -1
- package/dist/{server-expo-MC0rHlOC.mjs → server-expo-CHTyXD0G.mjs} +2 -2
- package/dist/server-expo-CeakhI8P.mjs +2 -0
- package/dist/{settings-oTSkkNrM.mjs → settings-Cfd-0r2d.mjs} +10 -9
- package/dist/{settings-ZkDzkzvB.mjs → settings-SR9OmW9h.mjs} +3 -3
- package/dist/settings.schema.json +42 -13
- package/dist/{simslim-B8-7AoTI.mjs → simslim-BWNrc3M3.mjs} +3 -3
- package/dist/{slot-launch-B8VrHxn1.mjs → slot-launch-DmjBmpQV.mjs} +8 -8
- package/dist/{start-CX8Ig-U2.mjs → start-BopZcr4n.mjs} +1 -1
- package/dist/{start-ClDfwXa4.mjs → start-uee1wWjY.mjs} +11 -11
- package/dist/{state-DcW6vOd_.mjs → state-BKa8wNN5.mjs} +1 -1
- package/dist/{state-3DwSQIBK.mjs → state-DyaNTgfR.mjs} +1 -1
- package/dist/{state-C1jB7Q8q.mjs → state-PeQiJuIu.mjs} +2 -2
- package/dist/{stats-CEZ_i5je.mjs → stats-Bq4fJOdB.mjs} +7 -4
- package/dist/{status-BuvBFeII.mjs → status-CzS4bPO9.mjs} +4 -4
- package/dist/{status-Cs7VLg9D.mjs → status-dXX2JX1C.mjs} +125 -35
- package/dist/{stop-Dt_dM16A.mjs → stop-BCwvvs7F.mjs} +2 -2
- package/dist/{stop-Bffozsac.mjs → stop-BjizrQwv.mjs} +48 -27
- package/dist/{stop-B0Yxtmiy.mjs → stop-Cr1d8DSE.mjs} +4 -4
- package/dist/{stop-cause-CidxIqup.mjs → stop-cause-rhmGfwvt.mjs} +1 -1
- package/dist/supervisor-run.d.mts +7 -4
- package/dist/supervisor-run.mjs +26 -28
- package/dist/{support-D4aYJniO.mjs → support-BJPgYCu-.mjs} +44 -19
- package/dist/{support-CAP8qDUF.mjs → support-F9-sr0Oi.mjs} +6 -6
- package/dist/{toolchain-DkUflduf.mjs → toolchain-CNIBTIOv.mjs} +7 -7
- package/dist/{warm-progress-CpGv3Wb6.mjs → warm-progress-DF4JRvYI.mjs} +3 -3
- package/dist/watchman-APYjXSQa.mjs +48 -0
- package/dist/{web-DWUaMp8P.mjs → web-exQtGkoc.mjs} +12 -13
- package/dist/web-run.mjs +4 -4
- package/dist/{workspace-process-lock-BL7Q0HCO.mjs → workspace-process-lock-2mNzOlaB.mjs} +3 -2
- package/dist/{workspace-state-B8-aJ1_5.mjs → workspace-state-DqcCbpE7.mjs} +2 -2
- package/dist/{workspaces-BV4pdHFz.mjs → workspaces-Bcib97-6.mjs} +3 -3
- package/dist/{worktree-jnG8Iph5.mjs → worktree-Dc98cE6_.mjs} +1 -1
- package/dist/{worktree-K-xj9Db0.mjs → worktree-ZpZR3S1k.mjs} +141 -40
- package/package.json +5 -5
- package/dist/device-capacity-BHwxNBlu.mjs +0 -136
- package/dist/ios-state-DS5UpYTH.mjs +0 -48
- package/dist/machines-BIBUdhpj.mjs +0 -265
- package/dist/ownership-hCkPzGmr.mjs +0 -571
- package/dist/server-expo-CVqO2c35.mjs +0 -2
|
@@ -1,24 +1,33 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-CaErVv7t.mjs";
|
|
2
2
|
import { C as saveConfig, D as withConfigLock, H as projectDeviceSlots, _ as loadConfig, a as clearDevice, d as getConfigDir, w as setDevice, z as deviceSlotPlatforms } from "./config-D0DbpZtM.mjs";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
3
|
+
import { n as ownership_claim_exports } from "./process-identity-BmRm1qV0.mjs";
|
|
4
|
+
import { l as phaseLine } from "./command-output-CDAIFD-8.mjs";
|
|
5
|
+
import { v as iosSimSlimProfileSetting } from "./settings-Cfd-0r2d.mjs";
|
|
6
|
+
import { y as workspaceId } from "./workspace-state-DqcCbpE7.mjs";
|
|
7
|
+
import { ct as dropParked, ft as parkedMaxSetting, ht as selectParked, pt as readParked, st as adoptParked } from "./android-B_YNZy61.mjs";
|
|
8
|
+
import { A as hostMemoryPressureAdvice, C as resolveIosCreation, O as configuredIosSimulatorViewer, S as resetIosPrivacy, _ as parseRuntimeVersion, b as renameIosSim, f as listIosDeviceTypes, h as ownedSimName, i as createOwnedIosSim, j as readHostMemoryPressure, l as iosSimulatorFailureAdvice, n as bootIosSim, p as listIosRuntimes, u as listAllIosSims, w as resolveOwnedIosSim, x as resetIosKeychain } from "./ios-DSfnPfse.mjs";
|
|
9
|
+
import { v as teardownParkedIosSim } from "./ownership-BMLqyBgJ.mjs";
|
|
10
|
+
import { t as withWorkspaceProcessLock } from "./workspace-process-lock-2mNzOlaB.mjs";
|
|
11
|
+
import { a as deviceTypeMismatch, c as runtimeMismatch, n as DeviceAdmissionRefusal, p as withDeviceBootAdmission } from "./device-capacity-D0GWHnTM.mjs";
|
|
11
12
|
import chalk from "chalk";
|
|
12
13
|
//#region src/engine/device-ios.ts
|
|
13
|
-
function startIosBoot(udid, configure, label, out, simulatorApp) {
|
|
14
|
-
const done = (
|
|
14
|
+
function startIosBoot(udid, configure, label, out, simulatorApp, root, deviceSlotWait) {
|
|
15
|
+
const done = withDeviceBootAdmission({
|
|
16
|
+
platform: "ios",
|
|
17
|
+
key: udid
|
|
18
|
+
}, async () => {
|
|
19
|
+
out(chalk.dim(phaseLine("device", `booting ${label} (${udid})`)));
|
|
15
20
|
await bootIosSim(udid, {
|
|
16
21
|
label,
|
|
17
22
|
out,
|
|
18
23
|
simulatorApp
|
|
19
24
|
});
|
|
20
25
|
await configure();
|
|
21
|
-
}
|
|
26
|
+
}, {
|
|
27
|
+
...deviceSlotWait,
|
|
28
|
+
root,
|
|
29
|
+
out
|
|
30
|
+
});
|
|
22
31
|
done.catch(() => {});
|
|
23
32
|
return {
|
|
24
33
|
udid,
|
|
@@ -34,7 +43,8 @@ async function ensureOwnedIosDevice({ record, projectPath, slot, settingsRoot, l
|
|
|
34
43
|
const simslimProfile = iosSimSlimProfileSetting(settings, settingsRoot);
|
|
35
44
|
if (record?.deviceUdid) {
|
|
36
45
|
if (record.owned) {
|
|
37
|
-
const
|
|
46
|
+
const listed = listAllIosSims({ includeUnavailable: true });
|
|
47
|
+
const resolved = resolveOwnedIosSim(record.deviceUdid, listed);
|
|
38
48
|
if (resolved.notOwned) note(chalk.yellow(`Note: recorded sim is now named "${resolved.notOwned}", not Stim-owned -- creating a fresh owned sim instead of booting it.`));
|
|
39
49
|
else if (resolved.missing) {} else {
|
|
40
50
|
const sim = resolved.sim;
|
|
@@ -48,7 +58,7 @@ async function ensureOwnedIosDevice({ record, projectPath, slot, settingsRoot, l
|
|
|
48
58
|
model: deviceTypes.find((d) => d.identifier === sim.deviceTypeIdentifier)?.name ?? null,
|
|
49
59
|
runtime: parseRuntimeVersion(sim.runtime)
|
|
50
60
|
};
|
|
51
|
-
const name = await withIosDeviceNameLock(() => renameToOwnedName(sim, label, model, projectPath));
|
|
61
|
+
const name = ownedIosName(sim, label, model, projectPath, listed) === sim.name ? sim.name : await withIosDeviceNameLock(() => renameToOwnedName(sim, label, model, projectPath));
|
|
52
62
|
const updated = {
|
|
53
63
|
deviceUdid: sim.udid,
|
|
54
64
|
owned: true,
|
|
@@ -74,17 +84,15 @@ async function ensureOwnedIosDevice({ record, projectPath, slot, settingsRoot, l
|
|
|
74
84
|
deviceType: model.model,
|
|
75
85
|
runtime: model.runtime
|
|
76
86
|
};
|
|
77
|
-
if (sim.state !== "Booted") {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
...facts
|
|
83
|
-
};
|
|
84
|
-
}
|
|
87
|
+
if (sim.state !== "Booted") return {
|
|
88
|
+
...updated,
|
|
89
|
+
booting: startIosBoot(sim.udid, configure, name, out, flags.simulatorApp, projectPath, flags.deviceSlotWait),
|
|
90
|
+
...facts
|
|
91
|
+
};
|
|
85
92
|
return {
|
|
86
93
|
...await configure(),
|
|
87
|
-
...facts
|
|
94
|
+
...facts,
|
|
95
|
+
booted: sim.udid
|
|
88
96
|
};
|
|
89
97
|
}
|
|
90
98
|
} else {
|
|
@@ -116,7 +124,6 @@ async function ensureOwnedIosDevice({ record, projectPath, slot, settingsRoot, l
|
|
|
116
124
|
out
|
|
117
125
|
})) : null;
|
|
118
126
|
if (adopted) {
|
|
119
|
-
out(chalk.dim(phaseLine("device", `booting ${adopted.deviceName} (${adopted.deviceUdid})`)));
|
|
120
127
|
const booting = startIosBoot(adopted.deviceUdid, async () => {
|
|
121
128
|
resetAdoptedSim(adopted.deviceUdid, out);
|
|
122
129
|
await configureOwnedIosSim({
|
|
@@ -127,7 +134,7 @@ async function ensureOwnedIosDevice({ record, projectPath, slot, settingsRoot, l
|
|
|
127
134
|
out,
|
|
128
135
|
reconcileIosSimulator
|
|
129
136
|
});
|
|
130
|
-
}, adopted.deviceName, out, flags.simulatorApp);
|
|
137
|
+
}, adopted.deviceName, out, flags.simulatorApp, projectPath, flags.deviceSlotWait);
|
|
131
138
|
return {
|
|
132
139
|
...adopted,
|
|
133
140
|
booting,
|
|
@@ -160,7 +167,7 @@ async function ensureOwnedIosDevice({ record, projectPath, slot, settingsRoot, l
|
|
|
160
167
|
profile: simslimProfile,
|
|
161
168
|
out,
|
|
162
169
|
reconcileIosSimulator
|
|
163
|
-
}), created.name, out, flags.simulatorApp);
|
|
170
|
+
}), created.name, out, flags.simulatorApp, projectPath, flags.deviceSlotWait);
|
|
164
171
|
return {
|
|
165
172
|
...newRecord,
|
|
166
173
|
created: true,
|
|
@@ -172,8 +179,8 @@ async function ensureOwnedIosDevice({ record, projectPath, slot, settingsRoot, l
|
|
|
172
179
|
function withIosDeviceNameLock(fn) {
|
|
173
180
|
return withWorkspaceProcessLock(getConfigDir(), "ios-device-names", async () => fn(), { external: true });
|
|
174
181
|
}
|
|
175
|
-
function ownedIosNameSuffix(label, model, projectPath, udid) {
|
|
176
|
-
const names = new Set(
|
|
182
|
+
function ownedIosNameSuffix(label, model, projectPath, udid, listed = listAllIosSims({ includeUnavailable: true })) {
|
|
183
|
+
const names = new Set(listed.filter((sim) => sim.udid !== udid).map((sim) => sim.name));
|
|
177
184
|
for (const project of Object.values(loadConfig()?.projects ?? {})) for (const { platforms } of projectDeviceSlots(project)) {
|
|
178
185
|
const record = platforms.ios;
|
|
179
186
|
if (record?.deviceUdid !== udid && record?.deviceName) names.add(record.deviceName);
|
|
@@ -183,8 +190,11 @@ function ownedIosNameSuffix(label, model, projectPath, udid) {
|
|
|
183
190
|
for (let attempt = 0; names.has(ownedSimName(label, model, suffix)); attempt++) suffix = ` ${workspaceId(projectPath)}${attempt ? `-${attempt}` : ""}`;
|
|
184
191
|
return suffix;
|
|
185
192
|
}
|
|
193
|
+
function ownedIosName(sim, label, model, projectPath, listed) {
|
|
194
|
+
return ownedSimName(label, model, ownedIosNameSuffix(label, model, projectPath, sim.udid, listed));
|
|
195
|
+
}
|
|
186
196
|
function renameToOwnedName(sim, label, model, projectPath) {
|
|
187
|
-
const wanted =
|
|
197
|
+
const wanted = ownedIosName(sim, label, model, projectPath);
|
|
188
198
|
if (sim.name === wanted) return wanted;
|
|
189
199
|
try {
|
|
190
200
|
renameIosSim(sim.udid, wanted);
|
|
@@ -284,7 +294,7 @@ async function configureOwnedIosSim({ record, projectPath, slot, profile, out, r
|
|
|
284
294
|
setDevice(projectPath, "ios", updated, slot);
|
|
285
295
|
return updated;
|
|
286
296
|
}
|
|
287
|
-
async function ensureIosBooted({ device, simulatorApp, timeoutMs, pollMs, out }) {
|
|
297
|
+
async function ensureIosBooted({ device, projectPath, deviceSlotWait, simulatorApp, timeoutMs, pollMs, out }) {
|
|
288
298
|
const udid = device?.deviceUdid;
|
|
289
299
|
if (!udid) return {
|
|
290
300
|
failed: true,
|
|
@@ -315,13 +325,15 @@ async function ensureIosBooted({ device, simulatorApp, timeoutMs, pollMs, out })
|
|
|
315
325
|
try {
|
|
316
326
|
await booting.done;
|
|
317
327
|
} catch (e) {
|
|
318
|
-
return
|
|
319
|
-
failed: true,
|
|
320
|
-
reason: `Could not boot simulator ${udid}: ${e?.message || e}`
|
|
321
|
-
};
|
|
328
|
+
return bootFailure(udid, e);
|
|
322
329
|
}
|
|
323
330
|
return ready();
|
|
324
331
|
}
|
|
332
|
+
const readiness = device?.booted === udid ? ready() : null;
|
|
333
|
+
if (readiness?.ok) {
|
|
334
|
+
if (simulatorApp !== void 0) configuredIosSimulatorViewer(simulatorApp).open(udid);
|
|
335
|
+
return readiness;
|
|
336
|
+
}
|
|
325
337
|
let resolved;
|
|
326
338
|
try {
|
|
327
339
|
resolved = resolveOwnedIosSim(udid);
|
|
@@ -341,24 +353,30 @@ async function ensureIosBooted({ device, simulatorApp, timeoutMs, pollMs, out })
|
|
|
341
353
|
};
|
|
342
354
|
const sim = resolved.sim;
|
|
343
355
|
if (sim.state === "Booted") {
|
|
344
|
-
const result = ready();
|
|
356
|
+
const result = readiness ?? ready();
|
|
345
357
|
if (result.ok && simulatorApp !== void 0) configuredIosSimulatorViewer(simulatorApp).open(udid);
|
|
346
358
|
return result;
|
|
347
359
|
}
|
|
348
|
-
out(chalk.dim(phaseLine("device", `booting ${sim.name} (${udid})`)));
|
|
349
360
|
const bootDeadline = Date.now() + timeoutMs;
|
|
350
361
|
try {
|
|
351
|
-
await
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
362
|
+
await withDeviceBootAdmission({
|
|
363
|
+
platform: "ios",
|
|
364
|
+
key: udid
|
|
365
|
+
}, () => {
|
|
366
|
+
out(chalk.dim(phaseLine("device", `booting ${sim.name} (${udid})`)));
|
|
367
|
+
return bootIosSim(udid, {
|
|
368
|
+
timeoutMs,
|
|
369
|
+
label: sim.name,
|
|
370
|
+
out,
|
|
371
|
+
simulatorApp
|
|
372
|
+
});
|
|
373
|
+
}, {
|
|
374
|
+
...deviceSlotWait,
|
|
375
|
+
root: projectPath,
|
|
376
|
+
out
|
|
356
377
|
});
|
|
357
378
|
} catch (e) {
|
|
358
|
-
return
|
|
359
|
-
failed: true,
|
|
360
|
-
reason: `Could not boot simulator ${udid}: ${e?.message || e}`
|
|
361
|
-
};
|
|
379
|
+
return bootFailure(udid, e);
|
|
362
380
|
}
|
|
363
381
|
const deadline = Math.max(bootDeadline, Date.now() + 2 * pollMs);
|
|
364
382
|
while (Date.now() < deadline) {
|
|
@@ -374,6 +392,19 @@ async function ensureIosBooted({ device, simulatorApp, timeoutMs, pollMs, out })
|
|
|
374
392
|
reason: `Simulator ${udid} did not reach the Booted state within ${Math.round(timeoutMs / 1e3)}s.`
|
|
375
393
|
};
|
|
376
394
|
}
|
|
395
|
+
function bootFailure(udid, error) {
|
|
396
|
+
const refusal = error instanceof DeviceAdmissionRefusal ? error : (0, ownership_claim_exports.claimFailure)(error, "stim ios");
|
|
397
|
+
if (refusal) return {
|
|
398
|
+
failed: true,
|
|
399
|
+
code: refusal.code,
|
|
400
|
+
reason: refusal.message,
|
|
401
|
+
remedy: refusal.remedy
|
|
402
|
+
};
|
|
403
|
+
return {
|
|
404
|
+
failed: true,
|
|
405
|
+
reason: `Could not boot simulator ${udid}: ${error?.message || error}`
|
|
406
|
+
};
|
|
407
|
+
}
|
|
377
408
|
function sleep(ms) {
|
|
378
409
|
return new Promise((r) => setTimeout(r, ms));
|
|
379
410
|
}
|
|
@@ -2,8 +2,8 @@ import { t as getExecutor } from "./exec-CaErVv7t.mjs";
|
|
|
2
2
|
import { B as parseDeviceSlotKey, R as deviceSlotKey, W as validateDeviceSlot, d as getConfigDir } from "./config-D0DbpZtM.mjs";
|
|
3
3
|
import { n as ownership_claim_exports } from "./process-identity-BmRm1qV0.mjs";
|
|
4
4
|
import { r as register } from "./cache-manifest-DnUHBJaU.mjs";
|
|
5
|
-
import { a as formatElapsed, i as formatDuration, m as shortHash } from "./command-output-
|
|
6
|
-
import { c as writeWorkspaceState, d as sharedBuildCache, n as clearWorkspaceStateKeys, o as withWorkspaceStateLock, r as readWorkspaceState, w as withDirLock$1 } from "./workspace-state-
|
|
5
|
+
import { a as formatElapsed, i as formatDuration, m as shortHash } from "./command-output-CDAIFD-8.mjs";
|
|
6
|
+
import { c as writeWorkspaceState, d as sharedBuildCache, n as clearWorkspaceStateKeys, o as withWorkspaceStateLock, r as readWorkspaceState, w as withDirLock$1 } from "./workspace-state-DqcCbpE7.mjs";
|
|
7
7
|
import { n as declareSpawnsOn, o as stopDeclaringSpawnsOn } from "./spawn-claims-D0XfSe8u.mjs";
|
|
8
8
|
import { createHash, randomBytes } from "node:crypto";
|
|
9
9
|
import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { R as deviceSlotKey } from "./config-D0DbpZtM.mjs";
|
|
2
|
-
import { a as formatElapsed, r as clockTime } from "./command-output-
|
|
3
|
-
import { a as parseLease, c as raiseLease, l as releaseRunLease, n as fileLeaseIo, p as takeLease, r as leaseIsExpired, t as deviceLeasePath } from "./device-lease-
|
|
4
|
-
import { a as VERIFY_TIMEOUT_MS, m as APP_READINESS_TIMEOUT_MS } from "./launch-verify-
|
|
2
|
+
import { a as formatElapsed, r as clockTime } from "./command-output-CDAIFD-8.mjs";
|
|
3
|
+
import { a as parseLease, c as raiseLease, l as releaseRunLease, n as fileLeaseIo, p as takeLease, r as leaseIsExpired, t as deviceLeasePath } from "./device-lease-DpoS36_u.mjs";
|
|
4
|
+
import { a as VERIFY_TIMEOUT_MS, m as APP_READINESS_TIMEOUT_MS } from "./launch-verify-lTnWZikR.mjs";
|
|
5
5
|
//#region src/engine/device-lease-run.ts
|
|
6
6
|
const LEASE_STEP_FLOOR_MS = 6e4;
|
|
7
7
|
const DEBUG_VERIFY_STEP_MS = VERIFY_TIMEOUT_MS + APP_READINESS_TIMEOUT_MS;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { R as deviceSlotKey } from "./config-D0DbpZtM.mjs";
|
|
2
|
-
import { a as parseLease, f as selectPoolDevice, n as fileLeaseIo, r as leaseIsExpired, t as deviceLeasePath } from "./device-lease-
|
|
3
|
-
import { i as DEVICE_WAIT_POLL_MS, n as DEVICE_BUSY, o as leaseExpiryText } from "./device-lease-run-
|
|
2
|
+
import { a as parseLease, f as selectPoolDevice, n as fileLeaseIo, r as leaseIsExpired, t as deviceLeasePath } from "./device-lease-DpoS36_u.mjs";
|
|
3
|
+
import { i as DEVICE_WAIT_POLL_MS, n as DEVICE_BUSY, o as leaseExpiryText } from "./device-lease-run-B8YltIH_.mjs";
|
|
4
4
|
//#region src/engine/device-pool.ts
|
|
5
5
|
function heldPoolId(root, platform, now, io = fileLeaseIo, slot = "default") {
|
|
6
6
|
const record = io.readHolder(root)[deviceSlotKey(platform, slot)];
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-CaErVv7t.mjs";
|
|
2
2
|
import { d as getConfigDir } from "./config-D0DbpZtM.mjs";
|
|
3
|
-
import { a as formatElapsed } from "./command-output-
|
|
4
|
-
import { K as planMetroReach } from "./settings-
|
|
5
|
-
import {
|
|
6
|
-
import { o as pidExists } from "./metro-
|
|
7
|
-
import { C as workspaceStateFile, v as workspaceDir, w as withDirLock, x as workspaceLogsDir$1, y as workspaceId } from "./workspace-state-
|
|
8
|
-
import { a as clearRemoteSession, c as readMetroTunnel, u as readRemoteSession } from "./state-
|
|
9
|
-
import { T as sanitizeDeviceLabel } from "./ios-
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { i as INSTALL_ERROR, o as LAUNCH_ERROR, u as devClientDeepLink } from "./app-install-
|
|
13
|
-
import { c as readMetroRecords, o as isBundleProof } from "./launch-verify-
|
|
3
|
+
import { a as formatElapsed } from "./command-output-CDAIFD-8.mjs";
|
|
4
|
+
import { K as planMetroReach } from "./settings-Cfd-0r2d.mjs";
|
|
5
|
+
import { u as ownedDeviceLabel } from "./project-D47Rh0ly.mjs";
|
|
6
|
+
import { o as pidExists } from "./metro-g8NqiJp-.mjs";
|
|
7
|
+
import { C as workspaceStateFile, v as workspaceDir, w as withDirLock, x as workspaceLogsDir$1, y as workspaceId } from "./workspace-state-DqcCbpE7.mjs";
|
|
8
|
+
import { a as clearRemoteSession, c as readMetroTunnel, u as readRemoteSession } from "./state-BKa8wNN5.mjs";
|
|
9
|
+
import { T as sanitizeDeviceLabel } from "./ios-DSfnPfse.mjs";
|
|
10
|
+
import { u as probePublicHttp } from "./ownership-BMLqyBgJ.mjs";
|
|
11
|
+
import { t as withWorkspaceProcessLock } from "./workspace-process-lock-2mNzOlaB.mjs";
|
|
12
|
+
import { i as INSTALL_ERROR, o as LAUNCH_ERROR, u as devClientDeepLink } from "./app-install-VPkI5WEg.mjs";
|
|
13
|
+
import { c as readMetroRecords, o as isBundleProof } from "./launch-verify-lTnWZikR.mjs";
|
|
14
14
|
import { t as compareStimVersions } from "./stim-installations-QMEI32v1.mjs";
|
|
15
|
-
import { c as nativeRunWaitNotice } from "./native-run-
|
|
15
|
+
import { c as nativeRunWaitNotice } from "./native-run-D1Q56rAD.mjs";
|
|
16
16
|
import { existsSync, mkdirSync, realpathSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
17
17
|
import { dirname, join, resolve } from "node:path";
|
|
18
18
|
import { easMachineStateRoot, easMachineStateRoot as easMachineStateRoot$1, easSessionLedgerFile, easSessionLedgerLock, readEasSessionLedger, readEasSessionLedger as readEasSessionLedger$1, readJsonObject, validEasSessionClaim } from "@stim-cli/core/state";
|
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-CaErVv7t.mjs";
|
|
2
2
|
import { _ as loadConfig$1, p as getProject, s as configCorruptRepair, u as getConcurrencyLimits } from "./config-D0DbpZtM.mjs";
|
|
3
|
-
import { d as quotedPath, f as refuseNoProject, l as phaseLine, u as plural } from "./command-output-
|
|
4
|
-
import { B as settingsLayers, Ct as filesystemDevice, Et as temporaryRoot, H as unknownSettingKeys, I as settingOrigin, M as remoteIosSetting, O as projectOptimizations, P as resolveSettings, R as settingShapeErrors, U as webSettings, Y as compilerCacheFallbackMessage, Z as resolveOptimizations,
|
|
5
|
-
import {
|
|
6
|
-
import { _ as workspaceDerivedData, d as sharedBuildCache } from "./workspace-state-
|
|
7
|
-
import {
|
|
8
|
-
import { C as diffFingerprintSources, D as fingerprintProject, h as listBuildLocks } from "./device-lease-
|
|
9
|
-
import { n as listBuildSlots } from "./build-slots-
|
|
10
|
-
import { D as hostSystemImageArch,
|
|
11
|
-
import { A as hostMemoryPressureAdvice, c as iosRuntimeMatches, j as readHostMemoryPressure, p as listIosRuntimes,
|
|
12
|
-
import { C as podInstallCommand, D as projectCmakeLauncher, S as bundlerPin, f as ccacheEnabled, i as macosToolchain, m as detectXcodeMajor, n as androidToolchain, r as iosToolchain, t as androidRequirements } from "./toolchain-
|
|
13
|
-
import {
|
|
14
|
-
import { n as inspectDeviceHostMachines } from "./machines-BIBUdhpj.mjs";
|
|
3
|
+
import { d as quotedPath, f as refuseNoProject, l as phaseLine, u as plural } from "./command-output-CDAIFD-8.mjs";
|
|
4
|
+
import { B as settingsLayers, Ct as filesystemDevice, Et as temporaryRoot, H as unknownSettingKeys, I as settingOrigin, M as remoteIosSetting, O as projectOptimizations, P as resolveSettings, R as settingShapeErrors, U as webSettings, Y as compilerCacheFallbackMessage, Z as resolveOptimizations, dt as listWorktrees, ft as locallyKnownUpstream, gt as repoRoot, i as SETTING_SHAPE_REMEDY, it as gitCommonDir, j as remoteAndroidSetting, n as PATH_SETTINGS, nt as dirtyFingerprintFiles, r as SETTINGS_WITH_RESOLVE_TIME_FALLBACK, v as iosSimSlimProfileSetting, vt as resolveSourceCheckout, wt as makeTemporaryDirectory, y as mergeSettingsLayers } from "./settings-Cfd-0r2d.mjs";
|
|
5
|
+
import { l as isPackageResolvable, n as appProjectProblem, r as detectIsExpo, s as findProjectRoot$1 } from "./project-D47Rh0ly.mjs";
|
|
6
|
+
import { _ as workspaceDerivedData, d as sharedBuildCache } from "./workspace-state-DqcCbpE7.mjs";
|
|
7
|
+
import { B as inspectWatchmanMemory, i as inspectBudget, n as budgetLine } from "./budget-DM984mnd.mjs";
|
|
8
|
+
import { C as diffFingerprintSources, D as fingerprintProject, h as listBuildLocks } from "./device-lease-DpoS36_u.mjs";
|
|
9
|
+
import { n as listBuildSlots } from "./build-slots-41v_d2x9.mjs";
|
|
10
|
+
import { D as hostSystemImageArch, ft as parkedMaxSetting, o as androidHome, ot as POOL_SETTING_REMEDY } from "./android-B_YNZy61.mjs";
|
|
11
|
+
import { A as hostMemoryPressureAdvice, c as iosRuntimeMatches, j as readHostMemoryPressure, p as listIosRuntimes, y as pickDefaultIosCreation } from "./ios-DSfnPfse.mjs";
|
|
12
|
+
import { C as podInstallCommand, D as projectCmakeLauncher, S as bundlerPin, f as ccacheEnabled, i as macosToolchain, m as detectXcodeMajor, n as androidToolchain, r as iosToolchain, t as androidRequirements } from "./toolchain-CNIBTIOv.mjs";
|
|
13
|
+
import { c as offloadCheck, f as simulatorRuntime, n as inspectDeviceHostMachines, v as inspectBuildMachines, x as realIo } from "./machines-C2XiNwh9.mjs";
|
|
15
14
|
import { a as findChrome, t as CHROME_INSTALL_REMEDY } from "./chrome-BrcVWQyD.mjs";
|
|
16
|
-
import { i as
|
|
17
|
-
import { d as androidPathRoomRemedy, l as androidPathRoom, n as apkOutputsDir, t as androidSdkRefusal, u as androidPathRoomMessage } from "./gradle-
|
|
18
|
-
import {
|
|
19
|
-
import { f as resolveEasCliBin, i as checkEasAuth$1, l as ownerFromConfig, u as providerFromConfig } from "./remote-cache-
|
|
20
|
-
import { _ as easCliSupport, g as MIN_EAS_CLI_SIMULATOR_VERSION, s as readInstalledEasCliVersion, v as easCliUpgradeRemedy } from "./device-remote-
|
|
15
|
+
import { i as countLiveOwnedDevices } from "./device-capacity-D0GWHnTM.mjs";
|
|
16
|
+
import { d as androidPathRoomRemedy, l as androidPathRoom, n as apkOutputsDir, t as androidSdkRefusal, u as androidPathRoomMessage } from "./gradle-D7-L2Th3.mjs";
|
|
17
|
+
import { g as resolveRuntime, m as resolveDeviceType } from "./support-BJPgYCu-.mjs";
|
|
18
|
+
import { f as resolveEasCliBin, i as checkEasAuth$1, l as ownerFromConfig, u as providerFromConfig } from "./remote-cache-Ci4DQYYj.mjs";
|
|
19
|
+
import { _ as easCliSupport, g as MIN_EAS_CLI_SIMULATOR_VERSION, s as readInstalledEasCliVersion, v as easCliUpgradeRemedy } from "./device-remote-hFSkpfQu.mjs";
|
|
21
20
|
import { n as inspectStimVersions, t as compareStimVersions } from "./stim-installations-QMEI32v1.mjs";
|
|
22
|
-
import { n as simslimIsOnPath, r as MIN_EAS_CLI_BUILD_DOWNLOAD_VERSION } from "./simslim-
|
|
23
|
-
import { r as resolveAndroidCompilerCache, t as readAndroidCasToolchain } from "./android-cas-
|
|
21
|
+
import { n as simslimIsOnPath, r as MIN_EAS_CLI_BUILD_DOWNLOAD_VERSION } from "./simslim-BWNrc3M3.mjs";
|
|
22
|
+
import { r as resolveAndroidCompilerCache, t as readAndroidCasToolchain } from "./android-cas-ZFpjJBL_.mjs";
|
|
24
23
|
import { r as maintenanceStatus, t as maintenanceLine } from "./status-DlKvVJBE.mjs";
|
|
25
|
-
import { n as recordDoctorRun } from "./guide-status-
|
|
26
|
-
import { n as hasInstalledDependencies, r as installedNpmTreeIsValid, t as dependencyState } from "./dependency-state-
|
|
24
|
+
import { n as recordDoctorRun } from "./guide-status-Du-ZQ3FD.mjs";
|
|
25
|
+
import { n as hasInstalledDependencies, r as installedNpmTreeIsValid, t as dependencyState } from "./dependency-state-CLcBHH2M.mjs";
|
|
27
26
|
import { existsSync, lstatSync, readFileSync, readdirSync, realpathSync, rmSync } from "node:fs";
|
|
28
27
|
import { basename, dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
29
28
|
import { existsSync as existsSync$1, lstatSync as lstatSync$1, mkdirSync as mkdirSync$1, readFileSync as readFileSync$1, readdirSync as readdirSync$1, realpathSync as realpathSync$1, renameSync as renameSync$1, rmSync as rmSync$1, writeFileSync as writeFileSync$1 } from "fs";
|
|
@@ -940,7 +939,7 @@ function checkEasAuth({ provider, owner = null, auth = null } = {}) {
|
|
|
940
939
|
}
|
|
941
940
|
function checkConcurrency({ maxBuilds = 0, maxDevices = 0, liveDevices = 0, activeBuilds = 0 } = {}) {
|
|
942
941
|
if (!maxBuilds && !maxDevices) return null;
|
|
943
|
-
return finding("note", "Concurrency limits are set", `${`maxBuilds ${maxBuilds || "unlimited"}, maxDevices ${maxDevices || "unlimited"}`}. Right now ${liveDevices} Stim device(s) are booted and ${activeBuilds} build slot(s) are in use on this machine. At the device cap a new \`stim ios\`/\`android\`
|
|
942
|
+
return finding("note", "Concurrency limits are set", `${`maxBuilds ${maxBuilds || "unlimited"}, maxDevices ${maxDevices || "unlimited"}`}. Right now ${typeof liveDevices === "number" ? `${liveDevices} Stim device(s) are booted` : `the number of booted Stim devices is unknown (${liveDevices.unknown})`} and ${activeBuilds} build slot(s) are in use on this machine. At the device cap a new \`stim ios\`/\`android\` waits in FIFO order for 600s (--wait changes it; --no-wait refuses with STIM_AT_CAPACITY); at the build cap a compile waits for a free slot.`, null);
|
|
944
943
|
}
|
|
945
944
|
function readProjectEasCliVersion(projectRoot) {
|
|
946
945
|
const bin = resolveEasCliBin(projectRoot);
|
|
@@ -998,7 +997,8 @@ function checkXcodeEnvLineEndings(projectRoot, platform, host) {
|
|
|
998
997
|
}
|
|
999
998
|
function configuredRemoteBackends(projectSettings, platform) {
|
|
1000
999
|
const iosTarget = remoteIosSetting(projectSettings);
|
|
1001
|
-
|
|
1000
|
+
const androidTarget = remoteAndroidSetting(projectSettings);
|
|
1001
|
+
return [.../* @__PURE__ */ new Set([...platform !== "android" ? [iosTarget?.kind === "backend" ? iosTarget.backend : null] : [], ...platform !== "ios" ? [androidTarget?.kind === "backend" ? androidTarget.backend : null] : []])].filter((backend) => backend !== null);
|
|
1002
1002
|
}
|
|
1003
1003
|
function runDoctor(projectRoot, { readFile = readFileSync$1, xcodeMajor = null, easAuth = checkEasAuth$1, concurrency = getConcurrencyLimits, liveDevices = null, activeBuilds = null, remoteEnv = process.env, lookupAgentDevice = null, lookupEasCli = null, lookupSimSlim = null, memoryPressure = readHostMemoryPressure, lookupCcache = null, lookupChrome, tailnetStatus = realIo.status, now = Date.now, platform, host = process.platform } = {}) {
|
|
1004
1004
|
const localIos = platform !== "android" && host === "darwin";
|
|
@@ -1039,7 +1039,7 @@ function runDoctor(projectRoot, { readFile = readFileSync$1, xcodeMajor = null,
|
|
|
1039
1039
|
if (limits && (limits.maxBuilds || limits.maxDevices)) concurrencyFinding = checkConcurrency({
|
|
1040
1040
|
maxBuilds: limits.maxBuilds,
|
|
1041
1041
|
maxDevices: limits.maxDevices,
|
|
1042
|
-
liveDevices: liveDevices ? liveDevices() :
|
|
1042
|
+
liveDevices: liveDevices ? liveDevices() : countLiveOwnedDevices(),
|
|
1043
1043
|
activeBuilds: activeBuilds ? activeBuilds() : countActiveBuilds()
|
|
1044
1044
|
});
|
|
1045
1045
|
const settingShapeFindings = settingShapeErrors(projectSettings).map((error) => finding("cost", "A setting has the wrong type", error, SETTING_SHAPE_REMEDY));
|
|
@@ -1183,29 +1183,6 @@ function agentDeviceIsOnPath() {
|
|
|
1183
1183
|
return true;
|
|
1184
1184
|
}
|
|
1185
1185
|
}
|
|
1186
|
-
function countLiveDevices() {
|
|
1187
|
-
let sims = [];
|
|
1188
|
-
let adb = {
|
|
1189
|
-
emulators: [],
|
|
1190
|
-
physical: [],
|
|
1191
|
-
unhealthy: []
|
|
1192
|
-
};
|
|
1193
|
-
let config = null;
|
|
1194
|
-
try {
|
|
1195
|
-
sims = listAllIosSims() || [];
|
|
1196
|
-
} catch {}
|
|
1197
|
-
try {
|
|
1198
|
-
adb = listAdbDevices() || adb;
|
|
1199
|
-
} catch {}
|
|
1200
|
-
try {
|
|
1201
|
-
config = loadConfig$1();
|
|
1202
|
-
} catch {}
|
|
1203
|
-
return liveOwnedDeviceCount({
|
|
1204
|
-
sims,
|
|
1205
|
-
adbEmulators: adb.emulators || [],
|
|
1206
|
-
config
|
|
1207
|
-
});
|
|
1208
|
-
}
|
|
1209
1186
|
function countActiveBuilds() {
|
|
1210
1187
|
try {
|
|
1211
1188
|
return listBuildSlots().filter((s) => s.alive).length;
|
|
@@ -1371,14 +1348,18 @@ function hostedAgentDriverFinding(driver, apps) {
|
|
|
1371
1348
|
code: "hosted-agent-driver",
|
|
1372
1349
|
level: "note",
|
|
1373
1350
|
title: `${apps === 1 ? "A hosted app runs" : `${apps} hosted apps run`} with no agent driver`,
|
|
1374
|
-
detail: "The client's coding agent cannot drive these apps because `hosting.agentDriver` is none, so stim-server starts no driver. agent-device confines macOS control to one macos-app lease and iOS control to one
|
|
1375
|
-
fix: "stim settings set hosting.agentDriver agent-device, with agent-device 0.21.
|
|
1351
|
+
detail: "The client's coding agent cannot drive these apps because `hosting.agentDriver` is none, so stim-server starts no driver. agent-device confines macOS control to one macos-app lease and iOS or Android control to one device through its daemon policy.",
|
|
1352
|
+
fix: "stim settings set hosting.agentDriver agent-device, with agent-device 0.21.22 or later"
|
|
1376
1353
|
};
|
|
1377
1354
|
}
|
|
1378
1355
|
function runningHostedApps() {
|
|
1379
1356
|
try {
|
|
1380
1357
|
return readHostedSessions().filter((session) => {
|
|
1381
|
-
if (![
|
|
1358
|
+
if (![
|
|
1359
|
+
"macos",
|
|
1360
|
+
"ios",
|
|
1361
|
+
"android"
|
|
1362
|
+
].includes(session.platform) || session.state !== "ready" || !session.appAttempt) return false;
|
|
1382
1363
|
try {
|
|
1383
1364
|
return readHostedAppMetadata(session.id, session.appAttempt).state === "installed";
|
|
1384
1365
|
} catch {
|
|
@@ -1389,7 +1370,7 @@ function runningHostedApps() {
|
|
|
1389
1370
|
return 0;
|
|
1390
1371
|
}
|
|
1391
1372
|
}
|
|
1392
|
-
/** Notes installed hosted
|
|
1373
|
+
/** Notes installed hosted apps on this Mac while `hosting.agentDriver` starts no driver. */
|
|
1393
1374
|
function inspectHostedAgentDriver() {
|
|
1394
1375
|
const hosting = loadConfig$1()?.hosting;
|
|
1395
1376
|
return hostedAgentDriverFinding(isJsonObject(hosting) ? hosting.agentDriver : void 0, runningHostedApps());
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { t as getExecutor } from "./exec-CaErVv7t.mjs";
|
|
2
2
|
import { R as deviceSlotKey, p as getProject, z as deviceSlotPlatforms } from "./config-D0DbpZtM.mjs";
|
|
3
|
-
import { v as launchErrorPreview } from "./command-output-
|
|
4
|
-
import { l as resolveProjectMetro } from "./metro-
|
|
5
|
-
import { r as readWorkspaceState$1, w as withDirLock } from "./workspace-state-
|
|
6
|
-
import { a as parseLease, n as fileLeaseIo, t as deviceLeasePath } from "./device-lease-
|
|
7
|
-
import { f as readWorkspaceLaunches } from "./state-
|
|
8
|
-
import { o as androidHome, u as androidToolCwd } from "./android-
|
|
3
|
+
import { v as launchErrorPreview } from "./command-output-CDAIFD-8.mjs";
|
|
4
|
+
import { l as resolveProjectMetro } from "./metro-g8NqiJp-.mjs";
|
|
5
|
+
import { r as readWorkspaceState$1, w as withDirLock } from "./workspace-state-DqcCbpE7.mjs";
|
|
6
|
+
import { a as parseLease, n as fileLeaseIo, t as deviceLeasePath } from "./device-lease-DpoS36_u.mjs";
|
|
7
|
+
import { f as readWorkspaceLaunches } from "./state-BKa8wNN5.mjs";
|
|
8
|
+
import { o as androidHome, u as androidToolCwd } from "./android-B_YNZy61.mjs";
|
|
9
9
|
import { r as deviceConsoleLevel } from "./ios-device-Ee7sDXfp.mjs";
|
|
10
|
-
import { n as parseLogcatLine, t as androidClockOffset } from "./android-
|
|
10
|
+
import { n as parseLogcatLine, t as androidClockOffset } from "./android-DE4v59Mb.mjs";
|
|
11
11
|
import { createHash, randomUUID } from "node:crypto";
|
|
12
12
|
import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, statSync, unlinkSync, writeFileSync } from "node:fs";
|
|
13
13
|
import { basename, dirname, join, resolve, sep } from "node:path";
|