stim 1.17.0 → 1.17.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/{android--GorydsK.mjs → android-B9yaNKwa.mjs} +15 -15
  2. package/dist/{budget-DM984mnd.mjs → budget-DfcgFdQB.mjs} +33 -12
  3. package/dist/{build-plan-CmQCoyT-.mjs → build-plan-BDsSi09V.mjs} +14 -14
  4. package/dist/{idle-B2m-Ovod.mjs → build-progress-D0WkjCPd.mjs} +56 -183
  5. package/dist/{cli-Daxug5-K.mjs → cli-CYXb29oE.mjs} +13 -13
  6. package/dist/cli.mjs +1 -1
  7. package/dist/{machines-C2XiNwh9.mjs → client-SvBdgObD.mjs} +348 -309
  8. package/dist/{deps-DNWaQs4V.mjs → deps-iKw0eD4P.mjs} +1 -1
  9. package/dist/{device-capacity-D0GWHnTM.mjs → device-capacity-ZC4XSZ4R.mjs} +2 -2
  10. package/dist/device-host-worker.mjs +3 -3
  11. package/dist/{device-ios-Bc7vbGwl.mjs → device-ios-C2Um-XUR.mjs} +1 -1
  12. package/dist/{doctor-Cnk9d7Hm.mjs → doctor-CFv1fCrF.mjs} +14 -13
  13. package/dist/{gc-DxCL2A46.mjs → gc-DEmkg3Xh.mjs} +9 -8
  14. package/dist/{gradle-D7-L2Th3.mjs → gradle-dJpre3Yn.mjs} +1 -1
  15. package/dist/{guide-DjrTQGik.mjs → guide-CSmhMTf8.mjs} +156 -127
  16. package/dist/{hosted-android-DwLS4Mse.mjs → hosted-android-E1Heoqnv.mjs} +3 -3
  17. package/dist/{hosted-client-wk1W_CNW.mjs → hosted-client-Bp4knSwu.mjs} +4 -4
  18. package/dist/{hosted-ios-aMo7Cljf.mjs → hosted-ios-BnbeYOUD.mjs} +1 -1
  19. package/dist/{hosted-logs-DqYmWtXc.mjs → hosted-logs-OcgIBvCT.mjs} +2 -2
  20. package/dist/{hosted-macos-dlHXEeF5.mjs → hosted-macos-DcxKjtfH.mjs} +2 -2
  21. package/dist/{hosted-native-C9xJ9rpA.mjs → hosted-native-1Ebbig4w.mjs} +3 -3
  22. package/dist/idle-BXG__1BA.mjs +176 -0
  23. package/dist/{idle-shutdown-_3oOV1V_.mjs → idle-shutdown-IGyNV8Cr.mjs} +1 -1
  24. package/dist/{ios-DE6duQoz.mjs → ios-BJ4XUSe1.mjs} +18 -18
  25. package/dist/{logs-DUoKlDoS.mjs → logs-BAaS7gS2.mjs} +3 -3
  26. package/dist/{macos-32po3kUq.mjs → macos-BIRQS90f.mjs} +66 -25
  27. package/dist/maintenance-run.mjs +2 -2
  28. package/dist/{metro-gateway-DmslUM30.mjs → metro-gateway-C-ijGI2F.mjs} +1 -1
  29. package/dist/{native-runtime-DhJI3IVQ.mjs → native-runtime-BEK171xQ.mjs} +1 -1
  30. package/dist/offload-worker.mjs +5 -5
  31. package/dist/{preview-CxPRIEht.mjs → preview-B-g9d7kV.mjs} +1 -1
  32. package/dist/{reload-qZei6iWn.mjs → reload-DcRxj3qG.mjs} +2 -2
  33. package/dist/settings.schema.json +86 -68
  34. package/dist/{start-BopZcr4n.mjs → start-AlfCPRVU.mjs} +1 -1
  35. package/dist/{start-uee1wWjY.mjs → start-DUz3mYdb.mjs} +1 -1
  36. package/dist/{status-dXX2JX1C.mjs → status-BA2pehwf.mjs} +9 -9
  37. package/dist/{stop-Cr1d8DSE.mjs → stop-BIiM49EY.mjs} +1 -1
  38. package/dist/{stop-BjizrQwv.mjs → stop-DQIasgKp.mjs} +3 -3
  39. package/dist/{stop-BCwvvs7F.mjs → stop-zF1y04f2.mjs} +1 -1
  40. package/dist/supervisor-run.mjs +4 -4
  41. package/dist/{support-BJPgYCu-.mjs → support-CsJNVfOc.mjs} +4 -4
  42. package/dist/{support-F9-sr0Oi.mjs → support-WvD__tSV.mjs} +2 -2
  43. package/dist/{toolchain-CNIBTIOv.mjs → toolchain-DNyR3NPq.mjs} +10 -6
  44. package/dist/{web-exQtGkoc.mjs → web-Dl0KSRHf.mjs} +2 -2
  45. package/dist/{worktree-ZpZR3S1k.mjs → worktree-Be_7NLKy.mjs} +6 -6
  46. package/dist/{worktree-Dc98cE6_.mjs → worktree-j3IcFAI5.mjs} +1 -1
  47. package/package.json +5 -5
@@ -1,6 +1,6 @@
1
1
  import { t as process_identity_exports } from "./process-identity-BmRm1qV0.mjs";
2
2
  import { a as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-DqcCbpE7.mjs";
3
- import { x as realIo } from "./machines-C2XiNwh9.mjs";
3
+ import { S as realIo } from "./client-SvBdgObD.mjs";
4
4
  import { randomBytes, randomUUID } from "node:crypto";
5
5
  import { HOSTED_METRO_REQUESTS_KEY, findPeer, hostedMetroGateways, hostedMetroRequests, isJsonObject, parseMachine } from "@stim-cli/core/state";
6
6
  import { isIP } from "node:net";
@@ -3,7 +3,7 @@ import { x as metroPortSetting } from "./settings-Cfd-0r2d.mjs";
3
3
  import { l as resolveProjectMetro } from "./metro-g8NqiJp-.mjs";
4
4
  import { r as readWorkspaceState$1, u as ensureWorkspaceStorage } from "./workspace-state-DqcCbpE7.mjs";
5
5
  import { r as LAUNCH_UNVERIFIED, t as LAUNCH_BUNDLING } from "./launch-verify-lTnWZikR.mjs";
6
- import { c as startDevServer } from "./start-uee1wWjY.mjs";
6
+ import { c as startDevServer } from "./start-DUz3mYdb.mjs";
7
7
  import { readIdleStop } from "@stim-cli/core/state";
8
8
  import chalk from "chalk";
9
9
  //#region src/commands/native-runtime.ts
@@ -1,13 +1,13 @@
1
1
  import { t as getExecutor } from "./exec-CaErVv7t.mjs";
2
2
  import { n as stripAnsi } from "./process-output-Fpl8PYi8.mjs";
3
3
  import { D as fingerprintProject, M as refingerprintAfterMutation } from "./device-lease-DpoS36_u.mjs";
4
- import { T as CCACHE_UNAVAILABLE, d as buildIos, k as resolveCcache, o as workerToolchain, s as manifestDigest } from "./toolchain-CNIBTIOv.mjs";
4
+ import { T as CCACHE_UNAVAILABLE, d as buildIos, k as resolveCcache, o as workerToolchain, s as manifestDigest } from "./toolchain-DNyR3NPq.mjs";
5
5
  import { t as logLines } from "./run-CkE9y0nc.mjs";
6
- import { a as runPodInstall, n as podsAreStale, r as readPodState } from "./deps-DNWaQs4V.mjs";
6
+ import { a as runPodInstall, n as podsAreStale, r as readPodState } from "./deps-iKw0eD4P.mjs";
7
7
  import { n as recordPrebuild, r as runPrebuild, t as planPrebuild } from "./prebuild-D7RUMkwN.mjs";
8
- import { a as gradlewPath, i as buildAndroid, r as assembleTaskFor } from "./gradle-D7-L2Th3.mjs";
8
+ import { a as gradlewPath, i as buildAndroid, r as assembleTaskFor } from "./gradle-dJpre3Yn.mjs";
9
9
  import { n as stageBundle, t as resolveBundleExtras } from "./stage-CzaiwFsI.mjs";
10
- import { d as podAction } from "./support-BJPgYCu-.mjs";
10
+ import { d as podAction } from "./support-CsJNVfOc.mjs";
11
11
  import { createHash } from "node:crypto";
12
12
  import { chmodSync, constants, copyFileSync, cpSync, createReadStream, existsSync, lstatSync, mkdirSync, readFileSync, realpathSync, renameSync, rmSync, statSync, symlinkSync, writeFileSync } from "node:fs";
13
13
  import { basename, dirname, join } from "node:path";
@@ -301,7 +301,7 @@ async function build(job) {
301
301
  }
302
302
  const platform = job.platform;
303
303
  const initial = await time("fingerprintMs", () => fingerprintProject(root, { platform }));
304
- if (!initial) return failed("no-fingerprint", "The build machine could not fingerprint the project.");
304
+ if (!initial) return failed("no-fingerprint", "The remote Mac could not fingerprint the project.");
305
305
  const plan = planPrebuild(root, platform, {
306
306
  isExpo: job.isExpo,
307
307
  fingerprint: initial.hash,
@@ -1,6 +1,6 @@
1
1
  import { P as measuredDirectorySize } from "./config-D0DbpZtM.mjs";
2
2
  import { s as findProjectRoot$1 } from "./project-D47Rh0ly.mjs";
3
- import { M as planCacheEmptying, Z as discoverCaches, c as resolveBudget, r as enforceBudget, s as readVolumeSpace } from "./budget-DM984mnd.mjs";
3
+ import { M as planCacheEmptying, Q as discoverCaches, c as resolveBudget, r as enforceBudget, s as readVolumeSpace } from "./budget-DfcgFdQB.mjs";
4
4
  import { o as canonicalPath } from "./in-use-CvGOUn-x.mjs";
5
5
  import { h as listBuildLocks } from "./device-lease-DpoS36_u.mjs";
6
6
  import { n as listBuildSlots } from "./build-slots-41v_d2x9.mjs";
@@ -7,10 +7,10 @@ import { o as readWebRecord, r as cdpEndpoint, u as webFacts } from "./state-PeQ
7
7
  import { f as readWorkspaceLaunches } from "./state-BKa8wNN5.mjs";
8
8
  import { J as resolveOwnedAvdSerial } from "./android-B_YNZy61.mjs";
9
9
  import { w as resolveOwnedIosSim } from "./ios-DSfnPfse.mjs";
10
- import { l as probeHostedSession } from "./hosted-client-wk1W_CNW.mjs";
10
+ import { l as probeHostedSession } from "./hosted-client-Bp4knSwu.mjs";
11
11
  import { p as ensureMetroReverse, s as androidAppProcess, v as iosAppProcess } from "./app-install-VPkI5WEg.mjs";
12
12
  import { r as readHostedNative } from "./ios-state-8L3lgum6.mjs";
13
- import { r as reopenHostedAndroidMetro } from "./hosted-android-DwLS4Mse.mjs";
13
+ import { r as reopenHostedAndroidMetro } from "./hosted-android-E1Heoqnv.mjs";
14
14
  import { n as nativeRunCommand } from "./slot-launch-DmjBmpQV.mjs";
15
15
  import { n as sendToOwnedPage, t as liveWebRecord } from "./page-QF_Ke10s.mjs";
16
16
  import { hostedAndroidDeviceName, hostedNativeRecords } from "@stim-cli/core/state";
@@ -275,13 +275,14 @@
275
275
  }
276
276
  },
277
277
  "remote": {
278
- "description": "Default iOS remote target: eas, proxy, or an approved Mac in hosting.machines; auto places on an approved Mac when this Mac is full or busy",
278
+ "description": "Default iOS remote target: eas, proxy, or an approved Mac in remote.machines; auto places on an approved Mac when this Mac is full or busy",
279
279
  "type": "string",
280
280
  "pattern": "^[A-Za-z0-9][A-Za-z0-9.-]*(?::(?!0+$)(?:[0-5]?[0-9]{1,4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$",
281
281
  "x-stim": {
282
282
  "key": "ios.remote",
283
283
  "kind": "string",
284
284
  "scopes": [
285
+ "machine",
285
286
  "workspace",
286
287
  "repo",
287
288
  "committed"
@@ -463,13 +464,14 @@
463
464
  }
464
465
  },
465
466
  "remote": {
466
- "description": "Default Android remote target: eas, proxy, or an approved Mac in hosting.machines; auto places on an approved Mac when this Mac is full or busy",
467
+ "description": "Default Android remote target: eas, proxy, or an approved Mac in remote.machines; auto places on an approved Mac when this Mac is full or busy",
467
468
  "type": "string",
468
469
  "pattern": "^[A-Za-z0-9][A-Za-z0-9.-]*(?::(?!0+$)(?:[0-5]?[0-9]{1,4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$",
469
470
  "x-stim": {
470
471
  "key": "android.remote",
471
472
  "kind": "string",
472
473
  "scopes": [
474
+ "machine",
473
475
  "workspace",
474
476
  "repo",
475
477
  "committed"
@@ -1115,6 +1117,21 @@
1115
1117
  "committed"
1116
1118
  ]
1117
1119
  }
1120
+ },
1121
+ "remote": {
1122
+ "description": "Default iOS remote target: eas, proxy, or an approved Mac in remote.machines; auto places on an approved Mac when this Mac is full or busy",
1123
+ "type": "string",
1124
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9.-]*(?::(?!0+$)(?:[0-5]?[0-9]{1,4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$",
1125
+ "x-stim": {
1126
+ "key": "ios.remote",
1127
+ "kind": "string",
1128
+ "scopes": [
1129
+ "machine",
1130
+ "workspace",
1131
+ "repo",
1132
+ "committed"
1133
+ ]
1134
+ }
1118
1135
  }
1119
1136
  },
1120
1137
  "additionalProperties": false
@@ -1150,6 +1167,21 @@
1150
1167
  "committed"
1151
1168
  ]
1152
1169
  }
1170
+ },
1171
+ "remote": {
1172
+ "description": "Default Android remote target: eas, proxy, or an approved Mac in remote.machines; auto places on an approved Mac when this Mac is full or busy",
1173
+ "type": "string",
1174
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9.-]*(?::(?!0+$)(?:[0-5]?[0-9]{1,4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$",
1175
+ "x-stim": {
1176
+ "key": "android.remote",
1177
+ "kind": "string",
1178
+ "scopes": [
1179
+ "machine",
1180
+ "workspace",
1181
+ "repo",
1182
+ "committed"
1183
+ ]
1184
+ }
1153
1185
  }
1154
1186
  },
1155
1187
  "additionalProperties": false
@@ -1464,7 +1496,7 @@
1464
1496
  }
1465
1497
  },
1466
1498
  "maxCommittedMemoryGb": {
1467
- "description": "Estimated memory, in GB, of live environments before idle ones are reclaimed; unset is 60% of RAM, 0 is off",
1499
+ "description": "Estimated memory, in GB, of active environments before idle ones are reclaimed; unset is 60% of RAM, 0 is off",
1468
1500
  "type": "number",
1469
1501
  "minimum": 0,
1470
1502
  "x-stim": {
@@ -1477,7 +1509,7 @@
1477
1509
  }
1478
1510
  },
1479
1511
  "maxLiveWorkspaces": {
1480
- "description": "Live workspaces before idle ones are reclaimed; unset or 0 means no limit",
1512
+ "description": "Active workspaces before idle ones are reclaimed; unset or 0 means no limit",
1481
1513
  "type": "integer",
1482
1514
  "minimum": 0,
1483
1515
  "x-stim": {
@@ -1803,20 +1835,6 @@
1803
1835
  "hosting": {
1804
1836
  "type": "object",
1805
1837
  "properties": {
1806
- "machines": {
1807
- "description": "Tailscale names of the Macs that may host owned simulator sessions for this one, each optionally with :<port> of its tailscale serve route (default 7443); doctor --fix asks for separate device-host approval",
1808
- "type": "array",
1809
- "items": {
1810
- "type": "string"
1811
- },
1812
- "x-stim": {
1813
- "key": "hosting.machines",
1814
- "kind": "strings",
1815
- "scopes": [
1816
- "machine"
1817
- ]
1818
- }
1819
- },
1820
1838
  "agentDriver": {
1821
1839
  "description": "Tool this Mac starts so a client's coding agent can drive the macOS apps, iOS simulators and Android emulators it hosts for that client; none starts nothing",
1822
1840
  "type": "string",
@@ -1850,43 +1868,82 @@
1850
1868
  "machine"
1851
1869
  ]
1852
1870
  }
1871
+ },
1872
+ "maxLoadPerCore": {
1873
+ "description": "Load per core (5-minute load average divided by the CPU count) at which this Mac counts as saturated: it declines builds other Macs send it, automatic build placement stops preferring it, and automatic iOS and Android device placement treats it as busy",
1874
+ "type": "number",
1875
+ "minimum": 0.1,
1876
+ "default": 2,
1877
+ "x-stim": {
1878
+ "key": "server.maxLoadPerCore",
1879
+ "kind": "number",
1880
+ "scopes": [
1881
+ "machine"
1882
+ ]
1883
+ }
1884
+ },
1885
+ "workerRoot": {
1886
+ "description": "Directory where stim-server keeps the checkouts, dependencies and build state of the Macs that build here; default $STIM_HOME/build-worker",
1887
+ "type": "string",
1888
+ "x-stim": {
1889
+ "key": "server.workerRoot",
1890
+ "kind": "path",
1891
+ "scopes": [
1892
+ "machine"
1893
+ ],
1894
+ "absolute": true
1895
+ }
1896
+ },
1897
+ "gradleDaemonIdleMinutes": {
1898
+ "description": "Minutes the Gradle daemon of an Android build another Mac sent here stays warm after the build; 0 stops it when the build ends",
1899
+ "type": "integer",
1900
+ "minimum": 0,
1901
+ "maximum": 35791,
1902
+ "default": 30,
1903
+ "x-stim": {
1904
+ "key": "server.gradleDaemonIdleMinutes",
1905
+ "kind": "number",
1906
+ "scopes": [
1907
+ "machine"
1908
+ ]
1909
+ }
1853
1910
  }
1854
1911
  },
1855
1912
  "additionalProperties": false
1856
1913
  },
1857
- "offload": {
1914
+ "remote": {
1858
1915
  "type": "object",
1859
1916
  "properties": {
1860
1917
  "machines": {
1861
- "description": "Tailscale names of the Macs that may build for this one, each optionally with :<port> of its tailscale serve route (default 7443)",
1918
+ "description": "Tailscale names of the remote Macs this Mac may build on and host owned simulators on, each optionally with :<port> of its tailscale serve route (default 7443); what each is used for follows the build and device-host approvals it grants, which doctor --fix asks for separately",
1862
1919
  "type": "array",
1863
1920
  "items": {
1864
1921
  "type": "string"
1865
1922
  },
1866
1923
  "x-stim": {
1867
- "key": "offload.machines",
1924
+ "key": "remote.machines",
1868
1925
  "kind": "strings",
1869
1926
  "scopes": [
1870
1927
  "machine"
1871
1928
  ]
1872
1929
  }
1873
1930
  },
1874
- "machine": {
1875
- "description": "Build placement: auto follows offload.mode with local fallback; local always builds here; a name in offload.machines requires that machine without fallback. The ios, android and macos --build-machine flag overrides this setting and its environment override",
1931
+ "build": {
1932
+ "description": "Build placement: auto follows remote.buildMode with local fallback; local always builds here; a name in remote.machines requires that remote Mac without fallback. The ios, android and macos --remote-build flag overrides this setting and its environment override",
1876
1933
  "type": "string",
1877
1934
  "pattern": "^[A-Za-z0-9][A-Za-z0-9.-]*(?::(?!0+$)(?:[0-5]?[0-9]{1,4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$",
1878
1935
  "default": "auto",
1879
1936
  "x-stim": {
1880
- "key": "offload.machine",
1937
+ "key": "remote.build",
1881
1938
  "kind": "string",
1882
1939
  "scopes": [
1883
1940
  "machine"
1884
1941
  ],
1885
- "env": "STIM_OFFLOAD_MACHINE"
1942
+ "env": "STIM_REMOTE_BUILD"
1886
1943
  }
1887
1944
  },
1888
- "mode": {
1889
- "description": "When offload.machine is auto, where iOS simulator Debug, Android emulator debug and macOS SwiftPM Debug builds run: auto builds here while this Mac has a free concurrency.maxBuilds slot and its load is under offload.maxLoadPerCore, and otherwise offloads to a less loaded machine in offload.machines; force offloads whenever a machine can take the build; off always builds here",
1945
+ "buildMode": {
1946
+ "description": "When remote.build is auto, where iOS simulator Debug, Android emulator debug and macOS SwiftPM Debug builds run: auto builds here while this Mac has a free concurrency.maxBuilds slot and its load is under server.maxLoadPerCore, and otherwise builds on a less loaded Mac in remote.machines; force builds on a remote Mac whenever one can take the build; off always builds here",
1890
1947
  "type": "string",
1891
1948
  "enum": [
1892
1949
  "auto",
@@ -1895,51 +1952,12 @@
1895
1952
  ],
1896
1953
  "default": "auto",
1897
1954
  "x-stim": {
1898
- "key": "offload.mode",
1955
+ "key": "remote.buildMode",
1899
1956
  "kind": "choice",
1900
1957
  "scopes": [
1901
1958
  "machine"
1902
1959
  ],
1903
- "env": "STIM_OFFLOAD_MODE"
1904
- }
1905
- },
1906
- "maxLoadPerCore": {
1907
- "description": "Load per core (5-minute load average divided by the CPU count) at which a Mac counts as saturated: a build machine declines offloaded builds, and auto offload stops preferring this Mac; also the busy threshold for automatic iOS and Android device placement",
1908
- "type": "number",
1909
- "minimum": 0.1,
1910
- "default": 2,
1911
- "x-stim": {
1912
- "key": "offload.maxLoadPerCore",
1913
- "kind": "number",
1914
- "scopes": [
1915
- "machine"
1916
- ]
1917
- }
1918
- },
1919
- "workerRoot": {
1920
- "description": "Directory where stim-server keeps the checkouts, dependencies and build state of Macs that build here; default $STIM_HOME/build-worker",
1921
- "type": "string",
1922
- "x-stim": {
1923
- "key": "offload.workerRoot",
1924
- "kind": "path",
1925
- "scopes": [
1926
- "machine"
1927
- ],
1928
- "absolute": true
1929
- }
1930
- },
1931
- "gradleDaemonIdleMinutes": {
1932
- "description": "Minutes the Gradle daemon of an offloaded Android build stays warm on this build machine after the build; 0 stops it when the build ends",
1933
- "type": "integer",
1934
- "minimum": 0,
1935
- "maximum": 35791,
1936
- "default": 30,
1937
- "x-stim": {
1938
- "key": "offload.gradleDaemonIdleMinutes",
1939
- "kind": "number",
1940
- "scopes": [
1941
- "machine"
1942
- ]
1960
+ "env": "STIM_REMOTE_BUILD_MODE"
1943
1961
  }
1944
1962
  }
1945
1963
  },
@@ -1,2 +1,2 @@
1
- import { a as registerStart, c as startDevServer, d as tailLines, f as wantsExpoOwnTunnel, i as readLogTail, l as startFacts, n as liveSupervisor, o as resolveWorkspaceMetroPort, r as parseWait, s as startCommand, t as failureEvidence, u as supervisorEntry } from "./start-uee1wWjY.mjs";
1
+ import { a as registerStart, c as startDevServer, d as tailLines, f as wantsExpoOwnTunnel, i as readLogTail, l as startFacts, n as liveSupervisor, o as resolveWorkspaceMetroPort, r as parseWait, s as startCommand, t as failureEvidence, u as supervisorEntry } from "./start-DUz3mYdb.mjs";
2
2
  export { startCommand as default, failureEvidence, liveSupervisor, parseWait, readLogTail, registerStart, resolveWorkspaceMetroPort, startDevServer, startFacts, supervisorEntry, tailLines, wantsExpoOwnTunnel };
@@ -7,7 +7,7 @@ import { G as detectProviders, H as unknownSettingKeys, K as planMetroReach, M a
7
7
  import { f as readAppConfigText, n as appProjectProblem, p as readAppJson, r as detectIsExpo, s as findProjectRoot$1, t as NO_PROJECT_REFUSAL } from "./project-D47Rh0ly.mjs";
8
8
  import { l as resolveProjectMetro, o as pidExists, p as reserveMetroPort, u as signalProcessTree } from "./metro-g8NqiJp-.mjs";
9
9
  import { c as writeWorkspaceState, g as workspaceAgentDeviceDir, i as recordWorkspaceUse, m as supervisorLogFile, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, u as ensureWorkspaceStorage, x as workspaceLogsDir$1 } from "./workspace-state-DqcCbpE7.mjs";
10
- import { l as stopOwnedMetroForReset, t as budgetGate } from "./budget-DM984mnd.mjs";
10
+ import { l as stopOwnedMetroForReset, t as budgetGate } from "./budget-DfcgFdQB.mjs";
11
11
  import { c as readMetroTunnel, i as clearManagedMetroTunnel } from "./state-BKa8wNN5.mjs";
12
12
  import { a as workspaceLinks, i as workspaceLinkLine } from "./stim-desktop-Cnz8CPnl.mjs";
13
13
  import { a as terminateChild, c as withManagedTunnelLock, i as stopTunnel, o as withManagedRemoteWorktreeLock, r as startTunnelSequence, t as resolveSupervisorTarget } from "./ownership-BMLqyBgJ.mjs";
@@ -8,19 +8,19 @@ import { a as listeningPidsByPort, c as processCwds, d as isMetroRunning, i as l
8
8
  import { b as workspaceLogErrorIndex, r as readWorkspaceState$1, x as workspaceLogsDir$1 } from "./workspace-state-DqcCbpE7.mjs";
9
9
  import { a as readWebPage, o as readWebRecord, u as webFacts } from "./state-PeQiJuIu.mjs";
10
10
  import { _ as statusActivity, a as capacity, b as withWebFacts, c as diskLine, d as gitSummaryText, f as metroReverseTargets, g as remoteDeviceState, h as remoteDeviceLine, i as applyMachineMemory, l as environmentState, m as poolLine, n as activityLabel, o as deviceLeaseLines, p as parseDfFree, r as addReverseMissingIssue, s as deviceLeaseStates, v as tightVolumes, y as unprovisionedWorktrees } from "./status-CzS4bPO9.mjs";
11
- import { X as readFootprints, Y as attributeMachineUsage, a as machineNumber } from "./budget-DM984mnd.mjs";
11
+ import { X as attributeMachineUsage, Z as readFootprints, a as machineNumber } from "./budget-DfcgFdQB.mjs";
12
12
  import { d as readWebActivity, f as tailLines, i as createDeviceProcessTables, r as createActivityReader } from "./activity-IRvJY_ru.mjs";
13
13
  import { i as listLeaseFiles, r as leaseIsExpired, s as parseWorkspaceLeases } from "./device-lease-DpoS36_u.mjs";
14
14
  import { c as readMetroTunnel, f as readWorkspaceLaunches, u as readRemoteSession } from "./state-BKa8wNN5.mjs";
15
15
  import { F as ownedAvdDeviceProfile, O as listAdbDevices, d as androidToolPath, ft as parkedMaxSetting, ot as POOL_SETTING_REMEDY, pt as readParked, z as ownedAvdSerialResolver } from "./android-B_YNZy61.mjs";
16
16
  import { d as listAllIosSimsAsync, v as parseSimctlList } from "./ios-DSfnPfse.mjs";
17
17
  import { t as resolveSupervisorTarget } from "./ownership-BMLqyBgJ.mjs";
18
- import { b as readStats$1, c as ACTIVE_BUILD_KEY, d as buildReport, f as buildStatusLine, m as parseActiveBuild, u as activeBuildState, w as statsProjectKey$1 } from "./idle-B2m-Ovod.mjs";
18
+ import { _ as statsProjectKey$1, a as buildStatusLine, i as buildReport, p as readStats$1, r as activeBuildState, s as parseActiveBuild, t as ACTIVE_BUILD_KEY } from "./build-progress-D0WkjCPd.mjs";
19
19
  import { a as parseNdjsonLine } from "./ndjson-PclOIwVY.mjs";
20
20
  import { n as describeMetroLastStop, o as metroLastStop } from "./stop-cause-rhmGfwvt.mjs";
21
- import { l as probeHostedSession } from "./hosted-client-wk1W_CNW.mjs";
21
+ import { l as probeHostedSession } from "./hosted-client-Bp4knSwu.mjs";
22
22
  import { m as hasMetroReverse } from "./app-install-VPkI5WEg.mjs";
23
- import "./hosted-macos-dlHXEeF5.mjs";
23
+ import "./hosted-macos-DcxKjtfH.mjs";
24
24
  import { m as readEasSessionLedger$1, p as easMachineStateRoot$1 } from "./device-remote-hFSkpfQu.mjs";
25
25
  import { d as readIosDevices, s as isReachable } from "./ios-device-pAN4t54-.mjs";
26
26
  import { n as maintenanceLines, r as maintenanceStatus } from "./status-DlKvVJBE.mjs";
@@ -28,7 +28,7 @@ import { i as createStatusMeasurer, n as workspacePhase, r as applyStatusMeasure
28
28
  import { r as workspaceRecordingEnabled } from "./recordings-BNgsD1Tr.mjs";
29
29
  import { t as watchStdoutReader } from "./stdout-reader-C8yjre1x.mjs";
30
30
  import { t as triggerMaintenance } from "./trigger-Bemu8ytw.mjs";
31
- import { i as readSupervisorState } from "./stop-BjizrQwv.mjs";
31
+ import { i as readSupervisorState } from "./stop-DQIasgKp.mjs";
32
32
  import { createHash, randomUUID } from "node:crypto";
33
33
  import { mkdirSync, readFileSync, readdirSync, renameSync, rmSync, statSync, watch, writeFileSync } from "node:fs";
34
34
  import { join, posix, resolve } from "node:path";
@@ -1499,7 +1499,7 @@ function renderStatus({ archived, archivedUsage: usage, projects, states, labelO
1499
1499
  const host = state.macos.host;
1500
1500
  const where = host ? ` on ${host.machine} as ${host.bundleId}${chalk.dim(` (session ${host.session})`)}` : "";
1501
1501
  const build = state.macos.build;
1502
- const placement = build.buildMachine === void 0 ? "" : `; build machine ${build.buildMachine}, built on ${build.builtOn ?? "none"}`;
1502
+ const placement = build.buildMachine === void 0 ? "" : `; build placement ${build.buildMachine}, built on ${build.builtOn ?? "none"}`;
1503
1503
  out.push(` macOS ${state.macos.product}: ${state.macos.state}${where}; build ${build.state}${placement}`);
1504
1504
  if (host?.agent.driver === "agent-device") out.push(chalk.dim(` agent: ${host.agent.command}`));
1505
1505
  }
@@ -1527,7 +1527,7 @@ function renderStatus({ archived, archivedUsage: usage, projects, states, labelO
1527
1527
  out.push(chalk.dim(`\nWorktrees with no environment (${orphanWorktrees.length}):`));
1528
1528
  for (const w of orphanWorktrees) out.push(chalk.dim(` ${orphanWorktreeLine(w)}`));
1529
1529
  }
1530
- out.push(chalk.dim(machine?.memorySource === "footprint" ? `\n${cap.liveCount} live environment(s) use ${formatGb(cap.committedMb)} of ${formatGb(cap.totalMemoryMb)}.` : `\n${cap.liveCount} live environment(s), roughly ${formatGb(cap.committedMb)} of ${formatGb(cap.totalMemoryMb)} committed.`));
1530
+ out.push(chalk.dim(machine?.memorySource === "footprint" ? `\n${cap.liveCount} active environment(s) use ${formatGb(cap.committedMb)} of ${formatGb(cap.totalMemoryMb)}.` : `\n${cap.liveCount} active environment(s), roughly ${formatGb(cap.committedMb)} of ${formatGb(cap.totalMemoryMb)} committed.`));
1531
1531
  const volumes = readVolumes(cwdRoot || process.cwd());
1532
1532
  const line = diskLine(volumes);
1533
1533
  if (line) {
@@ -1621,7 +1621,7 @@ function lastBuildsLines(reports) {
1621
1621
  function lastBuildText(report) {
1622
1622
  const source = report.cacheHit ? `${report.cacheHit} cache` : report.status === "ok" ? "compiled" : "no cache hit";
1623
1623
  const took = report.durationMs === null ? "" : ` in ${formatDuration(report.durationMs)}`;
1624
- const placement = report.buildMachine === void 0 ? "" : `; build machine ${report.buildMachine}, built on ${report.builtOn ?? (report.cacheHit ? "none (cache)" : "none")}`;
1624
+ const placement = report.buildMachine === void 0 ? "" : `; build placement ${report.buildMachine}, built on ${report.builtOn ?? (report.cacheHit ? "none (cache)" : "none")}`;
1625
1625
  return `${report.platform} ${report.status === "ok" ? source : `failed (${report.errorCode ?? "error"}), ${source}`}${took}${placement}`;
1626
1626
  }
1627
1627
  function idleShutdownSuffix(record) {
@@ -1721,7 +1721,7 @@ function workspaceBuilds(path, saved, history) {
1721
1721
  return {
1722
1722
  build: workspaceBuild(path, saved, history),
1723
1723
  ...lastBuilds.ios || lastBuilds.android ? { lastBuilds } : {},
1724
- ...builds.ios || builds.android ? { builds } : {}
1724
+ ...builds.ios || builds.android || builds.macos ? { builds } : {}
1725
1725
  };
1726
1726
  }
1727
1727
  function workspaceBuild(path, saved, history) {
@@ -2,7 +2,7 @@ import { n as ownership_claim_exports, t as process_identity_exports } from "./p
2
2
  import { c as writeWorkspaceState, v as workspaceDir } from "./workspace-state-DqcCbpE7.mjs";
3
3
  import { t as withWorkspaceProcessLock } from "./workspace-process-lock-2mNzOlaB.mjs";
4
4
  import { a as requiredMacosRecord, i as macosRuntimeClaim } from "./state-DyaNTgfR.mjs";
5
- import { n as stopHostedMacos } from "./hosted-macos-dlHXEeF5.mjs";
5
+ import { n as stopHostedMacos } from "./hosted-macos-DcxKjtfH.mjs";
6
6
  import { readMacosRecord } from "@stim-cli/core/state";
7
7
  //#region src/macos/stop.ts
8
8
  async function stopProcess(record) {
@@ -10,12 +10,12 @@ import { g as teardownOwnedIosSim, h as teardownOwnedBrowser, i as stopTunnel, m
10
10
  import { t as withWorkspaceProcessLock } from "./workspace-process-lock-2mNzOlaB.mjs";
11
11
  import { a as logVanishedSupervisor, l as withdrawDevServerStopRequest, s as requestDevServerStop } from "./stop-cause-rhmGfwvt.mjs";
12
12
  import { n as verifyCollectorOwnership } from "./ownership-DyRQru0q.mjs";
13
- import { t as stopMacosApp } from "./stop-Cr1d8DSE.mjs";
14
- import { i as stopHostedAndroid } from "./hosted-android-DwLS4Mse.mjs";
13
+ import { t as stopMacosApp } from "./stop-BIiM49EY.mjs";
14
+ import { i as stopHostedAndroid } from "./hosted-android-E1Heoqnv.mjs";
15
15
  import { f as resolveEasCliBin } from "./remote-cache-Ci4DQYYj.mjs";
16
16
  import { i as endRecordedSession } from "./device-remote-hFSkpfQu.mjs";
17
17
  import { a as decideStopAction, c as nativeRunWaitNotice, i as clearNativeRunCancel, l as requestNativeRunCancel, n as NATIVE_RUN_WAIT_MS, o as describeNativeRunHolder, s as nativeRunHolder, t as NATIVE_RUN_LOCK } from "./native-run-D1Q56rAD.mjs";
18
- import { r as stopHostedIos } from "./hosted-ios-aMo7Cljf.mjs";
18
+ import { r as stopHostedIos } from "./hosted-ios-BnbeYOUD.mjs";
19
19
  import { hostedAndroidDeviceName, hostedAndroidRecords, hostedIosRecords, hostedNativeRecords, isJsonObject, parseHostedNativePlacement } from "@stim-cli/core/state";
20
20
  import chalk from "chalk";
21
21
  //#region src/commands/stop.ts
@@ -1,3 +1,3 @@
1
1
  import { t as resolveSupervisorTarget } from "./ownership-BMLqyBgJ.mjs";
2
- import { a as resolveCollectorTargets, c as stopWorkspaceNow, i as readSupervisorState, n as clearSupervisorState, o as runStop, r as readCollectorState, s as stopCommand, t as clearCollectorState } from "./stop-BjizrQwv.mjs";
2
+ import { a as resolveCollectorTargets, c as stopWorkspaceNow, i as readSupervisorState, n as clearSupervisorState, o as runStop, r as readCollectorState, s as stopCommand, t as clearCollectorState } from "./stop-DQIasgKp.mjs";
3
3
  export { clearCollectorState, clearSupervisorState, stopCommand as default, readCollectorState, readSupervisorState, resolveCollectorTargets, resolveSupervisorTarget, runStop, stopWorkspaceNow };
@@ -10,13 +10,13 @@ import { l as readPidFile, n as MODE_EXPO, p as writePidFile, r as clearExpoMetr
10
10
  import { n as parseTriggerCount, o as runWatchman, r as parseWatchRoots, t as parseSubscriberNames } from "./watchman-APYjXSQa.mjs";
11
11
  import { z as ownedAvdSerialResolver } from "./android-B_YNZy61.mjs";
12
12
  import { t as withWorkspaceProcessLock } from "./workspace-process-lock-2mNzOlaB.mjs";
13
- import { s as workspaceBuildInProgress } from "./idle-B2m-Ovod.mjs";
13
+ import { s as workspaceBuildInProgress } from "./idle-BXG__1BA.mjs";
14
14
  import { t as describeError } from "./errors-B6W7FkxQ.mjs";
15
15
  import { r as createNdjsonWriter } from "./ndjson-PclOIwVY.mjs";
16
16
  import { c as vanishedSupervisorMessage, i as devServerStopRecord, r as devServerStopLevel, t as describeDevServerStop } from "./stop-cause-rhmGfwvt.mjs";
17
- import { l as probeHostedSession } from "./hosted-client-wk1W_CNW.mjs";
18
- import { t as clearHostedMetro } from "./metro-gateway-DmslUM30.mjs";
19
- import { n as dueIdleDevices, r as shutDownIdleDevices } from "./idle-shutdown-_3oOV1V_.mjs";
17
+ import { l as probeHostedSession } from "./hosted-client-Bp4knSwu.mjs";
18
+ import { t as clearHostedMetro } from "./metro-gateway-C-ijGI2F.mjs";
19
+ import { n as dueIdleDevices, r as shutDownIdleDevices } from "./idle-shutdown-IGyNV8Cr.mjs";
20
20
  import { existsSync, readFileSync, realpathSync, statSync } from "node:fs";
21
21
  import { dirname, isAbsolute, join, resolve, sep } from "node:path";
22
22
  import { LOG_ROTATE_BYTES, createMetroGateway } from "@stim-cli/core";
@@ -1,10 +1,10 @@
1
1
  import { h as shortUdid, l as phaseLine } from "./command-output-CDAIFD-8.mjs";
2
2
  import { x as workspaceLogsDir } from "./workspace-state-DqcCbpE7.mjs";
3
3
  import { k as parseIosSimulatorApp } from "./ios-DSfnPfse.mjs";
4
- import { x as describeDiagnostic } from "./toolchain-CNIBTIOv.mjs";
5
- import { d as unknownIosDeviceTypeRefusal, f as unknownIosRuntimeRefusal, o as layerNote, t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-D0GWHnTM.mjs";
4
+ import { x as describeDiagnostic } from "./toolchain-DNyR3NPq.mjs";
5
+ import { d as unknownIosDeviceTypeRefusal, f as unknownIosRuntimeRefusal, o as layerNote, t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-ZC4XSZ4R.mjs";
6
6
  import { l as parseDeviceWait } from "./device-lease-run-B8YltIH_.mjs";
7
- import { t as IosDeviceMismatchError } from "./device-ios-Bc7vbGwl.mjs";
7
+ import { t as IosDeviceMismatchError } from "./device-ios-C2Um-XUR.mjs";
8
8
  import { basename, join } from "node:path";
9
9
  import chalk from "chalk";
10
10
  function buildLogFile(root) {
@@ -84,7 +84,7 @@ function deviceModelRefusal({ slot, deviceTypeFlag, runtimeFlag, deviceType, run
84
84
  if (given) return {
85
85
  code: "STIM_BAD_ARG",
86
86
  message: `${given} ${given.includes(" and ") ? "apply" : "applies"} only to a local owned iOS simulator; the ${remoteBackend} remote backend chooses its own ${eas ? "iOS runtime" : "device"}.`,
87
- remedy: `Drop ${given} for a remote run. For a local owned simulator, drop --remote and unset ios.remote with \`stim settings unset ios.remote --scope <workspace|repo|committed>\`.`
87
+ remedy: `Drop ${given} for a remote run. For a local owned simulator, drop --remote and unset ios.remote with \`stim settings unset ios.remote --scope <machine|workspace|repo|committed>\`.`
88
88
  };
89
89
  return null;
90
90
  }
@@ -1,6 +1,6 @@
1
1
  import { t as getExecutor } from "./exec-CaErVv7t.mjs";
2
2
  import { C as emulatorFailureRemedy, D as hostSystemImageArch, K as profileNeedsFoldFeature, N as memoizeEmulatorProbe, S as emulatorDiskSpaceRemedy, T as findBuildTool, W as pickDefaultSystemImage, c as androidPoolNoCandidatesRefusal, l as androidSystemImageAbi, o as androidHome, s as androidPoolCandidates, w as extractEmulatorFailure } from "./android-B_YNZy61.mjs";
3
- import { l as unknownAndroidDeviceProfileRefusal, o as layerNote, u as unknownAndroidSystemImageRefusal } from "./device-capacity-D0GWHnTM.mjs";
3
+ import { l as unknownAndroidDeviceProfileRefusal, o as layerNote, u as unknownAndroidSystemImageRefusal } from "./device-capacity-ZC4XSZ4R.mjs";
4
4
  import { T as pickDevClientScheme } from "./app-install-VPkI5WEg.mjs";
5
5
  import { t as devClientScheme } from "./dev-client-B-XC4uRH.mjs";
6
6
  import { existsSync, readFileSync, readdirSync } from "node:fs";
@@ -32,7 +32,7 @@ function remoteAvdFlagRefusal({ systemImageFlag, deviceProfileFlag, remoteBacken
32
32
  return {
33
33
  code: "STIM_BAD_ARG",
34
34
  message: `${given} ${given.includes(" and ") ? "apply" : "applies"} only to a local owned Android emulator; the ${remoteBackend} remote backend chooses its own device.`,
35
- remedy: `Drop ${given} for a remote run. For a local owned emulator, drop --remote and unset android.remote with \`stim settings unset android.remote --scope <workspace|repo|committed>\`.`
35
+ remedy: `Drop ${given} for a remote run. For a local owned emulator, drop --remote and unset android.remote with \`stim settings unset android.remote --scope <machine|workspace|repo|committed>\`.`
36
36
  };
37
37
  }
38
38
  function systemImageRefusal({ slot, flag, resolved, origin = null, physical, remoteBackend, listImages }) {
@@ -1241,7 +1241,11 @@ function androidMismatches(local, requires, worker) {
1241
1241
  });
1242
1242
  return out;
1243
1243
  }
1244
- /** Why a build machine cannot build like this Mac; empty when it can. */
1244
+ function versionMismatch(tool, there, here) {
1245
+ const side = (version) => version ? version.startsWith(tool) ? version : `${tool} ${version}` : `no ${tool}`;
1246
+ return `${side(there)} there, ${side(here)} here`;
1247
+ }
1248
+ /** Why a remote Mac cannot build like this Mac; empty when it can. */
1245
1249
  function toolchainMismatches(target, worker) {
1246
1250
  const { local } = target;
1247
1251
  const out = [];
@@ -1258,22 +1262,22 @@ function toolchainMismatches(target, worker) {
1258
1262
  const macos = target.local;
1259
1263
  if (!macos.xcode || worker.xcode !== macos.xcode) out.push({
1260
1264
  code: "xcode",
1261
- reason: `Xcode ${worker.xcode} there, ${macos.xcode} here`
1265
+ reason: versionMismatch("Xcode", worker.xcode, macos.xcode)
1262
1266
  });
1263
1267
  if (!macos.macosSdk || worker.macosSdk !== macos.macosSdk) out.push({
1264
1268
  code: "macos-sdk",
1265
- reason: `macOS SDK ${worker.macosSdk} there, ${macos.macosSdk} here`
1269
+ reason: versionMismatch("macOS SDK", worker.macosSdk, macos.macosSdk)
1266
1270
  });
1267
1271
  return out;
1268
1272
  }
1269
1273
  const ios = target.local;
1270
1274
  if (!ios.xcode || worker.xcode !== ios.xcode) out.push({
1271
1275
  code: "xcode",
1272
- reason: `Xcode ${worker.xcode} there, ${ios.xcode} here`
1276
+ reason: versionMismatch("Xcode", worker.xcode, ios.xcode)
1273
1277
  });
1274
1278
  if (!ios.simulatorSdk || worker.simulatorSdk !== ios.simulatorSdk) out.push({
1275
1279
  code: "simulator-sdk",
1276
- reason: `simulator SDK ${worker.simulatorSdk} there, ${ios.simulatorSdk} here`
1280
+ reason: versionMismatch("simulator SDK", worker.simulatorSdk, ios.simulatorSdk)
1277
1281
  });
1278
1282
  if (target.cocoapodsPinned) {
1279
1283
  if (!worker.bundler) out.push({
@@ -1282,7 +1286,7 @@ function toolchainMismatches(target, worker) {
1282
1286
  });
1283
1287
  } else if (worker.cocoapods !== ios.cocoapods) out.push({
1284
1288
  code: "cocoapods",
1285
- reason: `CocoaPods ${worker.cocoapods} there, ${ios.cocoapods} here`
1289
+ reason: versionMismatch("CocoaPods", worker.cocoapods, ios.cocoapods)
1286
1290
  });
1287
1291
  if (target.runtime && !worker.runtimes.includes(target.runtime)) out.push({
1288
1292
  code: "runtime",
@@ -15,8 +15,8 @@ import { o as readNdjsonGenerations } from "./ndjson-PclOIwVY.mjs";
15
15
  import { a as findChrome, t as CHROME_INSTALL_REMEDY } from "./chrome-BrcVWQyD.mjs";
16
16
  import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
17
17
  import { c as readMetroRecords } from "./launch-verify-lTnWZikR.mjs";
18
- import { o as resolveWorkspaceMetroPort } from "./start-uee1wWjY.mjs";
19
- import { a as sleep, n as ensureWorkspaceStorageSafely } from "./native-runtime-DhJI3IVQ.mjs";
18
+ import { o as resolveWorkspaceMetroPort } from "./start-DUz3mYdb.mjs";
19
+ import { a as sleep, n as ensureWorkspaceStorageSafely } from "./native-runtime-BEK171xQ.mjs";
20
20
  import { n as sendToOwnedPage, t as liveWebRecord } from "./page-QF_Ke10s.mjs";
21
21
  import { randomUUID } from "node:crypto";
22
22
  import { mkdirSync, openSync } from "node:fs";
@@ -8,7 +8,7 @@ import { n as appProjectProblem, s as findProjectRoot$1 } from "./project-D47Rh0
8
8
  import { l as resolveProjectMetro, o as pidExists, r as killMetroTree, u as signalProcessTree } from "./metro-g8NqiJp-.mjs";
9
9
  import { g as workspaceAgentDeviceDir, i as recordWorkspaceUse, r as readWorkspaceState$1, v as workspaceDir } from "./workspace-state-DqcCbpE7.mjs";
10
10
  import { o as readWebRecord } from "./state-PeQiJuIu.mjs";
11
- import { a as machineNumber } from "./budget-DM984mnd.mjs";
11
+ import { a as machineNumber } from "./budget-DfcgFdQB.mjs";
12
12
  import { n as withIdleWorkspace, t as emptyWorkspaceDir } from "./in-use-CvGOUn-x.mjs";
13
13
  import { t as agentDeviceDaemon } from "./activity-IRvJY_ru.mjs";
14
14
  import { u as releaseWorkspaceLeases } from "./device-lease-DpoS36_u.mjs";
@@ -18,17 +18,17 @@ import { a as workspaceLinks, i as workspaceLinkLine } from "./stim-desktop-Cnz8
18
18
  import { g as teardownOwnedIosSim, h as teardownOwnedBrowser, i as stopTunnel, l as withManagedTunnelRemovalLock, m as teardownOwnedAvd, s as withManagedRemoteWorktreeRemovalLock, t as resolveSupervisorTarget } from "./ownership-BMLqyBgJ.mjs";
19
19
  import { t as clearNamedPorts } from "./named-ports-C8m8EQs2.mjs";
20
20
  import { l as withdrawDevServerStopRequest, s as requestDevServerStop } from "./stop-cause-rhmGfwvt.mjs";
21
- import { C as podInstallCommand, u as HEARTBEAT_INTERVAL_MS } from "./toolchain-CNIBTIOv.mjs";
21
+ import { C as podInstallCommand, u as HEARTBEAT_INTERVAL_MS } from "./toolchain-DNyR3NPq.mjs";
22
22
  import { n as verifyCollectorOwnership } from "./ownership-DyRQru0q.mjs";
23
- import { t as stopMacosApp } from "./stop-Cr1d8DSE.mjs";
24
- import { a as runPodInstall, i as runCaptured, n as podsAreStale, r as readPodState, t as DEPS_ERROR } from "./deps-DNWaQs4V.mjs";
25
- import { i as stopHostedAndroid } from "./hosted-android-DwLS4Mse.mjs";
23
+ import { t as stopMacosApp } from "./stop-BIiM49EY.mjs";
24
+ import { a as runPodInstall, i as runCaptured, n as podsAreStale, r as readPodState, t as DEPS_ERROR } from "./deps-iKw0eD4P.mjs";
25
+ import { i as stopHostedAndroid } from "./hosted-android-E1Heoqnv.mjs";
26
26
  import { f as resolveEasCliBin } from "./remote-cache-Ci4DQYYj.mjs";
27
27
  import { i as endRecordedSession } from "./device-remote-hFSkpfQu.mjs";
28
28
  import { n as hasInstalledDependencies, r as installedNpmTreeIsValid, t as dependencyState } from "./dependency-state-CLcBHH2M.mjs";
29
29
  import { a as forgetStatusMeasures, s as mergeState, t as startWarmProgress } from "./warm-progress-DF4JRvYI.mjs";
30
30
  import { r as workspaceRecordingEnabled } from "./recordings-BNgsD1Tr.mjs";
31
- import { r as stopHostedIos } from "./hosted-ios-aMo7Cljf.mjs";
31
+ import { r as stopHostedIos } from "./hosted-ios-BnbeYOUD.mjs";
32
32
  import { createHash, randomUUID } from "node:crypto";
33
33
  import { chmodSync, existsSync, lstatSync, mkdirSync, readFileSync, readdirSync, realpathSync, renameSync, rmSync, statSync, utimesSync, writeFileSync } from "node:fs";
34
34
  import { basename, dirname, join, relative } from "node:path";
@@ -1,2 +1,2 @@
1
- import { a as porcelainPath, c as registerWarm, d as removalRemedy, f as removeWorktreeTarget, i as matchWorktreeEntry, l as removalBlockers, m as worktreeCommand, n as excludePodChurn, o as reclaimKeys, p as warmedWorkspace, r as excludeWatchmanCookies, s as registerRemove, t as dependencyInstallCommand, u as removalPath } from "./worktree-ZpZR3S1k.mjs";
1
+ import { a as porcelainPath, c as registerWarm, d as removalRemedy, f as removeWorktreeTarget, i as matchWorktreeEntry, l as removalBlockers, m as worktreeCommand, n as excludePodChurn, o as reclaimKeys, p as warmedWorkspace, r as excludeWatchmanCookies, s as registerRemove, t as dependencyInstallCommand, u as removalPath } from "./worktree-Be_7NLKy.mjs";
2
2
  export { worktreeCommand as default, dependencyInstallCommand, excludePodChurn, excludeWatchmanCookies, matchWorktreeEntry, porcelainPath, reclaimKeys, registerRemove, registerWarm, removalBlockers, removalPath, removalRemedy, removeWorktreeTarget, warmedWorkspace };