Files
purpleandClaude Opus 5.5 b86747baee 3.0.8
- Web search with five services in turn, no key needed, pages read like a reader view
- A long video renders in the background, videos made in the chat play there, Wan 2.1 saves mp4
- A graphics card per task with two cards, AMD on Windows gets the current ROCm build, Intel Arc its own
- The LU Engine plans memory from the model file, says what a long context costs, keeps one copy of the model
- Settings from the chat with a confirmation card, Storage puts models, gallery and runtime in one folder
- Remove refusals from a local model in the Model Manager
- Native HiRes in Edit, LoRA stack with search and strength from -20 to 20
- Ask in Code asks before every external tool, REA shows only in Agent and Code
- Your phone on this computer (Remote), paired by QR code
- Wan 2.2 14B runs from Animate and Video, Train new on a Mac shows the trigger word field
- Temperature is held to 1.5, memories can be deleted, the onboarding runs once
- GitHub issues 187, 188, 190, 191, 193 and 194

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 02:52:46 -07:00

40 lines
1.6 KiB
JavaScript
Executable File

#!/usr/bin/env node
// Fuehrt einen JS-Ausdruck in der laufenden LU-App im iOS-Simulator aus und
// gibt das Ergebnis als JSON aus. Gegenstueck zu ../android-webview-eval.mjs.
//
// Aufruf:
// node scripts/mobile/ios/eval.mjs <udid|name|booted> '<ausdruck>'
// node scripts/mobile/ios/eval.mjs <udid|name|booted> --invoke <kommando> ['<json-argumente>']
//
// Beispiele:
// node scripts/mobile/ios/eval.mjs LU-iOS-klein 'document.title'
// node scripts/mobile/ios/eval.mjs LU-iOS-klein --invoke bundled_engine_status
//
// Die WebView muss inspizierbar sein: Debug-Bau, oder Release-Bau mit dem
// Cargo-Feature `abnahme`. Umgebung: LU_IOS_BUNDLE waehlt die Kennung.
import { connect } from "./ios-harness.mjs";
const BUNDLE = process.env.LU_IOS_BUNDLE || "com.purpledoubled.lu";
const [geraet, ...rest] = process.argv.slice(2);
let src;
if (rest[0] === "--invoke") {
const kommando = rest[1];
const args = rest[2] ? JSON.parse(rest[2]) : {};
if (!kommando) throw new Error("--invoke braucht einen Kommandonamen");
// Fehler eines Kommandos kommen als Wert zurueck, nicht als Ausnahme ohne Text.
src = `window.__TAURI_INTERNALS__.invoke(${JSON.stringify(kommando)}, ${JSON.stringify(args)})
.then((ok) => ({ ok }), (err) => ({ err: String(err && err.message ? err.message : err) }))`;
} else {
src = rest.join(" ");
}
if (!geraet || !src) {
console.error("Aufruf: eval.mjs <udid|name|booted> '<ausdruck>' | --invoke <kommando> '<json>'");
process.exit(2);
}
const s = await connect({ bundleId: BUNDLE, geraet });
try {
console.log(JSON.stringify(await s.evalJs(src), null, 1));
} finally {
await s.trennen();
}