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.
- 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",