stim 1.27.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-BKN2Yuhg.mjs → acquire-artifact-CKByBnTD.mjs} +1 -1
- package/dist/{act-ROviTF_t.mjs → act-8iswyfRa.mjs} +36 -18
- package/dist/{activity-Cd-ysFes.mjs → activity-DRMg4_mD.mjs} +3 -3
- package/dist/{agent-device-usage-output-C5nCKWp9.mjs → agent-device-usage-output-tE90fDdo.mjs} +3 -3
- package/dist/{android-Cd6w7_qw.mjs → android-CHmSU4B4.mjs} +40 -37
- package/dist/{android-DriNoAVy.mjs → android-CsPs-7Mg.mjs} +3 -3
- package/dist/{android-Deb9X3_Y.mjs → android-D577ApKG.mjs} +1 -1
- package/dist/{android--HBgpvpW.mjs → android-YWCbmkVK.mjs} +5 -5
- package/dist/{android-cas-D5e6ecUg.mjs → android-cas-_aDifWW0.mjs} +2 -2
- package/dist/api.d.mts +1 -1
- package/dist/api.mjs +24 -24
- package/dist/{apk-signed-tail-BHQHx3Rm.mjs → apk-signed-tail-CQbwM0qO.mjs} +2 -2
- package/dist/{artifact-faemIZv5.mjs → artifact-DYtHjxsn.mjs} +12 -12
- package/dist/{artifact-0AGJYB9O.mjs → artifact-bFkfD3vf.mjs} +12 -12
- package/dist/{auto-placement-z-H5pJza.mjs → auto-placement-BVqs8AJi.mjs} +7 -7
- package/dist/{browser-web-slD8AvLp.mjs → browser-web-BUaLcafY.mjs} +10 -10
- package/dist/{build-hS0QyFlQ.mjs → build-cQURy_KW.mjs} +20 -20
- package/dist/{build-cache-gBJ-WKzA.mjs → build-cache-CZULpXVl.mjs} +3 -3
- package/dist/{build-plan-CBqYbzYM.mjs → build-plan-CxoYfxsc.mjs} +6 -6
- package/dist/{ccache-BWTze1Ls.mjs → ccache-Bm_A1xX9.mjs} +15 -14
- package/dist/{cli-ftXDLto1.mjs → cli-CpbaLDa7.mjs} +17 -17
- package/dist/cli.mjs +1 -1
- package/dist/{client-xsdxrhWA.mjs → client-YxCer6ab.mjs} +39 -6
- package/dist/collector-run.mjs +3 -3
- package/dist/{command-output-Dj-WT4BP.mjs → command-output-C8R1KIvi.mjs} +1 -1
- package/dist/{dependencies-BGokZ-Ng.mjs → dependencies-DKeMzwXY.mjs} +35 -35
- package/dist/{dependency-state-C3OtgG94.mjs → dependency-state-CojA2o0t.mjs} +1 -1
- package/dist/{dev-client-BMca82xo.mjs → dev-client-D-BW5uiq.mjs} +2 -2
- package/dist/{device-tM41-TUq.mjs → device-CgXfbcz5.mjs} +11 -11
- package/dist/{device-capacity-6LP7QsaA.mjs → device-capacity-Cd8lMSn3.mjs} +85 -17
- package/dist/{device-BJm0irrq.mjs → device-eeK95Lir.mjs} +13 -13
- package/dist/device-host-worker.mjs +13 -11
- package/dist/{device-ios-534c14fz.mjs → device-ios-Cc9ulihb.mjs} +7 -7
- package/dist/{device-lease-run-DwsGfjUN.mjs → device-lease-run-Mtzp4THX.mjs} +3 -3
- package/dist/{device-pool-BnQqvs6o.mjs → device-pool-eRz6DtCg.mjs} +2 -2
- package/dist/{doctor-DyqE9n1J.mjs → doctor-Bz_ouYAW.mjs} +12 -12
- package/dist/{doctor-Dbx1ZpD2.mjs → doctor-C2QyhejJ.mjs} +1 -1
- package/dist/doctor-fingerprint.mjs +1 -1
- package/dist/{doctor-watchman-CxDbyrrt.mjs → doctor-watchman-BTW82PDC.mjs} +3 -3
- package/dist/{doctor-F-3VUUyN.mjs → doctor-xf7ht-5n.mjs} +17 -17
- package/dist/{eas-build-CjNSWmjo.mjs → eas-build-Dm6q68QY.mjs} +2 -2
- package/dist/{eas-fallback-9fqb46kW.mjs → eas-fallback-DajNpxf-.mjs} +3 -3
- package/dist/{eas-session-ledger-DrP4OuuM.mjs → eas-session-ledger-CBFo_Uo1.mjs} +35 -6
- package/dist/{error-diagnostics-snej9k4j.mjs → error-diagnostics-D1QfyJzQ.mjs} +7 -7
- package/dist/{gc-CGZ1Yg88.mjs → gc-DM5oMm-J.mjs} +17 -16
- package/dist/{gc-BRwAY3qT.mjs → gc-PLFwb0k4.mjs} +2 -2
- package/dist/{guide-_rfEh_zM.mjs → guide-C4I46XAk.mjs} +106 -42
- package/dist/{hosted-android-BMKzUNnY.mjs → hosted-android-DlaKLbW0.mjs} +5 -6
- package/dist/{hosted-client-D7Pk_Oo1.mjs → hosted-client-DDRm9hPJ.mjs} +43 -16
- package/dist/{hosted-logs-B1gqQuva.mjs → hosted-logs-bSebOKbz.mjs} +5 -5
- package/dist/{hosted-logs-sync-Dg3qrZmV.mjs → hosted-logs-sync-B0c53W_c.mjs} +5 -5
- package/dist/{hosted-macos-B9w4H8hc.mjs → hosted-macos-B7-8Pv4H.mjs} +5 -5
- package/dist/{hosted-native-CdgaiuyP.mjs → hosted-native-CDe33CSr.mjs} +11 -8
- package/dist/{idle-shutdown-Cbvo5KEh.mjs → idle-shutdown-CQ0QwU9J.mjs} +5 -5
- package/dist/{ios-E26qSpkb.mjs → ios-B1DYuOjh.mjs} +2 -2
- package/dist/{ios-Bk4mWbtS.mjs → ios-B1HvafEG.mjs} +8 -8
- package/dist/{ios-device-C_QkIf1Z.mjs → ios-device-B4elVFKi.mjs} +1 -1
- package/dist/{ios-project-D8Jcy_br.mjs → ios-project-CR4mZ7CH.mjs} +6 -6
- package/dist/{ios-state-BZ03NFgF.mjs → ios-state-BPHqMDdZ.mjs} +1 -1
- package/dist/{ios-B5HlVMhQ.mjs → ios-tg4tp3q1.mjs} +30 -28
- package/dist/{js-swap-Dg2a945i.mjs → js-swap-CVpSW1fn.mjs} +4 -4
- package/dist/{launch-CRyBeNsA.mjs → launch-DoySmhjz.mjs} +17 -17
- package/dist/{lightened-BCsdAGj_.mjs → lightened-DFAJgfIk.mjs} +4 -4
- package/dist/{logs-aJQb-RDg.mjs → logs-BGsW7iPe.mjs} +6 -6
- package/dist/{logs-CC_-ZzEE.mjs → logs-DI5ILkYB.mjs} +4 -4
- package/dist/{macos-DlCBhMw5.mjs → macos-Bo9st9Di.mjs} +18 -18
- package/dist/{macos-BGmTpnv9.mjs → macos-C12RMJQF.mjs} +1 -1
- package/dist/macos-run.mjs +1 -1
- package/dist/maintenance-run.mjs +4 -4
- package/dist/{metro-CvyD-xwe.mjs → metro-BnhXV2Mj.mjs} +1 -1
- package/dist/{metro-gateway-BnHdqMO_.mjs → metro-request-DXyKjVDF.mjs} +25 -46
- package/dist/{named-ports-BCyMWA6b.mjs → named-ports-Phoi2POD.mjs} +1 -1
- package/dist/{native-android-DlpxCyOP.mjs → native-android-vxgtLD7w.mjs} +14 -14
- package/dist/{native-gradle-artifact-inputs-C13qT7R_.mjs → native-gradle-artifact-inputs-BN96IVw8.mjs} +3 -3
- package/dist/{native-runtime-DqaIBO5w.mjs → native-runtime-DG4Rodzj.mjs} +6 -6
- package/dist/{native-xcode-inputs-B1W8SrxB.mjs → native-xcode-inputs-BKarCoKg.mjs} +2 -2
- package/dist/{native-xcode-ios-QPP0Rm68.mjs → native-xcode-ios-8A-efGa5.mjs} +14 -14
- package/dist/offload-worker.mjs +18 -18
- package/dist/{ownership-Bx-0cku-.mjs → ownership-DJCq48IJ.mjs} +2 -2
- package/dist/{phone-reverses-C9yAaKEv.mjs → phone-reverses-BzTa8g1F.mjs} +3 -3
- package/dist/{placement-log-BXUbiZM6.mjs → placement-log-Cvhta5ib.mjs} +1 -1
- package/dist/{plan-placement-UxnQjv5Z.mjs → plan-placement-WkZdccuN.mjs} +5 -5
- package/dist/{ports-uUrghqWN.mjs → ports-UV4mJgyC.mjs} +2 -2
- package/dist/{prebuild-BDpToDgR.mjs → prebuild-k8d_tqOq.mjs} +8 -8
- package/dist/{project-DYj-HVx6.mjs → project-Sui52ywT.mjs} +14 -14
- package/dist/{react-native-android-DDBccgJw.mjs → react-native-android-DANlGGQf.mjs} +21 -21
- package/dist/{react-native-build-DaK2IFyP.mjs → react-native-build-jUHnIfZ9.mjs} +6 -6
- package/dist/{react-native-doctor-B-Mw6DcR.mjs → react-native-doctor-DCWRjS7K.mjs} +5 -5
- package/dist/{react-native-ios-DjYwUF9U.mjs → react-native-ios-BwMsFMXi.mjs} +14 -14
- package/dist/{recordings-C20iUZfp.mjs → recordings-iy0mkm7b.mjs} +1 -1
- package/dist/{reload-DJBeF_rC.mjs → reload-Bj7QyuDy.mjs} +1 -1
- package/dist/{reload-fUdkH2_p.mjs → reload-c_uEyc_X.mjs} +13 -13
- package/dist/{remote-y6n99WMW.mjs → remote-DFlpAqdV.mjs} +8 -8
- package/dist/{result-CTqBw2Te.mjs → result-BIcXREyC.mjs} +14 -14
- package/dist/{run-DaCeNKRm.mjs → run-y2HwyNvg.mjs} +1 -1
- package/dist/{selection-Bs8phwhN.mjs → selection-CXgM_VK_.mjs} +2 -2
- package/dist/{server-bare-BOh-iZEj.mjs → server-bare-2N4vSRZG.mjs} +1 -1
- package/dist/{server-command-8CuA51Cv.mjs → server-command-qneHPcRI.mjs} +4 -4
- package/dist/{server-expo-ABQs2XFA.mjs → server-expo-Ccm9zB0o.mjs} +2 -2
- package/dist/server-expo-WulkyAwT.mjs +2 -0
- package/dist/{settings-BDVI8Ivc.mjs → settings-CY5JZlNN.mjs} +46 -2
- package/dist/{settings-CMHhQNwI.mjs → settings-Cfd_Q6ys.mjs} +2 -2
- package/dist/{settings-payload-cm60Zhib.mjs → settings-payload-DwQiEMCn.mjs} +2 -2
- package/dist/{settings-write-BdNRLlBn.mjs → settings-write-CJpjkeAd.mjs} +3 -3
- package/dist/{slot-launch-0l7RqSpr.mjs → slot-launch-BpmanOnk.mjs} +5 -5
- package/dist/{stage-F4cAfJGi.mjs → stage-CmugrSG5.mjs} +1 -1
- package/dist/{start-DcqnF9p8.mjs → start-CHH3zgIU.mjs} +1 -1
- package/dist/{start-DrPwER_2.mjs → start-DYLk6GXn.mjs} +8 -8
- package/dist/{state-BX1y5syV.mjs → state-B2QJbDwz.mjs} +2 -2
- package/dist/{state-CZxLyetD.mjs → state-BXC1Lfxw.mjs} +1 -1
- package/dist/{stats-GxuCbles.mjs → stats-DxKqhcGp.mjs} +3 -3
- package/dist/{status-BfnK9pUd.mjs → status-BHCkOZga.mjs} +46 -23
- package/dist/{status-Bj7ZYvvc.mjs → status-D_Ljc89p.mjs} +1 -1
- package/dist/{status-watch-BfabQn03.mjs → status-watch-BmsPqYSU.mjs} +17 -6
- package/dist/status-worker.mjs +1 -1
- package/dist/{stop-D-EAr25B.mjs → stop-D-dGE9gh.mjs} +14 -14
- package/dist/{stop-CH79S3IZ.mjs → stop-DQvE-P76.mjs} +9 -5
- package/dist/{stop-x1Yu3He4.mjs → stop-b2pouxAO.mjs} +2 -2
- package/dist/supervisor-run.mjs +232 -58
- package/dist/{support-CNg_YsOk.mjs → support-04IhBUTT.mjs} +4 -4
- package/dist/{support-Be0UeVZU.mjs → support-BtlJKjyQ.mjs} +11 -10
- package/dist/{swiftpm-artifact-inputs-uPqYvGBv.mjs → swiftpm-artifact-inputs-Cj2UpmPN.mjs} +1 -1
- package/dist/{swiftpm-macos-Ch4YjY_A.mjs → swiftpm-macos-BhF2stxY.mjs} +7 -7
- package/dist/{toolchain-CbCG6C5Z.mjs → toolchain-mLA_km-b.mjs} +4 -4
- package/dist/{toolchain-JYAOquPg.mjs → toolchain-qktiV8xc.mjs} +1 -1
- package/dist/{warm-progress-C0RsbngN.mjs → warm-progress-B0Vpuvpl.mjs} +3 -3
- package/dist/{web-Cq_AQ4DK.mjs → web-BYmK0TjL.mjs} +6 -6
- package/dist/web-CrVLVQZY.mjs +2 -0
- package/dist/web-run.mjs +4 -4
- package/dist/{workspace-state-BjqdjnJR.mjs → workspace-state-kIZrdlSg.mjs} +1 -1
- package/dist/{workspaces-DFbj07jp.mjs → workspaces-CmOcceDN.mjs} +105 -25
- package/dist/{worktree-COAJ3-OD.mjs → worktree-2dk5edza.mjs} +23 -44
- package/dist/worktree-nliAoHxB.mjs +2 -0
- package/package.json +7 -7
- package/dist/server-expo-Ba_Y21vB.mjs +0 -2
- package/dist/web-Je6abcpz.mjs +0 -2
- package/dist/worktree-JGUd_53L.mjs +0 -2
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
import { D as ownership_claim_exports, S as process_identity_exports, b as operationState, c as throwIfCancelled, d as workspaceProcessLockError, f as workspaceProcessLockPath, l as WorkspaceProcessCleanupError, m as declareSpawnsOn, o as cancellableSleep, t as getExecutor, u as withWorkspaceProcessLock, v as stopDeclaringSpawnsOn } from "./exec-aULwtNly.mjs";
|
|
2
|
-
import { A as workspaceName$1, E as workspaceDir, l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey, u as workspaceLastUsed, w as workspaceAgentDeviceDir } from "./workspace-state-
|
|
2
|
+
import { A as workspaceName$1, E as workspaceDir, l as withWorkspaceStateLockAsync, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey, u as workspaceLastUsed, w as workspaceAgentDeviceDir } from "./workspace-state-kIZrdlSg.mjs";
|
|
3
3
|
import { D as withConfigLock$1, F as isOnMountedVolume, G as projectDeviceSlots, H as deviceSlotPlatforms, I as listMountedVolumes, L as measuredDirectorySizeAsync, O as withConfigLockAsync$1, P as formatBytes, _ as loadConfig$1, d as getConfigDir, g as isPathPrefix$1, j as acquireAvdClaim, p as getProject } from "./config-Cn94Jc0g.mjs";
|
|
4
4
|
import { t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
|
|
5
|
-
import { a as formatElapsed, d as quotedPath$1, l as phaseLine, o as formatLongDuration, u as plural } from "./command-output-
|
|
5
|
+
import { a as formatElapsed, d as quotedPath$1, l as phaseLine, o as formatLongDuration, u as plural } from "./command-output-C8R1KIvi.mjs";
|
|
6
6
|
import { c as gitQuiet, l as gitQuietAsync, t as runOperationFile } from "./operation-exec-Dp4FuIGR.mjs";
|
|
7
|
-
import {
|
|
8
|
-
import { a as macosRuntimeClaim, n as macosDir } from "./state-
|
|
9
|
-
import { Ct as forgetCreatedDeviceAsync, G as ownedAvdSerialResolverAsync, H as ownedAvdMatchesConfiguration, K as ownedAvdSystemImage, L as listOrphanedAvdDirectories, S as deleteAvd, St as forgetCreatedDevice, Tt as recordCreatedDevice, V as ownedAvdDirectory, W as ownedAvdSerialResolver, _t as parkSim, bt as removeParkedAfter, g as avdPathExists, ht as eraseParkedAfter, it as shutdownAndroidEmulator, j as listAdbDevicesAsync, lt as wipeAvdUserData, nt as resolveOwnedAvdSerialAsync, p as assertOwnedAvdStoppedAsync, st as waitForAndroidEmulatorShutdown, ut as isStimOwnedAvd, v as avdStorageRoots, wt as readCreatedDevices$1, yt as readParked } from "./android-
|
|
10
|
-
import { c as pidExists, f as signalProcessTree, p as signalProcessTreeAsync } from "./metro-
|
|
11
|
-
import { _ as chromeProcessStateAsync, c as webClaimRoot, i as clearWebRecord, o as readWebRecord, p as webProfileDir, t as CDP_PORT_LABEL, u as webFacts, v as liveProfileHolder, y as removeSingletonFiles } from "./state-
|
|
7
|
+
import { Pt as lockReason, Vt as repoRootAsync, Xt as worktreeLockAsync, Yt as worktreeLock, pt as resolveTailscaleBinary } from "./settings-CY5JZlNN.mjs";
|
|
8
|
+
import { a as macosRuntimeClaim, n as macosDir } from "./state-BXC1Lfxw.mjs";
|
|
9
|
+
import { Ct as forgetCreatedDeviceAsync, G as ownedAvdSerialResolverAsync, H as ownedAvdMatchesConfiguration, K as ownedAvdSystemImage, L as listOrphanedAvdDirectories, S as deleteAvd, St as forgetCreatedDevice, Tt as recordCreatedDevice, V as ownedAvdDirectory, W as ownedAvdSerialResolver, _t as parkSim, bt as removeParkedAfter, g as avdPathExists, ht as eraseParkedAfter, it as shutdownAndroidEmulator, j as listAdbDevicesAsync, lt as wipeAvdUserData, nt as resolveOwnedAvdSerialAsync, p as assertOwnedAvdStoppedAsync, st as waitForAndroidEmulatorShutdown, ut as isStimOwnedAvd, v as avdStorageRoots, wt as readCreatedDevices$1, yt as readParked } from "./android-CsPs-7Mg.mjs";
|
|
10
|
+
import { c as pidExists, f as signalProcessTree, p as signalProcessTreeAsync } from "./metro-BnhXV2Mj.mjs";
|
|
11
|
+
import { _ as chromeProcessStateAsync, c as webClaimRoot, i as clearWebRecord, o as readWebRecord, p as webProfileDir, t as CDP_PORT_LABEL, u as webFacts, v as liveProfileHolder, y as removeSingletonFiles } from "./state-B2QJbDwz.mjs";
|
|
12
12
|
import { t as canonicalPath } from "./paths-BsJMoPP2.mjs";
|
|
13
|
-
import { N as listBuildLocks, d as readAgentDeviceRecords, i as createActivityReaderAsync, r as createActivityReader, s as idleForMs, t as agentDeviceDaemon } from "./activity-
|
|
14
|
-
import { C as renameIosSim, D as resolveOwnedIosSim, c as eraseIosSim, f as listAllIosSimsAsync, k as shutdownIosSim, o as deleteIosSim, p as listIosDeviceTypesAsync, s as deleteParkedIosSim, v as parkedSimName, y as parseRuntimeVersion } from "./ios-
|
|
15
|
-
import { r as releaseBrowserPort } from "./named-ports-
|
|
13
|
+
import { N as listBuildLocks, d as readAgentDeviceRecords, i as createActivityReaderAsync, r as createActivityReader, s as idleForMs, t as agentDeviceDaemon } from "./activity-DRMg4_mD.mjs";
|
|
14
|
+
import { C as renameIosSim, D as resolveOwnedIosSim, c as eraseIosSim, f as listAllIosSimsAsync, k as shutdownIosSim, o as deleteIosSim, p as listIosDeviceTypesAsync, s as deleteParkedIosSim, v as parkedSimName, y as parseRuntimeVersion } from "./ios-B1DYuOjh.mjs";
|
|
15
|
+
import { r as releaseBrowserPort } from "./named-ports-Phoi2POD.mjs";
|
|
16
16
|
import { createHash, randomUUID } from "node:crypto";
|
|
17
17
|
import { closeSync, existsSync, lstatSync, mkdirSync, openSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, rmdirSync, statSync, unlinkSync, watch, writeFileSync } from "node:fs";
|
|
18
18
|
import { isDeepStrictEqual } from "node:util";
|
|
19
19
|
import { homedir } from "node:os";
|
|
20
20
|
import { basename, dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
|
|
21
21
|
import { ambientContext, ambientEnv, ambientWrite, withDirLock, workspaceName } from "@stim-cli/core";
|
|
22
|
-
import { BUILD_HISTORY_KEY, BUILD_HISTORY_LIMIT, BUILD_LEDGER_CAP, BUILD_PHASES, LAST_BUILD_KEYS, STATS_VERSION, buildLedgerFile, buildLedgerLock, buildSlotsDir, decodeStats, hostedNativeRecords, isJsonObject, lastNativeUseFrom, macosAppState, parseHostedNativePlacement, parseMissReason, readJsonFile, readMacosRecord, readRunEstimates, readStats as readStats$1, requireAutomaticMachine, statsFile, statsProjectKey as statsProjectKey$1, trace, trimCapacityRefusals, trimCapacityWaits, trimSamples, tryAcquireBuildSlotClaim, unreadableHostedNative, wholePhases, workspaceBuildDetailFile } from "@stim-cli/core/state";
|
|
22
|
+
import { BUILD_HISTORY_KEY, BUILD_HISTORY_LIMIT, BUILD_LEDGER_CAP, BUILD_PHASES, LAST_BUILD_KEYS, STATS_VERSION, buildLedgerFile, buildLedgerLock, buildSlotsDir, decodeStats, hostedAppAttempt, hostedNativeRecords, isJsonObject, lastNativeUseFrom, loadPerCore, macosAppState, parseHostedNativePlacement, parseMissReason, readJsonFile, readMacosRecord, readRunEstimates, readStats as readStats$1, requireAutomaticMachine, statsFile, statsProjectKey as statsProjectKey$1, trace, trimCapacityRefusals, trimCapacityWaits, trimSamples, tryAcquireBuildSlotClaim, unreadableHostedNative, wholePhases, workspaceBuildDetailFile } from "@stim-cli/core/state";
|
|
23
23
|
import { basename as basename$1, dirname as dirname$1, isAbsolute as isAbsolute$1, join as join$1, relative as relative$1 } from "path";
|
|
24
24
|
import { request } from "node:https";
|
|
25
25
|
import chalk from "chalk";
|
|
@@ -104,7 +104,8 @@ function toRecord(holder) {
|
|
|
104
104
|
index: typeof details.index === "number" ? details.index : null,
|
|
105
105
|
projectRoot: typeof details.projectRoot === "string" ? details.projectRoot : null,
|
|
106
106
|
startedAt: holder.startedAt || null,
|
|
107
|
-
logFile: typeof details.logFile === "string" ? details.logFile : null
|
|
107
|
+
logFile: typeof details.logFile === "string" ? details.logFile : null,
|
|
108
|
+
client: details.offloaded === true && typeof details.client === "string" ? details.client : null
|
|
108
109
|
};
|
|
109
110
|
}
|
|
110
111
|
function tryAcquireBuildSlot({ max, root = null, logFile = null }) {
|
|
@@ -130,7 +131,8 @@ function tryAcquireBuildSlot({ max, root = null, logFile = null }) {
|
|
|
130
131
|
index: got.index,
|
|
131
132
|
projectRoot: root,
|
|
132
133
|
startedAt: got.claim.startedAt,
|
|
133
|
-
logFile
|
|
134
|
+
logFile,
|
|
135
|
+
client: null
|
|
134
136
|
},
|
|
135
137
|
claim: got.claim
|
|
136
138
|
};
|
|
@@ -224,12 +226,37 @@ function listBuildSlots() {
|
|
|
224
226
|
projectRoot: info?.projectRoot ?? null,
|
|
225
227
|
startedAt: info?.startedAt ?? null,
|
|
226
228
|
logFile: info?.logFile ?? null,
|
|
229
|
+
client: info?.client ?? null,
|
|
227
230
|
alive: survey.live.length > 0,
|
|
228
231
|
unresolved: survey.unresolved.length > 0
|
|
229
232
|
});
|
|
230
233
|
}
|
|
231
234
|
return slots;
|
|
232
235
|
}
|
|
236
|
+
/** The `concurrency.maxBuilds` slots a new build could take, `0` to `max - 1`, and who holds each busy one. */
|
|
237
|
+
function buildSlotUsage(max, slots = listBuildSlots()) {
|
|
238
|
+
const holders = slots.flatMap(({ index, alive, unresolved, projectRoot, client, startedAt }) => {
|
|
239
|
+
if (index === null || index >= max) return [];
|
|
240
|
+
if (alive) return [{
|
|
241
|
+
slot: index,
|
|
242
|
+
workspace: projectRoot,
|
|
243
|
+
client,
|
|
244
|
+
since: startedAt
|
|
245
|
+
}];
|
|
246
|
+
return unresolved ? [{
|
|
247
|
+
slot: index,
|
|
248
|
+
workspace: null,
|
|
249
|
+
client: null,
|
|
250
|
+
since: null,
|
|
251
|
+
unresolved: true
|
|
252
|
+
}] : [];
|
|
253
|
+
}).toSorted((a, b) => a.slot - b.slot);
|
|
254
|
+
return {
|
|
255
|
+
max,
|
|
256
|
+
inUse: holders.length,
|
|
257
|
+
holders
|
|
258
|
+
};
|
|
259
|
+
}
|
|
233
260
|
//#endregion
|
|
234
261
|
//#region src/devices/report-only-usage.ts
|
|
235
262
|
function canonical$1(path) {
|
|
@@ -1763,6 +1790,7 @@ function buildLedgerRecord(run) {
|
|
|
1763
1790
|
remedy: text(extras.remedy),
|
|
1764
1791
|
phase: run.phase
|
|
1765
1792
|
};
|
|
1793
|
+
const bootStartedAt = run.boot ? Date.parse(run.boot.startedAt) : NaN;
|
|
1766
1794
|
const where = placement.machine ? `on ${placement.machine}` : "here";
|
|
1767
1795
|
const cacheText = cache.result === "hit" ? `cache hit${cache.source === "remote" ? " (remote)" : ""}` : cache.result;
|
|
1768
1796
|
const summary = `${platform} build ${outcome} ${where} in ${formatElapsed(durationMs)} (${cacheText})`;
|
|
@@ -1793,6 +1821,11 @@ function buildLedgerRecord(run) {
|
|
|
1793
1821
|
name: device,
|
|
1794
1822
|
...runtime ? { runtime } : {}
|
|
1795
1823
|
} } : {},
|
|
1824
|
+
...run.loadPerCore === void 0 ? {} : { loadPerCore: run.loadPerCore },
|
|
1825
|
+
...run.boot && Number.isFinite(bootStartedAt) ? { boot: {
|
|
1826
|
+
startedAt: bootStartedAt,
|
|
1827
|
+
loadPerCore: run.boot.loadPerCore
|
|
1828
|
+
} } : {},
|
|
1796
1829
|
stimVersion: run.version
|
|
1797
1830
|
};
|
|
1798
1831
|
}
|
|
@@ -1869,6 +1902,7 @@ const NO_BUILD_PROGRESS = {
|
|
|
1869
1902
|
place: () => {},
|
|
1870
1903
|
waitingOn: () => {},
|
|
1871
1904
|
waitingFor: () => {},
|
|
1905
|
+
bootStarted: () => {},
|
|
1872
1906
|
output: () => {},
|
|
1873
1907
|
durations: () => ({}),
|
|
1874
1908
|
phase: () => null,
|
|
@@ -1949,7 +1983,7 @@ function projectHistory(projectKey) {
|
|
|
1949
1983
|
return;
|
|
1950
1984
|
}
|
|
1951
1985
|
}
|
|
1952
|
-
function startBuildProgress({ root, platform, slot, claim, now = Date.now, note = () => {} }) {
|
|
1986
|
+
function startBuildProgress({ root, platform, slot, claim, now = Date.now, load = () => loadPerCore().loadPerCore, note = () => {} }) {
|
|
1953
1987
|
const startedAt = new Date(now()).toISOString();
|
|
1954
1988
|
const record = {
|
|
1955
1989
|
platform,
|
|
@@ -1966,7 +2000,8 @@ function startBuildProgress({ root, platform, slot, claim, now = Date.now, note
|
|
|
1966
2000
|
path: claim.path,
|
|
1967
2001
|
claimId: claim.claimId,
|
|
1968
2002
|
pid: claim.owner.pid
|
|
1969
|
-
}
|
|
2003
|
+
},
|
|
2004
|
+
loadPerCore: load()
|
|
1970
2005
|
};
|
|
1971
2006
|
let warned = false;
|
|
1972
2007
|
const guard = (fn) => {
|
|
@@ -2080,6 +2115,14 @@ function startBuildProgress({ root, platform, slot, claim, now = Date.now, note
|
|
|
2080
2115
|
else delete record.waitingFor;
|
|
2081
2116
|
write();
|
|
2082
2117
|
},
|
|
2118
|
+
bootStarted() {
|
|
2119
|
+
if (record.boot) return;
|
|
2120
|
+
record.boot = {
|
|
2121
|
+
startedAt: new Date(now()).toISOString(),
|
|
2122
|
+
loadPerCore: load()
|
|
2123
|
+
};
|
|
2124
|
+
write();
|
|
2125
|
+
},
|
|
2083
2126
|
waitingOn(holder) {
|
|
2084
2127
|
if (holder === null) {
|
|
2085
2128
|
if (!record.waitingOn) return;
|
|
@@ -2214,7 +2257,9 @@ function updateFinishedBuild(root, record, ran, { update, now, artifactOnly }) {
|
|
|
2214
2257
|
id: own.claim.claimId,
|
|
2215
2258
|
phases,
|
|
2216
2259
|
phase: own.phase,
|
|
2217
|
-
...offload ? { offload } : {}
|
|
2260
|
+
...offload ? { offload } : {},
|
|
2261
|
+
...own.loadPerCore === void 0 ? {} : { loadPerCore: own.loadPerCore },
|
|
2262
|
+
...own.boot ? { boot: own.boot } : {}
|
|
2218
2263
|
});
|
|
2219
2264
|
}
|
|
2220
2265
|
const entry = {
|
|
@@ -2318,6 +2363,7 @@ function parseActiveBuild(value) {
|
|
|
2318
2363
|
const estimate = parseEstimate(record.estimate);
|
|
2319
2364
|
const activity = parseActivity(record.activity);
|
|
2320
2365
|
const offload = parseOffload(record.offload);
|
|
2366
|
+
const boot = parseBoot(record.boot);
|
|
2321
2367
|
return {
|
|
2322
2368
|
platform: record.platform,
|
|
2323
2369
|
slot: typeof record.slot === "string" ? record.slot : "default",
|
|
@@ -2335,6 +2381,8 @@ function parseActiveBuild(value) {
|
|
|
2335
2381
|
...record.outcome === "hit" || record.outcome === "cold" ? { outcome: record.outcome } : {},
|
|
2336
2382
|
...estimate ? { estimate } : {},
|
|
2337
2383
|
...activity ? { activity } : {},
|
|
2384
|
+
...isLoad(record.loadPerCore) ? { loadPerCore: record.loadPerCore } : {},
|
|
2385
|
+
...boot ? { boot } : {},
|
|
2338
2386
|
claim: {
|
|
2339
2387
|
root: claim.root,
|
|
2340
2388
|
path: typeof claim.path === "string" ? claim.path : "",
|
|
@@ -2343,6 +2391,16 @@ function parseActiveBuild(value) {
|
|
|
2343
2391
|
}
|
|
2344
2392
|
};
|
|
2345
2393
|
}
|
|
2394
|
+
function isLoad(value) {
|
|
2395
|
+
return typeof value === "number" && Number.isFinite(value) && value >= 0;
|
|
2396
|
+
}
|
|
2397
|
+
function parseBoot(value) {
|
|
2398
|
+
if (!isJsonObject(value) || typeof value.startedAt !== "string" || !isLoad(value.loadPerCore)) return null;
|
|
2399
|
+
return {
|
|
2400
|
+
startedAt: value.startedAt,
|
|
2401
|
+
loadPerCore: value.loadPerCore
|
|
2402
|
+
};
|
|
2403
|
+
}
|
|
2346
2404
|
function parseOffload(value) {
|
|
2347
2405
|
if (!isJsonObject(value) || typeof value.host !== "string" || !isJsonObject(value.phaseMs)) return null;
|
|
2348
2406
|
const phaseMs = {};
|
|
@@ -2827,10 +2885,20 @@ function failedBundleListing(record, error) {
|
|
|
2827
2885
|
if (!open.trim()) throw unverified(record.pid, `lsof failed (${error.message.split("\n")[0]})`);
|
|
2828
2886
|
return open;
|
|
2829
2887
|
}
|
|
2888
|
+
/** The attempt directories under a hosted session's `apps`, each of which holds one `App.app`. */
|
|
2889
|
+
function hostedBundleDirs(area) {
|
|
2890
|
+
const apps = join(area, "apps");
|
|
2891
|
+
if (process.platform !== "darwin" || !existsSync(apps)) return [];
|
|
2892
|
+
if (realpathSync(apps) !== apps) throw new Error("Hosted app data resolves outside its private area.");
|
|
2893
|
+
return readdirSync(apps).filter((attempt) => hostedAppAttempt(attempt)).map((attempt) => join(apps, attempt)).filter((dir) => lstatSync(dir, { throwIfNoEntry: false })?.isDirectory());
|
|
2894
|
+
}
|
|
2830
2895
|
/** Verifies owned bundle instances without blocking on process and executable probes. */
|
|
2831
|
-
|
|
2896
|
+
function runningBundleInstancesAsync(root, operation) {
|
|
2897
|
+
return runningInstancesInAsync(bundleDirs(root), operation);
|
|
2898
|
+
}
|
|
2899
|
+
/** Verifies the running copies of app bundles directly inside `dirs`. */
|
|
2900
|
+
async function runningInstancesInAsync(dirs, operation) {
|
|
2832
2901
|
operation?.signal.throwIfAborted();
|
|
2833
|
-
const dirs = bundleDirs(root);
|
|
2834
2902
|
if (!dirs.length) return [];
|
|
2835
2903
|
const listing = await runOperationFile(operation, getExecutor(), "ps", [
|
|
2836
2904
|
"-axww",
|
|
@@ -3871,11 +3939,14 @@ function recentNativeUseReason(nativeUsed, now) {
|
|
|
3871
3939
|
return now - nativeUsed < 9e5 ? `ran ios, android or macos within the last ${LIGHTEN_AFTER_MS / 6e4} minutes` : null;
|
|
3872
3940
|
}
|
|
3873
3941
|
const DAY_MS = 864e5;
|
|
3942
|
+
function keptByLock(entry) {
|
|
3943
|
+
return entry.keptCode === "locked" || entry.keptCode === "lock-unknown";
|
|
3944
|
+
}
|
|
3874
3945
|
function planWorkspaceOutputs(entries, { olderThan, now }) {
|
|
3875
|
-
return entries.map(({ dir, projectRoot, problem, inTreeDirs = [], bytes, lastUsed, nativeUsed, inUse }) => {
|
|
3946
|
+
return entries.map(({ dir, projectRoot, problem, inTreeDirs = [], bytes, lastUsed, nativeUsed, inUse, lock }) => {
|
|
3876
3947
|
const recentNative = recentNativeUseReason(nativeUsed, now);
|
|
3877
3948
|
const idleDays = Number.isFinite(lastUsed) ? Math.max(0, Math.floor((now - lastUsed) / DAY_MS)) : null;
|
|
3878
|
-
const [keptCode, keptReason] = projectRoot === null ? ["unresolved", `workspace directory not resolved: ${problem ?? "unknown project root"}`] : inUse.length ? ["in-use", `in use: ${inUse.join("; ")}`] : recentNative ? ["recently-used", recentNative] : olderThan === null ? [null, null] : idleDays === null ? ["last-use-unknown", "its last use is unknown"] : idleDays < olderThan ? ["recently-used", `used ${idleDays}d ago, within --older-than ${olderThan}`] : [null, null];
|
|
3949
|
+
const [keptCode, keptReason] = projectRoot === null ? ["unresolved", `workspace directory not resolved: ${problem ?? "unknown project root"}`] : lock ? [lock === "locked" ? "locked" : "lock-unknown", lockReason(lock)] : inUse.length ? ["in-use", `in use: ${inUse.join("; ")}`] : recentNative ? ["recently-used", recentNative] : olderThan === null ? [null, null] : idleDays === null ? ["last-use-unknown", "its last use is unknown"] : idleDays < olderThan ? ["recently-used", `used ${idleDays}d ago, within --older-than ${olderThan}`] : [null, null];
|
|
3879
3950
|
return {
|
|
3880
3951
|
dir,
|
|
3881
3952
|
projectRoot,
|
|
@@ -3889,6 +3960,11 @@ function planWorkspaceOutputs(entries, { olderThan, now }) {
|
|
|
3889
3960
|
});
|
|
3890
3961
|
}
|
|
3891
3962
|
const SIZE_TIMEOUT_MS = 6e4;
|
|
3963
|
+
const gitRead = (operation, signal) => ({
|
|
3964
|
+
env: operation?.env,
|
|
3965
|
+
signal: signal ?? operation?.signal,
|
|
3966
|
+
declareFor: operation
|
|
3967
|
+
});
|
|
3892
3968
|
function outputPaths(dir) {
|
|
3893
3969
|
const paths = WORKSPACE_OUTPUT_DIRS.map((name) => join$1(dir, name)).filter((path) => existsSync$1(path));
|
|
3894
3970
|
const macos = join$1(dir, "macos");
|
|
@@ -3915,9 +3991,9 @@ async function outputBytes(entries, timeoutMs, signal, operation) {
|
|
|
3915
3991
|
return own.includes(null) ? null : own.reduce((total, size) => total + (size ?? 0), 0);
|
|
3916
3992
|
});
|
|
3917
3993
|
}
|
|
3918
|
-
function collectWorkspaceOutputs({ olderThan, now, exclude = [], measure = true, sizeTimeoutMs = SIZE_TIMEOUT_MS, signal, operation, lighten = false }) {
|
|
3994
|
+
function collectWorkspaceOutputs({ olderThan, now, exclude = [], only, measure = true, sizeTimeoutMs = SIZE_TIMEOUT_MS, signal, operation, lighten = false }) {
|
|
3919
3995
|
const mountedVolumes = listMountedVolumes();
|
|
3920
|
-
const outputEntries = (entries, inTree = /* @__PURE__ */ new Map()) => entries.filter((entry) => !exclude.includes(entry.dir)).filter((entry) => entry.projectRoot === null || isOnMountedVolume(entry.projectRoot, mountedVolumes)).map((entry) => {
|
|
3996
|
+
const outputEntries = (entries, inTree = /* @__PURE__ */ new Map()) => entries.filter((entry) => !exclude.includes(entry.dir)).filter((entry) => only === void 0 || entry.projectRoot !== null && canonicalPath(entry.projectRoot) === only).filter((entry) => entry.projectRoot === null || isOnMountedVolume(entry.projectRoot, mountedVolumes)).map((entry) => {
|
|
3921
3997
|
const inTreeDirs = inTree.get(entry.dir) ?? [];
|
|
3922
3998
|
return Object.assign({}, entry, {
|
|
3923
3999
|
inTreeDirs,
|
|
@@ -3937,7 +4013,8 @@ function collectWorkspaceOutputs({ olderThan, now, exclude = [], measure = true,
|
|
|
3937
4013
|
const inUseOf = (root) => lighten ? workspaceBuildReasons(root) : workspaceInUse(root);
|
|
3938
4014
|
if (!measure && !signal) return report(outputEntries(listWorkspaceDirs()).map(({ paths: _paths, ...entry }) => Object.assign({}, entry, {
|
|
3939
4015
|
bytes: null,
|
|
3940
|
-
inUse: entry.projectRoot === null ? [] : inUseOf(entry.projectRoot)
|
|
4016
|
+
inUse: entry.projectRoot === null ? [] : inUseOf(entry.projectRoot),
|
|
4017
|
+
lock: entry.projectRoot === null ? null : worktreeLock(entry.projectRoot)
|
|
3941
4018
|
})));
|
|
3942
4019
|
return (async () => {
|
|
3943
4020
|
const sizes = [];
|
|
@@ -3948,11 +4025,13 @@ function collectWorkspaceOutputs({ olderThan, now, exclude = [], measure = true,
|
|
|
3948
4025
|
}
|
|
3949
4026
|
const entries = outputEntries(listed, inTree);
|
|
3950
4027
|
const bytes = measure ? await outputBytes(entries.map((entry) => entry.paths), sizeTimeoutMs, signal, operation) : [];
|
|
4028
|
+
const locks = await mapLimited(entries, sizeConcurrency(operation), async ({ projectRoot }) => projectRoot === null ? null : worktreeLockAsync(projectRoot, gitRead(operation, signal)));
|
|
3951
4029
|
for (const [index, { paths: _paths, ...entry }] of entries.entries()) {
|
|
3952
4030
|
signal?.throwIfAborted();
|
|
3953
4031
|
sizes.push({
|
|
3954
4032
|
...entry,
|
|
3955
4033
|
bytes: bytes[index] ?? null,
|
|
4034
|
+
lock: locks[index] ?? null,
|
|
3956
4035
|
inUse: entry.projectRoot === null ? [] : !signal ? inUseOf(entry.projectRoot) : lighten ? await workspaceBuildReasonsAsync(entry.projectRoot, signal, operation) : await workspaceInUseAsync(entry.projectRoot, {}, signal, operation)
|
|
3957
4036
|
});
|
|
3958
4037
|
}
|
|
@@ -3984,7 +4063,8 @@ async function clearWorkspaceOutputs(report, { olderThan, now = Date.now(), oper
|
|
|
3984
4063
|
problem: null,
|
|
3985
4064
|
lastUsed: workspaceLastUsed(root),
|
|
3986
4065
|
nativeUsed: lighten ? lastNativeUseFrom(readWorkspaceState$1(root)) : NaN,
|
|
3987
|
-
inUse: lighten && workspaceBuildInProgress(root) ? [BUILD_IN_PROGRESS] : []
|
|
4066
|
+
inUse: lighten && workspaceBuildInProgress(root) ? [BUILD_IN_PROGRESS] : [],
|
|
4067
|
+
lock: await worktreeLockAsync(root, gitRead(operation, signal))
|
|
3988
4068
|
}], {
|
|
3989
4069
|
olderThan,
|
|
3990
4070
|
now
|
|
@@ -4106,4 +4186,4 @@ function sizeText(bytes) {
|
|
|
4106
4186
|
return bytes === null ? "size unknown" : formatBytes(bytes);
|
|
4107
4187
|
}
|
|
4108
4188
|
//#endregion
|
|
4109
|
-
export {
|
|
4189
|
+
export { tapBuildLog as $, runningBundleInstancesAsync as A, mapLimited as At, workspaceBuildInProgress as B, stopTunnel as C, buildSlotUsage as Ct, withManagedTunnelLock as D, createGcResults as Dt, withManagedRemoteWorktreeRemovalLock as E, GC_OUTPUT as Et, collectOwnedDeviceActivityAsync as F, buildStatusLine as G, NO_BUILD_PROGRESS as H, idleDeviceLines as I, parseActiveBuild as J, bundlingActivity as K, idleShutdownCandidates as L, collectIdleDevices as M, sizeConcurrency as Mt, collectIdleDevicesAsync as N, withManagedTunnelRemovalLock as O, takeGcResults as Ot, collectOwnedDeviceActivity as P, startBuildProgress as Q, parseIdleDuration as R, startTunnelSequence as S, acquireBuildSlot as St, withManagedRemoteWorktreeLock as T, releaseBuildSlot as Tt, activeBuildState as U, ACTIVE_BUILD_KEY as V, buildReport as W, recordFinishedBuild as X, recordBuildPhase as Y, runFailureRecord as Z, emptyWorkspaceDir as _, teardownParkedIosSim as _t, collectOrphanedWorkspaces as a, readStats$1 as at, workspaceInUseAsync as b, measureDu as bt, isInsideWorkspaces as c, recordRunStats as ct, recentNativeUseReason as d, eraseParkedIosSim as dt, thrownRunFailureRecord as et, rootPresence as f, teardownBrowserHeld as ft, ARTIFACT_DIRS as g, teardownParkedAvd as gt, workspaceDirRemoved as h, teardownOwnedIosSim as ht, clearWorkspaceOutputs as i, readRunEstimates as it, runningInstancesInAsync as j, readConcurrency as jt, hostedBundleDirs as k, eachLimited as kt, keptByLock as l, statsProjectKey$1 as lt, workspaceBuildReasons as m, teardownOwnedBrowser as mt, REBUILD_COST as n, STIM_VERSION as nt, collectWorkspaceOutputs as o, recordCapacityRefusal as ot, sizeText as p, teardownOwnedAvd as pt, estimateBuild as q, WORKSPACE_OUTPUT_DIRS as r, createRunRecorder as rt, deleteOrphanedWorkspaces as s, recordCapacityWait as st, LIGHTEN_AFTER_MS as t, errorRemedy as tt, listWorkspaceDirs as u, eraseParkedAvd as ut, withIdleWorkspace as v, probePublicHttp as vt, terminateChild as w, listBuildSlots as wt, resolveSupervisorTarget as x, writeUsageCache as xt, workspaceInUse as y, canonical$1 as yt, shutDownIdleDevices as z };
|
|
@@ -1,32 +1,32 @@
|
|
|
1
1
|
import { D as ownership_claim_exports, S as process_identity_exports, b as operationState, l as WorkspaceProcessCleanupError, m as declareSpawnsOn, n as isTimeoutError, t as getExecutor, v as stopDeclaringSpawnsOn } from "./exec-aULwtNly.mjs";
|
|
2
|
-
import { E as workspaceDir, a as recordWorkspaceUseAsync, l as withWorkspaceStateLockAsync, r as readWorkspaceState$1, w as workspaceAgentDeviceDir } from "./workspace-state-
|
|
2
|
+
import { E as workspaceDir, a as recordWorkspaceUseAsync, l as withWorkspaceStateLockAsync, r as readWorkspaceState$1, w as workspaceAgentDeviceDir } from "./workspace-state-kIZrdlSg.mjs";
|
|
3
3
|
import { E as upsertProject, G as projectDeviceSlots, L as measuredDirectorySizeAsync, O as withConfigLockAsync$1, S as removeProject, _ as loadConfig$1, a as clearDevice, d as getConfigDir, g as isPathPrefix$1, j as acquireAvdClaim, p as getProject } from "./config-Cn94Jc0g.mjs";
|
|
4
|
-
import { a as formatElapsed, h as shortUdid, i as formatDuration, l as phaseLine, p as releasedLeaseFact, u as plural } from "./command-output-
|
|
4
|
+
import { a as formatElapsed, h as shortUdid, i as formatDuration, l as phaseLine, p as releasedLeaseFact, u as plural } from "./command-output-C8R1KIvi.mjs";
|
|
5
5
|
import { c as gitQuiet, l as gitQuietAsync, o as git, r as childEnvironment, s as gitAsync, t as runOperationFile } from "./operation-exec-Dp4FuIGR.mjs";
|
|
6
|
-
import {
|
|
7
|
-
import { F as readRemoteSessionId, M as readMetroTunnel, O as clearManagedMetroTunnel, P as readRemoteSession, T as MODE_COMMAND, i as findProjectRoot$1, k as clearRemoteSession, o as isMobileProject } from "./project-
|
|
8
|
-
import { t as macosAppPresent } from "./state-
|
|
6
|
+
import { Ct as gitCommonDirOnDisk, Dt as isPodInstallChurn, Et as hasUncommittedWorkAsync, Ft as matchWorktreeEntry, Gt as restoreFileAsync, Ht as resolveFullRef, It as nativeCanonicalPath, Jt as warmWorktreePaths, Kt as sourceCheckoutOf, Lt as podsOutOfSync, Mt as locallyKnownUpstream, Q as resolveSettings, Rt as readWorktreeExclude, St as gitCommonDirAsync, Tt as hasRemoteAsync, Ut as resolveFullRefAsync, V as readCommittedSettings, X as resolveProjectSettings, Y as resolveIosProjectDir, _ as inertSettingWarning, _t as deleteBranchAsync, a as SETTING_SHAPE_REMEDY, bt as dirtyPathsAsync, gt as cloneIgnoredEntries, ht as branchExistsAsync, jt as listWorktreesAsync, nn as moveIgnoredTreesToTrash, qt as unpushedCommitsAsync, rn as restoreTrashedTrees, rt as settingShapeErrors, st as unknownSettingKeys, tn as disposeTrash, vt as depsOutOfSync, wt as hasPopulatedSubmodulesAsync, zt as removeWorktreeAsync } from "./settings-CY5JZlNN.mjs";
|
|
7
|
+
import { F as readRemoteSessionId, M as readMetroTunnel, O as clearManagedMetroTunnel, P as readRemoteSession, T as MODE_COMMAND, i as findProjectRoot$1, k as clearRemoteSession, o as isMobileProject } from "./project-Sui52ywT.mjs";
|
|
8
|
+
import { t as macosAppPresent } from "./state-BXC1Lfxw.mjs";
|
|
9
9
|
import { a as workspaceLinkLine, o as workspaceLinks } from "./stim-desktop-CbWo21kb.mjs";
|
|
10
|
-
import { ft as POOL_SETTING_REMEDY, vt as parkedMaxSetting } from "./android-
|
|
11
|
-
import { c as pidExists, d as resolveProjectMetro, p as signalProcessTreeAsync, r as killMetroTreeAsync } from "./metro-
|
|
12
|
-
import { A as diskPressureLevel, D as requestDevServerStop, En as runProcessOperation, G as planCacheEmptying, Ln as resolveEasCliBin, N as lowestFree, Ot as endRecordedSession, _ as resolveBudget, g as readVolumeSpaceAsync, h as readVolumeSpace, k as withdrawDevServerStopRequest, p as machineNumber, ur as discoverCaches } from "./ccache-
|
|
13
|
-
import { o as readWebRecord } from "./state-
|
|
14
|
-
import {
|
|
10
|
+
import { ft as POOL_SETTING_REMEDY, vt as parkedMaxSetting } from "./android-CsPs-7Mg.mjs";
|
|
11
|
+
import { c as pidExists, d as resolveProjectMetro, p as signalProcessTreeAsync, r as killMetroTreeAsync } from "./metro-BnhXV2Mj.mjs";
|
|
12
|
+
import { A as diskPressureLevel, D as requestDevServerStop, En as runProcessOperation, G as planCacheEmptying, Ln as resolveEasCliBin, N as lowestFree, Ot as endRecordedSession, _ as resolveBudget, g as readVolumeSpaceAsync, h as readVolumeSpace, k as withdrawDevServerStopRequest, p as machineNumber, ur as discoverCaches } from "./ccache-Bm_A1xX9.mjs";
|
|
13
|
+
import { o as readWebRecord } from "./state-B2QJbDwz.mjs";
|
|
14
|
+
import { C as stopTunnel, E as withManagedRemoteWorktreeRemovalLock, O as withManagedTunnelRemovalLock, _ as emptyWorkspaceDir, ht as teardownOwnedIosSim, mt as teardownOwnedBrowser, o as collectWorkspaceOutputs, pt as teardownOwnedAvd, v as withIdleWorkspace, x as resolveSupervisorTarget } from "./workspaces-CmOcceDN.mjs";
|
|
15
15
|
import { t as canonicalPath } from "./paths-BsJMoPP2.mjs";
|
|
16
|
-
import { D as runCaptured, O as runPodInstall, S as DEPS_ERROR, T as readPodState, Y as podInstallCommand, ct as cacheUser, j as HEARTBEAT_INTERVAL_MS, w as podsAreStale } from "./toolchain-
|
|
17
|
-
import { D as releaseWorkspaceLeases, t as agentDeviceDaemon } from "./activity-
|
|
18
|
-
import { R as readHostMemoryPressure, z as readHostMemoryPressureAsync } from "./ios-
|
|
19
|
-
import { t as clearNamedPorts } from "./named-ports-
|
|
16
|
+
import { D as runCaptured, O as runPodInstall, S as DEPS_ERROR, T as readPodState, Y as podInstallCommand, ct as cacheUser, j as HEARTBEAT_INTERVAL_MS, w as podsAreStale } from "./toolchain-mLA_km-b.mjs";
|
|
17
|
+
import { D as releaseWorkspaceLeases, t as agentDeviceDaemon } from "./activity-DRMg4_mD.mjs";
|
|
18
|
+
import { R as readHostMemoryPressure, z as readHostMemoryPressureAsync } from "./ios-B1DYuOjh.mjs";
|
|
19
|
+
import { t as clearNamedPorts } from "./named-ports-Phoi2POD.mjs";
|
|
20
20
|
import { t as resolveMaintenanceSettings } from "./settings-Djl-mpjX.mjs";
|
|
21
|
-
import { i as stopHostedAndroid } from "./hosted-android-
|
|
22
|
-
import { a as stopHostedIos, n as removePhoneReverses } from "./phone-reverses-
|
|
23
|
-
import {
|
|
24
|
-
import { n as verifyCollectorOwnership } from "./ownership-
|
|
21
|
+
import { i as stopHostedAndroid } from "./hosted-android-DlaKLbW0.mjs";
|
|
22
|
+
import { a as stopHostedIos, n as removePhoneReverses } from "./phone-reverses-BzTa8g1F.mjs";
|
|
23
|
+
import { r as stopMacosApp } from "./stop-DQvE-P76.mjs";
|
|
24
|
+
import { n as verifyCollectorOwnership } from "./ownership-DJCq48IJ.mjs";
|
|
25
25
|
import { o as pullRequestLookupAsync, r as endedPullRequest } from "./pull-request-BzLmzAIQ.mjs";
|
|
26
|
-
import { c as mergeStateAsync, d as forgetStatusMeasures, t as startWarmProgress } from "./warm-progress-
|
|
27
|
-
import { r as workspaceRecordingEnabled } from "./recordings-
|
|
28
|
-
import { i as installedNpmTreeProblems, n as hasInstalledDependencies, t as dependencyState } from "./dependency-state-
|
|
29
|
-
import { a as discoverXcodeProject } from "./react-native-build-
|
|
26
|
+
import { c as mergeStateAsync, d as forgetStatusMeasures, t as startWarmProgress } from "./warm-progress-B0Vpuvpl.mjs";
|
|
27
|
+
import { r as workspaceRecordingEnabled } from "./recordings-iy0mkm7b.mjs";
|
|
28
|
+
import { i as installedNpmTreeProblems, n as hasInstalledDependencies, t as dependencyState } from "./dependency-state-CojA2o0t.mjs";
|
|
29
|
+
import { a as discoverXcodeProject } from "./react-native-build-jUHnIfZ9.mjs";
|
|
30
30
|
import { claimRemoveCommand, clearFreeClaimSet, readClaimSet, releaseClaim, tryAcquireClaim } from "@stim-cli/core/ownership-claim";
|
|
31
31
|
import { createHash, randomUUID } from "node:crypto";
|
|
32
32
|
import { existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
@@ -3181,32 +3181,11 @@ function excludePodChurn(lines, iosDirs = []) {
|
|
|
3181
3181
|
restore
|
|
3182
3182
|
};
|
|
3183
3183
|
}
|
|
3184
|
-
function nativeCanonicalPath(path) {
|
|
3185
|
-
const missing = [];
|
|
3186
|
-
for (let existing = resolve$1(path);; existing = dirname$1(existing)) try {
|
|
3187
|
-
return resolve$1(realpathSync$1.native(existing), ...missing);
|
|
3188
|
-
} catch {
|
|
3189
|
-
if (dirname$1(existing) === existing) return resolve$1(path);
|
|
3190
|
-
missing.unshift(basename$1(existing));
|
|
3191
|
-
}
|
|
3192
|
-
}
|
|
3193
3184
|
/** Other worktrees git lists inside `path`, which removing `path` would delete with it. */
|
|
3194
3185
|
function nestedWorktrees(entries, path) {
|
|
3195
3186
|
const root = nativeCanonicalPath(path);
|
|
3196
3187
|
return entries.filter((candidate) => !candidate.bare && nativeCanonicalPath(candidate.path) !== root).filter((candidate) => isPathPrefix$1(root, nativeCanonicalPath(candidate.path))).map((candidate) => candidate.path);
|
|
3197
3188
|
}
|
|
3198
|
-
function matchWorktreeEntry(entries, path) {
|
|
3199
|
-
let best = null;
|
|
3200
|
-
const target = nativeCanonicalPath(path);
|
|
3201
|
-
(entries || []).forEach((entry, index) => {
|
|
3202
|
-
if (!entry?.path || !isPathPrefix$1(nativeCanonicalPath(entry.path), target)) return;
|
|
3203
|
-
if (!best || entry.path.length > best.path.length) best = {
|
|
3204
|
-
...entry,
|
|
3205
|
-
index
|
|
3206
|
-
};
|
|
3207
|
-
});
|
|
3208
|
-
return best;
|
|
3209
|
-
}
|
|
3210
3189
|
function removalRemedy(dirtyLines, { worktree = "<worktree>" } = {}) {
|
|
3211
3190
|
const tracked = [];
|
|
3212
3191
|
const untracked = [];
|
|
@@ -3925,4 +3904,4 @@ function worktreeCommand(program) {
|
|
|
3925
3904
|
registerRemove(worktree);
|
|
3926
3905
|
}
|
|
3927
3906
|
//#endregion
|
|
3928
|
-
export {
|
|
3907
|
+
export { deleteSelectedArchives as A, sizeScanDeferred as C, stimCliUseOf as D, stimCliEntries as E, worktreeArchiveLimits as M, describeDereferenced as O, measureSizes as S, serviceRunningFrom as T, cacheBlocked as _, nestedWorktrees as a, measurePressure as b, registerRemove as c, removalPath as d, removalRemedy as f, worktreeCommand as g, warmedWorkspace as h, excludeWatchmanCookies as i, sweepArchiveStaging as j, reclaimProject as k, registerWarm as l, warmWorktreeTarget as m, dependencyInstallCommand as n, porcelainPath as o, removeWorktreeTarget as p, excludePodChurn as r, reclaimKeys as s, customIosDirs as t, removalBlockers as u, measureDisk as v, uncommittedActivityOf as w, measurePressureAsync as x, measureDiskAsync as y };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { a as nestedWorktrees, c as registerRemove, d as removalPath, f as removalRemedy, g as worktreeCommand, h as warmedWorkspace, i as excludeWatchmanCookies, l as registerWarm, m as warmWorktreeTarget, n as dependencyInstallCommand, o as porcelainPath, p as removeWorktreeTarget, r as excludePodChurn, s as reclaimKeys, t as customIosDirs, u as removalBlockers } from "./worktree-2dk5edza.mjs";
|
|
2
|
+
export { customIosDirs, worktreeCommand as default, dependencyInstallCommand, excludePodChurn, excludeWatchmanCookies, nestedWorktrees, porcelainPath, reclaimKeys, registerRemove, registerWarm, removalBlockers, removalPath, removalRemedy, removeWorktreeTarget, warmWorktreeTarget, warmedWorkspace };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stim",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.28.0",
|
|
4
4
|
"description": "Stim: fast, isolated React Native environments for coding agents",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent",
|
|
@@ -53,11 +53,11 @@
|
|
|
53
53
|
},
|
|
54
54
|
"dependencies": {
|
|
55
55
|
"@expo/fingerprint": "^0.21.5",
|
|
56
|
-
"@stim-cli/agent-driver": "1.
|
|
57
|
-
"@stim-cli/agent-driver-agent-device": "1.
|
|
58
|
-
"@stim-cli/cache": "1.
|
|
59
|
-
"@stim-cli/core": "1.
|
|
60
|
-
"@stim-cli/metro": "1.
|
|
56
|
+
"@stim-cli/agent-driver": "1.28.0",
|
|
57
|
+
"@stim-cli/agent-driver-agent-device": "1.28.0",
|
|
58
|
+
"@stim-cli/cache": "1.28.0",
|
|
59
|
+
"@stim-cli/core": "1.28.0",
|
|
60
|
+
"@stim-cli/metro": "1.28.0",
|
|
61
61
|
"@xmldom/xmldom": "0.9.12",
|
|
62
62
|
"chalk": "^6.0.0",
|
|
63
63
|
"commander": "^15.0.0",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"ws": "^8.21.3"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@stim-cli/expo-build-cache": "1.
|
|
69
|
+
"@stim-cli/expo-build-cache": "1.28.0",
|
|
70
70
|
"@types/cross-spawn": "^6.0.6",
|
|
71
71
|
"@types/which": "^3.0.4",
|
|
72
72
|
"@types/ws": "^8.18.1",
|
package/dist/web-Je6abcpz.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import { _ as worktreeCommand, a as matchWorktreeEntry, c as reclaimKeys, d as removalBlockers, f as removalPath, g as warmedWorkspace, h as warmWorktreeTarget, i as excludeWatchmanCookies, l as registerRemove, m as removeWorktreeTarget, n as dependencyInstallCommand, o as nestedWorktrees, p as removalRemedy, r as excludePodChurn, s as porcelainPath, t as customIosDirs, u as registerWarm } from "./worktree-COAJ3-OD.mjs";
|
|
2
|
-
export { customIosDirs, worktreeCommand as default, dependencyInstallCommand, excludePodChurn, excludeWatchmanCookies, matchWorktreeEntry, nestedWorktrees, porcelainPath, reclaimKeys, registerRemove, registerWarm, removalBlockers, removalPath, removalRemedy, removeWorktreeTarget, warmWorktreeTarget, warmedWorkspace };
|