stim 1.20.0 → 1.20.1

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 (126) hide show
  1. package/dist/{activity-BrGh9EAI.mjs → activity-BaMpUQ4-.mjs} +2 -2
  2. package/dist/{agent-device-usage-output-DVyv_hWj.mjs → agent-device-usage-output-VPaOgGaF.mjs} +3 -3
  3. package/dist/{android-Brx6EKvJ.mjs → android-CLbBJ2ve.mjs} +34 -34
  4. package/dist/{android-CK3fpEyZ.mjs → android-CZh6ElG5.mjs} +1 -1
  5. package/dist/{android-BsYNR81W.mjs → android-DE8-JfGW.mjs} +4 -4
  6. package/dist/{android-cas-DCAuXryb.mjs → android-cas-BFpS84v2.mjs} +1 -1
  7. package/dist/{android-0vv-OruW.mjs → android-eXfIjKJr.mjs} +5 -5
  8. package/dist/api-run.mjs +13 -13
  9. package/dist/{app-install-0LgaQRT7.mjs → app-install-Cg9YJy3x.mjs} +1 -1
  10. package/dist/{artifact-CnC0mfov.mjs → artifact-Ctb2jpw6.mjs} +11 -11
  11. package/dist/{artifact-DClXJNWx.mjs → artifact-DXk_Fle_.mjs} +12 -12
  12. package/dist/{browser-web-CzBmhmgs.mjs → browser-web-xQWC2RWl.mjs} +10 -10
  13. package/dist/{budget-BONq9vXY.mjs → budget-RFbwFpG5.mjs} +11 -11
  14. package/dist/{build-BixRI6sB.mjs → build-COBA1tBc.mjs} +19 -19
  15. package/dist/{build-plan-CP0tckNU.mjs → build-plan-CRjAA6Qi.mjs} +14 -14
  16. package/dist/{ccache-CjHQ5F8g.mjs → ccache-CtbqWxIC.mjs} +3 -3
  17. package/dist/{cli-B2R8wH1F.mjs → cli-sGqlPu1n.mjs} +17 -17
  18. package/dist/cli.mjs +1 -1
  19. package/dist/{client-BLy1Pw2V.mjs → client-zqjFd79D.mjs} +4 -4
  20. package/dist/collector-run.mjs +3 -3
  21. package/dist/{command-output-BjPN99ZB.mjs → command-output-CPDq_90S.mjs} +1 -1
  22. package/dist/{created-devices-HU_DAb_Q.mjs → created-devices-CXBMtoj5.mjs} +1 -1
  23. package/dist/{dev-client-ClATaJoH.mjs → dev-client-BqYjMIaC.mjs} +2 -2
  24. package/dist/{device-B7lsC0K1.mjs → device-BgNj-qVj.mjs} +7 -7
  25. package/dist/{device-DVCwAFlX.mjs → device-D4DqjSZZ.mjs} +9 -9
  26. package/dist/{device-capacity-Ca_ke1LE.mjs → device-capacity-DrwHwR97.mjs} +8 -8
  27. package/dist/device-host-worker.mjs +11 -11
  28. package/dist/{device-ios-CRUqPxKw.mjs → device-ios-DE8KJd3b.mjs} +7 -7
  29. package/dist/{device-lease-DHOBXGgS.mjs → device-lease-C309csaB.mjs} +5 -4
  30. package/dist/{device-lease-run-CvDeHTkG.mjs → device-lease-run-Baelt3nc.mjs} +3 -3
  31. package/dist/{device-pool-L2-5GxMy.mjs → device-pool-DtK9S6AD.mjs} +2 -2
  32. package/dist/{device-remote-Bmg42063.mjs → device-remote-DjsNw8DD.mjs} +11 -11
  33. package/dist/{doctor-C2MSuMMg.mjs → doctor-DiP9HsIP.mjs} +10 -10
  34. package/dist/{doctor-DPAqhVCK.mjs → doctor-Dunu3Nv1.mjs} +17 -17
  35. package/dist/{doctor-watchman-CB4NnVZm.mjs → doctor-watchman-XJzT8tK-.mjs} +5 -4
  36. package/dist/{eas-build-Dw_ec2Km.mjs → eas-build-0gadvrca.mjs} +3 -3
  37. package/dist/{eas-session-ledger-DZlC-Fq3.mjs → eas-session-ledger-DJDeL4Uq.mjs} +1 -1
  38. package/dist/{error-diagnostics-Du7I_GuY.mjs → error-diagnostics-BhQtoLrZ.mjs} +7 -7
  39. package/dist/{gc-PWp34zGb.mjs → gc-D5cz5G0k.mjs} +17 -17
  40. package/dist/{gradle-C2OEKCCI.mjs → gradle-CZZo1TSA.mjs} +4 -4
  41. package/dist/{guide-Dai9lphv.mjs → guide-DakjcoUt.mjs} +31 -166
  42. package/dist/{hosted-android-DQ-Agsd8.mjs → hosted-android-C-D8Dj0_.mjs} +3 -3
  43. package/dist/{hosted-client-Io01s5By.mjs → hosted-client--hNFgixu.mjs} +2 -2
  44. package/dist/{hosted-ios-DIxFnYp-.mjs → hosted-ios-Chx9XQyI.mjs} +1 -1
  45. package/dist/{hosted-logs-DP-ABU_M.mjs → hosted-logs-Bkz0Hxzh.mjs} +5 -5
  46. package/dist/{hosted-macos-Aziw9T_9.mjs → hosted-macos-ckTjN-0V.mjs} +4 -4
  47. package/dist/{hosted-native-BdAQi21M.mjs → hosted-native-3KXZ5-qn.mjs} +5 -5
  48. package/dist/{idle-shutdown-DdMqoSUB.mjs → idle-shutdown-DhAUyf5s.mjs} +6 -6
  49. package/dist/{ios-BZ9dg2Fr.mjs → ios-BDBN-xpf.mjs} +8 -8
  50. package/dist/{ios-CZuv6gRv.mjs → ios-CQ8bHQXB.mjs} +27 -27
  51. package/dist/{ios-device-BreZOpM0.mjs → ios-device-BWHKGaJq.mjs} +1 -1
  52. package/dist/{ios-CXLIUxXJ.mjs → ios-o896T9PE.mjs} +17 -13
  53. package/dist/{ios-project-B9drt_aY.mjs → ios-project-BeOXKPt2.mjs} +7 -7
  54. package/dist/{ios-state-CjrL2qv-.mjs → ios-state-BsXMwo5y.mjs} +1 -1
  55. package/dist/{js-swap-C8icNYIY.mjs → js-swap-Z_mSuRrx.mjs} +2 -2
  56. package/dist/{launch-YrbqaIFj.mjs → launch-BootbMk4.mjs} +34 -34
  57. package/dist/{launch-DxH0THLP.mjs → launch-V1zqiOYn.mjs} +17 -17
  58. package/dist/{launch-verify-BzRdbuO1.mjs → launch-verify-Dl78EVgR.mjs} +2 -2
  59. package/dist/{logs-DHaRNfg7.mjs → logs-Bh4eqCCc.mjs} +9 -9
  60. package/dist/{macos-V_3Ui7g4.mjs → macos-D7irBW3A.mjs} +14 -14
  61. package/dist/macos-kivF8qKz.mjs +2 -0
  62. package/dist/macos-run.mjs +1 -1
  63. package/dist/maintenance-run.mjs +4 -4
  64. package/dist/{metro-D_j9sN-B.mjs → metro-_ZIE3Axg.mjs} +1 -1
  65. package/dist/{metro-gateway-BBJldOdi.mjs → metro-gateway-BzlQZQmU.mjs} +2 -2
  66. package/dist/{miss-reason-BPAzZS0r.mjs → miss-reason-SuTptY-I.mjs} +2 -2
  67. package/dist/{named-ports-C2lvoPsb.mjs → named-ports-O1TIl7tx.mjs} +1 -1
  68. package/dist/{native-android-lHzaew7r.mjs → native-android-D94RlJ-X.mjs} +7 -7
  69. package/dist/{native-runtime-BRmWL7ru.mjs → native-runtime-D024BAvm.mjs} +5 -5
  70. package/dist/{native-xcode-inputs-eutS19jU.mjs → native-xcode-inputs-UElfGs59.mjs} +2 -3
  71. package/dist/{native-xcode-ios-DP3cHLwu.mjs → native-xcode-ios-CjS-nDVY.mjs} +12 -12
  72. package/dist/offload-worker.mjs +12 -12
  73. package/dist/{ownership-DXzMMSx6.mjs → ownership-BrjepDiv.mjs} +2 -2
  74. package/dist/{placement-log-reFbjqEr.mjs → placement-log-BItXET1x.mjs} +1 -1
  75. package/dist/{plan-BDk2AeY_.mjs → plan-Jwu_vr-F.mjs} +8 -8
  76. package/dist/{plan-placement-D_YYlE6N.mjs → plan-placement-B466UYMU.mjs} +3 -3
  77. package/dist/{ports-jzvAJXXL.mjs → ports-BFRL6JTj.mjs} +2 -2
  78. package/dist/{prebuild-Bw44QxVh.mjs → prebuild-DB_zLOLc.mjs} +3 -3
  79. package/dist/{preview-BaBJ72Al.mjs → preview-BRLFRhTz.mjs} +10 -10
  80. package/dist/{project-B8_duAzW.mjs → project-DX8fXyw_.mjs} +107 -43
  81. package/dist/{react-native-android-chm1DMlA.mjs → react-native-android-CuXM3QS8.mjs} +21 -21
  82. package/dist/{react-native-build-oAw6gQeW.mjs → react-native-build-JUF31S8U.mjs} +5 -5
  83. package/dist/{react-native-doctor-DYXoh-6I.mjs → react-native-doctor-BQHqiXaQ.mjs} +4 -4
  84. package/dist/{react-native-ios-SCTK_CT5.mjs → react-native-ios-DtVO4qf2.mjs} +13 -13
  85. package/dist/{reload-D34GkY78.mjs → reload-D9V7D8gP.mjs} +12 -12
  86. package/dist/{remote-BU9UyhCJ.mjs → remote-CZiTijxG.mjs} +5 -5
  87. package/dist/{remote-cache-Bsts6f6Y.mjs → remote-cache-fxcl5C-L.mjs} +3 -3
  88. package/dist/{result-BDoRk1k3.mjs → result-BrfgXtdO.mjs} +7 -7
  89. package/dist/{run-qvff78hv.mjs → run-ClC8UVB5.mjs} +1 -1
  90. package/dist/{server-command-7XIKlWtO.mjs → server-command-DnJYLnr4.mjs} +3 -3
  91. package/dist/{server-expo-CsYu2aKL.mjs → server-expo-CUuzP9Mp.mjs} +1 -1
  92. package/dist/server-expo-Dvkd7JcF.mjs +2 -0
  93. package/dist/{settings-CT3E71-i.mjs → settings-BuKMOANA.mjs} +1 -1
  94. package/dist/settings.schema.json +1 -1
  95. package/dist/{slot-launch-B9hn96wd.mjs → slot-launch-CeCRr6MK.mjs} +5 -5
  96. package/dist/{start-CdvcTaXr.mjs → start-CRkG-mZ7.mjs} +8 -8
  97. package/dist/{start-CbQCSnXQ.mjs → start-mh6bS27z.mjs} +1 -1
  98. package/dist/{state-Boo0IMJq.mjs → state-BUpAmt2r.mjs} +1 -1
  99. package/dist/{state-DI84A-uu.mjs → state-lqxdOH_g.mjs} +5 -4
  100. package/dist/{stats-BIIDrjA8.mjs → stats-CaB1MxMi.mjs} +3 -3
  101. package/dist/{status-DARMkc9q.mjs → status-C7vzkInu.mjs} +20 -20
  102. package/dist/{status-watch-DvmI3SmN.mjs → status-watch-ZaVqRdtW.mjs} +3 -3
  103. package/dist/{stop-iNemHsJC.mjs → stop-BO80KJoT.mjs} +16 -16
  104. package/dist/{stop-CCZS-C9m.mjs → stop-BU7JaFCg.mjs} +2 -2
  105. package/dist/{stop-WQPQHLuy.mjs → stop-Cftw_sXJ.mjs} +5 -5
  106. package/dist/supervisor-run.mjs +13 -13
  107. package/dist/{support-CnE_SIjt.mjs → support-Ca6PZbpr.mjs} +4 -4
  108. package/dist/{support-DCco5fut.mjs → support-Co0wk8Cv.mjs} +8 -8
  109. package/dist/{swiftpm-macos-afeNUExW.mjs → swiftpm-macos-siFSkmCO.mjs} +2 -2
  110. package/dist/{tailnet-CoJUb2tB.mjs → tailnet-D7-tE_ug.mjs} +3 -3
  111. package/dist/toolchain-B12psPA2.mjs +2 -0
  112. package/dist/{toolchain-DqyDXs30.mjs → toolchain-SqehyPLw.mjs} +4 -4
  113. package/dist/{warm-progress-C3ASD6z5.mjs → warm-progress-5FAXkXIg.mjs} +2 -2
  114. package/dist/{watchman-CQl51YZu.mjs → watchman-CqmaGcIb.mjs} +4 -4
  115. package/dist/{web-B3eldHFH.mjs → web-BTjzE8mc.mjs} +5 -5
  116. package/dist/web-CHN5gh34.mjs +2 -0
  117. package/dist/web-run.mjs +4 -4
  118. package/dist/{workspace-state-CSIFuuDa.mjs → workspace-state-CvgTFe-h.mjs} +3 -3
  119. package/dist/{workspaces-D2xSHBDY.mjs → workspaces-C4kqIOlx.mjs} +11 -11
  120. package/dist/{worktree-q7_OZNY0.mjs → worktree-Cgnm6vZt.mjs} +1 -1
  121. package/dist/{worktree-BxDqaTev.mjs → worktree-DtRsh6go.mjs} +23 -23
  122. package/package.json +6 -7
  123. package/dist/macos-C0iljhsN.mjs +0 -2
  124. package/dist/server-expo-DV43vep4.mjs +0 -2
  125. package/dist/toolchain-BIupIro1.mjs +0 -2
  126. package/dist/web-BLXpOe6b.mjs +0 -2
@@ -1,14 +1,13 @@
1
1
  import { t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
2
2
  import { B as parseDeviceSlotKey, R as deviceSlotKey, _ as loadConfig$1, g as isPathPrefix, l as findEnclosingWorktreeRoot, p as getProject } from "./config-D0LhTY3S.mjs";
3
3
  import { $ as settingValueAt, Et as repoRoot, G as resolveIosProjectDir, U as resolveAndroidLayout, rt as webSettings } from "./settings-Bbztm4oV.mjs";
4
- import { E as workspaceStateFile, a as updateWorkspaceState, o as withWorkspaceStateLock, r as readWorkspaceState$1, t as clearWorkspaceStateKey, v as supervisorPidFile } from "./workspace-state-CSIFuuDa.mjs";
4
+ import { E as workspaceStateFile, a as updateWorkspaceState, o as withWorkspaceStateLock, r as readWorkspaceState$1, t as clearWorkspaceStateKey, v as supervisorPidFile } from "./workspace-state-CvgTFe-h.mjs";
5
5
  import { existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, rmSync, statSync, writeFileSync } from "node:fs";
6
6
  import { basename, dirname, isAbsolute, join, relative, resolve } from "node:path";
7
7
  import { basename as basename$1, dirname as dirname$1, join as join$1, resolve as resolve$1 } from "path";
8
8
  import { projectRootDirectories } from "@stim-cli/core/state";
9
9
  import { existsSync as existsSync$1, readFileSync as readFileSync$1, realpathSync as realpathSync$1 } from "fs";
10
10
  import { DOMParser } from "@xmldom/xmldom";
11
- import pbxParser from "xcode/lib/parser/pbxproj.js";
12
11
  //#region src/supervisor/state.ts
13
12
  const MODE_BARE = "bare-inproc";
14
13
  const MODE_EXPO = "expo-child";
@@ -308,42 +307,108 @@ const nativeAndroidIntegration = {
308
307
  application: true,
309
308
  platforms: () => ["android"],
310
309
  validate: (operation) => operation === "android" ? null : void 0,
311
- android: async () => (await import("./native-android-lHzaew7r.mjs")).nativeAndroidProject(root),
312
- doctor: async () => (await import("./native-android-lHzaew7r.mjs")).nativeAndroidDoctor(root)
310
+ android: async () => (await import("./native-android-D94RlJ-X.mjs")).nativeAndroidProject(root),
311
+ doctor: async () => (await import("./native-android-D94RlJ-X.mjs")).nativeAndroidDoctor(root)
313
312
  };
314
313
  }
315
314
  };
316
315
  //#endregion
317
316
  //#region src/integrations/native-xcode-syntax.ts
318
- function parseNativeXcodeSyntax(source) {
319
- let normalized = "";
320
- for (let at = 0; at < source.length;) {
321
- const start = at;
322
- if (source[at] === "\"") {
323
- at++;
324
- while (at < source.length) if (source[at] === "\\") at += 2;
325
- else if (source[at++] === "\"") break;
326
- } else if (source.startsWith("/*", at)) {
327
- const end = source.indexOf("*/", at + 2);
328
- at = end < 0 ? source.length : end + 2;
329
- } else if (source.startsWith("//", at)) {
330
- const end = source.indexOf("\n", at + 2);
331
- at = end < 0 ? source.length : end + 1;
332
- } else if (source.startsWith("$(", at)) {
333
- at += 2;
334
- let depth = 1;
335
- while (at < source.length && depth > 0) {
336
- if (source[at] === "(") depth++;
337
- else if (source[at] === ")") depth--;
338
- at++;
339
- }
340
- } else {
341
- if (source[at] === ")") normalized += "\n";
342
- at++;
317
+ const SPACE = /\s/;
318
+ const LITERAL_END = /[\s,;(){}=]/;
319
+ var NativeXcodeSyntaxError = class extends Error {};
320
+ var Reader = class {
321
+ at = 0;
322
+ source;
323
+ constructor(source) {
324
+ this.source = source;
325
+ }
326
+ parseDocument() {
327
+ const value = this.value();
328
+ this.skip();
329
+ if (this.at < this.source.length) this.fail("unexpected text after the project");
330
+ return value;
331
+ }
332
+ fail(reason) {
333
+ throw new NativeXcodeSyntaxError(`Cannot parse project.pbxproj: ${reason} at offset ${this.at}.`);
334
+ }
335
+ skip() {
336
+ const { source } = this;
337
+ while (this.at < source.length) if (SPACE.test(source[this.at])) this.at++;
338
+ else if (source.startsWith("/*", this.at)) {
339
+ const end = source.indexOf("*/", this.at + 2);
340
+ if (end < 0) this.fail("unterminated comment");
341
+ this.at = end + 2;
342
+ } else if (source.startsWith("//", this.at)) {
343
+ const end = source.indexOf("\n", this.at);
344
+ this.at = end < 0 ? source.length : end + 1;
345
+ } else break;
346
+ }
347
+ expect(char) {
348
+ this.skip();
349
+ if (this.source[this.at] !== char) this.fail(`expected "${char}"`);
350
+ this.at++;
351
+ }
352
+ value() {
353
+ this.skip();
354
+ const char = this.source[this.at];
355
+ if (char === "{") return this.dictionary();
356
+ if (char === "(") return this.list();
357
+ return this.string();
358
+ }
359
+ dictionary() {
360
+ this.at++;
361
+ const result = Object.create(null);
362
+ for (;;) {
363
+ this.skip();
364
+ if (this.source[this.at] === "}") break;
365
+ const key = this.string();
366
+ this.expect("=");
367
+ result[key] = this.value();
368
+ this.expect(";");
369
+ }
370
+ this.at++;
371
+ return result;
372
+ }
373
+ list() {
374
+ this.at++;
375
+ const result = [];
376
+ for (;;) {
377
+ this.skip();
378
+ if (this.source[this.at] === ")") break;
379
+ result.push(this.value());
380
+ this.skip();
381
+ if (this.source[this.at] === ",") this.at++;
382
+ else if (this.source[this.at] !== ")") this.fail("expected \",\" or \")\"");
343
383
  }
344
- normalized += source.slice(start, at);
384
+ this.at++;
385
+ return result;
345
386
  }
346
- return pbxParser.parse(normalized);
387
+ string() {
388
+ const { source } = this;
389
+ const start = this.at;
390
+ if (source[start] === "\"") {
391
+ this.at++;
392
+ while (this.at < source.length && source[this.at] !== "\"") this.at += source[this.at] === "\\" ? 2 : 1;
393
+ if (this.at >= source.length) this.fail("unterminated string");
394
+ this.at++;
395
+ return source.slice(start, this.at);
396
+ }
397
+ while (this.at < source.length && !LITERAL_END.test(source[this.at])) if (source.startsWith("$(", this.at)) {
398
+ let depth = 0;
399
+ this.at++;
400
+ do {
401
+ if (source[this.at] === "(") depth++;
402
+ else if (source[this.at] === ")") depth--;
403
+ this.at++;
404
+ } while (this.at < source.length && depth > 0);
405
+ } else this.at++;
406
+ if (this.at === start) this.fail("expected a value");
407
+ return source.slice(start, this.at);
408
+ }
409
+ };
410
+ function parseNativeXcodeSyntax(source) {
411
+ return new Reader(source).parseDocument();
347
412
  }
348
413
  //#endregion
349
414
  //#region src/integrations/native-xcode-project.ts
@@ -370,12 +435,12 @@ function object(value) {
370
435
  }
371
436
  function pbxReferences(value) {
372
437
  return Array.isArray(value) ? value.flatMap((entry) => {
373
- const name = pbxString(object(entry)?.value ?? entry);
438
+ const name = pbxString(entry);
374
439
  return name === null ? [] : [name];
375
440
  }) : [];
376
441
  }
377
442
  function readNativeXcodeModel(path) {
378
- const project = object(object(parseNativeXcodeSyntax(readFileSync(join(path, "project.pbxproj"), "utf8")))?.project);
443
+ const project = object(parseNativeXcodeSyntax(readFileSync(join(path, "project.pbxproj"), "utf8")));
379
444
  const objects = /* @__PURE__ */ new Map();
380
445
  const collect = (value) => {
381
446
  for (const [id, entry] of Object.entries(object(value) ?? {})) {
@@ -515,7 +580,6 @@ function applicationPlatform(project, target, configuration) {
515
580
  Object.assign(settings, path ? configurationPlatforms(path) : UNKNOWN_PLATFORM_SETTINGS);
516
581
  }
517
582
  for (const [rawKey, value] of Object.entries(object(config?.buildSettings) ?? {})) {
518
- if (rawKey.endsWith("_comment")) continue;
519
583
  const key = pbxString(rawKey);
520
584
  const name = PLATFORM_KEYS.find((candidate) => key === candidate || key.startsWith(`${candidate}[`));
521
585
  if (!name) continue;
@@ -672,8 +736,8 @@ const nativeXcodeProjectIntegration = {
672
736
  application: problem === null,
673
737
  platforms: () => problem ? [] : ["ios"],
674
738
  validate: (operation) => operation === "ios" ? problem : void 0,
675
- ios: async () => (await import("./native-xcode-ios-DP3cHLwu.mjs")).nativeXcodeIosProject(root),
676
- doctor: async () => (await import("./native-xcode-ios-DP3cHLwu.mjs")).nativeXcodeDoctor(root)
739
+ ios: async () => (await import("./native-xcode-ios-CjS-nDVY.mjs")).nativeXcodeIosProject(root),
740
+ doctor: async () => (await import("./native-xcode-ios-CjS-nDVY.mjs")).nativeXcodeDoctor(root)
677
741
  };
678
742
  }
679
743
  };
@@ -878,7 +942,7 @@ function createProjectRegistry(integrations) {
878
942
  //#region src/integrations/projects.ts
879
943
  const expo = {
880
944
  mode: MODE_EXPO,
881
- loadDevServer: async () => (await import("./server-expo-DV43vep4.mjs")).startExpoServer,
945
+ loadDevServer: async () => (await import("./server-expo-Dvkd7JcF.mjs")).startExpoServer,
882
946
  platforms(root) {
883
947
  const appJson = readAppJson(root);
884
948
  const config = appJson?.expo ?? appJson;
@@ -928,9 +992,9 @@ const projectRegistry = createProjectRegistry([
928
992
  ownedRoots: problem === null ? [join(root, "ios"), join(root, "android")] : [],
929
993
  platforms: (resolved) => nativeProjectIntegration(root).platforms(root, resolved),
930
994
  validate: (operation) => operation === "ios" || operation === "android" || operation === "dev-server" ? problem : void 0,
931
- ios: async (settings) => (await import("./react-native-ios-SCTK_CT5.mjs")).reactNativeIosProject(root, settings),
932
- android: async (resolved) => (await import("./react-native-android-chm1DMlA.mjs")).reactNativeAndroidProject(root, resolved),
933
- doctor: async () => (await import("./react-native-doctor-DYXoh-6I.mjs")).reactNativeProjectDoctor(root)
995
+ ios: async (settings) => (await import("./react-native-ios-DtVO4qf2.mjs")).reactNativeIosProject(root, settings),
996
+ android: async (resolved) => (await import("./react-native-android-CuXM3QS8.mjs")).reactNativeAndroidProject(root, resolved),
997
+ doctor: async () => (await import("./react-native-doctor-BQHqiXaQ.mjs")).reactNativeProjectDoctor(root)
934
998
  };
935
999
  }
936
1000
  },
@@ -944,9 +1008,9 @@ const projectRegistry = createProjectRegistry([
944
1008
  application: true,
945
1009
  platforms: ({ settings }) => settingValueAt(settings, "macos.product") && settingValueAt(settings, "macos.infoPlist") ? ["macos"] : [],
946
1010
  validate: (operation) => operation === "macos" ? null : void 0,
947
- macos: async () => (await import("./swiftpm-macos-afeNUExW.mjs")).swiftpmMacosProject(root),
1011
+ macos: async () => (await import("./swiftpm-macos-siFSkmCO.mjs")).swiftpmMacosProject(root),
948
1012
  doctor: async () => {
949
- const { macosToolchain } = await import("./toolchain-BIupIro1.mjs");
1013
+ const { macosToolchain } = await import("./toolchain-B12psPA2.mjs");
950
1014
  return {
951
1015
  inspect: () => [],
952
1016
  offloadTargets: ({ options: { host = process.platform, platform } }) => host === "darwin" && platform === void 0 ? async () => [{
@@ -966,7 +1030,7 @@ const projectRegistry = createProjectRegistry([
966
1030
  application: false,
967
1031
  platforms: ({ settings }) => webSettings(settings).url !== null ? ["web"] : [],
968
1032
  validate: (operation) => operation === "web" ? null : void 0,
969
- web: async () => (await import("./browser-web-CzBmhmgs.mjs")).browserWebProject(root)
1033
+ web: async () => (await import("./browser-web-xQWC2RWl.mjs")).browserWebProject(root)
970
1034
  };
971
1035
  }
972
1036
  },
@@ -1,28 +1,28 @@
1
1
  import { t as getExecutor } from "./exec-B81Qodjn.mjs";
2
2
  import { W as validateDeviceSlot, p as getProject, z as deviceSlotPlatforms } from "./config-D0LhTY3S.mjs";
3
3
  import { Ft as removeTemporaryEntry, L as publicUrlSetting, Pt as makeTemporaryDirectory, U as resolveAndroidLayout, V as remoteEasFallbackSetting, Z as settingOriginScope, et as settingsLayers, m as defaultAndroidLayout, tt as tunnelModeSetting, z as realpathInside } from "./settings-Bbztm4oV.mjs";
4
- import { B as captureAssetManifest, D as fingerprintProject, E as fingerprintDiffRecord, F as storedAssetManifest, H as readAssetManifest, L as untrackedMissLine, M as refingerprintAfterMutation, N as resolveBuild, O as inputsChangedDuringBuild, P as storeBuild, R as untrackedNativeFiles, S as configInputsChanged, T as filesystemBuildCapability, V as compareAssetManifests, b as buildCacheKey, x as changedDuringBuildLine, z as assetDiffReason } from "./device-lease-DHOBXGgS.mjs";
5
- import { r as readWorkspaceState } from "./workspace-state-CSIFuuDa.mjs";
4
+ import { B as captureAssetManifest, D as fingerprintProject, E as fingerprintDiffRecord, F as storedAssetManifest, H as readAssetManifest, L as untrackedMissLine, M as refingerprintAfterMutation, N as resolveBuild, O as inputsChangedDuringBuild, P as storeBuild, R as untrackedNativeFiles, S as configInputsChanged, T as filesystemBuildCapability, V as compareAssetManifests, b as buildCacheKey, x as changedDuringBuildLine, z as assetDiffReason } from "./device-lease-C309csaB.mjs";
5
+ import { r as readWorkspaceState } from "./workspace-state-CvgTFe-h.mjs";
6
6
  import { r as waitForChild, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
7
- import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BjPN99ZB.mjs";
8
- import { _ as detectIsExpo } from "./project-B8_duAzW.mjs";
9
- import { A as listAvds, B as ownedAvdSystemImage, D as hostSystemImageArch, I as ownedAvdDirectory, T as findBuildTool, W as pickDefaultSystemImage, j as listInstalledSystemImages, l as androidSystemImageAbi, r as androidBuildToolName } from "./android-BsYNR81W.mjs";
10
- import { It as statsProjectKey } from "./budget-BONq9vXY.mjs";
11
- import { t as cleanLine } from "./server-expo-CsYu2aKL.mjs";
12
- import { c as loadProjectProvider, i as checkEasAuth, p as resolveRemote } from "./remote-cache-Bsts6f6Y.mjs";
13
- import { h as detectAppIds, m as detectAndroidPackage } from "./start-CdvcTaXr.mjs";
14
- import { n as fingerprintErrorMissReason, t as explainBuildMiss } from "./miss-reason-BPAzZS0r.mjs";
15
- import { o as resolveCcache } from "./ccache-CjHQ5F8g.mjs";
16
- import { M as startBuildHeartbeat, P as tailLines, n as androidToolchain, t as androidRequirements, y as HEARTBEAT_INTERVAL_MS } from "./toolchain-DqyDXs30.mjs";
17
- import { a as PLATFORM, c as androidGradleProject, h as displayPath, i as NO_FINGERPRINT, l as androidJobLayout, o as androidBuildOptions, r as NO_DEVICE } from "./support-CnE_SIjt.mjs";
18
- import { i as AndroidRecipeRefusal, r as resolveAndroidRunPlan } from "./plan-BDk2AeY_.mjs";
19
- import { c as readProductFlavors, n as buildAndroid, s as productFlavorRefusal } from "./react-native-build-oAw6gQeW.mjs";
20
- import { n as planFlagRefusal, o as checkEasFallback, r as planPayload, t as planCachedBuild } from "./build-plan-CP0tckNU.mjs";
21
- import { i as planEasDevelopmentBuild } from "./eas-build-Dw_ec2Km.mjs";
22
- import { n as androidProcessRuntime, t as androidMetroRuntime } from "./launch-DxH0THLP.mjs";
23
- import { i as staleNativeDirRefusal, n as recordPrebuild, r as runPrebuild, t as planPrebuild } from "./prebuild-Bw44QxVh.mjs";
24
- import { n as detectEntryFile, r as refreshUpdatesManifestFile, t as UPDATES_MANIFEST_NAME } from "./js-swap-C8icNYIY.mjs";
25
- import { t as planHostedDevice } from "./plan-placement-D_YYlE6N.mjs";
7
+ import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-CPDq_90S.mjs";
8
+ import { _ as detectIsExpo } from "./project-DX8fXyw_.mjs";
9
+ import { A as listAvds, B as ownedAvdSystemImage, D as hostSystemImageArch, I as ownedAvdDirectory, T as findBuildTool, W as pickDefaultSystemImage, j as listInstalledSystemImages, l as androidSystemImageAbi, r as androidBuildToolName } from "./android-DE8-JfGW.mjs";
10
+ import { It as statsProjectKey } from "./budget-RFbwFpG5.mjs";
11
+ import { t as cleanLine } from "./server-expo-CUuzP9Mp.mjs";
12
+ import { c as loadProjectProvider, i as checkEasAuth, p as resolveRemote } from "./remote-cache-fxcl5C-L.mjs";
13
+ import { h as detectAppIds, m as detectAndroidPackage } from "./start-CRkG-mZ7.mjs";
14
+ import { n as fingerprintErrorMissReason, t as explainBuildMiss } from "./miss-reason-SuTptY-I.mjs";
15
+ import { o as resolveCcache } from "./ccache-CtbqWxIC.mjs";
16
+ import { M as startBuildHeartbeat, P as tailLines, n as androidToolchain, t as androidRequirements, y as HEARTBEAT_INTERVAL_MS } from "./toolchain-SqehyPLw.mjs";
17
+ import { a as PLATFORM, c as androidGradleProject, h as displayPath, i as NO_FINGERPRINT, l as androidJobLayout, o as androidBuildOptions, r as NO_DEVICE } from "./support-Ca6PZbpr.mjs";
18
+ import { i as AndroidRecipeRefusal, r as resolveAndroidRunPlan } from "./plan-Jwu_vr-F.mjs";
19
+ import { c as readProductFlavors, n as buildAndroid, s as productFlavorRefusal } from "./react-native-build-JUF31S8U.mjs";
20
+ import { n as planFlagRefusal, o as checkEasFallback, r as planPayload, t as planCachedBuild } from "./build-plan-CRjAA6Qi.mjs";
21
+ import { i as planEasDevelopmentBuild } from "./eas-build-0gadvrca.mjs";
22
+ import { n as androidProcessRuntime, t as androidMetroRuntime } from "./launch-V1zqiOYn.mjs";
23
+ import { i as staleNativeDirRefusal, n as recordPrebuild, r as runPrebuild, t as planPrebuild } from "./prebuild-DB_zLOLc.mjs";
24
+ import { n as detectEntryFile, r as refreshUpdatesManifestFile, t as UPDATES_MANIFEST_NAME } from "./js-swap-Z_mSuRrx.mjs";
25
+ import { t as planHostedDevice } from "./plan-placement-B466UYMU.mjs";
26
26
  import { constants, copyFileSync, existsSync, mkdirSync, readFileSync, renameSync } from "node:fs";
27
27
  import { basename, dirname, isAbsolute, join, relative } from "node:path";
28
28
  import { loadCacheProvider } from "@stim-cli/cache";
@@ -1,10 +1,10 @@
1
1
  import { r as register } from "./cache-manifest-qA3dT2x2.mjs";
2
- import { g as sharedCompilationCache } from "./workspace-state-CSIFuuDa.mjs";
3
- import { l as phaseLine } from "./command-output-BjPN99ZB.mjs";
4
- import { S as resolvePackageJson } from "./project-B8_duAzW.mjs";
2
+ import { g as sharedCompilationCache } from "./workspace-state-CvgTFe-h.mjs";
3
+ import { l as phaseLine } from "./command-output-CPDq_90S.mjs";
4
+ import { S as resolvePackageJson } from "./project-DX8fXyw_.mjs";
5
5
  import { p as resolveOptimizations } from "./errors-DzkMYh8Q.mjs";
6
- import { a as buildGradle, i as assembleTaskFor, n as BUILD_ERROR, o as parseProductFlavors, s as variantNameOf, t as ASSEMBLE_TASK } from "./gradle-C2OEKCCI.mjs";
7
- import { C as compilationCacheSettings, N as swiftPrefixMappingSupported, O as pickXcodeProject, T as detectXcodeMajor, b as SWIFT_PREFIX_MAPPING_MIN_SWIFT, w as detectSwiftVersion, x as buildXcode } from "./toolchain-DqyDXs30.mjs";
6
+ import { a as buildGradle, i as assembleTaskFor, n as BUILD_ERROR, o as parseProductFlavors, s as variantNameOf, t as ASSEMBLE_TASK } from "./gradle-CZZo1TSA.mjs";
7
+ import { C as compilationCacheSettings, N as swiftPrefixMappingSupported, O as pickXcodeProject, T as detectXcodeMajor, b as SWIFT_PREFIX_MAPPING_MIN_SWIFT, w as detectSwiftVersion, x as buildXcode } from "./toolchain-SqehyPLw.mjs";
8
8
  import { existsSync, readFileSync, readdirSync } from "node:fs";
9
9
  import { join, relative } from "node:path";
10
10
  import chalk from "chalk";
@@ -1,8 +1,8 @@
1
1
  import { G as resolveIosProjectDir, U as resolveAndroidLayout } from "./settings-Bbztm4oV.mjs";
2
- import { l as phaseLine } from "./command-output-BjPN99ZB.mjs";
3
- import { _ as detectIsExpo } from "./project-B8_duAzW.mjs";
4
- import { I as bundlerPin, i as iosToolchainAsync, n as androidToolchain, t as androidRequirements } from "./toolchain-DqyDXs30.mjs";
5
- import { a as repairCxxLauncherState, n as detectLinkedLibraryGitMetadata, r as reactNativeDoctorFindings, t as detectFingerprintParity } from "./doctor-DPAqhVCK.mjs";
2
+ import { l as phaseLine } from "./command-output-CPDq_90S.mjs";
3
+ import { _ as detectIsExpo } from "./project-DX8fXyw_.mjs";
4
+ import { I as bundlerPin, i as iosToolchainAsync, n as androidToolchain, t as androidRequirements } from "./toolchain-SqehyPLw.mjs";
5
+ import { a as repairCxxLauncherState, n as detectLinkedLibraryGitMetadata, r as reactNativeDoctorFindings, t as detectFingerprintParity } from "./doctor-Dunu3Nv1.mjs";
6
6
  import { existsSync } from "node:fs";
7
7
  //#region src/integrations/react-native-doctor.ts
8
8
  function reactNativeProjectDoctor(root) {
@@ -1,18 +1,18 @@
1
1
  import { G as resolveIosProjectDir, H as remoteIosSetting, L as publicUrlSetting, Q as settingShapeErrors, V as remoteEasFallbackSetting, a as SETTING_SHAPE_REMEDY, p as cacheProviderSettingError, tt as tunnelModeSetting } from "./settings-Bbztm4oV.mjs";
2
- import { E as fingerprintDiffRecord, L as untrackedMissLine, M as refingerprintAfterMutation, O as inputsChangedDuringBuild, S as configInputsChanged, T as filesystemBuildCapability, b as buildCacheKey, x as changedDuringBuildLine } from "./device-lease-DHOBXGgS.mjs";
3
- import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-BjPN99ZB.mjs";
4
- import { It as statsProjectKey } from "./budget-BONq9vXY.mjs";
2
+ import { E as fingerprintDiffRecord, L as untrackedMissLine, M as refingerprintAfterMutation, O as inputsChangedDuringBuild, S as configInputsChanged, T as filesystemBuildCapability, b as buildCacheKey, x as changedDuringBuildLine } from "./device-lease-C309csaB.mjs";
3
+ import { i as formatDuration, l as phaseLine, m as shortHash } from "./command-output-CPDq_90S.mjs";
4
+ import { It as statsProjectKey } from "./budget-RFbwFpG5.mjs";
5
5
  import { d as optimizationBuildProfile, l as artifactCachePolicy, p as resolveOptimizations } from "./errors-DzkMYh8Q.mjs";
6
- import { n as fingerprintErrorMissReason, t as explainBuildMiss } from "./miss-reason-BPAzZS0r.mjs";
7
- import { I as bundlerPin, r as iosToolchain } from "./toolchain-DqyDXs30.mjs";
8
- import { r as planPayload, t as planCachedBuild } from "./build-plan-CP0tckNU.mjs";
9
- import { i as planEasDevelopmentBuild, n as easDeviceBuildRemedy } from "./eas-build-Dw_ec2Km.mjs";
10
- import { i as staleNativeDirRefusal, n as recordPrebuild } from "./prebuild-Bw44QxVh.mjs";
11
- import { a as deviceModelRefusal, c as iosProjectPathError, f as podAction, h as resolveDeviceType, l as iosProviderRunOptions, m as resolveConfiguration, u as isReleaseConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-DCco5fut.mjs";
12
- import { t as IosRecipeRefusal } from "./ios-project-B9drt_aY.mjs";
13
- import { i as hostedIosSelectors } from "./remote-BU9UyhCJ.mjs";
14
- import { c as copyAppAside, i as DEFAULT_DEPS, n as iosMetroRuntime, r as iosProcessRuntime, u as writeIpTxt } from "./launch-YrbqaIFj.mjs";
15
- import { t as planHostedDevice } from "./plan-placement-D_YYlE6N.mjs";
6
+ import { n as fingerprintErrorMissReason, t as explainBuildMiss } from "./miss-reason-SuTptY-I.mjs";
7
+ import { I as bundlerPin, r as iosToolchain } from "./toolchain-SqehyPLw.mjs";
8
+ import { r as planPayload, t as planCachedBuild } from "./build-plan-CRjAA6Qi.mjs";
9
+ import { i as planEasDevelopmentBuild, n as easDeviceBuildRemedy } from "./eas-build-0gadvrca.mjs";
10
+ import { i as staleNativeDirRefusal, n as recordPrebuild } from "./prebuild-DB_zLOLc.mjs";
11
+ import { a as deviceModelRefusal, c as iosProjectPathError, f as podAction, h as resolveDeviceType, l as iosProviderRunOptions, m as resolveConfiguration, u as isReleaseConfiguration, v as resolveRuntime, x as simulatorBuildArch, y as resolveSchemeSelection } from "./support-Co0wk8Cv.mjs";
12
+ import { t as IosRecipeRefusal } from "./ios-project-BeOXKPt2.mjs";
13
+ import { i as hostedIosSelectors } from "./remote-CZiTijxG.mjs";
14
+ import { c as copyAppAside, i as DEFAULT_DEPS, n as iosMetroRuntime, r as iosProcessRuntime, u as writeIpTxt } from "./launch-BootbMk4.mjs";
15
+ import { t as planHostedDevice } from "./plan-placement-B466UYMU.mjs";
16
16
  import { rmSync } from "node:fs";
17
17
  import chalk from "chalk";
18
18
  //#region src/integrations/react-native-ios-plan.ts
@@ -1,16 +1,16 @@
1
1
  import { B as parseDeviceSlotKey, p as getProject, z as deviceSlotPlatforms } from "./config-D0LhTY3S.mjs";
2
- import { i as recordWorkspaceUse, r as readWorkspaceState$1 } from "./workspace-state-CSIFuuDa.mjs";
3
- import { f as refuseNoProject, l as phaseLine } from "./command-output-BjPN99ZB.mjs";
4
- import { F as readWorkspaceLaunches, n as findCommandWorkspace } from "./project-B8_duAzW.mjs";
5
- import { J as resolveOwnedAvdSerial } from "./android-BsYNR81W.mjs";
6
- import { u as resolveProjectMetro } from "./metro-D_j9sN-B.mjs";
7
- import { o as readWebRecord, r as cdpEndpoint, u as webFacts } from "./state-DI84A-uu.mjs";
8
- import { E as resolveOwnedIosSim } from "./ios-CXLIUxXJ.mjs";
9
- import { p as ensureMetroReverse, s as androidAppProcess, v as iosAppProcess } from "./app-install-0LgaQRT7.mjs";
10
- import { u as probeHostedSession } from "./hosted-client-Io01s5By.mjs";
11
- import { r as readHostedNative } from "./ios-state-CjrL2qv-.mjs";
12
- import { r as reopenHostedAndroidMetro } from "./hosted-android-DQ-Agsd8.mjs";
13
- import { n as nativeRunCommand } from "./slot-launch-B9hn96wd.mjs";
2
+ import { i as recordWorkspaceUse, r as readWorkspaceState$1 } from "./workspace-state-CvgTFe-h.mjs";
3
+ import { f as refuseNoProject, l as phaseLine } from "./command-output-CPDq_90S.mjs";
4
+ import { F as readWorkspaceLaunches, n as findCommandWorkspace } from "./project-DX8fXyw_.mjs";
5
+ import { J as resolveOwnedAvdSerial } from "./android-DE8-JfGW.mjs";
6
+ import { u as resolveProjectMetro } from "./metro-_ZIE3Axg.mjs";
7
+ import { o as readWebRecord, r as cdpEndpoint, u as webFacts } from "./state-lqxdOH_g.mjs";
8
+ import { E as resolveOwnedIosSim } from "./ios-o896T9PE.mjs";
9
+ import { p as ensureMetroReverse, s as androidAppProcess, v as iosAppProcess } from "./app-install-Cg9YJy3x.mjs";
10
+ import { u as probeHostedSession } from "./hosted-client--hNFgixu.mjs";
11
+ import { r as readHostedNative } from "./ios-state-BsXMwo5y.mjs";
12
+ import { r as reopenHostedAndroidMetro } from "./hosted-android-C-D8Dj0_.mjs";
13
+ import { n as nativeRunCommand } from "./slot-launch-CeCRr6MK.mjs";
14
14
  import { n as sendToOwnedPage, t as liveWebRecord } from "./page-Bv9s2KwY.mjs";
15
15
  import { hostedAndroidDeviceName, hostedNativeRecords } from "@stim-cli/core/state";
16
16
  import chalk from "chalk";
@@ -1,10 +1,10 @@
1
1
  import { z as deviceSlotPlatforms } from "./config-D0LhTY3S.mjs";
2
2
  import { F as parseIosRemote, H as remoteIosSetting, L as publicUrlSetting, V as remoteEasFallbackSetting, tt as tunnelModeSetting } from "./settings-Bbztm4oV.mjs";
3
- import { l as phaseLine } from "./command-output-BjPN99ZB.mjs";
4
- import { n as devicePlacementRecord } from "./placement-log-reFbjqEr.mjs";
5
- import { c as devicePlacementLine } from "./build-plan-CP0tckNU.mjs";
6
- import "./device-remote-Bmg42063.mjs";
7
- import { b as resolveSimulatorAppFlag } from "./support-DCco5fut.mjs";
3
+ import { l as phaseLine } from "./command-output-CPDq_90S.mjs";
4
+ import { n as devicePlacementRecord } from "./placement-log-BItXET1x.mjs";
5
+ import { c as devicePlacementLine } from "./build-plan-CRjAA6Qi.mjs";
6
+ import "./device-remote-DjsNw8DD.mjs";
7
+ import { b as resolveSimulatorAppFlag } from "./support-Co0wk8Cv.mjs";
8
8
  import chalk from "chalk";
9
9
  //#region src/commands/ios/remote.ts
10
10
  function resolveIosRemote({ opts, settings, physical, recorded }) {
@@ -1,9 +1,9 @@
1
1
  import { t as getExecutor } from "./exec-B81Qodjn.mjs";
2
- import { w as workspaceLogsDir } from "./workspace-state-CSIFuuDa.mjs";
2
+ import { w as workspaceLogsDir } from "./workspace-state-CvgTFe-h.mjs";
3
3
  import { n as stripAnsi } from "./process-output-Fpl8PYi8.mjs";
4
- import { S as resolvePackageJson } from "./project-B8_duAzW.mjs";
4
+ import { S as resolvePackageJson } from "./project-DX8fXyw_.mjs";
5
5
  import { r as createNdjsonWriter } from "./ndjson-GOnbyvso.mjs";
6
- import { n as expoBinFromPackage, r as expoBinPath, s as findBinUpward } from "./server-expo-CsYu2aKL.mjs";
6
+ import { n as expoBinFromPackage, r as expoBinPath, s as findBinUpward } from "./server-expo-CUuzP9Mp.mjs";
7
7
  import { createRequire } from "node:module";
8
8
  import { existsSync, readFileSync } from "node:fs";
9
9
  import { join } from "node:path";
@@ -1,11 +1,11 @@
1
- import { y as workspaceAgentDeviceDir } from "./workspace-state-CSIFuuDa.mjs";
2
- import { i as formatDuration, l as phaseLine } from "./command-output-BjPN99ZB.mjs";
1
+ import { y as workspaceAgentDeviceDir } from "./workspace-state-CvgTFe-h.mjs";
2
+ import { i as formatDuration, l as phaseLine } from "./command-output-CPDq_90S.mjs";
3
3
  import { i as workspaceLinkLine } from "./stim-desktop-8GQX2OV8.mjs";
4
- import { Dt as recordFinishedBuild } from "./budget-BONq9vXY.mjs";
5
- import { a as easAuthNote, n as UPLOAD_TIMEOUT_MS, r as cacheLevel, s as isEasAuthFailureText } from "./remote-cache-Bsts6f6Y.mjs";
6
- import "./launch-verify-BzRdbuO1.mjs";
7
- import { n as CCACHE_UNAVAILABLE, r as ccacheActivityLine } from "./ccache-CjHQ5F8g.mjs";
8
- import { a as PLATFORM } from "./support-CnE_SIjt.mjs";
4
+ import { Dt as recordFinishedBuild } from "./budget-RFbwFpG5.mjs";
5
+ import { a as easAuthNote, n as UPLOAD_TIMEOUT_MS, r as cacheLevel, s as isEasAuthFailureText } from "./remote-cache-fxcl5C-L.mjs";
6
+ import "./launch-verify-Dl78EVgR.mjs";
7
+ import { n as CCACHE_UNAVAILABLE, r as ccacheActivityLine } from "./ccache-CtbqWxIC.mjs";
8
+ import { a as PLATFORM } from "./support-Ca6PZbpr.mjs";
9
9
  import { buildDiagnostics } from "@stim-cli/core/state";
10
10
  import chalk from "chalk";
11
11
  //#region src/commands/android/result.ts
@@ -1,7 +1,7 @@
1
1
  import { n as ownership_claim_exports, t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
2
2
  import { t as getExecutor } from "./exec-B81Qodjn.mjs";
3
3
  import { r as createNdjsonWriter } from "./ndjson-GOnbyvso.mjs";
4
- import { a as macosRuntimeClaim, i as macosProcess, r as macosLogFile, s as updateMacosRecord } from "./state-Boo0IMJq.mjs";
4
+ import { a as macosRuntimeClaim, i as macosProcess, r as macosLogFile, s as updateMacosRecord } from "./state-BUpAmt2r.mjs";
5
5
  import { readMacosRecord } from "@stim-cli/core/state";
6
6
  import { LOG_ROTATE_BYTES } from "@stim-cli/core";
7
7
  import { StringDecoder } from "node:string_decoder";
@@ -1,9 +1,9 @@
1
1
  import { t as getExecutor } from "./exec-B81Qodjn.mjs";
2
2
  import { n as METRO_COMMAND_PORT } from "./settings-Bbztm4oV.mjs";
3
- import { w as MODE_COMMAND } from "./project-B8_duAzW.mjs";
4
- import { d as signalProcessTree } from "./metro-D_j9sN-B.mjs";
3
+ import { w as MODE_COMMAND } from "./project-DX8fXyw_.mjs";
4
+ import { d as signalProcessTree } from "./metro-_ZIE3Axg.mjs";
5
5
  import { r as createNdjsonWriter } from "./ndjson-GOnbyvso.mjs";
6
- import { f as recordFromLine, m as superviseChildServer } from "./server-expo-CsYu2aKL.mjs";
6
+ import { f as recordFromLine, m as superviseChildServer } from "./server-expo-CUuzP9Mp.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
@@ -1,7 +1,7 @@
1
1
  import { t as getExecutor } from "./exec-B81Qodjn.mjs";
2
2
  import { K as resolveProjectSettings } from "./settings-Bbztm4oV.mjs";
3
3
  import { n as stripAnsi, t as createLineReader } from "./process-output-Fpl8PYi8.mjs";
4
- import { S as resolvePackageJson } from "./project-B8_duAzW.mjs";
4
+ import { S as resolvePackageJson } from "./project-DX8fXyw_.mjs";
5
5
  import { r as createNdjsonWriter } from "./ndjson-GOnbyvso.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-DzkMYh8Q.mjs";
7
7
  import { accessSync, constants, existsSync, readFileSync } from "node:fs";
@@ -0,0 +1,2 @@
1
+ import { p as startExpoServer } from "./server-expo-CUuzP9Mp.mjs";
2
+ export { startExpoServer };
@@ -1,6 +1,6 @@
1
1
  import { D as withConfigLock$1, O as writeConfigSetting, _ as loadConfig$1, f as getConfigPath$1, h as getRepoSettings, m as getProjectSettings } from "./config-D0LhTY3S.mjs";
2
2
  import { Et as repoRoot, R as readCommittedSettings, mt as gitCommonDir, nt as unknownSettingKeys } from "./settings-Bbztm4oV.mjs";
3
- import { n as findCommandWorkspace, t as NO_PROJECT_REFUSAL } from "./project-B8_duAzW.mjs";
3
+ import { n as findCommandWorkspace, t as NO_PROJECT_REFUSAL } from "./project-DX8fXyw_.mjs";
4
4
  import { n as settingDefault, r as stimDesktopInstalled } from "./stim-desktop-8GQX2OV8.mjs";
5
5
  import { n as recordingLayers, t as deleteTurnedOffRecordings } from "./recordings-Bk-VivUV.mjs";
6
6
  import { existsSync, readFileSync, renameSync, unlinkSync, writeFileSync } from "node:fs";
@@ -275,7 +275,7 @@
275
275
  }
276
276
  },
277
277
  "scheme": {
278
- "description": "Shared Xcode scheme to build when the workspace has several",
278
+ "description": "Shared Xcode scheme to build when the workspace has several; the --scheme flag overrides it",
279
279
  "type": "string",
280
280
  "x-stim": {
281
281
  "key": "ios.scheme",
@@ -1,9 +1,9 @@
1
1
  import { B as parseDeviceSlotKey, H as projectDeviceSlots, p as getProject } from "./config-D0LhTY3S.mjs";
2
- import { n as fileLeaseIo } from "./device-lease-DHOBXGgS.mjs";
3
- import { r as readWorkspaceState$1 } from "./workspace-state-CSIFuuDa.mjs";
4
- import { E as getAvdNameForSerial, O as listAdbDevices } from "./android-BsYNR81W.mjs";
5
- import { d as listAllIosSims } from "./ios-CXLIUxXJ.mjs";
6
- import { f as deviceShellArg } from "./app-install-0LgaQRT7.mjs";
2
+ import { n as fileLeaseIo } from "./device-lease-C309csaB.mjs";
3
+ import { r as readWorkspaceState$1 } from "./workspace-state-CvgTFe-h.mjs";
4
+ import { E as getAvdNameForSerial, O as listAdbDevices } from "./android-DE8-JfGW.mjs";
5
+ import { d as listAllIosSims } from "./ios-o896T9PE.mjs";
6
+ import { f as deviceShellArg } from "./app-install-Cg9YJy3x.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") {
@@ -3,16 +3,16 @@ import { t as getExecutor } from "./exec-B81Qodjn.mjs";
3
3
  import { t as spawnEntry } from "./spawn-entry-Dcb7sDUz.mjs";
4
4
  import { E as upsertProject, p as getProject } from "./config-D0LhTY3S.mjs";
5
5
  import { A as metroIdleStopMinutesSetting, B as remoteAndroidSetting, G as resolveIosProjectDir, H as remoteIosSetting, K as resolveProjectSettings, L as publicUrlSetting, M as metroTunnelSettingError, O as metroCommandSetting, P as ngrokUrlSetting, Q as settingShapeErrors, U as resolveAndroidLayout, W as resolveCacheProviderConfig, a as SETTING_SHAPE_REMEDY, at as detectProviders, h as deviceIdleShutdownMinutesSetting, it as PUBLIC_METRO_ENV, j as metroPortSetting, k as metroCommandSettingError, m as defaultAndroidLayout, nt as unknownSettingKeys, ot as planMetroReach, p as cacheProviderSettingError, tt as tunnelModeSetting } from "./settings-Bbztm4oV.mjs";
6
- import { _ as supervisorLogFile, c as writeWorkspaceState, i as recordWorkspaceUse, n as clearWorkspaceStateKeys, p as ensureWorkspaceStorage, r as readWorkspaceState$1, w as workspaceLogsDir$1, y as workspaceAgentDeviceDir } from "./workspace-state-CSIFuuDa.mjs";
7
- import { _ as stepTimer, l as phaseLine } from "./command-output-BjPN99ZB.mjs";
8
- import { C as MODE_BARE, D as clearManagedMetroTunnel, T as MODE_EXPO, _ as detectIsExpo, b as readAppConfigText, j as readMetroTunnel, r as findProjectRoot, s as projectProblem, t as NO_PROJECT_REFUSAL, w as MODE_COMMAND, x as readAppJson } from "./project-B8_duAzW.mjs";
6
+ import { _ as supervisorLogFile, c as writeWorkspaceState, i as recordWorkspaceUse, n as clearWorkspaceStateKeys, p as ensureWorkspaceStorage, r as readWorkspaceState$1, w as workspaceLogsDir$1, y as workspaceAgentDeviceDir } from "./workspace-state-CvgTFe-h.mjs";
7
+ import { _ as stepTimer, l as phaseLine } from "./command-output-CPDq_90S.mjs";
8
+ import { C as MODE_BARE, D as clearManagedMetroTunnel, T as MODE_EXPO, _ as detectIsExpo, b as readAppConfigText, j as readMetroTunnel, r as findProjectRoot, s as projectProblem, t as NO_PROJECT_REFUSAL, w as MODE_COMMAND, x as readAppJson } from "./project-DX8fXyw_.mjs";
9
9
  import { a as workspaceLinks, i as workspaceLinkLine } from "./stim-desktop-8GQX2OV8.mjs";
10
- import { d as signalProcessTree, g as PortInspectionError, h as PORT_INSPECTION_REMEDY, m as reserveMetroPort, s as pidExists, u as resolveProjectMetro } from "./metro-D_j9sN-B.mjs";
11
- import { D as stopTunnel, E as startTunnelSequence, O as terminateChild, P as resolveSupervisorTarget, j as withManagedTunnelLock, k as withManagedRemoteWorktreeLock } from "./workspaces-D2xSHBDY.mjs";
12
- import { ct as stopOwnedMetroForReset, t as budgetGate } from "./budget-BONq9vXY.mjs";
13
- import { a as withWorkspaceProcessLock, o as workspaceProcessLockError } from "./named-ports-C2lvoPsb.mjs";
10
+ import { d as signalProcessTree, g as PortInspectionError, h as PORT_INSPECTION_REMEDY, m as reserveMetroPort, s as pidExists, u as resolveProjectMetro } from "./metro-_ZIE3Axg.mjs";
11
+ import { D as stopTunnel, E as startTunnelSequence, O as terminateChild, P as resolveSupervisorTarget, j as withManagedTunnelLock, k as withManagedRemoteWorktreeLock } from "./workspaces-C4kqIOlx.mjs";
12
+ import { ct as stopOwnedMetroForReset, t as budgetGate } from "./budget-RFbwFpG5.mjs";
13
+ import { a as withWorkspaceProcessLock, o as workspaceProcessLockError } from "./named-ports-O1TIl7tx.mjs";
14
14
  import { i as levelRank } from "./ndjson-GOnbyvso.mjs";
15
- import { d as readProjectConfig } from "./remote-cache-Bsts6f6Y.mjs";
15
+ import { d as readProjectConfig } from "./remote-cache-fxcl5C-L.mjs";
16
16
  import { n as windowsLauncherArgs } from "./detached-entry-BXq4fIl-.mjs";
17
17
  import { appendFileSync, mkdirSync, openSync, readFileSync } from "node:fs";
18
18
  import { dirname } from "node:path";
@@ -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-CdvcTaXr.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-CRkG-mZ7.mjs";
2
2
  export { startCommand as default, failureEvidence, liveSupervisor, parseWait, readLogTail, registerStart, resolveWorkspaceMetroPort, startDevServer, startFacts, supervisorEntry, supervisorSignalable, tailLines, wantsExpoOwnTunnel };
@@ -1,5 +1,5 @@
1
1
  import { t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
2
- import { a as updateWorkspaceState, r as readWorkspaceState$1, w as workspaceLogsDir$1, x as workspaceDir } from "./workspace-state-CSIFuuDa.mjs";
2
+ import { a as updateWorkspaceState, r as readWorkspaceState$1, w as workspaceLogsDir$1, x as workspaceDir } from "./workspace-state-CvgTFe-h.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,10 +1,10 @@
1
1
  import { n as ownership_claim_exports, t as process_identity_exports } from "./process-identity-Biv3arCO.mjs";
2
2
  import { t as getExecutor } from "./exec-B81Qodjn.mjs";
3
- import { a as updateWorkspaceState, c as writeWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey, w as workspaceLogsDir$1, x as workspaceDir } from "./workspace-state-CSIFuuDa.mjs";
4
- import { s as pidExists } from "./metro-D_j9sN-B.mjs";
3
+ import { a as updateWorkspaceState, c as writeWorkspaceState, r as readWorkspaceState$1, t as clearWorkspaceStateKey, w as workspaceLogsDir$1, x as workspaceDir } from "./workspace-state-CvgTFe-h.mjs";
4
+ import { s as pidExists } from "./metro-_ZIE3Axg.mjs";
5
5
  import { readFileSync, readlinkSync, rmSync } from "node:fs";
6
6
  import { join } from "node:path";
7
- import { WEB_VIEWPORTS } from "@stim-cli/core/state";
7
+ import { WEB_VIEWPORTS, isJsonObject } from "@stim-cli/core/state";
8
8
  import { rotatedLogPath } from "@stim-cli/core";
9
9
  import { hostname } from "node:os";
10
10
  //#region src/web/profile.ts
@@ -93,7 +93,7 @@ function processRecord(value) {
93
93
  } : void 0;
94
94
  }
95
95
  function parseWebRecord(value) {
96
- if (!value || typeof value !== "object" || Array.isArray(value)) return null;
96
+ if (!isJsonObject(value)) return null;
97
97
  const record = value;
98
98
  const owner = processRecord(record);
99
99
  if (!owner || typeof record.cdpPort !== "number" || typeof record.profile !== "string") return null;
@@ -184,6 +184,7 @@ function latestPageLoad(lines) {
184
184
  } catch {
185
185
  continue;
186
186
  }
187
+ if (!isJsonObject(record)) continue;
187
188
  if (record.event === "web_navigation" && typeof record.url === "string") {
188
189
  const moved = route !== null && route !== record.url ? { route } : {};
189
190
  if (failure !== null) return {
@@ -1,8 +1,8 @@
1
1
  import { j as formatBytes } from "./config-D0LhTY3S.mjs";
2
2
  import { Et as repoRoot, mt as gitCommonDir } from "./settings-Bbztm4oV.mjs";
3
- import { o as formatLongDuration } from "./command-output-BjPN99ZB.mjs";
4
- import { r as findProjectRoot } from "./project-B8_duAzW.mjs";
5
- import { i as getSwiftpmCacheUsage, n as swiftpmCacheLines, r as getAgentDeviceUsage, t as agentDeviceLines } from "./agent-device-usage-output-DVyv_hWj.mjs";
3
+ import { o as formatLongDuration } from "./command-output-CPDq_90S.mjs";
4
+ import { r as findProjectRoot } from "./project-DX8fXyw_.mjs";
5
+ import { i as getSwiftpmCacheUsage, n as swiftpmCacheLines, r as getAgentDeviceUsage, t as agentDeviceLines } from "./agent-device-usage-output-VPaOgGaF.mjs";
6
6
  import { archivedUsage, readArchives, readStatsReport, statsProjectKey } from "@stim-cli/core/state";
7
7
  import chalk from "chalk";
8
8
  //#region src/commands/stats.ts