diff --git a/src/components/Terminal.css b/src/components/Terminal.css index d5df426..69a7157 100644 --- a/src/components/Terminal.css +++ b/src/components/Terminal.css @@ -39,39 +39,6 @@ gap: 6px; flex: 1; } -.term-tab { - position: relative; - min-width: 96px; - font-family: var(--mono); - font-size: 13.5px; - letter-spacing: 0.04em; - color: var(--muted); - background: transparent; - border: 1px solid var(--hair-2); - border-radius: 8px; - padding: 9px 20px; - cursor: pointer; - transition: color 0.2s, border-color 0.2s, background 0.2s; -} -.term-tab:hover { - color: var(--text-2); -} -.term-tab.active { - color: var(--text); - border-color: var(--accent-line); - background: rgba(255, 255, 255, 0.05); -} -.term-tab-curl { - min-width: 144px; - text-align: left; -} -.term-tab .soon { - position: absolute; - top: 4px; - right: 8px; - font-size: 7px; - padding: 1px 5px; -} .term-copy { font-family: var(--mono); font-size: 12px; diff --git a/src/components/Terminal.jsx b/src/components/Terminal.jsx index 936432f..1e2e1a6 100644 --- a/src/components/Terminal.jsx +++ b/src/components/Terminal.jsx @@ -32,48 +32,26 @@ const DOCTOR_TEXT = ` openral doctor │ USB devices │ ok │ so101, realsense │ └──────────────┴────────┴─────────────────────────────┘`; -// Real openral ROS 2 package names (~/openral), one per product pillar — observability, -// safety, perception, reasoning, skill execution — interleaved like colcon's parallel build. -const CLI_CLONE_CMD = "git clone git@github.com:OpenRAL/openral.git"; -const CLI_SCRIPT = [ - { cmd: CLI_CLONE_CMD }, - { cmd: "just quickstart" }, - { - out: [ - { t: "Starting >>> opentelemetry_cpp_vendor" }, - { t: "Starting >>> openral_safety_kernel" }, - { t: "Finished <<< opentelemetry_cpp_vendor [17.9s]", k: "ok" }, - { t: "Starting >>> openral_perception_ros" }, - { t: "Finished <<< openral_safety_kernel [9.2s]", k: "ok" }, - { t: "Starting >>> openral_reasoner_ros" }, - { t: "Finished <<< openral_perception_ros [14.1s]", k: "ok" }, - { t: "Starting >>> openral_rskill_ros" }, - { t: "Finished <<< openral_reasoner_ros [11.6s]", k: "ok" }, - { t: "Finished <<< openral_rskill_ros [20.9s]", k: "ok" }, - ], - }, - { banner: true }, - { cmd: "doctor" }, - { table: true }, -]; -const CLI_COPY = `${CLI_CLONE_CMD} && cd openral && just quickstart`; - -// Tier-0 (ADR-0021): installs uv + CPython 3.12 + openral-cli only — no ROS 2, -// no colcon build, no REPL launch — so no Starting/Finished lines here, and the -// ending below is the real "next steps" text from scripts/install.sh, condensed. +// Tier-0 (ADR-0021): `curl … | bash` installs uv + CPython 3.12 + openral-cli +// (user-local, no sudo/ROS 2). The `out` lines mirror scripts/install.sh's real +// `==> …` info output, condensed; then `openral` drops into the REPL (banner) and +// `doctor` prints the host table — the same banner + doctor the REPL shows. const CURL_CMD = "curl -fsSL https://raw.githubusercontent.com/OpenRAL/openral/master/scripts/install.sh | bash"; const CURL_SCRIPT = [ { cmd: CURL_CMD }, { out: [ - { t: "▸ installing uv + CPython 3.12…" }, - { t: "▸ installing openral-cli (uv tool install)…" }, - { t: "✓ openral installed: ~/.local/bin/openral", k: "ok" }, + { t: "==> detected platform: linux x86_64" }, + { t: "==> installing uv + CPython 3.12 (uv-managed)…" }, + { t: "==> installing openral-cli (uv tool install)" }, + { t: "==> openral installed: ~/.local/bin/openral", k: "ok" }, { t: "==> Tier-0 install complete.", k: "ok" }, - { t: "openral doctor — diagnose the host (Python, OS, GPU, USB)" }, - { t: "openral install ros — ROS 2 + libusb + udev (sudo, opt-in)" }, ], }, + { cmd: "openral" }, + { banner: true }, + { cmd: "doctor" }, + { table: true }, ]; function flattenReduced(script) { @@ -233,12 +211,11 @@ export default function Terminal() { const reduce = useReducedMotion(); const ref = useRef(null); const inView = useInView(ref, { once: true, amount: 0.4 }); - const [tab, setTab] = useState("cli"); const [copied, setCopied] = useState(false); const copy = async () => { try { - await navigator.clipboard.writeText(tab === "cli" ? CLI_COPY : CURL_CMD); + await navigator.clipboard.writeText(CURL_CMD); setCopied(true); setTimeout(() => setCopied(false), 1800); } catch { @@ -254,8 +231,9 @@ export default function Terminal() { One command. The whole harness.

- OpenRAL installs on top of a ROS 2 + Python environment. The script pulls the typed harness, the - skill loader and the safety forwarders — then openral doctor checks your stack. + One curl command installs uv, CPython 3.12 and the openral CLI — user-local, no sudo. + Then openral doctor checks your stack and openral install ros pulls the + heavier ROS 2 stack when you want it.

@@ -266,35 +244,16 @@ export default function Terminal() { -
- - -
+
- {tab === "cli" ? ( - - ) : ( - - )} +

- Prerequisites: ROS 2 Jazzy · Python 3.12+ · a CUDA GPU for VLA inference. Full guide in the{" "} + Tier-0 needs only Linux or macOS · no sudo. ROS 2 Jazzy and a CUDA GPU come with{" "} + openral install ros for VLA inference. Full guide in the{" "} repository diff --git a/src/videos/manifest.json b/src/videos/manifest.json index 1244e5c..fa89232 100644 --- a/src/videos/manifest.json +++ b/src/videos/manifest.json @@ -161,6 +161,16 @@ "preview": "benchmarks/robocasa-pick_rldx1-rc365-nf4_success/preview.mp4", "full": "benchmarks/robocasa-pick_rldx1-rc365-nf4_success/full.mp4" }, + { + "id": "benchmarks/robotwin_lingbotv1_success", + "category": "benchmarks", + "benchmark": "robotwin", + "rskill": "lingbotv1", + "status": "success", + "poster": "benchmarks/robotwin_lingbotv1_success/poster.jpg", + "preview": "benchmarks/robotwin_lingbotv1_success/preview.mp4", + "full": "benchmarks/robotwin_lingbotv1_success/full.mp4" + }, { "id": "benchmarks/robotwin_smolvla_fail", "category": "benchmarks",