peachsim 0.1.2215 → 0.1.2218

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 (98) hide show
  1. package/cli/commands/control.ts +1 -1
  2. package/cli/commands/inspect/list.ts +1 -1
  3. package/detox/index.ts +15 -3
  4. package/dist-lib/agent-daemon-client.cjs +1 -1
  5. package/dist-lib/agent-events.cjs +1 -1
  6. package/dist-lib/attached-projects.cjs +1 -1
  7. package/dist-lib/auth/shared-session.cjs +1 -1
  8. package/dist-lib/backend-origin.cjs +1 -1
  9. package/dist-lib/beta.cjs +1 -1
  10. package/dist-lib/beta.mjs +1 -1
  11. package/dist-lib/bridge-constants.cjs +1 -1
  12. package/dist-lib/bridge-contract-input.cjs +1 -1
  13. package/dist-lib/bridge-contract-input.mjs +1 -1
  14. package/dist-lib/bridge-contract.cjs +1 -1
  15. package/dist-lib/bridge-contract.mjs +1 -1
  16. package/dist-lib/bundle-channel.cjs +7 -7
  17. package/dist-lib/capture-contract.cjs +1 -1
  18. package/dist-lib/capture-contract.mjs +1 -1
  19. package/dist-lib/cloud-contract.cjs +1 -1
  20. package/dist-lib/cloud-contract.mjs +1 -1
  21. package/dist-lib/cloud-test-args.cjs +1 -1
  22. package/dist-lib/cloud-test-args.mjs +1 -1
  23. package/dist-lib/cloud.cjs +1 -1
  24. package/dist-lib/cloud.mjs +1 -1
  25. package/dist-lib/config.cjs +1 -1
  26. package/dist-lib/config.mjs +1 -1
  27. package/dist-lib/detox/index.cjs +17 -5
  28. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  29. package/dist-lib/expo-swift-bundle.cjs +5 -5
  30. package/dist-lib/expo-swift-metadata.cjs +1 -1
  31. package/dist-lib/expo-swift-metadata.mjs +1 -1
  32. package/dist-lib/home-paths.cjs +1 -1
  33. package/dist-lib/host/bridge-host.cjs +9 -7
  34. package/dist-lib/host/fetch-proxy-handler.cjs +3 -3
  35. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  36. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  37. package/dist-lib/host/replacement-module-handler.cjs +1 -1
  38. package/dist-lib/host/websocket-proxy.cjs +1 -1
  39. package/dist-lib/index.cjs +5 -3
  40. package/dist-lib/jump-to-source-babel.cjs +1 -1
  41. package/dist-lib/jump-to-source-native.cjs +1 -1
  42. package/dist-lib/kotlin-host.cjs +1 -1
  43. package/dist-lib/menu.cjs +1 -1
  44. package/dist-lib/menu.mjs +1 -1
  45. package/dist-lib/metro-fingerprint-registry.cjs +1 -1
  46. package/dist-lib/metro-fingerprint-registry.mjs +1 -1
  47. package/dist-lib/metro-production-bundle.cjs +1 -1
  48. package/dist-lib/metro-production-bundle.mjs +1 -1
  49. package/dist-lib/metro.cjs +5 -3
  50. package/dist-lib/native-app-identity-project.cjs +1 -1
  51. package/dist-lib/native-app-identity-project.mjs +1 -1
  52. package/dist-lib/native-app-identity.cjs +1 -1
  53. package/dist-lib/native-app-identity.mjs +1 -1
  54. package/dist-lib/native-firebase-metadata.cjs +1 -1
  55. package/dist-lib/native-firebase-metadata.mjs +1 -1
  56. package/dist-lib/pdfium-raster.cjs +1 -1
  57. package/dist-lib/pdfium-raster.mjs +1 -1
  58. package/dist-lib/plist.cjs +1 -1
  59. package/dist-lib/plist.mjs +1 -1
  60. package/dist-lib/profiles.cjs +1 -1
  61. package/dist-lib/public-brand.cjs +1 -1
  62. package/dist-lib/public-origins-lib-esm.json +24 -24
  63. package/dist-lib/public-origins-lib.json +54 -54
  64. package/dist-lib/react-native-host-modules.cjs +1 -1
  65. package/dist-lib/react-native-host-modules.mjs +1 -1
  66. package/dist-lib/reap-browser.cjs +1 -1
  67. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  68. package/dist-lib/sdk.cjs +1 -1
  69. package/dist-lib/sdk.mjs +1 -1
  70. package/dist-lib/skills.cjs +11 -9
  71. package/dist-lib/swift-compile.cjs +1 -1
  72. package/dist-lib/swift-compile.mjs +1 -1
  73. package/dist-lib/swift-package.cjs +1 -1
  74. package/dist-lib/swift-package.mjs +1 -1
  75. package/dist-lib/swift-submit.cjs +1 -1
  76. package/dist-lib/swift-submit.mjs +1 -1
  77. package/dist-lib/swift-toolchain.cjs +1 -1
  78. package/dist-lib/swift.cjs +1 -1
  79. package/dist-lib/vite-swift.cjs +4 -4
  80. package/dist-lib/vite.cjs +5 -3
  81. package/dist-lib/worklet-executable.cjs +1 -1
  82. package/dist-lib/worklet-executable.mjs +1 -1
  83. package/dist-types/packages/peach-engine/src/engine/glass-material.d.ts +10 -0
  84. package/dist-types/packages/peach-engine/src/engine/liquid-glass.d.ts +0 -3
  85. package/dist-types/packages/peach-engine/src/engine/native-layout.d.ts +12 -2
  86. package/dist-types/packages/peach-engine/src/engine/node.d.ts +1 -0
  87. package/dist-types/packages/peach-engine/src/engine/scene-table.d.ts +1 -1
  88. package/dist-types/packages/peach-engine/src/engine/shell-owned-values.d.ts +7 -1
  89. package/dist-types/packages/peach-engine/src/engine/yoga-layout.d.ts +1 -1
  90. package/dist-types/packages/peach-engine/src/remote-stream/cloud-display.d.ts +2 -2
  91. package/dist-types/packages/peach-engine/src/render-worker/protocol.d.ts +4 -0
  92. package/dist-types/packages/peach-engine/src/settings/react-native-configuration.d.ts +2 -1
  93. package/kotlin/sdk.tar.gz +0 -0
  94. package/package.json +1 -1
  95. package/runtime-companion.json +1 -1
  96. package/src/swift-standins.ts +1 -1
  97. package/src/swift-xcframework.ts +1 -1
  98. package/src/agent-identity.ts +0 -26
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2215 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2218 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -30868,7 +30868,7 @@ function sourceClosureDigest(srcDir, entrypoints) {
30868
30868
  return hash.digest("hex");
30869
30869
  }
30870
30870
  var standinSourceDigest = (srcDir = __sootsim_import_meta_dirname) => sourceClosureDigest(srcDir, STANDIN_DIGEST_ENTRYPOINTS);
30871
- var STANDIN_SOURCE_DIGEST = true ? "11f82a07cd8d59c1bfcf554927b6e5a2d9b01d6846fd7107ca7c0f6f30519538" : standinSourceDigest();
30871
+ var STANDIN_SOURCE_DIGEST = true ? "71bed308fc270bafd989236668c1e63cc7dd11ab7b6815686dd07fd9b846e738" : standinSourceDigest();
30872
30872
 
30873
30873
  // src/swift-standins.ts
30874
30874
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
@@ -31033,7 +31033,7 @@ function simulatorNativeLibrary(dir) {
31033
31033
  continue;
31034
31034
  if (typeof entry.LibraryPath !== "string" || typeof entry.LibraryIdentifier !== "string")
31035
31035
  throw new Error(`${dir}: invalid simulator library paths`);
31036
- const archive = /^lib.+\.a$/.test(entry.LibraryPath);
31036
+ const archive = /\.a$/.test(entry.LibraryPath);
31037
31037
  const framework = /\.framework$/.test(entry.LibraryPath);
31038
31038
  if (!archive && !framework) continue;
31039
31039
  const bundle = import_node_path44.default.resolve(dir, entry.LibraryIdentifier, entry.LibraryPath);
@@ -33592,7 +33592,7 @@ function standinLibrary(binary, searchRoot, toolchain) {
33592
33592
  if (prebuilt2) return import_node_path49.default.join(prebuilt2, recipe.archive);
33593
33593
  }
33594
33594
  }
33595
- const manifest = crateFor(searchRoot, library.slice("lib".length, -".a".length));
33595
+ const manifest = crateFor(searchRoot, import_node_path49.default.basename(library, ".a").replace(/^lib/, ""));
33596
33596
  if (!manifest) return null;
33597
33597
  const entry = rustCrateEntry(manifest, library);
33598
33598
  const prebuilt = fetchNativeEntry("rust", entry.name, entry.key);
package/dist-lib/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2215 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2218 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __create = Object.create;
@@ -1873,6 +1873,8 @@ var RUNTIME_PACK_PREFIXES = [
1873
1873
  "engine/kotlin/",
1874
1874
  "engine/material-symbols/",
1875
1875
  "engine/pdfjs/",
1876
+ "engine/sf-symbols/",
1877
+ "photos/",
1876
1878
  "three-mode/"
1877
1879
  ];
1878
1880
  var RUNTIME_MERGE_PACK_DIR = "engine-tenant/";
@@ -2386,7 +2388,7 @@ async function runExtractor(command, args, signal, input) {
2386
2388
  }
2387
2389
 
2388
2390
  // runtime-companion.json
2389
- var runtime_companion_default = { abi: 1, sha256: "2e4d78c7cfb64a492abbe3734e69a59408c00041b36d1a05a2d7fdfcbf6adb7b", file: "node/cli-2e4d78c7cfb64a492abbe3734e69a59408c00041b36d1a05a2d7fdfcbf6adb7b.cjs" };
2391
+ var runtime_companion_default = { abi: 1, sha256: "c3cfa87c38bca3be3b225d514efe1b9e2ab9119227137e7190dfa25eccf43fe7", file: "node/cli-c3cfa87c38bca3be3b225d514efe1b9e2ab9119227137e7190dfa25eccf43fe7.cjs" };
2390
2392
 
2391
2393
  // src/answeredNativePackages.ts
2392
2394
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
@@ -2921,7 +2923,7 @@ function readIosSdkTree(root) {
2921
2923
 
2922
2924
  // src/swift-standin-digest.ts
2923
2925
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
2924
- var STANDIN_SOURCE_DIGEST = true ? "11f82a07cd8d59c1bfcf554927b6e5a2d9b01d6846fd7107ca7c0f6f30519538" : standinSourceDigest();
2926
+ var STANDIN_SOURCE_DIGEST = true ? "71bed308fc270bafd989236668c1e63cc7dd11ab7b6815686dd07fd9b846e738" : standinSourceDigest();
2925
2927
 
2926
2928
  // src/expo-native-workspace.ts
2927
2929
  init_define_SWIFT_COVERAGE_SOURCE_DIGESTS();
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2215 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2218 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
  let __sootsim_import_meta_url = '', __sootsim_import_meta_dirname = '', __sootsim_import_meta_filename = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; __sootsim_import_meta_dirname = __dirname; __sootsim_import_meta_filename = __filename; } catch {}
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- /*! peach v0.1.2215 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
1
+ /*! peach v0.1.2218 | (c) 2026 Tamagui LLC | Proprietary; see LICENSE */
2
2
 
3
3
  // src/worklet-executable.ts
4
4
  import { parse } from "acorn";
@@ -27,4 +27,14 @@ export interface GlassInteractionGlow {
27
27
  opacity: number;
28
28
  }
29
29
  export declare function glassMaterialOutset(style: GlassStyle, width: number, height: number, intensity?: number): number;
30
+ export declare function glassMaterialDraws<Config extends {
31
+ material?: GlassStyle;
32
+ glassTint?: unknown;
33
+ glassBodyTint?: unknown;
34
+ }>(config: Config): config is Config & {
35
+ material: GlassStyle;
36
+ };
37
+ export declare function glassColorScheme(config: {
38
+ colorScheme?: 'light' | 'dark' | 'auto';
39
+ }): 'light' | 'dark';
30
40
  export {};
@@ -9,9 +9,6 @@ import type { Canvas, Surface, RuntimeEffect, Image as SkImage, Shader } from 'c
9
9
  type LiquidGlassColorScheme = 'auto' | 'light' | 'dark';
10
10
  type ResolvedGlassColorScheme = 'light' | 'dark';
11
11
  export declare const DEFAULT_LIQUID_GLASS_CAPTURE_PADDING = 22;
12
- export declare function glassMaterialDraws<Config extends Pick<LiquidGlassConfig, 'material' | 'adaptiveForeground' | 'glassTint' | 'glassBodyTint'>>(config: Config): config is Config & {
13
- material: GlassStyle;
14
- };
15
12
  export declare function liquidGlassCapturePadding(config: Pick<LiquidGlassConfig, 'capturePadding' | 'material' | 'interactionIntensity'>, width: number, height: number): number;
16
13
  export interface LiquidGlassRimLighting {
17
14
  ambient: number;
@@ -1,12 +1,22 @@
1
1
  import type { CanvasKitRenderingApi as CanvasKit } from './canvaskit-api.d.ts';
2
2
  export interface NativeLayoutExports {
3
+ _peach_layout_dirty_mark(slot: number, mask: number): void;
4
+ _peach_layout_dirty_has(slot: number, mask: number): number;
5
+ _peach_layout_dirty_clear(slot: number): void;
6
+ _peach_layout_dirty_collect(root: number): number;
7
+ _peach_layout_dirty_records(): number;
8
+ _peach_layout_scope_input(count: number): number;
9
+ _peach_layout_scope_collect(root: number): number;
10
+ _peach_layout_scope_records(): number;
3
11
  _peach_layout_values(): number;
4
12
  _peach_layout_units(): number;
5
13
  _peach_layout_enums(): number;
6
14
  _peach_layout_scratch(): number;
7
- _peach_layout_node_new(pointScaleFactor: number, measured: number): number;
15
+ _peach_layout_node_new(slot: number, pointScaleFactor: number, measured: number): void;
8
16
  _peach_layout_node_free(slot: number): void;
9
- _peach_layout_bind(slot: number, sceneSlot: number, tag: number, observers: number, scale: number): void;
17
+ _peach_layout_subtree_free(root: number): number;
18
+ _peach_layout_freed_nodes(): number;
19
+ _peach_layout_bind(slot: number, tag: number, observers: number, scale: number): void;
10
20
  _peach_layout_apply(slot: number): void;
11
21
  _peach_layout_attach(parent: number, child: number, index: number): void;
12
22
  _peach_layout_detach(parent: number, child: number): void;
@@ -33,6 +33,7 @@ export declare function noteMetalEffects(style: {
33
33
  }): void;
34
34
  export declare function registerHoistUnlinker(unlinker: (node: SootSimNode) => void): void;
35
35
  export declare function registerBackdropGroupSyncer(syncer: (node: SootSimNode, style: Readonly<SootSimStyle> | null) => void): void;
36
+ export declare function registerLayoutNodeDisposer(disposer: (node: SootSimNode) => void): void;
36
37
  export declare function registerLottieNodeDisposer(disposer: (node: SootSimNode) => void): void;
37
38
  export declare const classicLayoutAnimations: Set<SootSimNode>;
38
39
  export declare function releaseDetachedNode(node: SootSimNode | SootSimTextNode): void;
@@ -173,7 +173,7 @@ export interface SceneNativeBinding {
173
173
  _peach_numeric_text_drop(handle: number): void;
174
174
  _peach_scene_set_image(slot: number, image: number, padLeft: number, padTop: number, padRight: number, padBottom: number, srcLeft: number, srcTop: number, srcRight: number, srcBottom: number, offsetX: number, adjustX: number, offsetY: number, adjustY: number, width: number, height: number, repeat: number, mipmaps: number, tintR: number, tintG: number, tintB: number, tintA: number, alpha: number, shape: number, sampling: number): void;
175
175
  _peach_scene_set_picture(slot: number, picture: number, fontGeneration: number, drawnNodes: number): void;
176
- _peach_scene_set_ink(slot: number, glass: number, id: number): void;
176
+ _peach_scene_set_ink(slot: number, glass: number, id: number, label: number): void;
177
177
  _peach_ink_draw_picture(canvas: number, picture: number, shader: number, text: number, left: number, top: number, right: number, bottom: number): void;
178
178
  pe(): RuntimeEffect | null;
179
179
  pf(dark: boolean): RuntimeEffect | null;
@@ -6,6 +6,8 @@ export declare const SHELL_CONTROL_PROP = "_shellControl";
6
6
  export declare const SHELL_SPLIT_PART_PROP = "_shellSplitPart";
7
7
  type InterpolationConfig = AnimatedInterpolation['_config'];
8
8
  export type ShellStyleNode = {
9
+ __ref: number;
10
+ } | {
9
11
  __slot: string;
10
12
  } | {
11
13
  __op: AnimatedArithmetic;
@@ -21,8 +23,12 @@ type ShellControlGraphListener = (value: AnimatedValue, graph: NativeAnimationGr
21
23
  export declare function subscribeShellControlGraphs(listener: ShellControlGraphListener): () => void;
22
24
  export declare function ownShellValues(values: Record<string, AnimatedValue>): string;
23
25
  export declare function releaseShellValues(id: string): void;
26
+ type ShellStyleGraph = {
27
+ root: ShellStyleNode;
28
+ nodes: ShellStyleNode[];
29
+ };
24
30
  export declare function shellStyleProps(style: object): {
25
- [SHELL_STYLE_PROP]: Record<string, ShellStyleNode>;
31
+ [SHELL_STYLE_PROP]: Record<string, ShellStyleGraph>;
26
32
  } | null;
27
33
  export declare function rebuildShellStyle(template: unknown, slotValue: (slot: string) => AnimatedValue | undefined): Record<string, unknown> | null;
28
34
  export type ShellControlEvent = {
@@ -60,5 +60,5 @@ export declare function layoutHookFrame(target: unknown): SootSimLayout | null;
60
60
  export declare function releaseYogaRoot(root: SootSimNode): void;
61
61
  export declare function nestsInParkedYogaTree(root: SootSimNode, owner: SootSimNode): boolean;
62
62
  export declare function parkYogaRoot(root: SootSimNode): boolean;
63
- export declare function freeYogaTree(node: SootSimNode, seen?: Set<SootSimNode>): void;
63
+ export declare function freeYogaTree(node: SootSimNode): void;
64
64
  export declare function measureText(text: string, sourceStyle: SootSimStyle, maxWidth: number, ctx: MeasureContext, props?: Record<string, any>, node?: SootSimNode, includeInk?: boolean): MeasuredTextResult;
@@ -1,7 +1,7 @@
1
1
  export declare const DISPLAY_SERVER_VERSION = 12;
2
2
  export declare const DISPLAY_SERVER_MAJOR = 2;
3
- export declare const DISPLAY_SERVER_MINOR = 29;
4
- export declare const DISPLAY_SERVER_SUBPROTOCOL = "rnx.display-server.v2.wire12.minor29";
3
+ export declare const DISPLAY_SERVER_MINOR = 30;
4
+ export declare const DISPLAY_SERVER_SUBPROTOCOL = "rnx.display-server.v2.wire12.minor30";
5
5
  export declare const DISPLAY_SERVER_TOKEN_SUBPROTOCOL_PREFIX = "rnx.sim-token.";
6
6
  export declare const RNX_CLOUD_DISPLAY_GRANT_TTL_MS: number;
7
7
  export declare const RNX_CLOUD_DISPLAY_CLOSE: {
@@ -665,6 +665,10 @@ export type WorkerToHost = {
665
665
  } | {
666
666
  type: 'remoteDisplay';
667
667
  connected: boolean;
668
+ } | {
669
+ type: 'remoteDeviceConfiguration';
670
+ configuration: ReactNativeConfigurationSnapshot;
671
+ systemColorScheme: 'light' | 'dark';
668
672
  } | {
669
673
  type: 'replayDevice';
670
674
  posture: DevicePosture | null;
@@ -1,9 +1,10 @@
1
1
  import type { ReactNativeConfigurationKey, ReactNativeConfigurationSnapshot } from '../../../../../src/reactNativeConfigurationContract.ts';
2
2
  export { type ReactNativeConfigurationKey, type ReactNativeConfigurationSnapshot, } from '../../../../../src/reactNativeConfigurationContract.ts';
3
- import type { SettingsValues } from '../../../../../src/settingsContract.ts';
3
+ import { type SettingsValues } from '../../../../../src/settingsContract.ts';
4
4
  declare const MUTABLE_KEYS: readonly ['fontSize', 'boldText', 'reduceMotion', 'largerAccessibilitySizes', 'glassTintAmount', 'reduceTransparency', 'increaseContrast', 'showBorders', 'onOffLabels', 'differentiateWithoutColor', 'smartInvert', 'preferCrossFadeTransitions'];
5
5
  type MutableKey = (typeof MUTABLE_KEYS)[number];
6
6
  export type ReactNativeConfigurationMutation = Partial<Pick<SettingsValues, MutableKey>>;
7
+ export declare function isReactNativeConfigurationSnapshot(value: unknown): value is ReactNativeConfigurationSnapshot;
7
8
  export declare function snapshotReactNativeConfiguration(): ReactNativeConfigurationSnapshot;
8
9
  export declare function changesLayout(changed: readonly ReactNativeConfigurationKey[]): boolean;
9
10
  export declare function applyReactNativeConfiguration(snapshot: ReactNativeConfigurationSnapshot): ReactNativeConfigurationKey[];
package/kotlin/sdk.tar.gz CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "peachsim",
3
- "version": "0.1.2215",
3
+ "version": "0.1.2218",
4
4
  "description": "Vite and Metro plugins, testing drivers, and SDK exports for peach.",
5
5
  "author": "Tamagui LLC",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -1 +1 @@
1
- {"abi":1,"sha256":"2e4d78c7cfb64a492abbe3734e69a59408c00041b36d1a05a2d7fdfcbf6adb7b","file":"node/cli-2e4d78c7cfb64a492abbe3734e69a59408c00041b36d1a05a2d7fdfcbf6adb7b.cjs"}
1
+ {"abi":1,"sha256":"c3cfa87c38bca3be3b225d514efe1b9e2ab9119227137e7190dfa25eccf43fe7","file":"node/cli-c3cfa87c38bca3be3b225d514efe1b9e2ab9119227137e7190dfa25eccf43fe7.cjs"}
@@ -2351,7 +2351,7 @@ export function standinLibrary(
2351
2351
  if (prebuilt) return path.join(prebuilt, recipe.archive)
2352
2352
  }
2353
2353
  }
2354
- const manifest = crateFor(searchRoot, library.slice('lib'.length, -'.a'.length))
2354
+ const manifest = crateFor(searchRoot, path.basename(library, '.a').replace(/^lib/, ''))
2355
2355
  if (!manifest) return null
2356
2356
  const entry = rustCrateEntry(manifest, library)
2357
2357
  const prebuilt = fetchNativeEntry('rust', entry.name, entry.key)
@@ -28,7 +28,7 @@ export function simulatorNativeLibrary(
28
28
  typeof entry.LibraryIdentifier !== 'string'
29
29
  )
30
30
  throw new Error(`${dir}: invalid simulator library paths`)
31
- const archive = /^lib.+\.a$/.test(entry.LibraryPath)
31
+ const archive = /\.a$/.test(entry.LibraryPath)
32
32
  const framework = /\.framework$/.test(entry.LibraryPath)
33
33
  if (!archive && !framework) continue
34
34
  const bundle = path.resolve(dir, entry.LibraryIdentifier, entry.LibraryPath)
@@ -1,26 +0,0 @@
1
- export function agentSessionIdFromCliIdentity(identity: string | null): string | null {
2
- if (!identity) return null
3
- const colon = identity.indexOf(':')
4
- if (colon < 0) return identity.trim() || null
5
- const source = identity.slice(0, colon)
6
- const value = identity.slice(colon + 1).trim()
7
- return source === 'PEACH_CLI_IDENTITY' && value ? value : null
8
- }
9
-
10
- // a lock owner is either a friendly cli label ("active user") or a raw cli
11
- // identity key ("CLAUDE_CODE_SESSION_ID:<uuid>", "gppid-1234"). the cli's sim
12
- // list and the shell's agent indicator both show it, collapsed to a short form
13
- // that still says which agent holds it; an explicit PEACH_CLI_IDENTITY is a
14
- // name its caller chose, so it shows as given.
15
- export function formatLockOwner(owner: string): string {
16
- const colon = owner.indexOf(':')
17
- if (colon <= 0) return owner.length > 24 ? `${owner.slice(0, 21)}…` : owner
18
- const source = owner.slice(0, colon)
19
- const value = owner.slice(colon + 1)
20
- if (source === 'PEACH_CLI_IDENTITY' && value) return value
21
- const short = value.length > 12 ? `${value.slice(0, 8)}…` : value
22
- if (source === 'CLAUDE_CODE_SESSION_ID' || source === 'CODEX_THREAD_ID') {
23
- return `agent ${short}`
24
- }
25
- return `${source} ${short}`
26
- }