@ioai/lerobot-studio 1.0.0

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/CHANGELOG.md ADDED
@@ -0,0 +1,41 @@
1
+ # Changelog
2
+
3
+ > **Language / 语言:** [English](./CHANGELOG.md) | [简体中文](./CHANGELOG.zh-CN.md)
4
+
5
+ All notable changes to this project will be documented in this file.
6
+
7
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
8
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
9
+
10
+ ## [1.0.0] - 2026-08-05
11
+
12
+ ### Added
13
+
14
+ - Single-package source layout with logical `core`, `platform`, `ui`, `react`, and `web` boundaries
15
+ - Package identity `@ioai/lerobot-studio` (MIT)
16
+ - Shared `ViewerLayout` for app and library shells
17
+ - `LeRobotStudioProvider` public composition root
18
+ - Minimal synthetic LeRobot v2/v3 fixtures under `tests/fixtures/datasets`
19
+ - GitHub Actions CI, nightly browser tests, and release workflow (npm + GHCR)
20
+ - Governance, support, security response targets, privacy disclosure,
21
+ compatibility matrix, CODEOWNERS, and deprecation policy
22
+ - Release evidence for the approved `1.0.0` gates
23
+
24
+ ### Changed
25
+
26
+ - Defined the stable 1.0 library contract as viewer-only, ESM/CSR-only,
27
+ browser-only, React `^19.0.0`, zero telemetry, and backward compatible within
28
+ major version 1
29
+ - Defined exact LeRobot `v2.1` and `v3.0` support; other declared versions are
30
+ unknown rather than prefix-compatible
31
+ - Approved 1.0.0 release gates for unknown-version read-only warnings, blocked
32
+ export, browser validation, consumer validation, and official LeRobot
33
+ `v0.6.1` reader-consumable export
34
+ - Sample datasets are env-injected only; no sample manifest ships in the repo
35
+
36
+ ### Removed
37
+
38
+ - Internal GitLab CI / private deploy configuration
39
+ - Google Analytics and Microsoft Clarity from the open-source web shell
40
+ - Hardcoded monorepo `export` copy script
41
+ - In-repo `public/sample-datasets.manifest.json`
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 IO-AI.TECH
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/NOTICE ADDED
@@ -0,0 +1,42 @@
1
+ LeRobot Studio Third-Party Notice
2
+ =================================
3
+
4
+ This repository depends on third-party packages. The exact dependency graph,
5
+ versions, package registry locations, integrity hashes, and SPDX license
6
+ identifiers are recorded in `package-lock.json`.
7
+
8
+ ## Notable production dependencies
9
+
10
+ - `mediabunny` — MPL-2.0 (Mozilla Public License 2.0). Used for browser-side
11
+ video muxing, demuxing, and conversion during dataset export. MPL-2.0 is an
12
+ OSI-approved weak copyleft license (file-level). Unmodified use as a
13
+ dependency is permitted; if you modify MPL-covered files from mediabunny,
14
+ those modified files must remain under MPL-2.0 and source must be available
15
+ as required by that license.
16
+ - `@fontsource-variable/geist` — OFL-1.1. Font software redistributed under the
17
+ SIL Open Font License. Retain the OFL text when redistributing the font files.
18
+
19
+ Examples of additional non-MIT license identifiers present in the current
20
+ lockfile include:
21
+
22
+ - `argparse` 2.0.1 — Python-2.0
23
+ - `caniuse-lite` 1.0.30001799 — CC-BY-4.0
24
+ - `isexe` 3.1.5 — BlueOak-1.0.0
25
+ - `lightningcss` 1.32.0 and 1.33.0 — MPL-2.0 (primarily a build tool)
26
+ - `spawndamnit` 3.0.1 — `SEE LICENSE IN LICENSE`
27
+ - `tslib` 2.8.1 — 0BSD
28
+
29
+ This list is representative, not exhaustive; development tools, optional
30
+ platform packages, and transitive dependencies may use additional licenses.
31
+ This notice is an index, not a replacement for the applicable third-party
32
+ license texts. Before distributing a built artifact, generate and review a
33
+ complete production-artifact dependency and asset inventory from the exact
34
+ lockfile and build output used for that release.
35
+
36
+ ## Trademarks
37
+
38
+ LeRobot, Hugging Face, GitHub, Geist, and other product or company names are
39
+ trademarks or registered trademarks of their respective owners. LeRobot Studio
40
+ is an independent project by IO-AI.TECH and is not affiliated with, endorsed by,
41
+ or sponsored by Hugging Face, GitHub, Vercel, or the trademark owners of those
42
+ names, except where such a relationship is explicitly stated in writing.
package/README.md ADDED
@@ -0,0 +1,155 @@
1
+ # LeRobot Studio  ·  [Live Demo →](https://lerobot.studio)
2
+
3
+ [简体中文 — README.zh-CN.md](README.zh-CN.md)
4
+
5
+ [![CI](https://github.com/ioai-tech/lerobot-studio/actions/workflows/ci.yml/badge.svg)](https://github.com/ioai-tech/lerobot-studio/actions/workflows/ci.yml)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
7
+ [![Docs](https://img.shields.io/badge/docs-VitePress-blue.svg)](https://ioai-tech.github.io/lerobot-studio/)
8
+
9
+ > Open [LeRobot](https://github.com/huggingface/lerobot) datasets in your browser. View video, charts, and raw data together, or add the same viewer to a React application.
10
+
11
+ Use it as a standalone site at [lerobot.studio](https://lerobot.studio). The React package is not yet published to npm; until it is available, use the standalone app or build from this repository. Local folders and archives are processed in your browser and are not uploaded to a cloud service. If you open a remote URL, the browser requests data from that URL's server.
12
+
13
+ <p align="center">
14
+ <img src=".github/assets/lerobot-studio-demo.webp" alt="LeRobot Studio demo — synchronized video, charts, and episode navigation" width="800" />
15
+ </p>
16
+
17
+ ---
18
+
19
+ ## Documentation
20
+
21
+ | Document | Description |
22
+ | ------------------------------------------ | ---------------------------------------------------------------------------- |
23
+ | [User Guide](docs/user-manual.md) | Open data, browse episodes, inspect panels, edit, export, and use shortcuts. |
24
+ | [Quick Start](docs/quick-start.md) | Start with the standalone app or install the React package. |
25
+ | [Embed in React](docs/embedding.md) | Install and configure the viewer in your application. |
26
+ | [API Reference](docs/api.md) | `LeRobotViewer` props, data sources, and generated types. |
27
+ | [Data formats](docs/data-formats.md) | Supported LeRobot versions and archive types. |
28
+ | [CORS & Range](docs/cors.md) | Headers needed for remote archives. |
29
+ | [Browser support](docs/browser.md) | Chromium / Firefox / WebKit notes. |
30
+ | [Troubleshooting](docs/troubleshooting.md) | Common failure modes. |
31
+ | [Development](docs/development.md) | Local setup and tests. |
32
+ | [Deployment](docs/deployment.md) | Docker, Cloudflare, sample env. |
33
+ | [Contributing](CONTRIBUTING.md) | How to send a PR. |
34
+ | [Security](SECURITY.md) | Reporting vulnerabilities. |
35
+
36
+ Full docs site: [ioai-tech.github.io/lerobot-studio](https://ioai-tech.github.io/lerobot-studio/)
37
+
38
+ ---
39
+
40
+ ## Features
41
+
42
+ - **Open local or remote data** — folders, `.zip`, `.tar`, `.tar.gz`, `.tgz`, and HTTP(S) archives
43
+ - **Inspect data together** — synchronized video, images, charts, and raw features
44
+ - **Navigate efficiently** — search and filter episodes, control playback, and use keyboard shortcuts
45
+ - **Review dataset quality** — inspect dataset statistics and export health-check reports
46
+ - **Edit and export in the standalone app** — update episode tasks, remove or restore episodes, and export `v2.1` or `v3.0` datasets
47
+ - **Embed in React** — use the read-only viewer in a React 19 application
48
+ - **Keep local data local** — local files are processed in the browser; the npm package does not collect usage data
49
+
50
+ ---
51
+
52
+ ## Quick Start (website)
53
+
54
+ Open **[lerobot.studio](https://lerobot.studio)** — no installation required.
55
+
56
+ Choose a local folder, a local archive, or paste a remote archive URL. For a guided walkthrough, see the [User Guide](docs/user-manual.md).
57
+
58
+ ### Run this repo locally
59
+
60
+ ```bash
61
+ git clone https://github.com/ioai-tech/lerobot-studio.git
62
+ cd lerobot-studio
63
+ npm ci
64
+ npm run fixtures:generate
65
+ npm run dev # http://localhost:5173
66
+ npm run build # production SPA → dist/
67
+ ```
68
+
69
+ Docker:
70
+
71
+ ```bash
72
+ docker build -t lerobot-studio .
73
+ docker run --rm -p 8080:8080 lerobot-studio
74
+ ```
75
+
76
+ ---
77
+
78
+ ## Embedding in React
79
+
80
+ The React package has not yet been published to npm. Its package name will be `@ioai/lerobot-studio`; until its first registry release, use the standalone app or build from this repository.
81
+
82
+ ```bash
83
+ npm install @ioai/lerobot-studio
84
+ ```
85
+
86
+ > **Requirements:** `react` and `react-dom` `^19.0.0`, ES modules, and client-side rendering. Server-side rendering, React Server Components, and Node.js are not supported.
87
+
88
+ ### Stylesheet
89
+
90
+ ```tsx
91
+ import '@ioai/lerobot-studio/style.css';
92
+ ```
93
+
94
+ ### Basic usage
95
+
96
+ ```tsx
97
+ import { LeRobotViewer } from '@ioai/lerobot-studio';
98
+ import '@ioai/lerobot-studio/style.css';
99
+
100
+ export function App() {
101
+ return (
102
+ <div style={{ height: 720, minHeight: 480 }}>
103
+ <LeRobotViewer dataSource="https://example.com/dataset.zip" />
104
+ </div>
105
+ );
106
+ }
107
+ ```
108
+
109
+ Give the wrapper an explicit height. The viewer fills its parent and does not set the page height.
110
+
111
+ ### Next.js (client only)
112
+
113
+ ```tsx
114
+ 'use client';
115
+
116
+ import dynamic from 'next/dynamic';
117
+
118
+ const Viewer = dynamic(() => import('@ioai/lerobot-studio').then((m) => m.LeRobotViewer), {
119
+ ssr: false,
120
+ });
121
+ ```
122
+
123
+ More integration examples: [Embedding Guide](docs/embedding.md) · [API Reference](docs/api.md).
124
+
125
+ ---
126
+
127
+ ## Supported datasets
128
+
129
+ | `codebase_version` | Open | Notes |
130
+ | ------------------------------------------------ | ---------------------- | ------------------------------------------- |
131
+ | `v2.1` | View, edit, and export | Fully supported |
132
+ | `v3.0` | View, edit, and export | Fully supported |
133
+ | Newer `v2` or `v3` minor version | View only | Editing and export are disabled |
134
+ | `v2.0`, other major versions, or missing version | Not opened | The app does not guess a compatible version |
135
+
136
+ Archives: `.zip`, `.tar`, `.tar.gz`, `.tgz`.
137
+
138
+ The npm package is for viewing and in-session episode changes. The export engine is only available in the standalone app. Details: [Data formats](docs/data-formats.md).
139
+
140
+ ---
141
+
142
+ ## Contributing
143
+
144
+ Issues and PRs welcome — please read [CONTRIBUTING.md](CONTRIBUTING.md) first.
145
+
146
+ - Bugs / features → GitHub Issues
147
+ - Security → [SECURITY.md](SECURITY.md)
148
+
149
+ ---
150
+
151
+ ## License
152
+
153
+ [MIT](LICENSE) © 2026 [IO-AI.TECH](https://io-ai.tech)
154
+
155
+ Third-party notices: [NOTICE](NOTICE). LeRobot Studio is an independent project and is not affiliated with Hugging Face.
@@ -0,0 +1,155 @@
1
+ # LeRobot Studio &nbsp;·&nbsp; [在线演示 →](https://lerobot.studio)
2
+
3
+ [English — README.md](README.md)
4
+
5
+ [![CI](https://github.com/ioai-tech/lerobot-studio/actions/workflows/ci.yml/badge.svg)](https://github.com/ioai-tech/lerobot-studio/actions/workflows/ci.yml)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
7
+ [![Docs](https://img.shields.io/badge/docs-VitePress-blue.svg)](https://ioai-tech.github.io/lerobot-studio/)
8
+
9
+ > 在浏览器中打开 [LeRobot](https://github.com/huggingface/lerobot) 数据集,同时查看视频、图表和原始数据;也可以将同一套查看器加入 React 应用。
10
+
11
+ 你可以直接使用 [lerobot.studio](https://lerobot.studio)。React 包尚未发布到 npm;发布前请使用独立应用或从本仓库构建。本地文件夹和压缩包会在浏览器中处理,不会上传到云端。只有打开远程链接时,浏览器才会向该链接所在的服务器请求数据。
12
+
13
+ <p align="center">
14
+ <img src=".github/assets/lerobot-studio-demo.webp" alt="LeRobot Studio 演示 — 同步视频、图表与 Episode 浏览" width="800" />
15
+ </p>
16
+
17
+ ---
18
+
19
+ ## 文档
20
+
21
+ | 文档 | 说明 |
22
+ | ----------------------------------------- | ---------------------------------------------------- |
23
+ | [使用指南](docs/user-manual.zh-CN.md) | 打开数据、浏览 Episode、查看面板、编辑、导出和快捷键 |
24
+ | [快速开始](docs/quick-start.zh-CN.md) | 使用独立应用或安装 React 包 |
25
+ | [嵌入 React](docs/embedding.zh-CN.md) | 在自己的应用中安装和配置查看器 |
26
+ | [API 参考](docs/api.zh-CN.md) | `LeRobotViewer` 属性、数据源和类型 |
27
+ | [数据格式](docs/data-formats.zh-CN.md) | 支持的数据集版本与归档类型 |
28
+ | [CORS 与 Range](docs/cors.zh-CN.md) | 远程归档需要的响应头 |
29
+ | [浏览器支持](docs/browser.zh-CN.md) | Chromium / Firefox / WebKit |
30
+ | [故障排查](docs/troubleshooting.zh-CN.md) | 常见打不开的情况 |
31
+ | [开发](docs/development.zh-CN.md) | 本地环境与测试 |
32
+ | [部署](docs/deployment.zh-CN.md) | Docker、Cloudflare、样例环境变量 |
33
+ | [贡献指南](CONTRIBUTING.zh-CN.md) | 怎么提 PR |
34
+ | [安全](SECURITY.zh-CN.md) | 漏洞报告 |
35
+
36
+ 文档站:[ioai-tech.github.io/lerobot-studio](https://ioai-tech.github.io/lerobot-studio/)
37
+
38
+ ---
39
+
40
+ ## 功能
41
+
42
+ - **打开本地或远程数据** — 文件夹、`.zip`、`.tar`、`.tar.gz`、`.tgz` 和 HTTP(S) 压缩包
43
+ - **同步查看数据** — 视频、图像、图表和原始特征保持在同一帧
44
+ - **快速浏览 Episode** — 搜索和筛选 Episode,控制播放,并使用键盘快捷键
45
+ - **检查数据集质量** — 查看数据集统计信息,导出健康检查报告
46
+ - **在独立应用中编辑和导出** — 修改 Episode 任务、删除或恢复 Episode,并导出 `v2.1` 或 `v3.0` 数据集
47
+ - **嵌入 React** — 在 React 19 应用中使用只读查看器
48
+ - **本地数据留在本地** — 本地文件在浏览器中处理;npm 包不会收集使用数据
49
+
50
+ ---
51
+
52
+ ## 快速开始(网站)
53
+
54
+ 打开 **[lerobot.studio](https://lerobot.studio)**,无需安装。
55
+
56
+ 选择本地文件夹、本地压缩包,或粘贴远程压缩包地址。完整操作说明见 [使用指南](docs/user-manual.zh-CN.md)。
57
+
58
+ ### 在本地运行项目
59
+
60
+ ```bash
61
+ git clone https://github.com/ioai-tech/lerobot-studio.git
62
+ cd lerobot-studio
63
+ npm ci
64
+ npm run fixtures:generate
65
+ npm run dev # http://localhost:5173
66
+ npm run build # 生产包 → dist/
67
+ ```
68
+
69
+ Docker:
70
+
71
+ ```bash
72
+ docker build -t lerobot-studio .
73
+ docker run --rm -p 8080:8080 lerobot-studio
74
+ ```
75
+
76
+ ---
77
+
78
+ ## 嵌入 React
79
+
80
+ React 包尚未发布到 npm。其包名为 `@ioai/lerobot-studio`;在首次发布前,请使用独立应用或从本仓库构建。
81
+
82
+ ```bash
83
+ npm install @ioai/lerobot-studio
84
+ ```
85
+
86
+ > **环境要求:** `react` 和 `react-dom` `^19.0.0`、ES 模块和客户端渲染。不支持服务端渲染、React Server Components 和 Node.js。
87
+
88
+ ### 样式
89
+
90
+ ```tsx
91
+ import '@ioai/lerobot-studio/style.css';
92
+ ```
93
+
94
+ ### 基本用法
95
+
96
+ ```tsx
97
+ import { LeRobotViewer } from '@ioai/lerobot-studio';
98
+ import '@ioai/lerobot-studio/style.css';
99
+
100
+ export function App() {
101
+ return (
102
+ <div style={{ height: 720, minHeight: 480 }}>
103
+ <LeRobotViewer dataSource="https://example.com/dataset.zip" />
104
+ </div>
105
+ );
106
+ }
107
+ ```
108
+
109
+ 外层容器需要有明确高度。查看器会填满父元素,不会自行决定页面高度。
110
+
111
+ ### Next.js(仅客户端)
112
+
113
+ ```tsx
114
+ 'use client';
115
+
116
+ import dynamic from 'next/dynamic';
117
+
118
+ const Viewer = dynamic(() => import('@ioai/lerobot-studio').then((m) => m.LeRobotViewer), {
119
+ ssr: false,
120
+ });
121
+ ```
122
+
123
+ 更多集成示例:[嵌入指南](docs/embedding.zh-CN.md) · [API 参考](docs/api.zh-CN.md)。
124
+
125
+ ---
126
+
127
+ ## 支持的数据集
128
+
129
+ | `codebase_version` | 打开 | 说明 |
130
+ | ------------------------------ | ------------------ | ------------------------ |
131
+ | `v2.1` | 可查看、编辑和导出 | 完全支持 |
132
+ | `v3.0` | 可查看、编辑和导出 | 完全支持 |
133
+ | 较新的 `v2` 或 `v3` minor 版本 | 仅查看 | 不支持编辑和导出 |
134
+ | `v2.0`、其他主版本或缺失版本 | 不打开 | 应用不会猜测可兼容的版本 |
135
+
136
+ 归档:`.zip`、`.tar`、`.tar.gz`、`.tgz`。
137
+
138
+ npm 包提供查看和会话内的 Episode 修改功能。导出引擎只在独立应用中提供。详见 [数据格式](docs/data-formats.zh-CN.md)。
139
+
140
+ ---
141
+
142
+ ## 参与贡献
143
+
144
+ 提交 Issue 或 Pull Request 前,请阅读 [CONTRIBUTING.zh-CN.md](CONTRIBUTING.zh-CN.md)。
145
+
146
+ - Bug / 需求 → GitHub Issues
147
+ - 安全问题 → [SECURITY.zh-CN.md](SECURITY.zh-CN.md)
148
+
149
+ ---
150
+
151
+ ## 许可证
152
+
153
+ [MIT](LICENSE) © 2026 [IO-AI.TECH](https://io-ai.tech)
154
+
155
+ 第三方说明见 [NOTICE](NOTICE)。LeRobot Studio 是独立项目,与 Hugging Face 没有附属关系。