API
本页说明 @ioai/lerobot-studio 的公开 API。这个包提供查看器、归档辅助函数及其类型;不包含独立应用中的导出引擎。
文末自动生成的报告是完整 API 参考。修改源码后运行 npm run api:report,不要直接编辑生成的报告。
示例
tsx
import { LeRobotViewer } from '@ioai/lerobot-studio';
import '@ioai/lerobot-studio/style.css';
<LeRobotViewer dataSource="https://example.com/dataset.zip" theme="system" />;dataSource 可以是远程归档 URL,也可以是自定义 DataSource:
createArchiveDataSourceFromFile— 本地 ZIP / TAR / TAR.GZcreateArchiveDataSourceFromUrl— 要复用的远程归档
数据集支持时,查看器可以在当前会话中修改 Episode。onExport 只是宿主 UI 的回调,不会自行导出数据。
自定义数据源
如果应用需要按路径读取字节或文本,请实现 DataSource。路径和内容都应视为不可信输入,并在 clear() 中释放 object URL。
加载阶段包括 download、index、gunzip 和 read。致命错误包括无效数据源、远程 URL 不可用、不支持的归档和数据集加载失败。
生成的 API 报告
API Report File for "@ioai/lerobot-studio"
Do not edit this file. It is a report generated by API Extractor.
ts
import { default as React_2 } from 'react';
// @public
export function createArchiveDataSourceFromFile(file: File): DataSource;
// @public
export function createArchiveDataSourceFromUrl(url: string): DataSource;
// @public
export interface DataSource {
clear(): void | Promise<void>;
exists(path: string): Promise<boolean>;
getObjectUrl(path: string, mimeType?: string, onProgress?: ProgressHandler): Promise<string>;
invalidateObjectUrl?(path: string): void | Promise<void>;
listPaths?(): Promise<string[]>;
readBytes(path: string, onProgress?: ProgressHandler): Promise<Uint8Array>;
readText(path: string, onProgress?: ProgressHandler): Promise<string>;
}
// @public (undocumented)
export const LeRobotViewer: React_2.FC<LeRobotViewerProps>;
// @public
export interface LeRobotViewerError {
cause?: unknown;
code: LeRobotViewerErrorCode;
message: string;
recoverable: boolean;
}
// @public
export type LeRobotViewerErrorCode = 'INVALID_DATA_SOURCE' | 'REMOTE_SOURCE_UNAVAILABLE' | 'UNSUPPORTED_ARCHIVE' | 'DATASET_LOAD_FAILED';
// @public
export interface LeRobotViewerProps {
className?: string;
dataSource: string | DataSource;
enableKeyboardShortcuts?: boolean;
language?: string;
onBack?: () => void;
onExport?: () => void;
onFatalError?: (error: LeRobotViewerError) => void;
showPlaybackBar?: boolean;
showSidebar?: boolean;
theme?: 'light' | 'dark' | 'system';
}
// @public
export type LoadingPhase = 'download' | 'index' | 'gunzip' | 'read';
// @public
export type ProgressHandler = (info: ProgressInfo) => void;
// @public
export interface ProgressInfo {
loaded?: number;
message?: string;
phase: LoadingPhase;
total?: number;
}