peachsim 0.1.659 → 0.1.660
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/cli-update.ts +53 -21
- package/cli/commands/compat.ts +6 -2
- package/cli/commands/control.ts +12 -3
- package/cli/commands/inspect.ts +16 -14
- package/cli/commands/upgrade.ts +4 -2
- package/cli/current-sim.ts +4 -0
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-identity.cjs +1 -1
- package/dist-lib/agent-sessions.cjs +1 -1
- package/dist-lib/attached-projects.cjs +1 -1
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +1 -1
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +1 -1
- package/dist-lib/bridge-contract-input.cjs +1 -1
- package/dist-lib/bridge-contract-input.mjs +1 -1
- package/dist-lib/bridge-contract.cjs +1 -1
- package/dist-lib/bridge-contract.mjs +1 -1
- package/dist-lib/capture-contract.cjs +1 -1
- package/dist-lib/capture-contract.mjs +1 -1
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/cloud-contract.cjs +1 -1
- package/dist-lib/cloud-contract.mjs +1 -1
- package/dist-lib/cloud-test-args.cjs +1 -1
- package/dist-lib/cloud-test-args.mjs +1 -1
- package/dist-lib/cloud.cjs +1 -1
- package/dist-lib/cloud.mjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +1 -1
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +1 -1
- package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
- package/dist-lib/host/replacement-module-handler.cjs +1 -1
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +5 -1
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/jump-to-source-native.cjs +1 -1
- package/dist-lib/kotlin-host.cjs +5 -1
- package/dist-lib/menu.cjs +1 -1
- package/dist-lib/menu.mjs +1 -1
- package/dist-lib/metro-fingerprint-registry.cjs +1 -1
- package/dist-lib/metro-fingerprint-registry.mjs +1 -1
- package/dist-lib/metro-production-bundle.cjs +1 -1
- package/dist-lib/metro-production-bundle.mjs +1 -1
- package/dist-lib/metro.cjs +1 -1
- package/dist-lib/native-app-identity.cjs +1 -1
- package/dist-lib/native-app-identity.mjs +1 -1
- package/dist-lib/plist.cjs +1 -1
- package/dist-lib/plist.mjs +1 -1
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/public-brand.cjs +1 -1
- package/dist-lib/react-native-host-modules.cjs +1 -1
- package/dist-lib/react-native-host-modules.mjs +1 -1
- package/dist-lib/render-mode.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/sdk.cjs +1 -1
- package/dist-lib/sdk.mjs +1 -1
- package/dist-lib/skills.cjs +8 -4
- package/dist-lib/swift-compile.cjs +1 -1
- package/dist-lib/swift-compile.mjs +1 -1
- package/dist-lib/swift-package.cjs +1 -1
- package/dist-lib/swift-package.mjs +1 -1
- package/dist-lib/swift-submit.cjs +1 -1
- package/dist-lib/swift-submit.mjs +1 -1
- package/dist-lib/swift.cjs +1 -1
- package/dist-lib/vite-swift.cjs +1 -1
- package/dist-lib/vite.cjs +1 -1
- package/kotlin/AppSources/android/app/Activity.kt +48 -3
- package/kotlin/AppSources/android/app/Application.kt +4 -0
- package/kotlin/AppSources/android/content/res/Configuration.kt +4 -0
- package/kotlin/AppSources/android/content/res/Resources.kt +3 -1
- package/kotlin/AppSources/androidx/activity/ComponentActivity.kt +36 -3
- package/kotlin/AppSources/dev/peach/app/PeachApp.kt +207 -73
- package/kotlin/ComposeSources/PeachComposeHost.kt +15 -3
- package/kotlin/fork/README.md +1 -0
- package/kotlin/fork/compose-worker-globals.patch +26 -0
- package/kotlin/fork/fork.json +1 -1
- package/kotlin/toolchain.json +3 -3
- package/package.json +1 -1
- package/src/kotlin-app.ts +7 -0
- package/src/kotlin-host.ts +4 -0
package/cli/cli-update.ts
CHANGED
|
@@ -195,29 +195,61 @@ export function takeCliUpdateNotification(
|
|
|
195
195
|
return update
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
): Promise<Buffer> {
|
|
202
|
-
|
|
198
|
+
// `stallMs` bounds silence, not the whole transfer: the executable is tens of
|
|
199
|
+
// megabytes, and on a slow link it keeps arriving well past any fixed total.
|
|
200
|
+
// only a server that does not answer, or a stream that stops, is a failure.
|
|
201
|
+
export async function fetchCliReleaseFile(url: string, stallMs: number): Promise<Buffer> {
|
|
202
|
+
const controller = new AbortController()
|
|
203
|
+
let timer = setTimeout(() => controller.abort(), stallMs)
|
|
204
|
+
const seconds = Math.round(stallMs / 1000)
|
|
203
205
|
try {
|
|
204
|
-
response
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
206
|
+
let response: Response
|
|
207
|
+
try {
|
|
208
|
+
response = await fetch(url, {
|
|
209
|
+
headers: { accept: 'application/octet-stream' },
|
|
210
|
+
signal: controller.signal,
|
|
211
|
+
})
|
|
212
|
+
} catch (error) {
|
|
213
|
+
throw new Error(
|
|
214
|
+
controller.signal.aborted
|
|
215
|
+
? `the peach update service did not answer ${url} within ${seconds}s`
|
|
216
|
+
: `could not reach the peach update service at ${url}: ${
|
|
217
|
+
error instanceof Error ? error.message : String(error)
|
|
218
|
+
}`,
|
|
219
|
+
)
|
|
220
|
+
}
|
|
221
|
+
// the answer arrived; the body gets its own full window.
|
|
222
|
+
clearTimeout(timer)
|
|
223
|
+
timer = setTimeout(() => controller.abort(), stallMs)
|
|
224
|
+
if (!response.ok) {
|
|
225
|
+
throw new Error(
|
|
226
|
+
`peach update download failed: ${response.status} ${response.statusText} (${url})`,
|
|
227
|
+
)
|
|
228
|
+
}
|
|
229
|
+
if (!response.body) throw new Error(`peach update service sent no body for ${url}`)
|
|
230
|
+
const reader = response.body.getReader()
|
|
231
|
+
const chunks: Uint8Array[] = []
|
|
232
|
+
try {
|
|
233
|
+
for (;;) {
|
|
234
|
+
const { done, value } = await reader.read()
|
|
235
|
+
if (done) break
|
|
236
|
+
chunks.push(value)
|
|
237
|
+
clearTimeout(timer)
|
|
238
|
+
timer = setTimeout(() => controller.abort(), stallMs)
|
|
239
|
+
}
|
|
240
|
+
} catch (error) {
|
|
241
|
+
throw new Error(
|
|
242
|
+
controller.signal.aborted
|
|
243
|
+
? `peach update download of ${url} stalled for ${seconds}s`
|
|
244
|
+
: `peach update download of ${url} failed: ${
|
|
245
|
+
error instanceof Error ? error.message : String(error)
|
|
246
|
+
}`,
|
|
247
|
+
)
|
|
248
|
+
}
|
|
249
|
+
return Buffer.concat(chunks)
|
|
250
|
+
} finally {
|
|
251
|
+
clearTimeout(timer)
|
|
219
252
|
}
|
|
220
|
-
return Buffer.from(await response.arrayBuffer())
|
|
221
253
|
}
|
|
222
254
|
|
|
223
255
|
export async function refreshCliUpdateCache(
|
package/cli/commands/compat.ts
CHANGED
|
@@ -277,9 +277,13 @@ async function scanLocalNative(
|
|
|
277
277
|
}
|
|
278
278
|
}
|
|
279
279
|
// a local expo module declares its name in its native definition, Name("X"),
|
|
280
|
-
// whether or not the app's javascript spells it out.
|
|
280
|
+
// whether or not the app's javascript spells it out. swift first, so a
|
|
281
|
+
// module the report marks Swift points at its swift definition.
|
|
281
282
|
for (const [, files] of nativeFilesByModule) {
|
|
282
|
-
|
|
283
|
+
const swiftFirst = [...files].sort(
|
|
284
|
+
(a, b) => Number(b.endsWith('.swift')) - Number(a.endsWith('.swift')),
|
|
285
|
+
)
|
|
286
|
+
for (const file of swiftFirst) {
|
|
283
287
|
const text = readSmallFile(file)
|
|
284
288
|
if (!text) continue
|
|
285
289
|
for (const match of text.matchAll(/\bName\(\s*"(\w+)"\s*\)/g)) {
|
package/cli/commands/control.ts
CHANGED
|
@@ -2069,7 +2069,13 @@ async function runUseLikeCommand(args: string[], opts: ControlCommandOptions = {
|
|
|
2069
2069
|
// human is actively driving is the same footgun `claim` guards against,
|
|
2070
2070
|
// so honor the lock here too (this command historically did not, which
|
|
2071
2071
|
// let `peach use <id>` steal the user's live tab).
|
|
2072
|
-
|
|
2072
|
+
// a lease this CLI identity holds is its own target already.
|
|
2073
|
+
if (
|
|
2074
|
+
target.lockedBy &&
|
|
2075
|
+
!target.lockedByMe &&
|
|
2076
|
+
target.lockExpiresAt &&
|
|
2077
|
+
target.lockExpiresAt > Date.now()
|
|
2078
|
+
) {
|
|
2073
2079
|
const secs = Math.max(0, Math.round((target.lockExpiresAt - Date.now()) / 1000))
|
|
2074
2080
|
if (target.lockedByKind === 'user-active') {
|
|
2075
2081
|
// the active human is interacting with this tab. never steal it,
|
|
@@ -2086,7 +2092,7 @@ async function runUseLikeCommand(args: string[], opts: ControlCommandOptions = {
|
|
|
2086
2092
|
// a cli lease is short (60s, refreshes per command) so this is
|
|
2087
2093
|
// usually a real conflict, not a stale lock.
|
|
2088
2094
|
console.error(
|
|
2089
|
-
` refused: ${target.id} is leased by ${target.lockedBy} (${secs}s)`,
|
|
2095
|
+
` refused: ${target.id} is leased by ${formatLockOwner(target.lockedBy)} (${secs}s)`,
|
|
2090
2096
|
)
|
|
2091
2097
|
console.error(
|
|
2092
2098
|
` \`peach use ${target.id} --force\` to take it, or \`peach open --new\` for a fresh sim`,
|
|
@@ -2130,7 +2136,10 @@ export async function runClaimCommand(args: string[], opts: ControlCommandOption
|
|
|
2130
2136
|
const sims = await bridge.listSims()
|
|
2131
2137
|
const target = resolveTargetSim(sims, parsed.positional[0] || parsed.simId)
|
|
2132
2138
|
const priorHolder =
|
|
2133
|
-
force &&
|
|
2139
|
+
force &&
|
|
2140
|
+
target.lockedBy &&
|
|
2141
|
+
!target.lockedByMe &&
|
|
2142
|
+
target.lockedByKind !== 'user-active'
|
|
2134
2143
|
? target.lockedBy
|
|
2135
2144
|
: null
|
|
2136
2145
|
const result = await bridge.claim(target.id, { force })
|
package/cli/commands/inspect.ts
CHANGED
|
@@ -274,6 +274,13 @@ function formatNetworkStatus(e: NetworkEntryPayload): string {
|
|
|
274
274
|
return String(e.status)
|
|
275
275
|
}
|
|
276
276
|
|
|
277
|
+
// how long a reload waits for the guest to boot, emit ready and settle. one
|
|
278
|
+
// budget for an in-place app reload and a full page reload alike: a real app
|
|
279
|
+
// that signs in and fetches over the network remounts past 10 s on a large
|
|
280
|
+
// screen, while a full engine boot runs 5-8 s unloaded and well past 10 s on
|
|
281
|
+
// a busy box.
|
|
282
|
+
const RELOAD_READY_TIMEOUT_MS = 30000
|
|
283
|
+
|
|
277
284
|
function describeReloadReadyBlocker(result: ReloadReadyResult): string {
|
|
278
285
|
if (result.externalError) return `guest app errored: ${result.externalError}`
|
|
279
286
|
if (result.loadingText) return `still showing "${result.loadingText}"`
|
|
@@ -3499,10 +3506,9 @@ export async function runInspect(args: string[], opts: InspectOptions) {
|
|
|
3499
3506
|
rnxExit(1)
|
|
3500
3507
|
}
|
|
3501
3508
|
// reload waits for the guest app's `sootsim:externalAppReady` signal
|
|
3502
|
-
// (not just a live ws connection)
|
|
3503
|
-
// failures surface as console errors that pile up fast — bail
|
|
3504
|
-
// in that case instead of waiting the full budget.
|
|
3505
|
-
const READY_TIMEOUT_MS = 10000
|
|
3509
|
+
// (not just a live ws connection) within RELOAD_READY_TIMEOUT_MS. fatal
|
|
3510
|
+
// bundle failures surface as console errors that pile up fast — bail
|
|
3511
|
+
// early in that case instead of waiting the full budget.
|
|
3506
3512
|
let issuedReload = false
|
|
3507
3513
|
let inPlaceReload = false
|
|
3508
3514
|
try {
|
|
@@ -3560,30 +3566,27 @@ export async function runInspect(args: string[], opts: InspectOptions) {
|
|
|
3560
3566
|
let readyResult: ReloadReadyResult | null = null
|
|
3561
3567
|
if (inPlaceReload) {
|
|
3562
3568
|
readyResult = await pollForReloadReady(bridge, {
|
|
3563
|
-
timeoutMs:
|
|
3569
|
+
timeoutMs: RELOAD_READY_TIMEOUT_MS,
|
|
3564
3570
|
})
|
|
3565
3571
|
} else {
|
|
3566
3572
|
// full page reload — wait for a fresh bridge before polling for ready.
|
|
3567
3573
|
// engine-drift escalation made page reloads the COMMON case during
|
|
3568
|
-
// engine iteration
|
|
3569
|
-
// well past 10s on a busy box — a 10s reconnect budget here reads
|
|
3570
|
-
// as "bridge-reconnect fails" exactly when someone is rebuilding.
|
|
3571
|
-
const PAGE_RELOAD_TIMEOUT_MS = 30000
|
|
3574
|
+
// engine iteration.
|
|
3572
3575
|
if (issuedReload) await sleep(300)
|
|
3573
3576
|
const reconnected = await waitForBridgeConnected(
|
|
3574
3577
|
wsPort,
|
|
3575
3578
|
commandTimeoutMs,
|
|
3576
3579
|
simId,
|
|
3577
|
-
{ timeoutMs:
|
|
3580
|
+
{ timeoutMs: RELOAD_READY_TIMEOUT_MS, simIdSource },
|
|
3578
3581
|
)
|
|
3579
3582
|
if (reconnected) {
|
|
3580
3583
|
finalBridge = reconnected
|
|
3581
3584
|
readyResult = await pollForReloadReady(reconnected, {
|
|
3582
|
-
timeoutMs:
|
|
3585
|
+
timeoutMs: RELOAD_READY_TIMEOUT_MS,
|
|
3583
3586
|
})
|
|
3584
3587
|
} else {
|
|
3585
3588
|
console.log(
|
|
3586
|
-
` ⚠ reload: bridge never reconnected within ${
|
|
3589
|
+
` ⚠ reload: bridge never reconnected within ${RELOAD_READY_TIMEOUT_MS}ms`,
|
|
3587
3590
|
)
|
|
3588
3591
|
finalBridge = null
|
|
3589
3592
|
}
|
|
@@ -3643,7 +3646,6 @@ export async function runInspect(args: string[], opts: InspectOptions) {
|
|
|
3643
3646
|
}
|
|
3644
3647
|
|
|
3645
3648
|
case 'storage-clear': {
|
|
3646
|
-
const READY_TIMEOUT_MS = 10000
|
|
3647
3649
|
await clearConsole(bridge)
|
|
3648
3650
|
const cleared = await bridge.send({
|
|
3649
3651
|
type: 'evaluate',
|
|
@@ -3665,7 +3667,7 @@ export async function runInspect(args: string[], opts: InspectOptions) {
|
|
|
3665
3667
|
}
|
|
3666
3668
|
|
|
3667
3669
|
const readyResult = await pollForReloadReady(bridge, {
|
|
3668
|
-
timeoutMs:
|
|
3670
|
+
timeoutMs: RELOAD_READY_TIMEOUT_MS,
|
|
3669
3671
|
})
|
|
3670
3672
|
|
|
3671
3673
|
if (wantsJson(effectiveArgs)) {
|
package/cli/commands/upgrade.ts
CHANGED
|
@@ -120,7 +120,7 @@ export async function upgradeCli(options: UpgradeOptions = {}): Promise<void> {
|
|
|
120
120
|
|
|
121
121
|
console.log(` v${current} → v${latest}`)
|
|
122
122
|
console.log(` downloading ${artifact}...`)
|
|
123
|
-
const executable = await fetchCliReleaseFile(artifactUrl,
|
|
123
|
+
const executable = await fetchCliReleaseFile(artifactUrl, 30_000)
|
|
124
124
|
const actualSha = createHash('sha256').update(executable).digest('hex')
|
|
125
125
|
if (actualSha !== expectedSha) {
|
|
126
126
|
throw new Error(
|
|
@@ -129,7 +129,9 @@ export async function upgradeCli(options: UpgradeOptions = {}): Promise<void> {
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
const executablePath = path.resolve(options.cliExecutablePath ?? process.execPath)
|
|
132
|
-
const tempDir = fs.mkdtempSync(
|
|
132
|
+
const tempDir = fs.mkdtempSync(
|
|
133
|
+
path.join(path.dirname(executablePath), '.peach-update-'),
|
|
134
|
+
)
|
|
133
135
|
const candidatePath = path.join(tempDir, path.basename(executablePath))
|
|
134
136
|
try {
|
|
135
137
|
fs.writeFileSync(candidatePath, executable, { mode: 0o755 })
|
package/cli/current-sim.ts
CHANGED
|
@@ -21,6 +21,10 @@ const IDENTITY_ENV_VARS = [
|
|
|
21
21
|
'PEACH_CLI_IDENTITY', // explicit override — fastest path, skips all pid lookups
|
|
22
22
|
'CLAUDE_CODE_SESSION_ID', // claude code, if ever set
|
|
23
23
|
'CODEX_THREAD_ID', // codex / openai agent thread, stable across tool invocations
|
|
24
|
+
// a Team Machine session, per agent run. its other runners set no session
|
|
25
|
+
// variable of their own, and the terminal variables below are inherited from
|
|
26
|
+
// whatever shell started the daemon, so every such agent would share one key.
|
|
27
|
+
'TM_SESSION',
|
|
24
28
|
'TERM_SESSION_ID', // macOS Terminal.app + iTerm2
|
|
25
29
|
'ITERM_SESSION_ID', // iTerm2 (older variant)
|
|
26
30
|
'TMUX_PANE', // tmux — stable per pane
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/beta.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/beta.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/cloud.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/cloud.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
4
4
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
package/dist-lib/config.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/detox/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/home-paths.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
|
|
3
3
|
// src/host/fetch-proxy-overrides.ts
|
|
4
4
|
var FETCH_PROXY_BROWSER_USER_AGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -837,6 +837,10 @@ var IDENTITY_ENV_VARS = [
|
|
|
837
837
|
// claude code, if ever set
|
|
838
838
|
"CODEX_THREAD_ID",
|
|
839
839
|
// codex / openai agent thread, stable across tool invocations
|
|
840
|
+
// a Team Machine session, per agent run. its other runners set no session
|
|
841
|
+
// variable of their own, and the terminal variables below are inherited from
|
|
842
|
+
// whatever shell started the daemon, so every such agent would share one key.
|
|
843
|
+
"TM_SESSION",
|
|
840
844
|
"TERM_SESSION_ID",
|
|
841
845
|
// macOS Terminal.app + iTerm2
|
|
842
846
|
"ITERM_SESSION_ID",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
package/dist-lib/kotlin-host.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -306,6 +306,7 @@ async function kotlinAppArtifact(app, moduleRoot, origin) {
|
|
|
306
306
|
" ),",
|
|
307
307
|
` { ${app.applicationClass ?? "android.app.Application"}() },`,
|
|
308
308
|
` { ${app.launcher.targetClass}() },`,
|
|
309
|
+
` ${app.handlesUiMode},`,
|
|
309
310
|
" ),",
|
|
310
311
|
" density, fontScale, locale, backend, stencilBits, regular, medium, bold, statusBar, navigationBar, night, invalidate,",
|
|
311
312
|
")",
|
|
@@ -315,6 +316,9 @@ async function kotlinAppArtifact(app, moduleRoot, origin) {
|
|
|
315
316
|
"",
|
|
316
317
|
"@JsExport",
|
|
317
318
|
"fun peachAppTask(foreground: Boolean) = dev.peach.app.peachAppTask(foreground)",
|
|
319
|
+
"",
|
|
320
|
+
"@JsExport",
|
|
321
|
+
"fun peachAppNight(night: Boolean) = dev.peach.app.peachAppNight(night)",
|
|
318
322
|
""
|
|
319
323
|
].join("\n")
|
|
320
324
|
};
|
package/dist-lib/menu.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/menu.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
package/dist-lib/metro.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! rnx v0.1.
|
|
1
|
+
/*! rnx v0.1.660 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|