stim 1.34.0 → 1.36.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.
Files changed (152) hide show
  1. package/dist/{acquire-artifact-B0SWoVNt.mjs → acquire-artifact-DGTHCd0Q.mjs} +19 -3
  2. package/dist/{act-7f7wIvCQ.mjs → act-CvN9xyV6.mjs} +18 -19
  3. package/dist/{activity-DkS-Ir6V.mjs → activity-BpdDvA8Q.mjs} +4 -4
  4. package/dist/{agent-device-usage-output-BVdgKbfz.mjs → agent-device-usage-output-pbhaW7_k.mjs} +4 -4
  5. package/dist/{android-B2DSKg-A.mjs → android-5wkcMFDG.mjs} +1 -1
  6. package/dist/{android-BU4uBX8I.mjs → android-B0qTdwnt.mjs} +5 -5
  7. package/dist/{android-Iq0M2t2d.mjs → android-SJx1V3R3.mjs} +5 -5
  8. package/dist/{android-cas-Dhcjkys1.mjs → android-cas-BS9_55U5.mjs} +4 -4
  9. package/dist/{android-D7qjT2fq.mjs → android-e9WP10cE.mjs} +47 -41
  10. package/dist/{android-image-DFk26aY6.mjs → android-image-BZ57YL6R.mjs} +2 -2
  11. package/dist/{android-project-DhO6el8N.d.mts → android-project-v_1nej_x.d.mts} +3 -1
  12. package/dist/api.d.mts +20 -6
  13. package/dist/api.mjs +31 -26
  14. package/dist/{apk-signed-tail-CPpA-3vu.mjs → apk-signed-tail-eZyXIrnc.mjs} +2 -2
  15. package/dist/{artifact-DmRtKFXW.mjs → artifact-C3srrGVU.mjs} +36 -14
  16. package/dist/{artifact-CNnTZs3R.mjs → artifact-ubNdxo_K.mjs} +52 -19
  17. package/dist/{auto-placement-DA65VQH7.mjs → auto-placement-CKFpFCuq.mjs} +7 -8
  18. package/dist/{browser-web-Dn_hgKZC.mjs → browser-web-B63vLrj6.mjs} +11 -11
  19. package/dist/{build-D7SuVoRX.mjs → build-B_Dx9SKJ.mjs} +72 -25
  20. package/dist/{build-cache-Cqj4FGnX.mjs → build-cache-BW8T4oD2.mjs} +10 -5
  21. package/dist/{build-plan-Ct1FiA3E.mjs → build-plan-CeIooJqn.mjs} +6 -6
  22. package/dist/{cache-manifest-8JX9S1QJ.mjs → cache-manifest-CxWkZmUr.mjs} +1 -1
  23. package/dist/cache-manifest.mjs +1 -1
  24. package/dist/{cli-DjdvQG5U.mjs → cli-COdXswmc.mjs} +19 -18
  25. package/dist/cli.mjs +1 -1
  26. package/dist/{client-kU37gURU.mjs → client-KSWIeQLA.mjs} +9 -8
  27. package/dist/collector-run.mjs +4 -4
  28. package/dist/{command-output-DjExb_tZ.mjs → command-output-T3cDctRE.mjs} +1 -1
  29. package/dist/{config-BW0fAtoK.mjs → config-BA3TgoIP.mjs} +59 -10
  30. package/dist/{dependencies-CZ7c8XX_.mjs → dependencies-LH-7k1Vr.mjs} +35 -38
  31. package/dist/{dependency-state-mL5g4H6K.mjs → dependency-state-Blfp3AkG.mjs} +1 -1
  32. package/dist/{dev-client-D3wOllNd.mjs → dev-client-MO_DjTZr.mjs} +2 -2
  33. package/dist/{device-DH5yf6TU.mjs → device-BZWt_aPJ.mjs} +11 -11
  34. package/dist/{device-CWPFAqs0.mjs → device-DNTWFFB1.mjs} +12 -12
  35. package/dist/{device-android-ChfF5I9A.mjs → device-android-BB9Lugr8.mjs} +8 -8
  36. package/dist/{ccache-ChBMXlBq.mjs → device-capacity-CpAVcKgq.mjs} +1006 -23
  37. package/dist/device-host-worker.mjs +13 -14
  38. package/dist/{device-pool-EZziQ0uS.mjs → device-pool-BJToGG-q.mjs} +3 -3
  39. package/dist/{device-provision-CfpEy-Vm.mjs → device-provision-CxQDCtrc.mjs} +9 -9
  40. package/dist/{doctor-CGBsS_68.mjs → doctor-C-46SkBe.mjs} +1 -1
  41. package/dist/{doctor-dwRboaXx.mjs → doctor-CYZ45LnX.mjs} +20 -21
  42. package/dist/{doctor-B5uEZiKp.mjs → doctor-DV639Iw_.mjs} +15 -16
  43. package/dist/doctor-fingerprint.mjs +1 -1
  44. package/dist/{doctor-watchman-r7M9UPi0.mjs → doctor-watchman-TZxYt_98.mjs} +4 -4
  45. package/dist/{eas-build-BpHIt_M3.mjs → eas-build-Xf5Jd6LR.mjs} +2 -2
  46. package/dist/{eas-fallback-CNPcjq3K.mjs → eas-fallback-DNYPNinw.mjs} +4 -4
  47. package/dist/{eas-session-ledger-CXwagcQ7.mjs → eas-session-ledger-CXZ4aix0.mjs} +5 -5
  48. package/dist/{error-diagnostics-Ym2mjmJ0.mjs → error-diagnostics-CvB5bpPU.mjs} +8 -8
  49. package/dist/{gc-B464w_a5.mjs → gc-8Qm_K1iy.mjs} +2 -2
  50. package/dist/{gc-C7YxKNci.mjs → gc-DiUhrVFo.mjs} +17 -17
  51. package/dist/{guide-BFW-cB7R.mjs → guide-CuvHRP53.mjs} +130 -65
  52. package/dist/{hosted-android-B7yfqXEy.mjs → hosted-android-D__HGVIO.mjs} +3 -3
  53. package/dist/{hosted-client-CQuzZwAu.mjs → hosted-client-DMOOu8vD.mjs} +6 -6
  54. package/dist/{hosted-logs-DfYCqrrR.mjs → hosted-logs-CClIktQM.mjs} +6 -6
  55. package/dist/{hosted-logs-sync-Dlpa2mQF.mjs → hosted-logs-sync-B7XCeqVm.mjs} +5 -5
  56. package/dist/{hosted-macos-JKefapEm.mjs → hosted-macos-D4sDJIbB.mjs} +5 -5
  57. package/dist/{hosted-native-B7OFt5gB.mjs → hosted-native-BiiUG_Q6.mjs} +7 -7
  58. package/dist/{ios-sUPbWqEh.mjs → ios-BZuhvLGr.mjs} +8 -8
  59. package/dist/{ios-BdZdNsAj.mjs → ios-BhfpRfNf.mjs} +4 -4
  60. package/dist/{ios-DSBs9c6d.mjs → ios-BhpUWyN7.mjs} +39 -32
  61. package/dist/{ios-device-Drplrgzo.mjs → ios-device-vhYL1N--.mjs} +1 -1
  62. package/dist/{ios-project-DoTQYghg.mjs → ios-project-Cz0S1Sz-.mjs} +7 -7
  63. package/dist/{ios-signing-R34vbrNU.mjs → ios-signing-BcH88ecn.mjs} +1 -1
  64. package/dist/{ios-state-CWsBysyN.mjs → ios-state-Avwz2cbZ.mjs} +1 -1
  65. package/dist/{js-swap-DrokhOfo.mjs → js-swap-Desu2iII.mjs} +4 -4
  66. package/dist/{launch-Cy-MWEZc.mjs → launch-6ckG9UrC.mjs} +19 -19
  67. package/dist/{lightened-ALwQcQtV.mjs → lightened-B6TnpHMX.mjs} +4 -4
  68. package/dist/{logs-DuED-01Z.mjs → logs-B-DMy1K0.mjs} +7 -7
  69. package/dist/{logs-DWT7jGpF.mjs → logs-CO0CJRiC.mjs} +5 -5
  70. package/dist/{macos-CtBtA_hW.mjs → macos-B1aCXhem.mjs} +19 -19
  71. package/dist/{macos-kWGcfLzx.mjs → macos-CduEmWAK.mjs} +1 -1
  72. package/dist/macos-run.mjs +1 -1
  73. package/dist/maintenance-run.mjs +5 -5
  74. package/dist/{metro-B5PVz0Wv.mjs → metro-DM3yJL1M.mjs} +2 -2
  75. package/dist/{metro-request-2LmFpC1z.mjs → metro-request-O8Q-JvBg.mjs} +1 -1
  76. package/dist/{named-ports-CA0nB9Yw.mjs → named-ports-BvB_CO9B.mjs} +2 -2
  77. package/dist/{native-android-tISP2EVp.mjs → native-android-28NOG2-y.mjs} +17 -17
  78. package/dist/{native-gradle-artifact-inputs-DVoeZkrw.mjs → native-gradle-artifact-inputs-DxVEtS6_.mjs} +3 -3
  79. package/dist/{native-runtime-CNgxeOCG.mjs → native-runtime-C3_NkUlW.mjs} +6 -6
  80. package/dist/{native-xcode-inputs-DGzkhpu4.mjs → native-xcode-inputs-BWFTw5cJ.mjs} +2 -2
  81. package/dist/{native-xcode-ios-B9nsfId2.mjs → native-xcode-ios-B4Qoc7-U.mjs} +16 -16
  82. package/dist/offload-worker.d.mts +1 -1
  83. package/dist/offload-worker.mjs +19 -19
  84. package/dist/{ownership-hC7xvvxF.mjs → ownership-C3y8wLSl.mjs} +2 -2
  85. package/dist/{phone-reverses-Bo0EzJ-P.mjs → phone-reverses-BhSxbqom.mjs} +4 -4
  86. package/dist/{placement-log-BsGvKLtU.mjs → placement-log-B8RCSzOm.mjs} +1 -1
  87. package/dist/{plan-placement-Am0IjuxB.mjs → plan-placement-BI4r55aP.mjs} +6 -6
  88. package/dist/{ports-CNzg1LYD.mjs → ports-DhOSyWm9.mjs} +3 -3
  89. package/dist/{prebuild-BfJII57G.mjs → prebuild-Di2IhUue.mjs} +9 -9
  90. package/dist/{project-DU3jjnBE.mjs → project-Clk1JAWL.mjs} +15 -15
  91. package/dist/{react-native-android-3dZiJv-4.mjs → react-native-android-bdHBMrnf.mjs} +23 -23
  92. package/dist/{react-native-build-CuvNPt-q.mjs → react-native-build-CJega_NM.mjs} +7 -7
  93. package/dist/{react-native-doctor-a35BwMUO.mjs → react-native-doctor-CY7BGITE.mjs} +5 -5
  94. package/dist/{react-native-ios-CqnReM1t.mjs → react-native-ios-Bo5EDVel.mjs} +25 -20
  95. package/dist/recorded-build-BuGL_fnm.mjs +58 -0
  96. package/dist/{recordings-AKZfsW2W.mjs → recordings-6i2-x8LU.mjs} +1 -1
  97. package/dist/{reload-CC3sNo10.mjs → reload-A_axEbeS.mjs} +14 -14
  98. package/dist/{reload-YPnvXGlB.mjs → reload-BvDuvygc.mjs} +1 -1
  99. package/dist/remote-PD6CM0xp.mjs +158 -0
  100. package/dist/{remote-BfaIHnhM.mjs → remote-WK_swZEw.mjs} +8 -8
  101. package/dist/{result-H-AxY7Ud.mjs → result-BkDpN5Mz.mjs} +23 -18
  102. package/dist/{run-N-BbRxnC.mjs → run-CTFi4Nq2.mjs} +1 -1
  103. package/dist/{server-bare-BTlICuaX.mjs → server-bare-W0aPsRZE.mjs} +1 -1
  104. package/dist/{server-command-Bn_gOObU.mjs → server-command-S00-ddjK.mjs} +4 -4
  105. package/dist/server-expo-BWJDa7Qb.mjs +2 -0
  106. package/dist/{server-expo-CUJ2fuv1.mjs → server-expo-cc-cmfsl.mjs} +2 -2
  107. package/dist/{settings-B5IBDfTx.mjs → settings-Bap-qjnp.mjs} +1 -1
  108. package/dist/{settings-DoWHJopy.mjs → settings-C_Xu4RNZ.mjs} +2 -2
  109. package/dist/{settings-payload-Bxw3hid5.mjs → settings-payload-D5jjhmrw.mjs} +4 -4
  110. package/dist/{settings-write-C6d7EC54.mjs → settings-write-C5huI-iS.mjs} +5 -5
  111. package/dist/settings.schema.json +1 -1
  112. package/dist/{simslim-DKdJx0LL.mjs → simslim-DlBvwgeF.mjs} +1 -1
  113. package/dist/{slot-launch-kq0-7w9C.mjs → slot-launch-qEQVTth7.mjs} +6 -6
  114. package/dist/{stage-CBfMTUK3.mjs → stage-CxVI_MlP.mjs} +1 -1
  115. package/dist/{start-Diu8q6_U.mjs → start-CVzivp35.mjs} +1 -1
  116. package/dist/{start-WTMumMHi.mjs → start-YpT_JpQQ.mjs} +10 -10
  117. package/dist/{state-DSOUqO-o.mjs → state-B4B5P4LU.mjs} +1 -1
  118. package/dist/{state-CtmYTRWm.mjs → state-B9VFI6r0.mjs} +2 -2
  119. package/dist/{stats-D4cW247z.mjs → stats-COoePEri.mjs} +4 -4
  120. package/dist/{status-CEwxo-PS.mjs → status-CIg0k7Qb.mjs} +21 -22
  121. package/dist/{status-B-oeWS0Z.mjs → status-CIvU5-TF.mjs} +1 -1
  122. package/dist/{status-DTFhDnd1.mjs → status-CQWmNl1f.mjs} +1 -1
  123. package/dist/{status-watch-D63R5nSI.mjs → status-watch--rfZynD_.mjs} +4 -4
  124. package/dist/status-worker.mjs +1 -1
  125. package/dist/{stim-desktop-_WTria-r.mjs → stim-desktop-D0P_bzmd.mjs} +1 -1
  126. package/dist/{stop-HL2RvhrE.mjs → stop-BEBBruvD.mjs} +4 -4
  127. package/dist/{stop-Dm9ON6Os.mjs → stop-BiI4_VFG.mjs} +2 -2
  128. package/dist/{stop-vX4w3_8V.mjs → stop-C3d5qG7C.mjs} +15 -15
  129. package/dist/supervisor-run.mjs +12 -13
  130. package/dist/support-BJbXovoO.mjs +2089 -0
  131. package/dist/{support-BNe1_Hg7.mjs → support-Vckdzrmk.mjs} +5 -5
  132. package/dist/{swiftpm-artifact-inputs-uq5oV7xR.mjs → swiftpm-artifact-inputs-DbuF-Yrr.mjs} +1 -1
  133. package/dist/{swiftpm-macos-ClF203_2.mjs → swiftpm-macos-Bu8xeBfM.mjs} +8 -8
  134. package/dist/{toolchain-CECahBDa.mjs → toolchain-CIRdNl-c.mjs} +1 -1
  135. package/dist/{toolchain-CYonNjd_.mjs → toolchain-DCnWAxQL.mjs} +71 -7
  136. package/dist/{warm-progress-q11Vdvhh.mjs → warm-progress-DwsGBpph.mjs} +3 -3
  137. package/dist/{web-BdaMBr2O.mjs → web-D2En0Wa5.mjs} +8 -8
  138. package/dist/web-Dpj70t4p.mjs +2 -0
  139. package/dist/web-run.mjs +4 -4
  140. package/dist/{workspace-state-BdZ-QgmB.mjs → workspace-state-BhwAJBgA.mjs} +2 -2
  141. package/dist/{workspaces-B9v5V7Es.mjs → workspaces-Dh5N70qW.mjs} +11 -11
  142. package/dist/{worktree-C4MBOMz7.mjs → worktree-DLm4s2Ib.mjs} +1 -1
  143. package/dist/{worktree-C3N86KpI.mjs → worktree-Yw3EW77B.mjs} +24 -24
  144. package/package.json +7 -7
  145. package/dist/device-capacity-CHC3dKWg.mjs +0 -867
  146. package/dist/device-ios-B3-Ah--R.mjs +0 -716
  147. package/dist/device-lease-run-i3FNX4OE.mjs +0 -282
  148. package/dist/idle-shutdown-DPD8oV36.mjs +0 -142
  149. package/dist/selection-CH-MUVGD.mjs +0 -791
  150. package/dist/server-expo-B59N16uT.mjs +0 -2
  151. package/dist/support-ivsfDj0v.mjs +0 -287
  152. package/dist/web-CIpHpGp8.mjs +0 -2
@@ -0,0 +1,158 @@
1
+ import { l as phaseLine } from "./command-output-T3cDctRE.mjs";
2
+ import { D as updateRemoteMachinesAsync, R as doctorIo, V as keyConfirmer, W as parseMachine$1 } from "./config-BA3TgoIP.mjs";
3
+ import { $ as inspectBuildMachines, Q as forgetBuildMachine, at as inspectDeviceHostMachines, nt as configuredMachines, rt as forgetDeviceHostMachine } from "./support-BJbXovoO.mjs";
4
+ import { t as confirmInTerminal } from "./device-provision-CxQDCtrc.mjs";
5
+ import { readBuildMachines, readDeviceHostMachines } from "@stim-cli/core/state";
6
+ import chalk from "chalk";
7
+ //#region src/commands/remote.ts
8
+ function refusal(code, message, remedy) {
9
+ return Object.assign(new Error(message), {
10
+ code,
11
+ message,
12
+ remedy
13
+ });
14
+ }
15
+ function invalidSetting() {
16
+ return refusal("STIM_BAD_ARG", "remote.machines is not a list of machine names.", "Run `stim guide settings` and correct remote.machines, then run the command again.");
17
+ }
18
+ function asRefusal(error) {
19
+ if (!(error instanceof Error) || !("code" in error)) return null;
20
+ if (typeof error.code !== "string" || !error.code.startsWith("STIM_")) return null;
21
+ const remedy = "remedy" in error && typeof error.remedy === "string" ? error.remedy : null;
22
+ return {
23
+ code: error.code,
24
+ message: error.message,
25
+ remedy
26
+ };
27
+ }
28
+ async function run(json, action) {
29
+ try {
30
+ await action();
31
+ } catch (error) {
32
+ const failure = asRefusal(error);
33
+ if (!failure) throw error;
34
+ console.error(chalk.red(phaseLine("error", `${failure.code}: ${failure.message}`)));
35
+ if (failure.remedy) console.error(phaseLine("remedy", failure.remedy));
36
+ if (json) console.log(JSON.stringify(failure));
37
+ process.exitCode = 1;
38
+ }
39
+ }
40
+ function requireMachine(machine) {
41
+ if (parseMachine$1(machine)) return;
42
+ throw refusal("STIM_BAD_ARG", `${JSON.stringify(machine)} is not a tailnet name or local: address.`, "Expected `name`, `name:port`, `local:<host>` or `local:<host>:port`.");
43
+ }
44
+ function printFindings(findings) {
45
+ const seen = /* @__PURE__ */ new Set();
46
+ for (const finding of findings) {
47
+ if (seen.has(finding.title)) continue;
48
+ seen.add(finding.title);
49
+ console.log(`\n${chalk.bold(finding.title)}`);
50
+ console.log(` ${finding.detail}`);
51
+ if (finding.fix) console.log(chalk.dim(` -> ${finding.fix}`));
52
+ }
53
+ }
54
+ function confirmer(json) {
55
+ const interactive = !json && process.stdin.isTTY === true && process.stderr.isTTY === true;
56
+ return keyConfirmer(interactive ? confirmInTerminal : null);
57
+ }
58
+ function stateLine(build, host) {
59
+ return `build ${build?.state ?? "unknown"}, device-host ${host?.state ?? "unknown"}`;
60
+ }
61
+ function remoteCommand(program, version, io = doctorIo()) {
62
+ const remote = program.command("remote").description("Manage remote.machines, the remote machines this machine builds on and hosts devices on. Works from any directory.");
63
+ remote.command("add <machine>").description("Append a remote machine to remote.machines, keeping the existing entries, and ask it for build and device-host approval. Prints the stim-server setup command a person runs there to approve this machine.").option("--json", "print the result as JSON").action((machine, opts) => run(Boolean(opts.json), async () => {
64
+ requireMachine(machine);
65
+ const { before, after } = await updateRemoteMachinesAsync((machines) => machines.includes(machine) ? machines : [...machines, machine], await io.status());
66
+ if (before === null) throw invalidSetting();
67
+ const added = !before.includes(machine);
68
+ const options = {
69
+ fix: true,
70
+ forget: false,
71
+ version,
72
+ tickets: /* @__PURE__ */ new Map(),
73
+ confirmKey: confirmer(Boolean(opts.json))
74
+ };
75
+ const build = await inspectBuildMachines(options, io, [machine]);
76
+ const host = await inspectDeviceHostMachines(options, io, [machine]);
77
+ const findings = [...build.findings, ...host.findings];
78
+ const buildReport = build.machines[0] ?? null;
79
+ const hostReport = host.machines[0] ?? null;
80
+ if (opts.json) {
81
+ console.log(JSON.stringify({
82
+ machine,
83
+ added,
84
+ machines: after,
85
+ build: buildReport,
86
+ deviceHost: hostReport,
87
+ findings
88
+ }));
89
+ return;
90
+ }
91
+ console.log(added ? `Added ${machine} to remote.machines (${after.length} machine${after.length === 1 ? "" : "s"}).` : `${machine} is already in remote.machines.`);
92
+ console.log(`${machine}: ${stateLine(buildReport, hostReport)}`);
93
+ printFindings(findings);
94
+ }));
95
+ remote.command("list").description("Contact each machine in remote.machines and report its build and device-host approval, in placement order. Completes the connection to a machine that approved since the last contact; asks nothing new.").option("--json", "print the machines as JSON").action((opts) => run(Boolean(opts.json), async () => {
96
+ const entries = configuredMachines();
97
+ if (entries === null) throw invalidSetting();
98
+ const options = {
99
+ fix: false,
100
+ version,
101
+ confirmKey: confirmer(Boolean(opts.json))
102
+ };
103
+ const build = await inspectBuildMachines(options, io, entries);
104
+ const host = await inspectDeviceHostMachines(options, io, entries);
105
+ const machines = entries.map((machine, at) => ({
106
+ machine,
107
+ priority: at + 1,
108
+ build: build.machines.find((each) => each.machine === machine) ?? null,
109
+ deviceHost: host.machines.find((each) => each.machine === machine) ?? null
110
+ }));
111
+ const findings = [...build.findings, ...host.findings];
112
+ if (opts.json) {
113
+ console.log(JSON.stringify({
114
+ machines,
115
+ findings
116
+ }));
117
+ return;
118
+ }
119
+ if (!entries.length) {
120
+ console.log("No remote machines. Add one with `stim remote add <machine>`.");
121
+ return;
122
+ }
123
+ for (const each of machines) console.log(`${each.priority} ${each.machine}: ${stateLine(each.build, each.deviceHost)}`);
124
+ printFindings(findings);
125
+ }));
126
+ remote.command("remove <machine>").description("Remove a machine from remote.machines and forget this machine's credentials for it. Approval on that machine stays until a person there revokes it; prints the command.").option("--json", "print the result as JSON").action((machine, opts) => run(Boolean(opts.json), async () => {
127
+ if (configuredMachines() === null) throw invalidSetting();
128
+ const credentials = [...readBuildMachines(), ...readDeviceHostMachines()].filter((each) => each.machine === machine);
129
+ const revoke = [...new Set(credentials.flatMap((each) => each.deviceId ? [each.deviceId] : []))].map((id) => `stim-server devices revoke ${id}`);
130
+ const pending = credentials.some((each) => !each.deviceId);
131
+ const { before, after } = await updateRemoteMachinesAsync((machines) => machines.filter((each) => each !== machine), await io.status());
132
+ if (before === null) throw invalidSetting();
133
+ const removed = before.includes(machine);
134
+ const busy = `another run holds the hosting credentials, so this machine's credentials for ${machine} were kept.`;
135
+ if (!await forgetDeviceHostMachine(machine)) throw refusal("STIM_CLAIM_REFUSED", removed ? `Removed ${machine} from remote.machines, but ${busy}` : `Nothing changed: ${busy}`, `Run \`stim remote remove ${machine}\` again after it finishes.`);
136
+ await forgetBuildMachine(machine);
137
+ if (opts.json) {
138
+ console.log(JSON.stringify({
139
+ machine,
140
+ removed,
141
+ forgot: credentials.length > 0,
142
+ machines: after,
143
+ revoke,
144
+ pending
145
+ }));
146
+ return;
147
+ }
148
+ if (!removed && !credentials.length) {
149
+ console.log(`${machine} is not in remote.machines.`);
150
+ return;
151
+ }
152
+ console.log(removed ? `Removed ${machine} from remote.machines and forgot its credentials.` : `${machine} was not in remote.machines; forgot its credentials.`);
153
+ if (revoke.length) console.log(chalk.dim(` -> ${machine} keeps this machine's approval until a person there runs: ${revoke.join("; ")}`));
154
+ if (pending) console.log(chalk.dim(` -> A request to ${machine} was still pending here. If a person there approved it, find this machine in \`stim-server devices\` there and revoke it.`));
155
+ }));
156
+ }
157
+ //#endregion
158
+ export { remoteCommand as default };
@@ -1,12 +1,12 @@
1
1
  import { f as WorkspaceProcessCleanupError } from "./exec-CGuDzt40.mjs";
2
- import { l as phaseLine } from "./command-output-DjExb_tZ.mjs";
3
- import { ft as deviceSlotPlatforms } from "./config-BW0fAtoK.mjs";
4
- import { B as publicUrlSetting, G as remoteIosSetting, L as parseIosRemote, W as remoteEasFallbackSetting, ot as tunnelModeSetting } from "./settings-B5IBDfTx.mjs";
5
- import "./ccache-ChBMXlBq.mjs";
6
- import { _t as runCancellationSignal } from "./toolchain-CYonNjd_.mjs";
7
- import { b as resolveSimulatorAppFlag } from "./support-ivsfDj0v.mjs";
8
- import { n as devicePlacementRecord } from "./placement-log-BsGvKLtU.mjs";
9
- import { n as devicePlacementLine } from "./auto-placement-DA65VQH7.mjs";
2
+ import { l as phaseLine } from "./command-output-T3cDctRE.mjs";
3
+ import { pt as deviceSlotPlatforms } from "./config-BA3TgoIP.mjs";
4
+ import { B as publicUrlSetting, G as remoteIosSetting, L as parseIosRemote, W as remoteEasFallbackSetting, ot as tunnelModeSetting } from "./settings-Bap-qjnp.mjs";
5
+ import "./device-capacity-CpAVcKgq.mjs";
6
+ import { _t as runCancellationSignal } from "./toolchain-DCnWAxQL.mjs";
7
+ import { b as resolveSimulatorAppFlag } from "./support-BJbXovoO.mjs";
8
+ import { n as devicePlacementRecord } from "./placement-log-B8RCSzOm.mjs";
9
+ import { n as devicePlacementLine } from "./auto-placement-CKFpFCuq.mjs";
10
10
  import chalk from "chalk";
11
11
  //#region src/commands/ios/remote.ts
12
12
  function deviceRemoteConflict(remote, physical) {
@@ -1,21 +1,21 @@
1
- import { w as workspaceAgentDeviceDir } from "./workspace-state-BdZ-QgmB.mjs";
2
- import { i as formatDuration, l as phaseLine } from "./command-output-DjExb_tZ.mjs";
3
- import { ft as deviceSlotPlatforms, m as getProject } from "./config-BW0fAtoK.mjs";
4
- import { J as resolveCacheProviderConfig, L as parseIosRemote, U as remoteAndroidSetting, _ as inertSettingWarning, a as SETTING_SHAPE_REMEDY, at as settingsLayers, d as androidLayoutSetting, et as settingFile, f as androidLayoutSettingError, nt as settingOriginScope, p as cacheProviderSettingError, q as resolveAndroidLayout, rt as settingShapeErrors, s as androidAvdConfigSettingError, st as unknownSettingKeys, u as androidDataPartitionSizeGbSettingError } from "./settings-B5IBDfTx.mjs";
5
- import { v as detectIsExpo } from "./project-DU3jjnBE.mjs";
6
- import { a as workspaceLinkLine } from "./stim-desktop-_WTria-r.mjs";
7
- import { H as ownedAvdDeviceProfile, I as listAvdDeviceProfilesAsync, J as ownedAvdSystemImage, Q as pickDefaultSystemImage, bt as parkedMaxSetting, et as profileNeedsFoldFeature, j as hostSystemImageArch, l as androidSystemImageAbi, st as systemImageSupportsFold, t as DEFAULT_AVD_DEVICE_PROFILE, z as listInstalledSystemImages } from "./android-Iq0M2t2d.mjs";
8
- import { En as cacheLevel, On as easAuthNote, Tn as UPLOAD_TIMEOUT_MS, kn as isEasAuthFailureText, n as CCACHE_UNAVAILABLE, r as ccacheActivityLine } from "./ccache-ChBMXlBq.mjs";
9
- import { X as recordFinishedBuild } from "./workspaces-B9v5V7Es.mjs";
1
+ import { w as workspaceAgentDeviceDir } from "./workspace-state-BhwAJBgA.mjs";
2
+ import { i as formatDuration, l as phaseLine } from "./command-output-T3cDctRE.mjs";
3
+ import { m as getProject, pt as deviceSlotPlatforms } from "./config-BA3TgoIP.mjs";
4
+ import { J as resolveCacheProviderConfig, L as parseIosRemote, U as remoteAndroidSetting, _ as inertSettingWarning, a as SETTING_SHAPE_REMEDY, at as settingsLayers, d as androidLayoutSetting, et as settingFile, f as androidLayoutSettingError, nt as settingOriginScope, p as cacheProviderSettingError, q as resolveAndroidLayout, rt as settingShapeErrors, s as androidAvdConfigSettingError, st as unknownSettingKeys, u as androidDataPartitionSizeGbSettingError } from "./settings-Bap-qjnp.mjs";
5
+ import { v as detectIsExpo } from "./project-Clk1JAWL.mjs";
6
+ import { a as workspaceLinkLine } from "./stim-desktop-D0P_bzmd.mjs";
7
+ import { H as ownedAvdDeviceProfile, I as listAvdDeviceProfilesAsync, J as ownedAvdSystemImage, Q as pickDefaultSystemImage, bt as parkedMaxSetting, et as profileNeedsFoldFeature, j as hostSystemImageArch, l as androidSystemImageAbi, st as systemImageSupportsFold, t as DEFAULT_AVD_DEVICE_PROFILE, z as listInstalledSystemImages } from "./android-SJx1V3R3.mjs";
8
+ import { C as CCACHE_UNAVAILABLE, Kn as UPLOAD_TIMEOUT_MS, Xn as isEasAuthFailureText, Yn as easAuthNote, qn as cacheLevel, t as DEFAULT_DEVICE_SLOT_WAIT_MS, w as ccacheActivityLine } from "./device-capacity-CpAVcKgq.mjs";
9
+ import { X as recordFinishedBuild } from "./workspaces-Dh5N70qW.mjs";
10
10
  import { d as optimizationBuildProfile, l as artifactCachePolicy, p as resolveOptimizations, u as compilerCacheFallbackMessage } from "./errors-DHm_U5gv.mjs";
11
- import { n as buildPlacementCandidates } from "./client-kU37gURU.mjs";
12
- import { c as readProductFlavors, s as productFlavorRefusal } from "./react-native-build-CuvNPt-q.mjs";
13
- import { l as parseDeviceWait } from "./device-lease-run-i3FNX4OE.mjs";
14
- import { t as DEFAULT_DEVICE_SLOT_WAIT_MS } from "./device-capacity-CHC3dKWg.mjs";
15
- import { t as androidImageInstallPolicy } from "./android-image-DFk26aY6.mjs";
16
- import { n as resolveAndroidCas, r as resolveAndroidCompilerCache } from "./android-cas-Dhcjkys1.mjs";
17
- import { r as isPhysicalDeviceRequest } from "./native-runtime-CNgxeOCG.mjs";
18
- import { C as remoteAvdFlagRefusal, D as systemImageRefusal, E as resolveVariant, T as resolveSystemImage, a as PLATFORM, m as deviceProfileRefusal, v as foldableImageRefusal, w as resolveDeviceProfile, y as isReleaseVariant } from "./support-BNe1_Hg7.mjs";
11
+ import { n as buildPlacementCandidates } from "./client-KSWIeQLA.mjs";
12
+ import { q as parseDeviceWait } from "./support-BJbXovoO.mjs";
13
+ import { c as readProductFlavors, s as productFlavorRefusal } from "./react-native-build-CJega_NM.mjs";
14
+ import { t as androidImageInstallPolicy } from "./android-image-BZ57YL6R.mjs";
15
+ import { n as resolveAndroidCas, r as resolveAndroidCompilerCache } from "./android-cas-BS9_55U5.mjs";
16
+ import { r as isPhysicalDeviceRequest } from "./native-runtime-C3_NkUlW.mjs";
17
+ import { t as lookupRecordedBuild } from "./recorded-build-BuGL_fnm.mjs";
18
+ import { C as remoteAvdFlagRefusal, D as systemImageRefusal, E as resolveVariant, T as resolveSystemImage, a as PLATFORM, m as deviceProfileRefusal, v as foldableImageRefusal, w as resolveDeviceProfile, y as isReleaseVariant } from "./support-Vckdzrmk.mjs";
19
19
  import { buildDiagnostics } from "@stim-cli/core/state";
20
20
  import chalk from "chalk";
21
21
  //#region src/commands/android/plan.ts
@@ -128,7 +128,7 @@ function resolveAndroidBuildPlan({ settings, settingsContext, env, easProfile, v
128
128
  }
129
129
  };
130
130
  }
131
- async function resolveAndroidRunPlan({ settings, settingsContext, env, slot, signal, easProfile, variant: variantFlag, systemImage: systemImageFlag, deviceProfile: deviceProfileFlag, device: deviceFlag, wait: waitFlag, waitConflict, remote: commandRemoteBackend, buildCache: requestedBuildCache, buildMachine }, { warn, runtimeKind, resolveCompilerCache = androidCompilerCache, resolveCacheProvider = resolveCacheProviderConfig, validateAvdConfig = androidAvdConfigSettingError, readFlavors = readProductFlavors, variantProblem = (variant) => productFlavorRefusal({
131
+ async function resolveAndroidRunPlan({ settings, settingsContext, env, slot, signal, easProfile, recordedBuild, variant: variantFlag, systemImage: systemImageFlag, deviceProfile: deviceProfileFlag, device: deviceFlag, wait: waitFlag, waitConflict, remote: commandRemoteBackend, buildCache: requestedBuildCache, buildMachine }, { warn, runtimeKind, resolveCompilerCache = androidCompilerCache, resolveCacheProvider = resolveCacheProviderConfig, validateAvdConfig = androidAvdConfigSettingError, readFlavors = readProductFlavors, variantProblem = (variant) => productFlavorRefusal({
132
132
  flavors: readFlavors(resolveAndroidLayout(settings, settingsContext.projectPath, settingsContext.repoRoot ?? settingsContext.projectPath)),
133
133
  variant
134
134
  }), detectExpo = () => detectIsExpo(settingsContext.projectPath), listSystemImages = listInstalledSystemImages, listDeviceProfiles = listAvdDeviceProfilesAsync, parkedLimit = parkedMaxSetting, supportsFold = systemImageSupportsFold, ownedAvd = slotOwnedAvd, preflight, buildMachines = (selected) => buildPlacementCandidates(selected).machines }) {
@@ -151,6 +151,11 @@ async function resolveAndroidRunPlan({ settings, settingsContext, env, slot, sig
151
151
  detectExpo
152
152
  });
153
153
  if (!plannedBuild.ok) return plannedBuild;
154
+ const recordedRefusal = lookupRecordedBuild(recordedBuild, root, {
155
+ platform: "android",
156
+ configuration: plannedBuild.plan.build.variant
157
+ }).refusal;
158
+ if (recordedRefusal) return fail(recordedRefusal.code, recordedRefusal.message, recordedRefusal.remedy);
154
159
  const dataPartitionSizeError = androidDataPartitionSizeGbSettingError(settings);
155
160
  if (dataPartitionSizeError) return fail("STIM_BAD_ARG", dataPartitionSizeError, "Set android.dataPartitionSizeGb to a whole number of GiB from 6 through 16384.");
156
161
  const avdConfigError = validateAvdConfig(settings, root);
@@ -1,5 +1,5 @@
1
1
  import { D as ownership_claim_exports, T as process_identity_exports, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { a as macosRuntimeClaim, i as macosProcess, r as macosLogFile, s as updateMacosRecord } from "./state-DSOUqO-o.mjs";
2
+ import { a as macosRuntimeClaim, i as macosProcess, r as macosLogFile, s as updateMacosRecord } from "./state-B4B5P4LU.mjs";
3
3
  import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
4
4
  import { LOG_ROTATE_BYTES } from "@stim-cli/core";
5
5
  import { readMacosRecord } from "@stim-cli/core/state";
@@ -1,5 +1,5 @@
1
1
  import { O as __commonJSMin, k as __require, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { X as resolveProjectSettings } from "./settings-B5IBDfTx.mjs";
2
+ import { X as resolveProjectSettings } from "./settings-Bap-qjnp.mjs";
3
3
  import { c as registerMetroStore, f as resolveMetroSharedCache, n as supervisorError, r as appendCacheStore, s as metroStoreRoot } from "./errors-DHm_U5gv.mjs";
4
4
  import { createRequire } from "node:module";
5
5
  import { isAbsolute, join, relative, sep } from "node:path";
@@ -1,9 +1,9 @@
1
1
  import { t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { n as METRO_COMMAND_PORT } from "./settings-B5IBDfTx.mjs";
3
- import { T as MODE_COMMAND } from "./project-DU3jjnBE.mjs";
4
- import { f as signalProcessTree } from "./metro-B5PVz0Wv.mjs";
2
+ import { n as METRO_COMMAND_PORT } from "./settings-Bap-qjnp.mjs";
3
+ import { T as MODE_COMMAND } from "./project-Clk1JAWL.mjs";
4
+ import { f as signalProcessTree } from "./metro-DM3yJL1M.mjs";
5
5
  import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
6
- import { g as projectNodeLine, p as recordFromLine, v as withProjectNode, y as superviseChildServer } from "./server-expo-CUJ2fuv1.mjs";
6
+ import { g as projectNodeLine, p as recordFromLine, v as withProjectNode, y as superviseChildServer } from "./server-expo-cc-cmfsl.mjs";
7
7
  import { join } from "node:path";
8
8
  import { LOG_ROTATE_BYTES } from "@stim-cli/core";
9
9
  //#region src/supervisor/server-command.ts
@@ -0,0 +1,2 @@
1
+ import { m as startExpoServer } from "./server-expo-cc-cmfsl.mjs";
2
+ export { startExpoServer };
@@ -1,7 +1,7 @@
1
1
  import { l as cancellableSleep, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
2
  import { n as stripAnsi, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
3
- import { X as resolveProjectSettings } from "./settings-B5IBDfTx.mjs";
4
- import { C as resolvePackageJson } from "./project-DU3jjnBE.mjs";
3
+ import { X as resolveProjectSettings } from "./settings-Bap-qjnp.mjs";
4
+ import { C as resolvePackageJson } from "./project-Clk1JAWL.mjs";
5
5
  import { i as createNdjsonWriter } from "./ndjson-CrjIsGzw.mjs";
6
6
  import { a as expoMetroStoreEnv, c as registerMetroStore, f as resolveMetroSharedCache, i as expoMetroConfigPath, n as supervisorError, o as metroStoreConfirmedRoot, s as metroStoreRoot } from "./errors-DHm_U5gv.mjs";
7
7
  import { accessSync, constants, existsSync, readFileSync } from "node:fs";
@@ -1,5 +1,5 @@
1
1
  import { D as ownership_claim_exports, d as throwIfCancelled, f as WorkspaceProcessCleanupError, n as isTimeoutError, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { d as getConfigDir, f as getConfigPath$1, g as getRepoSettings, h as getProjectSettings, v as loadConfig$1 } from "./config-BW0fAtoK.mjs";
2
+ import { d as getConfigDir, f as getConfigPath$1, g as getRepoSettings, h as getProjectSettings, v as loadConfig$1 } from "./config-BA3TgoIP.mjs";
3
3
  import { c as gitQuiet, l as gitQuietAsync, n as runOperationFileQuiet, o as git, r as childEnvironment, s as gitAsync, t as runOperationFile } from "./operation-exec-DKlBcKAL.mjs";
4
4
  import { accessSync, chmodSync, constants, existsSync, lstatSync, mkdirSync, mkdtempSync, readdirSync, realpathSync, rmSync, statSync } from "node:fs";
5
5
  import { tmpdir } from "node:os";
@@ -1,5 +1,5 @@
1
- import { c as readSettingsPayload, l as settingEntry, o as layerFile, s as readSettingsContext, t as SettingsRefusal } from "./settings-payload-Bxw3hid5.mjs";
2
- import { i as unsetReplacedSetting, n as readScope, r as requireSetting, t as mutateSetting } from "./settings-write-C6d7EC54.mjs";
1
+ import { c as readSettingsPayload, l as settingEntry, o as layerFile, s as readSettingsContext, t as SettingsRefusal } from "./settings-payload-D5jjhmrw.mjs";
2
+ import { i as unsetReplacedSetting, n as readScope, r as requireSetting, t as mutateSetting } from "./settings-write-C5huI-iS.mjs";
3
3
  import { REPLACED_SETTINGS, SETTING_SCOPES } from "@stim-cli/core/state";
4
4
  import chalk from "chalk";
5
5
  //#region src/commands/settings.ts
@@ -1,8 +1,8 @@
1
- import { f as getConfigPath$1, g as getRepoSettings, h as getProjectSettings, v as loadConfig$1 } from "./config-BW0fAtoK.mjs";
1
+ import { f as getConfigPath$1, g as getRepoSettings, h as getProjectSettings, v as loadConfig$1 } from "./config-BA3TgoIP.mjs";
2
2
  import { a as killOnAbort, i as gitPath } from "./operation-exec-DKlBcKAL.mjs";
3
- import { K as removedMachineSettings, V as readCommittedSettings, st as unknownSettingKeys } from "./settings-B5IBDfTx.mjs";
4
- import { r as findCommandWorkspaceAsync } from "./project-DU3jjnBE.mjs";
5
- import { i as stimDesktopInstalledAsync, n as settingDefault, r as stimDesktopInstalled } from "./stim-desktop-_WTria-r.mjs";
3
+ import { K as removedMachineSettings, V as readCommittedSettings, st as unknownSettingKeys } from "./settings-Bap-qjnp.mjs";
4
+ import { r as findCommandWorkspaceAsync } from "./project-Clk1JAWL.mjs";
5
+ import { i as stimDesktopInstalledAsync, n as settingDefault, r as stimDesktopInstalled } from "./stim-desktop-D0P_bzmd.mjs";
6
6
  import { join } from "node:path";
7
7
  import { SETTINGS, SETTING_SCOPES, coerceSettingText, isJsonObject, replacementAdvice, settingDefinition, settingValueError } from "@stim-cli/core/state";
8
8
  //#region src/workspace/settings-payload.ts
@@ -1,9 +1,9 @@
1
1
  import { p as withWorkspaceProcessLock } from "./exec-CGuDzt40.mjs";
2
- import { f as getConfigPath$1, j as writeConfigSettingAsync, k as withConfigLockAsync$1 } from "./config-BW0fAtoK.mjs";
3
- import { t as NO_PROJECT_REFUSAL } from "./project-DU3jjnBE.mjs";
4
- import { i as stimDesktopInstalledAsync } from "./stim-desktop-_WTria-r.mjs";
5
- import { n as recordingLayers, t as deleteTurnedOffRecordings } from "./recordings-AKZfsW2W.mjs";
6
- import { d as unknownEntries, l as settingEntry, o as layerFile, r as committedDirectory, s as readSettingsContext, t as SettingsRefusal, u as settingExample } from "./settings-payload-Bxw3hid5.mjs";
2
+ import { A as withConfigLockAsync$1, M as writeConfigSettingAsync, f as getConfigPath$1 } from "./config-BA3TgoIP.mjs";
3
+ import { t as NO_PROJECT_REFUSAL } from "./project-Clk1JAWL.mjs";
4
+ import { i as stimDesktopInstalledAsync } from "./stim-desktop-D0P_bzmd.mjs";
5
+ import { n as recordingLayers, t as deleteTurnedOffRecordings } from "./recordings-6i2-x8LU.mjs";
6
+ import { d as unknownEntries, l as settingEntry, o as layerFile, r as committedDirectory, s as readSettingsContext, t as SettingsRefusal, u as settingExample } from "./settings-payload-D5jjhmrw.mjs";
7
7
  import { existsSync, readFileSync, renameSync, unlinkSync, writeFileSync } from "node:fs";
8
8
  import { join } from "node:path";
9
9
  import { configDir } from "@stim-cli/core";
@@ -2533,7 +2533,7 @@
2533
2533
  "type": "object",
2534
2534
  "properties": {
2535
2535
  "machines": {
2536
- "description": "The remote machines this machine may build on and host owned simulators, emulators and macOS apps on: a Tailscale name, optionally with :<port> of its tailscale serve route (default 7443), or local: and a host name or IPv4 address on the local network, optionally with :<port> of its stim-server (default 7787), whose server key doctor --fix pins after a person confirms its fingerprint. The order is the placement priority: each workload goes to the first machine with room and a load under its own limit. What each is used for follows the build and device-host approvals it grants, which doctor --fix asks for separately",
2536
+ "description": "The remote machines this machine may build on and host owned simulators, emulators and macOS apps on: a Tailscale name, optionally with :<port> of its tailscale serve route (default 7443), or local: and a host name or IPv4 address on the local network, optionally with :<port> of its stim-server (default 7787), whose server key stim remote add pins after a person confirms its fingerprint. The order is the placement priority: each workload goes to the first machine with room and a load under its own limit. What each is used for follows the build and device-host approvals it grants, which stim remote add asks for separately. Change the list with stim remote add and stim remote remove",
2537
2537
  "type": "array",
2538
2538
  "items": {
2539
2539
  "type": "string"
@@ -1,6 +1,6 @@
1
1
  import { C as operationState, D as ownership_claim_exports, S as isTermination, T as process_identity_exports, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
2
  import { n as stripAnsi, r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
3
- import { d as getConfigDir } from "./config-BW0fAtoK.mjs";
3
+ import { d as getConfigDir } from "./config-BA3TgoIP.mjs";
4
4
  import { join } from "node:path";
5
5
  //#region src/engine/simslim.ts
6
6
  async function reconcileSimSlim(options) {
@@ -1,9 +1,9 @@
1
- import { r as readWorkspaceState$1 } from "./workspace-state-BdZ-QgmB.mjs";
2
- import { ht as projectDeviceSlots, m as getProject, pt as parseDeviceSlotKey } from "./config-BW0fAtoK.mjs";
3
- import { A as getAvdNameForSerialAsync, P as listAdbDevicesAsync } from "./android-Iq0M2t2d.mjs";
4
- import { on as deviceShellArg } from "./ccache-ChBMXlBq.mjs";
5
- import { y as fileLeaseIo } from "./activity-DkS-Ir6V.mjs";
6
- import { f as listAllIosSimsAsync } from "./ios-BdZdNsAj.mjs";
1
+ import { r as readWorkspaceState$1 } from "./workspace-state-BhwAJBgA.mjs";
2
+ import { gt as projectDeviceSlots, m as getProject, mt as parseDeviceSlotKey } from "./config-BA3TgoIP.mjs";
3
+ import { A as getAvdNameForSerialAsync, P as listAdbDevicesAsync } from "./android-SJx1V3R3.mjs";
4
+ import { Dn as deviceShellArg } from "./device-capacity-CpAVcKgq.mjs";
5
+ import { y as fileLeaseIo } from "./activity-BpdDvA8Q.mjs";
6
+ import { f as listAllIosSimsAsync } from "./ios-BhfpRfNf.mjs";
7
7
  import { hostedNativeRecords } from "@stim-cli/core/state";
8
8
  //#region src/engine/slot-launch.ts
9
9
  function launchSlotScope(root, slot = "default") {
@@ -1,5 +1,5 @@
1
1
  import { d as throwIfCancelled, t as getExecutor, w as withDrainingCancellation } from "./exec-CGuDzt40.mjs";
2
- import { _t as runCancellationSignal } from "./toolchain-CYonNjd_.mjs";
2
+ import { _t as runCancellationSignal } from "./toolchain-DCnWAxQL.mjs";
3
3
  import { existsSync, lstatSync, promises, readdirSync, realpathSync, statSync } from "node:fs";
4
4
  import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
5
5
  import { validMacosResourceDestination } from "@stim-cli/core";
@@ -1,2 +1,2 @@
1
- import { a as registerStart, c as startDevServer, d as supervisorSignalable, f as tailLines, i as readLogTail, l as startFacts, n as liveSupervisor, o as resolveWorkspaceMetroPort, p as wantsExpoOwnTunnel, r as parseWait, s as startCommand, t as failureEvidence, u as supervisorEntry } from "./start-WTMumMHi.mjs";
1
+ import { a as registerStart, c as startDevServer, d as supervisorSignalable, f as tailLines, i as readLogTail, l as startFacts, n as liveSupervisor, o as resolveWorkspaceMetroPort, p as wantsExpoOwnTunnel, r as parseWait, s as startCommand, t as failureEvidence, u as supervisorEntry } from "./start-YpT_JpQQ.mjs";
2
2
  export { startCommand as default, failureEvidence, liveSupervisor, parseWait, readLogTail, registerStart, resolveWorkspaceMetroPort, startDevServer, startFacts, supervisorEntry, supervisorSignalable, tailLines, wantsExpoOwnTunnel };
@@ -1,15 +1,15 @@
1
1
  import { D as ownership_claim_exports, T as process_identity_exports, c as waitForGroupExit, d as throwIfCancelled, f as WorkspaceProcessCleanupError, l as cancellableSleep, m as workspaceProcessLockError, o as groupExitBudgetMs, p as withWorkspaceProcessLock, t as getExecutor, w as withDrainingCancellation } from "./exec-CGuDzt40.mjs";
2
- import { S as supervisorLogFile, _ as ensureWorkspaceStorage, i as recordWorkspaceUse, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, s as updateWorkspaceStateAsync, w as workspaceAgentDeviceDir } from "./workspace-state-BdZ-QgmB.mjs";
3
- import { _ as stepTimer, l as phaseLine } from "./command-output-DjExb_tZ.mjs";
4
- import { D as upsertProject, S as releaseMetroPort, k as withConfigLockAsync$1, m as getProject } from "./config-BW0fAtoK.mjs";
5
- import { A as metroCommandSetting, B as publicUrlSetting, G as remoteIosSetting, I as ngrokUrlSetting, J as resolveCacheProviderConfig, M as metroIdleStopMinutesSetting, N as metroPortSetting, P as metroTunnelSettingError, U as remoteAndroidSetting, Y as resolveIosProjectDir, Z as resolveProjectSettingsAsync, _ as inertSettingWarning, a as SETTING_SHAPE_REMEDY, dt as detectProviders, ft as planMetroReach, h as deviceIdleShutdownMinutesSetting, j as metroCommandSettingError, m as defaultAndroidLayout, ot as tunnelModeSetting, p as cacheProviderSettingError, q as resolveAndroidLayout, rt as settingShapeErrors, st as unknownSettingKeys, ut as PUBLIC_METRO_ENV } from "./settings-B5IBDfTx.mjs";
6
- import { E as MODE_EXPO, M as readMetroTunnel, O as clearManagedMetroTunnel, S as readAppJson, T as MODE_COMMAND, c as projectProblem, i as findProjectRoot$1, t as NO_PROJECT_REFUSAL, v as detectIsExpo, w as MODE_BARE, x as readAppConfigText } from "./project-DU3jjnBE.mjs";
7
- import { a as workspaceLinkLine, o as workspaceLinks } from "./stim-desktop-_WTria-r.mjs";
8
- import { _ as PORT_INSPECTION_REMEDY, a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, f as signalProcessTree, g as reserveMetroPort, h as isMetroRunning, m as createPortProbe, u as processCwds, v as PortInspectionError } from "./metro-B5PVz0Wv.mjs";
2
+ import { S as supervisorLogFile, _ as ensureWorkspaceStorage, i as recordWorkspaceUse, k as workspaceLogsDir$1, l as withWorkspaceStateLockAsync, n as clearWorkspaceStateKeys, r as readWorkspaceState$1, s as updateWorkspaceStateAsync, w as workspaceAgentDeviceDir } from "./workspace-state-BhwAJBgA.mjs";
3
+ import { _ as stepTimer, l as phaseLine } from "./command-output-T3cDctRE.mjs";
4
+ import { A as withConfigLockAsync$1, O as upsertProject, S as releaseMetroPort, m as getProject } from "./config-BA3TgoIP.mjs";
5
+ import { A as metroCommandSetting, B as publicUrlSetting, G as remoteIosSetting, I as ngrokUrlSetting, J as resolveCacheProviderConfig, M as metroIdleStopMinutesSetting, N as metroPortSetting, P as metroTunnelSettingError, U as remoteAndroidSetting, Y as resolveIosProjectDir, Z as resolveProjectSettingsAsync, _ as inertSettingWarning, a as SETTING_SHAPE_REMEDY, dt as detectProviders, ft as planMetroReach, h as deviceIdleShutdownMinutesSetting, j as metroCommandSettingError, m as defaultAndroidLayout, ot as tunnelModeSetting, p as cacheProviderSettingError, q as resolveAndroidLayout, rt as settingShapeErrors, st as unknownSettingKeys, ut as PUBLIC_METRO_ENV } from "./settings-Bap-qjnp.mjs";
6
+ import { E as MODE_EXPO, M as readMetroTunnel, O as clearManagedMetroTunnel, S as readAppJson, T as MODE_COMMAND, c as projectProblem, i as findProjectRoot$1, t as NO_PROJECT_REFUSAL, v as detectIsExpo, w as MODE_BARE, x as readAppConfigText } from "./project-Clk1JAWL.mjs";
7
+ import { a as workspaceLinkLine, o as workspaceLinks } from "./stim-desktop-D0P_bzmd.mjs";
8
+ import { _ as PORT_INSPECTION_REMEDY, a as listeningPidsAsync, c as pidExists, d as resolveProjectMetro, f as signalProcessTree, g as reserveMetroPort, h as isMetroRunning, m as createPortProbe, u as processCwds, v as PortInspectionError } from "./metro-DM3yJL1M.mjs";
9
9
  import { a as levelRank } from "./ndjson-CrjIsGzw.mjs";
10
- import { Cn as runProcessOperation, Nn as readProjectConfig, Rn as remoteCliInvocation, b as stopOwnedMetroForReset, c as budgetGate, xn as exitAfterFlush } from "./ccache-ChBMXlBq.mjs";
11
- import { C as stopTunnel, D as withManagedTunnelLock, S as startTunnelSequence, T as withManagedRemoteWorktreeLock, w as terminateChild, x as resolveSupervisorTarget } from "./workspaces-B9v5V7Es.mjs";
12
- import { i as restoreLightenedDependencies } from "./lightened-ALwQcQtV.mjs";
10
+ import { Hn as exitAfterFlush, V as stopOwnedMetroForReset, Wn as runProcessOperation, ar as remoteCliInvocation, er as readProjectConfig, k as budgetGate } from "./device-capacity-CpAVcKgq.mjs";
11
+ import { C as stopTunnel, D as withManagedTunnelLock, S as startTunnelSequence, T as withManagedRemoteWorktreeLock, w as terminateChild, x as resolveSupervisorTarget } from "./workspaces-Dh5N70qW.mjs";
12
+ import { i as restoreLightenedDependencies } from "./lightened-B6TnpHMX.mjs";
13
13
  import { t as spawnEntry } from "./spawn-entry-jw19m8Nl.mjs";
14
14
  import { n as windowsLauncherArgs } from "./detached-entry-tfrgGVWb.mjs";
15
15
  import { appendFileSync, closeSync, mkdirSync, openSync, readFileSync } from "node:fs";
@@ -1,5 +1,5 @@
1
1
  import { T as process_identity_exports } from "./exec-CGuDzt40.mjs";
2
- import { E as workspaceDir, k as workspaceLogsDir$1, o as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-BdZ-QgmB.mjs";
2
+ import { E as workspaceDir, k as workspaceLogsDir$1, o as updateWorkspaceState, r as readWorkspaceState$1 } from "./workspace-state-BhwAJBgA.mjs";
3
3
  import { existsSync } from "node:fs";
4
4
  import { join } from "node:path";
5
5
  import { readMacosRecord } from "@stim-cli/core/state";
@@ -1,7 +1,7 @@
1
1
  import { D as ownership_claim_exports, T as process_identity_exports, f as WorkspaceProcessCleanupError, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { E as workspaceDir, d as writeWorkspaceState, k as workspaceLogsDir$1, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey } from "./workspace-state-BdZ-QgmB.mjs";
2
+ import { E as workspaceDir, d as writeWorkspaceState, k as workspaceLogsDir$1, o as updateWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey } from "./workspace-state-BhwAJBgA.mjs";
3
3
  import { t as runOperationFile } from "./operation-exec-DKlBcKAL.mjs";
4
- import { c as pidExists } from "./metro-B5PVz0Wv.mjs";
4
+ import { c as pidExists } from "./metro-DM3yJL1M.mjs";
5
5
  import { readFileSync, readlinkSync, rmSync } from "node:fs";
6
6
  import { hostname } from "node:os";
7
7
  import { join } from "node:path";
@@ -1,7 +1,7 @@
1
- import { o as formatLongDuration } from "./command-output-DjExb_tZ.mjs";
2
- import { rt as formatBytes } from "./config-BW0fAtoK.mjs";
3
- import { i as findProjectRoot$1 } from "./project-DU3jjnBE.mjs";
4
- import { i as getSwiftpmCacheUsage, n as swiftpmCacheLines, r as getAgentDeviceUsage, t as agentDeviceLines } from "./agent-device-usage-output-BVdgKbfz.mjs";
1
+ import { o as formatLongDuration } from "./command-output-T3cDctRE.mjs";
2
+ import { it as formatBytes } from "./config-BA3TgoIP.mjs";
3
+ import { i as findProjectRoot$1 } from "./project-Clk1JAWL.mjs";
4
+ import { i as getSwiftpmCacheUsage, n as swiftpmCacheLines, r as getAgentDeviceUsage, t as agentDeviceLines } from "./agent-device-usage-output-pbhaW7_k.mjs";
5
5
  import { t as readProjectStats } from "./stats-report-BVRCqwWA.mjs";
6
6
  import { archivedUsage, readArchives } from "@stim-cli/core/state";
7
7
  import chalk from "chalk";
@@ -1,29 +1,28 @@
1
1
  import { T as process_identity_exports, t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { O as workspaceLogErrorIndex, k as workspaceLogsDir$1, r as readWorkspaceState$1 } from "./workspace-state-BdZ-QgmB.mjs";
3
- import { a as formatElapsed, i as formatDuration, r as clockTime, u as plural } from "./command-output-DjExb_tZ.mjs";
4
- import { at as isOnMountedVolume, ct as volumeRootFor, d as getConfigDir, dt as deviceSlotKey, ht as projectDeviceSlots, it as isAbsentPath, ot as listMountedVolumes, p as getPlatformDeviceLimits, pt as parseDeviceSlotKey, rt as formatBytes, u as getConcurrencyLimits, v as loadConfig$1 } from "./config-BW0fAtoK.mjs";
2
+ import { O as workspaceLogErrorIndex, k as workspaceLogsDir$1, r as readWorkspaceState$1 } from "./workspace-state-BhwAJBgA.mjs";
3
+ import { a as formatElapsed, i as formatDuration, r as clockTime, u as plural } from "./command-output-T3cDctRE.mjs";
4
+ import { at as isAbsentPath, d as getConfigDir, ft as deviceSlotKey, gt as projectDeviceSlots, it as formatBytes, lt as volumeRootFor, mt as parseDeviceSlotKey, ot as isOnMountedVolume, p as getPlatformDeviceLimits, st as listMountedVolumes, u as getConcurrencyLimits, v as loadConfig$1 } from "./config-BA3TgoIP.mjs";
5
5
  import { s as gitAsync } from "./operation-exec-DKlBcKAL.mjs";
6
- import { Bt as repoRoot, Ct as gitCommonDirOnDisk, Ot as linkedWorktreesOnDisk, Q as resolveSettings, lt as workspaceHiddenSetting, xt as gitCommonDir } from "./settings-B5IBDfTx.mjs";
7
- import { I as readWorkspaceLaunches, M as readMetroTunnel, P as readRemoteSession, S as readAppJson, a as findServerWorkspace, l as projectShortcut, u as detectPlatforms, v as detectIsExpo, y as detectTutorial } from "./project-DU3jjnBE.mjs";
8
- import { H as ownedAvdDeviceProfile, K as ownedAvdSerialResolver, N as listAdbDevices, P as listAdbDevicesAsync, bt as parkedMaxSetting, mt as POOL_SETTING_REMEDY, xt as readParked } from "./android-Iq0M2t2d.mjs";
9
- import { c as pidExists, d as resolveProjectMetro, h as isMetroRunning, i as listeningPids, l as processCwd, o as listeningPidsByPort, u as processCwds } from "./metro-B5PVz0Wv.mjs";
6
+ import { Bt as repoRoot, Ct as gitCommonDirOnDisk, Ot as linkedWorktreesOnDisk, Q as resolveSettings, lt as workspaceHiddenSetting, xt as gitCommonDir } from "./settings-Bap-qjnp.mjs";
7
+ import { I as readWorkspaceLaunches, M as readMetroTunnel, P as readRemoteSession, S as readAppJson, a as findServerWorkspace, l as projectShortcut, u as detectPlatforms, v as detectIsExpo, y as detectTutorial } from "./project-Clk1JAWL.mjs";
8
+ import { H as ownedAvdDeviceProfile, K as ownedAvdSerialResolver, N as listAdbDevices, P as listAdbDevicesAsync, bt as parkedMaxSetting, mt as POOL_SETTING_REMEDY, xt as readParked } from "./android-SJx1V3R3.mjs";
9
+ import { c as pidExists, d as resolveProjectMetro, h as isMetroRunning, i as listeningPids, l as processCwd, o as listeningPidsByPort, u as processCwds } from "./metro-DM3yJL1M.mjs";
10
10
  import { o as parseNdjsonLine } from "./ndjson-CrjIsGzw.mjs";
11
- import { E as metroLastStop, S as describeMetroLastStop, ar as attributeMachineUsage, cn as hasMetroReverse, or as readFootprints, p as machineNumber } from "./ccache-ChBMXlBq.mjs";
12
- import { a as readWebPage, o as readWebRecord, u as webFacts } from "./state-CtmYTRWm.mjs";
13
- import { A as poolLine, C as diskLine, D as loadLine, E as gitSummaryText, F as tightVolumes, I as unprovisionedWorktrees, L as withWebFacts, M as remoteDeviceState, N as slotUsageLines, O as metroReverseTargets, P as statusActivity, S as deviceLeaseStates, _ as addReverseMissingIssue, b as capacityLoad, g as activityLabel, j as remoteDeviceLine, k as parseDfFree, r as readEasSessionLedger$1, v as applyMachineMemory, w as environmentState, x as deviceLeaseLines, y as capacity } from "./eas-session-ledger-CXwagcQ7.mjs";
14
- import { Ct as buildSlotUsage, G as buildStatusLine, J as parseActiveBuild, K as bundlingActivity, U as activeBuildState, V as ACTIVE_BUILD_KEY, W as buildReport, at as readStats$1, lt as statsProjectKey$1, x as resolveSupervisorTarget } from "./workspaces-B9v5V7Es.mjs";
15
- import { a as createDeviceProcessTables, b as leaseIsExpired, h as tailLines, m as readWebActivity, r as createActivityReader, w as parseWorkspaceLeases, x as listLeaseFiles } from "./activity-DkS-Ir6V.mjs";
16
- import { b as parseSimctlList, f as listAllIosSimsAsync } from "./ios-BdZdNsAj.mjs";
17
- import { m as probeHostedSession } from "./hosted-client-CQuzZwAu.mjs";
18
- import "./hosted-macos-JKefapEm.mjs";
19
- import { i as readSupervisorState } from "./stop-vX4w3_8V.mjs";
20
- import { l as applyStatusMeasures, n as workspacePhase, s as mergeState, u as createStatusMeasurer } from "./warm-progress-q11Vdvhh.mjs";
21
- import { r as workspaceRecordingEnabled } from "./recordings-AKZfsW2W.mjs";
22
- import { n as maintenanceLines, r as maintenanceStatus } from "./status-DTFhDnd1.mjs";
23
- import { c as deviceSlotUsages } from "./device-capacity-CHC3dKWg.mjs";
24
- import { d as readIosDevices, s as isReachable } from "./ios-device-Drplrgzo.mjs";
11
+ import { Dr as readFootprints, Er as attributeMachineUsage, P as machineNumber, U as describeMetroLastStop, c as deviceSlotUsages, kn as hasMetroReverse, q as metroLastStop } from "./device-capacity-CpAVcKgq.mjs";
12
+ import { a as readWebPage, o as readWebRecord, u as webFacts } from "./state-B9VFI6r0.mjs";
13
+ import { A as poolLine, C as diskLine, D as loadLine, E as gitSummaryText, F as tightVolumes, I as unprovisionedWorktrees, L as withWebFacts, M as remoteDeviceState, N as slotUsageLines, O as metroReverseTargets, P as statusActivity, S as deviceLeaseStates, _ as addReverseMissingIssue, b as capacityLoad, g as activityLabel, j as remoteDeviceLine, k as parseDfFree, r as readEasSessionLedger$1, v as applyMachineMemory, w as environmentState, x as deviceLeaseLines, y as capacity } from "./eas-session-ledger-CXZ4aix0.mjs";
14
+ import { Ct as buildSlotUsage, G as buildStatusLine, J as parseActiveBuild, K as bundlingActivity, U as activeBuildState, V as ACTIVE_BUILD_KEY, W as buildReport, at as readStats$1, lt as statsProjectKey$1, x as resolveSupervisorTarget } from "./workspaces-Dh5N70qW.mjs";
15
+ import { a as createDeviceProcessTables, b as leaseIsExpired, h as tailLines, m as readWebActivity, r as createActivityReader, w as parseWorkspaceLeases, x as listLeaseFiles } from "./activity-BpdDvA8Q.mjs";
16
+ import { b as parseSimctlList, f as listAllIosSimsAsync } from "./ios-BhfpRfNf.mjs";
17
+ import { m as probeHostedSession } from "./hosted-client-DMOOu8vD.mjs";
18
+ import "./hosted-macos-D4sDJIbB.mjs";
19
+ import { i as readSupervisorState } from "./stop-C3d5qG7C.mjs";
20
+ import { l as applyStatusMeasures, n as workspacePhase, s as mergeState, u as createStatusMeasurer } from "./warm-progress-DwsGBpph.mjs";
21
+ import { r as workspaceRecordingEnabled } from "./recordings-6i2-x8LU.mjs";
22
+ import { n as maintenanceLines, r as maintenanceStatus } from "./status-CQWmNl1f.mjs";
23
+ import { d as readIosDevices, s as isReachable } from "./ios-device-vhYL1N--.mjs";
25
24
  import { t as triggerMaintenance } from "./trigger-BtB4kbe0.mjs";
26
- import { a as createRefreshScheduler, c as watchStatusSources, n as WATCH_LIGHT_INTERVAL_MS, o as watchChangeKey, r as WATCH_MACHINE_INTERVAL_MS, s as watchPayload, t as WATCH_FALLBACK_MS } from "./status-watch-D63R5nSI.mjs";
25
+ import { a as createRefreshScheduler, c as watchStatusSources, n as WATCH_LIGHT_INTERVAL_MS, o as watchChangeKey, r as WATCH_MACHINE_INTERVAL_MS, s as watchPayload, t as WATCH_FALLBACK_MS } from "./status-watch--rfZynD_.mjs";
27
26
  import { t as watchStdoutReader } from "./stdout-reader-C8yjre1x.mjs";
28
27
  import { createHash, randomUUID } from "node:crypto";
29
28
  import { mkdirSync, readFileSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
@@ -1,2 +1,2 @@
1
- import { n as runStatusWatch, r as statusCommand, t as readVolumes } from "./status-CEwxo-PS.mjs";
1
+ import { n as runStatusWatch, r as statusCommand, t as readVolumes } from "./status-CIg0k7Qb.mjs";
2
2
  export { statusCommand as default, readVolumes, runStatusWatch };
@@ -1,4 +1,4 @@
1
- import { rt as formatBytes } from "./config-BW0fAtoK.mjs";
1
+ import { it as formatBytes } from "./config-BA3TgoIP.mjs";
2
2
  import { t as resolveMaintenanceSettings } from "./settings-D9LtQaUw.mjs";
3
3
  import { claimRemoveCommand, readClaimSet } from "@stim-cli/core/ownership-claim";
4
4
  import { maintenanceRunClaims, readMaintenanceState } from "@stim-cli/core/state";
@@ -1,8 +1,8 @@
1
1
  import { t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { d as androidToolPath } from "./android-Iq0M2t2d.mjs";
3
- import { c as pidExists } from "./metro-B5PVz0Wv.mjs";
4
- import { n as easMachineStateRoot } from "./eas-session-ledger-CXwagcQ7.mjs";
5
- import { b as parseSimctlList } from "./ios-BdZdNsAj.mjs";
2
+ import { d as androidToolPath } from "./android-SJx1V3R3.mjs";
3
+ import { c as pidExists } from "./metro-DM3yJL1M.mjs";
4
+ import { n as easMachineStateRoot } from "./eas-session-ledger-CXZ4aix0.mjs";
5
+ import { b as parseSimctlList } from "./ios-BhfpRfNf.mjs";
6
6
  import { existsSync, readdirSync, statSync, watch } from "node:fs";
7
7
  import { basename, dirname, join } from "node:path";
8
8
  //#region src/status-watch.ts
@@ -1,4 +1,4 @@
1
- import { n as runStatusWatch } from "./status-CEwxo-PS.mjs";
1
+ import { n as runStatusWatch } from "./status-CIg0k7Qb.mjs";
2
2
  import { parentPort, workerData } from "node:worker_threads";
3
3
  //#region src/status-worker.ts
4
4
  const STOP_EXIT_MS = 500;
@@ -1,5 +1,5 @@
1
1
  import { t as getExecutor } from "./exec-CGuDzt40.mjs";
2
- import { c as ensureConfig, w as saveConfig } from "./config-BW0fAtoK.mjs";
2
+ import { c as ensureConfig, w as saveConfig } from "./config-BA3TgoIP.mjs";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { workspaceId } from "@stim-cli/core";
5
5
  import { readHomeIdentity, withConfigLockAsync } from "@stim-cli/core/state";
@@ -1,8 +1,8 @@
1
1
  import { D as ownership_claim_exports, T as process_identity_exports, p as withWorkspaceProcessLock } from "./exec-CGuDzt40.mjs";
2
- import { E as workspaceDir, d as writeWorkspaceState, l as withWorkspaceStateLockAsync } from "./workspace-state-BdZ-QgmB.mjs";
3
- import { a as macosRuntimeClaim, o as requiredMacosRecord } from "./state-DSOUqO-o.mjs";
4
- import { A as runningBundleInstancesAsync, j as runningInstancesInAsync, k as hostedBundleDirs } from "./workspaces-B9v5V7Es.mjs";
5
- import { n as stopHostedMacos } from "./hosted-macos-JKefapEm.mjs";
2
+ import { E as workspaceDir, d as writeWorkspaceState, l as withWorkspaceStateLockAsync } from "./workspace-state-BhwAJBgA.mjs";
3
+ import { a as macosRuntimeClaim, o as requiredMacosRecord } from "./state-B4B5P4LU.mjs";
4
+ import { A as runningBundleInstancesAsync, j as runningInstancesInAsync, k as hostedBundleDirs } from "./workspaces-Dh5N70qW.mjs";
5
+ import { n as stopHostedMacos } from "./hosted-macos-D4sDJIbB.mjs";
6
6
  import { readMacosRecord } from "@stim-cli/core/state";
7
7
  //#region src/macos/stop.ts
8
8
  const APP_EXIT_MS = 5e3;
@@ -1,3 +1,3 @@
1
- import { x as resolveSupervisorTarget } from "./workspaces-B9v5V7Es.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-vX4w3_8V.mjs";
1
+ import { x as resolveSupervisorTarget } from "./workspaces-Dh5N70qW.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-C3d5qG7C.mjs";
3
3
  export { clearCollectorState, clearSupervisorState, stopCommand as default, readCollectorState, readSupervisorState, resolveCollectorTargets, resolveSupervisorTarget, runStop, stopWorkspaceNow };