@ioai/lerobot-studio 1.0.2 → 1.1.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.
@@ -3169,6 +3169,10 @@ var hn = {
3169
3169
  message: "数据文件不存在",
3170
3170
  suggestion: "按 v2 格式在 data/ 目录下生成分片 parquet 文件"
3171
3171
  },
3172
+ EPISODE_DATA_MISSING: {
3173
+ message: "{{total}} 个 episode 中有 {{missing}} 个 parquet 文件缺失",
3174
+ suggestion: "补全缺失的 episode parquet,或打开完整数据集"
3175
+ },
3172
3176
  DATA_FILE_CHECK_FAILED: {
3173
3177
  message: "无法检查数据文件是否存在",
3174
3178
  suggestion: "确认 data/chunk-xxx/episode_xxxxxx.parquet 文件已生成"
@@ -3636,7 +3640,8 @@ var hn = {
3636
3640
  requirements: "需支持 CORS + Range;签名链接需在有效期内",
3637
3641
  preview: "预览",
3638
3642
  download: "下载",
3639
- openDirect: "浏览官方样例数据集"
3643
+ openDirect: "浏览官方样例数据集",
3644
+ unknown: "未知样例 \"{{id}}\"。请检查样例 id,或从列表中打开数据集。"
3640
3645
  }
3641
3646
  },
3642
3647
  validation: {
@@ -3900,6 +3905,10 @@ var hn = {
3900
3905
  message: "Data file does not exist",
3901
3906
  suggestion: "Generate Parquet data files under data/ per v2 format"
3902
3907
  },
3908
+ EPISODE_DATA_MISSING: {
3909
+ message: "{{missing}} of {{total}} episode parquet files are missing",
3910
+ suggestion: "Download the missing episode parquet files or open a complete dataset"
3911
+ },
3903
3912
  DATA_FILE_CHECK_FAILED: {
3904
3913
  message: "Could not check if data file exists",
3905
3914
  suggestion: "Ensure data/chunk-xxx/episode_xxxxxx.parquet files exist"
@@ -4367,7 +4376,8 @@ var hn = {
4367
4376
  requirements: "Requires CORS + Range; signed URLs must be valid",
4368
4377
  openDirect: "Open/Download Official Samples",
4369
4378
  preview: "Preview",
4370
- download: "Download"
4379
+ download: "Download",
4380
+ unknown: "Unknown sample \"{{id}}\". Check the sample id or open a dataset from the list."
4371
4381
  }
4372
4382
  },
4373
4383
  validation: {
@@ -4481,7 +4491,7 @@ var hn = {
4481
4491
  },
4482
4492
  speed: "再生速度"
4483
4493
  },
4484
- health: /* @__PURE__ */ JSON.parse("{\"noData\":\"データセットを読み込むとヘルスチェックを表示します\",\"statusErrors\":\"検証でエラーを検出\",\"statusWarnings\":\"検証で警告を検出\",\"statusOk\":\"フォーマットチェック完了\",\"checks\":\"チェック項目\",\"noIssues\":\"問題はありません\",\"fpsInvalid\":\"info.fps が未設定または ≤ 0 です。再生が不正になる可能性があります。\",\"zeroLengthEpisodes\":\"{{count}} 件のエピソードの長さが 0 です\",\"episodeCountMismatch\":\"有効エピソード数({{effective}})が info.total_episodes({{total}})と一致しません。編集/削除を反映しました。\",\"footnote\":\"フォーマット検証は読み込み時に実行されます。データ品質(NaN/外れ値)は今後のバージョンで対応予定です。\",\"healthCheckButton\":\"データセットヘルスチェック\",\"check\":\"チェック\",\"validation\":{\"columns\":{\"field\":\"チェック項目\",\"current\":\"現在\",\"expected\":\"期待値\",\"suggestion\":\"推奨対応\"},\"dialog\":{\"title\":\"データセット品質レポート\",\"summaryErrors\":\"検証でエラーを検出\",\"summaryWarnings\":\"検証で警告を検出\",\"summaryOk\":\"すべてのチェックを通過\",\"errorsCount\":\"エラー {{count}} 件\",\"warningsCount\":\"警告 {{count}} 件\",\"passedCount\":\"{{count}} 件通過\",\"filterErrors\":\"エラー {{count}} 件のみを表示\",\"filterWarnings\":\"警告 {{count}} 件のみを表示\",\"filterPassed\":\"通過した {{count}} 件のみを表示\",\"close\":\"閉じる\",\"retry\":\"再試行\",\"export\":\"エクスポート\",\"exportCsv\":\"CSV でエクスポート\",\"exportPdf\":\"PDF でエクスポート\"},\"categories\":{\"file_structure\":\"ファイル構造\",\"meta_info\":\"メタデータ\",\"features\":\"特徴量\",\"episodes\":\"エピソード\"},\"terms\":{\"exists\":\"存在する\",\"missing\":\"欠損\",\"notExists\":\"見つかりません\",\"invalidJson\":\"無効な JSON\",\"validJson\":\"有効な JSON ファイル\",\"positiveInteger\":\"正の整数\",\"nonNegativeInteger\":\"0 以上の整数\",\"positiveNumber\":\"正の数\",\"nonEmptyString\":\"空でない文字列\",\"present\":\"存在\",\"unknown\":\"不明\",\"validDtype\":\"有効な dtype\",\"object\":\"オブジェクト\",\"arrayOrNull\":\"配列または null\",\"nFeatures\":\"{{count}} 特徴量\",\"pathOrFileExists\":\"パスまたはファイルが存在\",\"fieldExists\":\"フィールドが存在\",\"positiveIntArray\":\"[正の整数, ...]\",\"stringArrayMatchShape\":\"string[](長さ = shape の最終次元)\",\"objectWithFeatures\":\"1 つ以上の feature を持つオブジェクト\",\"positiveIntMatchTotalEpisodes\":\"正の整数、total_episodes と一致\",\"episodeLengthPositive\":\"各エピソードの length > 0\",\"nonNegativeIntCount\":\"0 以上の整数(件数)\",\"requiredParquetColumns\":\"frame_index, episode_index, index, timestamp など\",\"objectWithTrainKey\":\"\\\"train\\\" キーを持つオブジェクト\",\"containsTrain\":\"\\\"train\\\" を含む\",\"requiredEpisodesColumns\":\"episode_index, length, dataset_from_index, dataset_to_index\",\"tasksPresent\":\"tasks.jsonl または tasks.parquet が存在\"},\"codes\":{\"INFO_MISSING\":{\"message\":\"meta/info.json が存在しないか読み取れません\",\"suggestion\":\"LeRobot データセットルートに meta/info.json があることを確認してください\"},\"INFO_PARSE_ERROR\":{\"message\":\"meta/info.json の JSON 解析に失敗しました\",\"suggestion\":\"JSON 構文を確認してください(例: https://jsonlint.com)\"},\"VERSION_MISMATCH\":{\"message\":\"codebase_version が v2.x ではありません\",\"suggestion\":\"v3.0 の場合は対応ローダーを使用するか、codebase_version を v2.0 または v2.1 に設定してください\"},\"VERSION_MISMATCH_V3\":{\"message\":\"codebase_version が v3.x ではありません\",\"suggestion\":\"codebase_version を v3.0 に設定してください\"},\"ROBOT_TYPE_MISSING\":{\"message\":\"robot_type が未設定または空です\",\"suggestion\":\"ロボットタイプを設定してください(例: \\\"so100\\\", \\\"lekiwi\\\")\"},\"TOTAL_EPISODES_INVALID\":{\"message\":\"total_episodes は正の整数である必要があります\",\"suggestion\":\"正しいエピソード総数を設定してください\"},\"TOTAL_FRAMES_INVALID\":{\"message\":\"total_frames は正の整数である必要があります\",\"suggestion\":\"正しいフレーム総数を設定してください\"},\"TOTAL_TASKS_INVALID\":{\"message\":\"total_tasks は 0 以上の整数である必要があります\",\"suggestion\":\"正しいタスク総数を設定してください(0 可)\"},\"FPS_INVALID\":{\"message\":\"fps は正の数である必要があります\",\"suggestion\":\"正しい FPS を設定してください(例: 30)\"},\"CHUNKS_SIZE_MISSING\":{\"message\":\"chunks_size が未設定です。デフォルト 1000 を使用します\",\"suggestion\":\"chunks_size フィールドを追加してください(推奨: 1000)\"},\"FEATURES_EMPTY\":{\"message\":\"features が未設定または空です\",\"suggestion\":\"info.json の features にデータセットの全カラムを定義してください\"},\"EPISODES_MISSING\":{\"message\":\"meta/episodes.jsonl が存在しないか読み取れません\",\"suggestion\":\"1 行 1 エピソードの JSON で meta/episodes.jsonl を作成してください\"},\"EPISODES_INVALID_JSONL\":{\"message\":\"episodes.jsonl の行の JSON 解析に失敗しました\",\"suggestion\":\"各行が有効な JSON オブジェクトであることを確認してください\"},\"EPISODES_EMPTY\":{\"message\":\"episodes.jsonl は空です\",\"suggestion\":\"episodes.jsonl にデータがあることを確認してください\"},\"EPISODES_COUNT_MISMATCH\":{\"message\":\"解析したエピソード数({{parsed}})が total_episodes({{expected}})と一致しません\",\"suggestion\":\"episodes.jsonl を再生成するか info.json の total_episodes を修正してください\"},\"ZERO_LENGTH_EPISODES\":{\"message\":\"{{count}} 件のエピソードの長さが 0 です\",\"suggestion\":\"各エピソードが正のフレーム数を持つよう episodes.jsonl を再生成してください\"},\"EPISODES_NO_LENGTH\":{\"message\":\"{{count}} 件のエピソードに length/num_frames がありません\",\"suggestion\":\"episodes.jsonl の各行に \\\"length\\\" を追加してください\"},\"TASKS_MISSING\":{\"message\":\"meta/tasks.jsonl が存在しないか空です\",\"suggestion\":\"1 行 1 JSON で tasks.jsonl を作成: {\\\"task_index\\\": 0, \\\"task\\\": \\\"説明\\\"}\"},\"DATA_FILE_MISSING\":{\"message\":\"データファイルが存在しません\",\"suggestion\":\"v2 形式で data/ に Parquet ファイルを生成してください\"},\"DATA_FILE_CHECK_FAILED\":{\"message\":\"データファイルの存在を確認できませんでした\",\"suggestion\":\"data/chunk-xxx/episode_xxxxxx.parquet が存在することを確認してください\"},\"VIDEO_FILE_MISSING\":{\"message\":\"動画ファイルが存在しません\",\"suggestion\":\"videos/chunk-xxx/<key>/episode_xxxxxx.mp4 を生成してください\"},\"VIDEO_FILE_CHECK_FAILED\":{\"message\":\"動画ファイルの存在を確認できませんでした\",\"suggestion\":\"videos/chunk-xxx/<key>/episode_xxxxxx.mp4 が存在することを確認してください\"},\"PARQUET_MISSING_COLS\":{\"message\":\"データ Parquet に必須カラムがありません: {{cols}}\",\"suggestion\":\"システムカラムを含むデータ Parquet を再生成してください\"},\"DEFAULT_FEATURE_MISSING\":{\"message\":\"システムフィールド {{key}} がありません\",\"suggestion\":\"meta/info.json の features に \\\"{{key}}\\\" を追加してください\"},\"FEATURE_INVALID\":{\"message\":\"features.{{key}} は有効なオブジェクトではありません\",\"suggestion\":\"各 feature が dtype と shape を持つオブジェクトであることを確認してください\"},\"DTYPE_MISSING\":{\"message\":\"features.{{key}}.dtype がありません\",\"suggestion\":\"dtype を追加してください(例: float32, int64, video, image, string)\"},\"DTYPE_INVALID\":{\"message\":\"features.{{key}}.dtype が無効です: {{dtype}}\",\"suggestion\":\"標準の dtype を使用してください\"},\"SHAPE_INVALID\":{\"message\":\"features.{{key}}.shape は正の整数の非空配列である必要があります\",\"suggestion\":\"shape を設定してください(例: [7], [3, 480, 640])\"},\"NAMES_INVALID\":{\"message\":\"features.{{key}}.names は配列ではありません\",\"suggestion\":\"names を文字列配列または null に設定してください\"},\"NAMES_LENGTH_MISMATCH\":{\"message\":\"features.{{key}}.names の長さ({{actual}})が shape の最終次元({{expected}})と一致しません\",\"suggestion\":\"names の長さを shape の最終次元と一致させてください\"},\"VIDEO_FPS_MISSING\":{\"message\":\"動画 feature {{key}} の fps が未設定または ≤0 です。info.fps を使用します\",\"suggestion\":\"オプション: この feature に fps を設定。未設定の場合は info.fps を使用\"},\"VIDEO_SHAPE_CHANNELS\":{\"message\":\"動画の shape チャンネル数が一般的ではありません\",\"suggestion\":\"通常は 3(RGB)です。[C,H,W] と [H,W,C] の両方に対応\"},\"VIDEO_SHAPE_NDIM\":{\"message\":\"動画 shape は 3D (C, H, W) である必要があります。現在 {{n}}D です\",\"suggestion\":\"shape を [C, H, W] に設定してください\"},\"IMAGE_SHAPE_NDIM\":{\"message\":\"画像 shape は 3D (C, H, W) である必要があります。現在 {{n}}D です\",\"suggestion\":\"shape を [C, H, W] に設定してください\"},\"EPISODES_PARQUET_MISSING\":{\"message\":\"meta/episodes の最初のファイルが存在しません\",\"suggestion\":\"v3 形式で meta/episodes/chunk-xxx/file-xxx.parquet を生成してください\"},\"EPISODES_PARQUET_INVALID\":{\"message\":\"meta/episodes の最初のファイルを Parquet として解析できませんでした\",\"suggestion\":\"episodes Parquet ファイルが有効であることを確認してください\"},\"DATA_PATH_TEMPLATE\":{\"message\":\"info.data_path がデフォルトテンプレートと一致しません\",\"suggestion\":\"デフォルトの data パステンプレートを使用するか、カスタムパスを一貫させてください\"},\"VIDEO_PATH_TEMPLATE\":{\"message\":\"info.video_path がデフォルトテンプレートと一致しません\",\"suggestion\":\"デフォルトの動画パステンプレートを使用してください\"},\"TASKS_PRESENT\":{\"message\":\"タスクメタデータを検出しました\",\"suggestion\":\"\"},\"EPISODE_COUNT\":{\"message\":\"{{count}} 件のエピソードを解析しました\",\"suggestion\":\"\"},\"TASK_COUNT\":{\"message\":\"{{count}} 件のタスクを解析しました\",\"suggestion\":\"\"},\"SPLITS_MISSING_TRAIN\":{\"message\":\"splits に \\\"train\\\" が必要です\",\"suggestion\":\"splits に少なくとも \\\"train\\\" キーを追加してください\"}}}}"),
4494
+ health: /* @__PURE__ */ JSON.parse("{\"noData\":\"データセットを読み込むとヘルスチェックを表示します\",\"statusErrors\":\"検証でエラーを検出\",\"statusWarnings\":\"検証で警告を検出\",\"statusOk\":\"フォーマットチェック完了\",\"checks\":\"チェック項目\",\"noIssues\":\"問題はありません\",\"fpsInvalid\":\"info.fps が未設定または ≤ 0 です。再生が不正になる可能性があります。\",\"zeroLengthEpisodes\":\"{{count}} 件のエピソードの長さが 0 です\",\"episodeCountMismatch\":\"有効エピソード数({{effective}})が info.total_episodes({{total}})と一致しません。編集/削除を反映しました。\",\"footnote\":\"フォーマット検証は読み込み時に実行されます。データ品質(NaN/外れ値)は今後のバージョンで対応予定です。\",\"healthCheckButton\":\"データセットヘルスチェック\",\"check\":\"チェック\",\"validation\":{\"columns\":{\"field\":\"チェック項目\",\"current\":\"現在\",\"expected\":\"期待値\",\"suggestion\":\"推奨対応\"},\"dialog\":{\"title\":\"データセット品質レポート\",\"summaryErrors\":\"検証でエラーを検出\",\"summaryWarnings\":\"検証で警告を検出\",\"summaryOk\":\"すべてのチェックを通過\",\"errorsCount\":\"エラー {{count}} 件\",\"warningsCount\":\"警告 {{count}} 件\",\"passedCount\":\"{{count}} 件通過\",\"filterErrors\":\"エラー {{count}} 件のみを表示\",\"filterWarnings\":\"警告 {{count}} 件のみを表示\",\"filterPassed\":\"通過した {{count}} 件のみを表示\",\"close\":\"閉じる\",\"retry\":\"再試行\",\"export\":\"エクスポート\",\"exportCsv\":\"CSV でエクスポート\",\"exportPdf\":\"PDF でエクスポート\"},\"categories\":{\"file_structure\":\"ファイル構造\",\"meta_info\":\"メタデータ\",\"features\":\"特徴量\",\"episodes\":\"エピソード\"},\"terms\":{\"exists\":\"存在する\",\"missing\":\"欠損\",\"notExists\":\"見つかりません\",\"invalidJson\":\"無効な JSON\",\"validJson\":\"有効な JSON ファイル\",\"positiveInteger\":\"正の整数\",\"nonNegativeInteger\":\"0 以上の整数\",\"positiveNumber\":\"正の数\",\"nonEmptyString\":\"空でない文字列\",\"present\":\"存在\",\"unknown\":\"不明\",\"validDtype\":\"有効な dtype\",\"object\":\"オブジェクト\",\"arrayOrNull\":\"配列または null\",\"nFeatures\":\"{{count}} 特徴量\",\"pathOrFileExists\":\"パスまたはファイルが存在\",\"fieldExists\":\"フィールドが存在\",\"positiveIntArray\":\"[正の整数, ...]\",\"stringArrayMatchShape\":\"string[](長さ = shape の最終次元)\",\"objectWithFeatures\":\"1 つ以上の feature を持つオブジェクト\",\"positiveIntMatchTotalEpisodes\":\"正の整数、total_episodes と一致\",\"episodeLengthPositive\":\"各エピソードの length > 0\",\"nonNegativeIntCount\":\"0 以上の整数(件数)\",\"requiredParquetColumns\":\"frame_index, episode_index, index, timestamp など\",\"objectWithTrainKey\":\"\\\"train\\\" キーを持つオブジェクト\",\"containsTrain\":\"\\\"train\\\" を含む\",\"requiredEpisodesColumns\":\"episode_index, length, dataset_from_index, dataset_to_index\",\"tasksPresent\":\"tasks.jsonl または tasks.parquet が存在\"},\"codes\":{\"INFO_MISSING\":{\"message\":\"meta/info.json が存在しないか読み取れません\",\"suggestion\":\"LeRobot データセットルートに meta/info.json があることを確認してください\"},\"INFO_PARSE_ERROR\":{\"message\":\"meta/info.json の JSON 解析に失敗しました\",\"suggestion\":\"JSON 構文を確認してください(例: https://jsonlint.com)\"},\"VERSION_MISMATCH\":{\"message\":\"codebase_version が v2.x ではありません\",\"suggestion\":\"v3.0 の場合は対応ローダーを使用するか、codebase_version を v2.0 または v2.1 に設定してください\"},\"VERSION_MISMATCH_V3\":{\"message\":\"codebase_version が v3.x ではありません\",\"suggestion\":\"codebase_version を v3.0 に設定してください\"},\"ROBOT_TYPE_MISSING\":{\"message\":\"robot_type が未設定または空です\",\"suggestion\":\"ロボットタイプを設定してください(例: \\\"so100\\\", \\\"lekiwi\\\")\"},\"TOTAL_EPISODES_INVALID\":{\"message\":\"total_episodes は正の整数である必要があります\",\"suggestion\":\"正しいエピソード総数を設定してください\"},\"TOTAL_FRAMES_INVALID\":{\"message\":\"total_frames は正の整数である必要があります\",\"suggestion\":\"正しいフレーム総数を設定してください\"},\"TOTAL_TASKS_INVALID\":{\"message\":\"total_tasks は 0 以上の整数である必要があります\",\"suggestion\":\"正しいタスク総数を設定してください(0 可)\"},\"FPS_INVALID\":{\"message\":\"fps は正の数である必要があります\",\"suggestion\":\"正しい FPS を設定してください(例: 30)\"},\"CHUNKS_SIZE_MISSING\":{\"message\":\"chunks_size が未設定です。デフォルト 1000 を使用します\",\"suggestion\":\"chunks_size フィールドを追加してください(推奨: 1000)\"},\"FEATURES_EMPTY\":{\"message\":\"features が未設定または空です\",\"suggestion\":\"info.json の features にデータセットの全カラムを定義してください\"},\"EPISODES_MISSING\":{\"message\":\"meta/episodes.jsonl が存在しないか読み取れません\",\"suggestion\":\"1 行 1 エピソードの JSON で meta/episodes.jsonl を作成してください\"},\"EPISODES_INVALID_JSONL\":{\"message\":\"episodes.jsonl の行の JSON 解析に失敗しました\",\"suggestion\":\"各行が有効な JSON オブジェクトであることを確認してください\"},\"EPISODES_EMPTY\":{\"message\":\"episodes.jsonl は空です\",\"suggestion\":\"episodes.jsonl にデータがあることを確認してください\"},\"EPISODES_COUNT_MISMATCH\":{\"message\":\"解析したエピソード数({{parsed}})が total_episodes({{expected}})と一致しません\",\"suggestion\":\"episodes.jsonl を再生成するか info.json の total_episodes を修正してください\"},\"ZERO_LENGTH_EPISODES\":{\"message\":\"{{count}} 件のエピソードの長さが 0 です\",\"suggestion\":\"各エピソードが正のフレーム数を持つよう episodes.jsonl を再生成してください\"},\"EPISODES_NO_LENGTH\":{\"message\":\"{{count}} 件のエピソードに length/num_frames がありません\",\"suggestion\":\"episodes.jsonl の各行に \\\"length\\\" を追加してください\"},\"TASKS_MISSING\":{\"message\":\"meta/tasks.jsonl が存在しないか空です\",\"suggestion\":\"1 行 1 JSON で tasks.jsonl を作成: {\\\"task_index\\\": 0, \\\"task\\\": \\\"説明\\\"}\"},\"DATA_FILE_MISSING\":{\"message\":\"データファイルが存在しません\",\"suggestion\":\"v2 形式で data/ に Parquet ファイルを生成してください\"},\"EPISODE_DATA_MISSING\":{\"message\":\"{{total}} 件中 {{missing}} 件の episode parquet がありません\",\"suggestion\":\"欠けている episode parquet を入手するか、完全なデータセットを開いてください\"},\"DATA_FILE_CHECK_FAILED\":{\"message\":\"データファイルの存在を確認できませんでした\",\"suggestion\":\"data/chunk-xxx/episode_xxxxxx.parquet が存在することを確認してください\"},\"VIDEO_FILE_MISSING\":{\"message\":\"動画ファイルが存在しません\",\"suggestion\":\"videos/chunk-xxx/<key>/episode_xxxxxx.mp4 を生成してください\"},\"VIDEO_FILE_CHECK_FAILED\":{\"message\":\"動画ファイルの存在を確認できませんでした\",\"suggestion\":\"videos/chunk-xxx/<key>/episode_xxxxxx.mp4 が存在することを確認してください\"},\"PARQUET_MISSING_COLS\":{\"message\":\"データ Parquet に必須カラムがありません: {{cols}}\",\"suggestion\":\"システムカラムを含むデータ Parquet を再生成してください\"},\"DEFAULT_FEATURE_MISSING\":{\"message\":\"システムフィールド {{key}} がありません\",\"suggestion\":\"meta/info.json の features に \\\"{{key}}\\\" を追加してください\"},\"FEATURE_INVALID\":{\"message\":\"features.{{key}} は有効なオブジェクトではありません\",\"suggestion\":\"各 feature が dtype と shape を持つオブジェクトであることを確認してください\"},\"DTYPE_MISSING\":{\"message\":\"features.{{key}}.dtype がありません\",\"suggestion\":\"dtype を追加してください(例: float32, int64, video, image, string)\"},\"DTYPE_INVALID\":{\"message\":\"features.{{key}}.dtype が無効です: {{dtype}}\",\"suggestion\":\"標準の dtype を使用してください\"},\"SHAPE_INVALID\":{\"message\":\"features.{{key}}.shape は正の整数の非空配列である必要があります\",\"suggestion\":\"shape を設定してください(例: [7], [3, 480, 640])\"},\"NAMES_INVALID\":{\"message\":\"features.{{key}}.names は配列ではありません\",\"suggestion\":\"names を文字列配列または null に設定してください\"},\"NAMES_LENGTH_MISMATCH\":{\"message\":\"features.{{key}}.names の長さ({{actual}})が shape の最終次元({{expected}})と一致しません\",\"suggestion\":\"names の長さを shape の最終次元と一致させてください\"},\"VIDEO_FPS_MISSING\":{\"message\":\"動画 feature {{key}} の fps が未設定または ≤0 です。info.fps を使用します\",\"suggestion\":\"オプション: この feature に fps を設定。未設定の場合は info.fps を使用\"},\"VIDEO_SHAPE_CHANNELS\":{\"message\":\"動画の shape チャンネル数が一般的ではありません\",\"suggestion\":\"通常は 3(RGB)です。[C,H,W] と [H,W,C] の両方に対応\"},\"VIDEO_SHAPE_NDIM\":{\"message\":\"動画 shape は 3D (C, H, W) である必要があります。現在 {{n}}D です\",\"suggestion\":\"shape を [C, H, W] に設定してください\"},\"IMAGE_SHAPE_NDIM\":{\"message\":\"画像 shape は 3D (C, H, W) である必要があります。現在 {{n}}D です\",\"suggestion\":\"shape を [C, H, W] に設定してください\"},\"EPISODES_PARQUET_MISSING\":{\"message\":\"meta/episodes の最初のファイルが存在しません\",\"suggestion\":\"v3 形式で meta/episodes/chunk-xxx/file-xxx.parquet を生成してください\"},\"EPISODES_PARQUET_INVALID\":{\"message\":\"meta/episodes の最初のファイルを Parquet として解析できませんでした\",\"suggestion\":\"episodes Parquet ファイルが有効であることを確認してください\"},\"DATA_PATH_TEMPLATE\":{\"message\":\"info.data_path がデフォルトテンプレートと一致しません\",\"suggestion\":\"デフォルトの data パステンプレートを使用するか、カスタムパスを一貫させてください\"},\"VIDEO_PATH_TEMPLATE\":{\"message\":\"info.video_path がデフォルトテンプレートと一致しません\",\"suggestion\":\"デフォルトの動画パステンプレートを使用してください\"},\"TASKS_PRESENT\":{\"message\":\"タスクメタデータを検出しました\",\"suggestion\":\"\"},\"EPISODE_COUNT\":{\"message\":\"{{count}} 件のエピソードを解析しました\",\"suggestion\":\"\"},\"TASK_COUNT\":{\"message\":\"{{count}} 件のタスクを解析しました\",\"suggestion\":\"\"},\"SPLITS_MISSING_TRAIN\":{\"message\":\"splits に \\\"train\\\" が必要です\",\"suggestion\":\"splits に少なくとも \\\"train\\\" キーを追加してください\"}}}}"),
4485
4495
  summary: {
4486
4496
  noData: "データセットを読み込むと概要を表示します",
4487
4497
  overview: "概要",
@@ -4856,7 +4866,8 @@ var hn = {
4856
4866
  requirements: "CORS + Range 対応が必要。署名付き URL は有効期限内であること",
4857
4867
  openDirect: "公式サンプルを開く/ダウンロード",
4858
4868
  preview: "プレビュー",
4859
- download: "ダウンロード"
4869
+ download: "ダウンロード",
4870
+ unknown: "不明なサンプル \"{{id}}\" です。サンプル id を確認するか、一覧からデータセットを開いてください。"
4860
4871
  }
4861
4872
  },
4862
4873
  validation: {
@@ -10836,25 +10847,28 @@ function Sp(e, t, n) {
10836
10847
  row2: c
10837
10848
  };
10838
10849
  }
10839
- function Cp(e, t = 6, n = 4) {
10850
+ function Cp(e) {
10851
+ return e > 0 && e < 900 ? 2 : 4;
10852
+ }
10853
+ function wp(e, t = 6, n = 4) {
10840
10854
  return Array.from(new Set(e)).length >= fp ? xp(e, t, n) : Sp(e, t, n);
10841
10855
  }
10842
10856
  //#endregion
10843
10857
  //#region src/react/contexts/LeRobotContext.ts
10844
- var wp = i(null), Tp = i(null), Ep = i(null), Dp = i(null), Op = i(null), kp = () => {
10845
- let e = l(Tp);
10846
- if (!e) throw Error("useLeRobotData must be used within LeRobotDataProvider");
10847
- return e;
10848
- }, Ap = () => {
10858
+ var Tp = i(null), Ep = i(null), Dp = i(null), Op = i(null), kp = i(null), Ap = () => {
10849
10859
  let e = l(Ep);
10850
- if (!e) throw Error("useLeRobotPlayback must be used within LeRobotDataProvider");
10860
+ if (!e) throw Error("useLeRobotData must be used within LeRobotDataProvider");
10851
10861
  return e;
10852
10862
  }, jp = () => {
10853
10863
  let e = l(Dp);
10864
+ if (!e) throw Error("useLeRobotPlayback must be used within LeRobotDataProvider");
10865
+ return e;
10866
+ }, Mp = () => {
10867
+ let e = l(Op);
10854
10868
  if (!e) throw Error("useLeRobotSelection must be used within LeRobotDataProvider");
10855
10869
  return e;
10856
- }, Mp = typeof window < "u" ? f : u;
10857
- function Np(e) {
10870
+ }, Np = typeof window < "u" ? f : u;
10871
+ function Pp(e) {
10858
10872
  if (e !== void 0) switch (typeof e) {
10859
10873
  case "number": return e;
10860
10874
  case "string":
@@ -10862,15 +10876,15 @@ function Np(e) {
10862
10876
  break;
10863
10877
  }
10864
10878
  }
10865
- function Pp({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i, mode: a, style: o }) {
10879
+ function Fp({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i, mode: a, style: o }) {
10866
10880
  let { styleHeight: s, styleWidth: c } = p(() => ({
10867
- styleHeight: Np(o?.height),
10868
- styleWidth: Np(o?.width)
10881
+ styleHeight: Pp(o?.height),
10882
+ styleWidth: Pp(o?.width)
10869
10883
  }), [o?.height, o?.width]), [l, u] = h({
10870
10884
  height: t,
10871
10885
  width: n
10872
10886
  }), d = r || a === "only-height" && s !== void 0 || a === "only-width" && c !== void 0 || s !== void 0 && c !== void 0;
10873
- return Mp(() => {
10887
+ return Np(() => {
10874
10888
  if (i === null || d) return;
10875
10889
  let t = new ResizeObserver((e) => {
10876
10890
  for (let t of e) {
@@ -10899,26 +10913,26 @@ function Pp({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i
10899
10913
  c
10900
10914
  ]);
10901
10915
  }
10902
- function Fp(e) {
10916
+ function Ip(e) {
10903
10917
  let t = m(() => {
10904
10918
  throw Error("Cannot call an event handler while rendering.");
10905
10919
  });
10906
- return Mp(() => {
10920
+ return Np(() => {
10907
10921
  t.current = e;
10908
10922
  }, [e]), c((...e) => t.current?.(...e), [t]);
10909
10923
  }
10910
- var Ip = null;
10911
- function Lp(e = !1) {
10912
- if (Ip === null || e) {
10924
+ var Lp = null;
10925
+ function Rp(e = !1) {
10926
+ if (Lp === null || e) {
10913
10927
  let e = document.createElement("div"), t = e.style;
10914
10928
  t.width = "50px", t.height = "50px", t.overflow = "scroll", t.direction = "rtl";
10915
10929
  let n = document.createElement("div"), r = n.style;
10916
- return r.width = "100px", r.height = "100px", e.appendChild(n), document.body.appendChild(e), e.scrollLeft > 0 ? Ip = "positive-descending" : (e.scrollLeft = 1, Ip = e.scrollLeft === 0 ? "negative" : "positive-ascending"), document.body.removeChild(e), Ip;
10930
+ return r.width = "100px", r.height = "100px", e.appendChild(n), document.body.appendChild(e), e.scrollLeft > 0 ? Lp = "positive-descending" : (e.scrollLeft = 1, Lp = e.scrollLeft === 0 ? "negative" : "positive-ascending"), document.body.removeChild(e), Lp;
10917
10931
  }
10918
- return Ip;
10932
+ return Lp;
10919
10933
  }
10920
- function Rp({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
10921
- if (t === "horizontal" && n) switch (Lp()) {
10934
+ function zp({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
10935
+ if (t === "horizontal" && n) switch (Rp()) {
10922
10936
  case "negative": return -r;
10923
10937
  case "positive-descending":
10924
10938
  if (e) {
@@ -10929,26 +10943,26 @@ function Rp({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
10929
10943
  }
10930
10944
  return r;
10931
10945
  }
10932
- function zp(e, t = "Assertion error") {
10946
+ function Bp(e, t = "Assertion error") {
10933
10947
  if (!e) throw console.error(t), Error(t);
10934
10948
  }
10935
- function Bp(e, t) {
10949
+ function Vp(e, t) {
10936
10950
  if (e === t) return !0;
10937
- if (!!e != !!t || (zp(e !== void 0), zp(t !== void 0), Object.keys(e).length !== Object.keys(t).length)) return !1;
10951
+ if (!!e != !!t || (Bp(e !== void 0), Bp(t !== void 0), Object.keys(e).length !== Object.keys(t).length)) return !1;
10938
10952
  for (let n in e) if (!Object.is(t[n], e[n])) return !1;
10939
10953
  return !0;
10940
10954
  }
10941
- function Vp({ cachedBounds: e, itemCount: t, itemSize: n }) {
10955
+ function Hp({ cachedBounds: e, itemCount: t, itemSize: n }) {
10942
10956
  if (t === 0) return 0;
10943
10957
  if (typeof n == "number") return t * n;
10944
10958
  {
10945
10959
  let n = e.get(e.size === 0 ? 0 : e.size - 1);
10946
- return zp(n !== void 0, "Unexpected bounds cache miss"), t * ((n.scrollOffset + n.size) / e.size);
10960
+ return Bp(n !== void 0, "Unexpected bounds cache miss"), t * ((n.scrollOffset + n.size) / e.size);
10947
10961
  }
10948
10962
  }
10949
- function Hp({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, containerScrollOffset: a, containerSize: o }) {
10963
+ function Up({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, containerScrollOffset: a, containerSize: o }) {
10950
10964
  if (n < 0 || n >= r) throw RangeError(`Invalid index specified: ${n}`, { cause: `Index ${n} is not within the range of 0 - ${r - 1}` });
10951
- let s = Vp({
10965
+ let s = Hp({
10952
10966
  cachedBounds: t,
10953
10967
  itemCount: r,
10954
10968
  itemSize: i
@@ -10960,7 +10974,7 @@ function Hp({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, co
10960
10974
  default: return a >= u && a <= l ? a : a < u ? u : l;
10961
10975
  }
10962
10976
  }
10963
- function Up({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemCount: r, overscanCount: i }) {
10977
+ function Wp({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemCount: r, overscanCount: i }) {
10964
10978
  let a = r - 1, o = 0, s = -1, c = 0, l = -1, u = 0;
10965
10979
  for (; u < a;) {
10966
10980
  let n = e.get(u);
@@ -10979,11 +10993,11 @@ function Up({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemC
10979
10993
  stopIndexOverscan: l
10980
10994
  };
10981
10995
  }
10982
- function Wp({ itemCount: e, itemProps: t, itemSize: n }) {
10996
+ function Gp({ itemCount: e, itemProps: t, itemSize: n }) {
10983
10997
  let r = /* @__PURE__ */ new Map();
10984
10998
  return {
10985
10999
  get(i) {
10986
- for (zp(i < e, `Invalid index ${i}`); r.size - 1 < i;) {
11000
+ for (Bp(i < e, `Invalid index ${i}`); r.size - 1 < i;) {
10987
11001
  let e = r.size, a;
10988
11002
  switch (typeof n) {
10989
11003
  case "function":
@@ -10997,14 +11011,14 @@ function Wp({ itemCount: e, itemProps: t, itemSize: n }) {
10997
11011
  });
10998
11012
  else {
10999
11013
  let t = r.get(e - 1);
11000
- zp(t !== void 0, `Unexpected bounds cache miss for index ${i}`), r.set(e, {
11014
+ Bp(t !== void 0, `Unexpected bounds cache miss for index ${i}`), r.set(e, {
11001
11015
  scrollOffset: t.scrollOffset + t.size,
11002
11016
  size: a
11003
11017
  });
11004
11018
  }
11005
11019
  }
11006
11020
  let a = r.get(i);
11007
- return zp(a !== void 0, `Unexpected bounds cache miss for index ${i}`), a;
11021
+ return Bp(a !== void 0, `Unexpected bounds cache miss for index ${i}`), a;
11008
11022
  },
11009
11023
  set(e, t) {
11010
11024
  r.set(e, t);
@@ -11014,8 +11028,8 @@ function Wp({ itemCount: e, itemProps: t, itemSize: n }) {
11014
11028
  }
11015
11029
  };
11016
11030
  }
11017
- function Gp({ itemCount: e, itemProps: t, itemSize: n }) {
11018
- return p(() => Wp({
11031
+ function Kp({ itemCount: e, itemProps: t, itemSize: n }) {
11032
+ return p(() => Gp({
11019
11033
  itemCount: e,
11020
11034
  itemProps: t,
11021
11035
  itemSize: n
@@ -11025,18 +11039,18 @@ function Gp({ itemCount: e, itemProps: t, itemSize: n }) {
11025
11039
  n
11026
11040
  ]);
11027
11041
  }
11028
- function Kp({ containerSize: e, itemSize: t }) {
11042
+ function qp({ containerSize: e, itemSize: t }) {
11029
11043
  let n;
11030
11044
  switch (typeof t) {
11031
11045
  case "string":
11032
- zp(t.endsWith("%"), `Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`), zp(e !== void 0, "Container size must be defined if a percentage item size is specified"), n = e * parseInt(t) / 100;
11046
+ Bp(t.endsWith("%"), `Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`), Bp(e !== void 0, "Container size must be defined if a percentage item size is specified"), n = e * parseInt(t) / 100;
11033
11047
  break;
11034
11048
  default: n = t;
11035
11049
  }
11036
11050
  return n;
11037
11051
  }
11038
- function qp({ containerElement: e, containerStyle: t, defaultContainerSize: n = 0, direction: r, isRtl: i = !1, itemCount: a, itemProps: o, itemSize: s, onResize: l, overscanCount: u }) {
11039
- let { height: d = n, width: p = n } = Pp({
11052
+ function Jp({ containerElement: e, containerStyle: t, defaultContainerSize: n = 0, direction: r, isRtl: i = !1, itemCount: a, itemProps: o, itemSize: s, onResize: l, overscanCount: u }) {
11053
+ let { height: d = n, width: p = n } = Fp({
11040
11054
  defaultHeight: r === "vertical" ? n : void 0,
11041
11055
  defaultWidth: r === "horizontal" ? n : void 0,
11042
11056
  element: e,
@@ -11045,7 +11059,7 @@ function qp({ containerElement: e, containerStyle: t, defaultContainerSize: n =
11045
11059
  }), g = m({
11046
11060
  height: 0,
11047
11061
  width: 0
11048
- }), _ = r === "vertical" ? d : p, v = Kp({
11062
+ }), _ = r === "vertical" ? d : p, v = qp({
11049
11063
  containerSize: _,
11050
11064
  itemSize: s
11051
11065
  });
@@ -11062,11 +11076,11 @@ function qp({ containerElement: e, containerStyle: t, defaultContainerSize: n =
11062
11076
  l,
11063
11077
  p
11064
11078
  ]);
11065
- let y = Gp({
11079
+ let y = Kp({
11066
11080
  itemCount: a,
11067
11081
  itemProps: o,
11068
11082
  itemSize: v
11069
- }), b = c((e) => y.get(e), [y]), [x, S] = h(() => Up({
11083
+ }), b = c((e) => y.get(e), [y]), [x, S] = h(() => Wp({
11070
11084
  cachedBounds: y,
11071
11085
  containerScrollOffset: 0,
11072
11086
  containerSize: _,
@@ -11077,7 +11091,7 @@ function qp({ containerElement: e, containerStyle: t, defaultContainerSize: n =
11077
11091
  startIndexOverscan: Math.min(a - 1, x.startIndexOverscan),
11078
11092
  stopIndexVisible: Math.min(a - 1, x.stopIndexVisible),
11079
11093
  stopIndexOverscan: Math.min(a - 1, x.stopIndexOverscan)
11080
- }, D = c(() => Vp({
11094
+ }, D = c(() => Hp({
11081
11095
  cachedBounds: y,
11082
11096
  itemCount: a,
11083
11097
  itemSize: v
@@ -11086,13 +11100,13 @@ function qp({ containerElement: e, containerStyle: t, defaultContainerSize: n =
11086
11100
  a,
11087
11101
  v
11088
11102
  ]), O = c((t) => {
11089
- let n = Rp({
11103
+ let n = zp({
11090
11104
  containerElement: e,
11091
11105
  direction: r,
11092
11106
  isRtl: i,
11093
11107
  scrollOffset: t
11094
11108
  });
11095
- return Up({
11109
+ return Wp({
11096
11110
  cachedBounds: y,
11097
11111
  containerScrollOffset: n,
11098
11112
  containerSize: _,
@@ -11108,30 +11122,30 @@ function qp({ containerElement: e, containerStyle: t, defaultContainerSize: n =
11108
11122
  a,
11109
11123
  u
11110
11124
  ]);
11111
- return Mp(() => {
11125
+ return Np(() => {
11112
11126
  let t = (r === "vertical" ? e?.scrollTop : e?.scrollLeft) ?? 0;
11113
11127
  S(O(t));
11114
11128
  }, [
11115
11129
  e,
11116
11130
  r,
11117
11131
  O
11118
- ]), Mp(() => {
11132
+ ]), Np(() => {
11119
11133
  if (!e) return;
11120
11134
  let t = () => {
11121
11135
  S((t) => {
11122
- let { scrollLeft: n, scrollTop: o } = e, s = Rp({
11136
+ let { scrollLeft: n, scrollTop: o } = e, s = zp({
11123
11137
  containerElement: e,
11124
11138
  direction: r,
11125
11139
  isRtl: i,
11126
11140
  scrollOffset: r === "vertical" ? o : n
11127
- }), c = Up({
11141
+ }), c = Wp({
11128
11142
  cachedBounds: y,
11129
11143
  containerScrollOffset: s,
11130
11144
  containerSize: _,
11131
11145
  itemCount: a,
11132
11146
  overscanCount: u
11133
11147
  });
11134
- return Bp(c, t) ? t : c;
11148
+ return Vp(c, t) ? t : c;
11135
11149
  });
11136
11150
  };
11137
11151
  return e.addEventListener("scroll", t), () => {
@@ -11147,8 +11161,8 @@ function qp({ containerElement: e, containerStyle: t, defaultContainerSize: n =
11147
11161
  ]), {
11148
11162
  getCellBounds: b,
11149
11163
  getEstimatedSize: D,
11150
- scrollToIndex: Fp(({ align: t = "auto", containerScrollOffset: n, index: o }) => {
11151
- let s = Hp({
11164
+ scrollToIndex: Ip(({ align: t = "auto", containerScrollOffset: n, index: o }) => {
11165
+ let s = Up({
11152
11166
  align: t,
11153
11167
  cachedBounds: y,
11154
11168
  containerScrollOffset: n,
@@ -11158,14 +11172,14 @@ function qp({ containerElement: e, containerStyle: t, defaultContainerSize: n =
11158
11172
  itemSize: v
11159
11173
  });
11160
11174
  if (e) {
11161
- if (s = Rp({
11175
+ if (s = zp({
11162
11176
  containerElement: e,
11163
11177
  direction: r,
11164
11178
  isRtl: i,
11165
11179
  scrollOffset: s
11166
11180
  }), typeof e.scrollTo != "function") {
11167
11181
  let e = O(s);
11168
- Bp(x, e) || S(e);
11182
+ Vp(x, e) || S(e);
11169
11183
  }
11170
11184
  return s;
11171
11185
  }
@@ -11176,19 +11190,19 @@ function qp({ containerElement: e, containerStyle: t, defaultContainerSize: n =
11176
11190
  stopIndexVisible: T
11177
11191
  };
11178
11192
  }
11179
- function Jp(e) {
11193
+ function Yp(e) {
11180
11194
  return p(() => e, Object.values(e));
11181
11195
  }
11182
- function Yp(e, t) {
11196
+ function Xp(e, t) {
11183
11197
  let { ariaAttributes: n, style: r, ...i } = e, { ariaAttributes: a, style: o, ...s } = t;
11184
- return Bp(n, a) && Bp(r, o) && Bp(i, s);
11198
+ return Vp(n, a) && Vp(r, o) && Vp(i, s);
11185
11199
  }
11186
- function Xp(e) {
11200
+ function Zp(e) {
11187
11201
  return typeof e == "object" && !!e && "getAverageRowHeight" in e && typeof e.getAverageRowHeight == "function";
11188
11202
  }
11189
- var Zp = "data-react-window-index";
11190
- function Qp({ children: e, className: t, defaultHeight: n = 0, listRef: r, onResize: i, onRowsRendered: o, overscanCount: c = 3, rowComponent: l, rowCount: f, rowHeight: m, rowKey: g, rowProps: v, tagName: y = "div", style: b, ...x }) {
11191
- let S = Jp(v), C = p(() => s(l, Yp), [l]), [w, T] = h(null), E = Xp(m), { getCellBounds: D, getEstimatedSize: O, scrollToIndex: k, startIndexOverscan: A, startIndexVisible: j, stopIndexOverscan: M, stopIndexVisible: N } = qp({
11203
+ var Qp = "data-react-window-index";
11204
+ function $p({ children: e, className: t, defaultHeight: n = 0, listRef: r, onResize: i, onRowsRendered: o, overscanCount: c = 3, rowComponent: l, rowCount: f, rowHeight: m, rowKey: g, rowProps: v, tagName: y = "div", style: b, ...x }) {
11205
+ let S = Yp(v), C = p(() => s(l, Xp), [l]), [w, T] = h(null), E = Zp(m), { getCellBounds: D, getEstimatedSize: O, scrollToIndex: k, startIndexOverscan: A, startIndexVisible: j, stopIndexOverscan: M, stopIndexVisible: N } = Jp({
11192
11206
  containerElement: w,
11193
11207
  containerStyle: b,
11194
11208
  defaultContainerSize: n,
@@ -11214,12 +11228,12 @@ function Qp({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
11214
11228
  top: r
11215
11229
  });
11216
11230
  }
11217
- }), [w, k]), Mp(() => {
11231
+ }), [w, k]), Np(() => {
11218
11232
  if (!w) return;
11219
11233
  let e = Array.from(w.children).filter((e, t) => {
11220
11234
  if (e.hasAttribute("aria-hidden")) return !1;
11221
11235
  let n = `${A + t}`;
11222
- return e.setAttribute(Zp, n), !0;
11236
+ return e.setAttribute(Qp, n), !0;
11223
11237
  });
11224
11238
  if (E) return m.observeRowElements(e);
11225
11239
  }, [
@@ -11298,4 +11312,4 @@ function Qp({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
11298
11312
  }, P, e, ee);
11299
11313
  }
11300
11314
  //#endregion
11301
- export { J as $, Lf as A, zs as B, Wf as C, Bf as D, Vf as E, Sf as F, Us as G, Ys as H, Hu as I, Ss as J, ec as K, Uu as L, Ff as M, Pf as N, zf as O, wf as P, Ra as Q, Vu as R, Gf as S, Hf as T, nc as U, ic as V, Gs as W, co as X, ho as Y, Ya as Z, Qf as _, Dp as a, K as at, qf as b, Ap as c, Ii as ct, sp as d, W as dt, ka as et, ap as f, fi as ft, Xf as g, Pn as gt, ep as h, Ln as ht, Ep as i, q as it, If as j, Rf as k, jp as l, xi as lt, $f as m, ui as mt, wp as n, ha as nt, Op as o, Wi as ot, rp as p, pi as pt, js as q, Tp as r, sa as rt, kp as s, G as st, Qp as t, Ta as tt, Cp as u, bi as ut, Yf as v, Uf as w, Kf as x, Zf as y, Tu as z };
11315
+ export { Ra as $, Rf as A, Tu as B, Gf as C, Vf as D, Hf as E, wf as F, Gs as G, ic as H, Sf as I, js as J, Us as K, Hu as L, If as M, Ff as N, Bf as O, Pf as P, Ya as Q, Uu as R, Kf as S, Uf as T, Ys as U, zs as V, nc as W, ho as X, Ss as Y, co as Z, Xf as _, Pn as _t, Op as a, q as at, Zf as b, jp as c, G as ct, sp as d, bi as dt, J as et, ap as f, W as ft, ep as g, Ln as gt, $f as h, ui as ht, Dp as i, sa as it, Lf as j, zf as k, Mp as l, Ii as lt, Cp as m, pi as mt, Tp as n, Ta as nt, kp as o, K as ot, rp as p, fi as pt, ec as q, Ep as r, ha as rt, Ap as s, Wi as st, $p as t, ka as tt, wp as u, xi as ut, Qf as v, Wf as w, qf as x, Yf as y, Vu as z };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ioai/lerobot-studio",
3
3
  "private": false,
4
- "version": "1.0.2",
4
+ "version": "1.1.0",
5
5
  "type": "module",
6
6
  "packageManager": "npm@11.7.0",
7
7
  "scripts": {