diff --git a/PUBLICATION_SCOPE.json b/PUBLICATION_SCOPE.json deleted file mode 100644 index 3dfe3899e45dadfab4d8e7aa79bf2640dabaf13e..0000000000000000000000000000000000000000 --- a/PUBLICATION_SCOPE.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "scope": "model weights, masks, architecture, normalization and provenance only", - "optimizer_resume_states": "deferred by explicit user instruction", - "original_files_modified": false -} diff --git a/README.md b/README.md index 1959a9ec6aed18e75b6c7204ef42df84b35c0350..1907aa5e25fd4c68688e0ef3a065a5953dff5361 100644 --- a/README.md +++ b/README.md @@ -3,59 +3,63 @@ language: en tags: - robotics - vpp2 -- model-compression - structured-pruning - robodojo --- # AdaPrune — Bagel-Robotics-1 checkpoint 1000 -Complete: listed model artifacts verified against local receipts and remote checksums. +Public inference release of the **exact checkpoint 1000** used in the Bagel-Robotics-1 evaluation campaign. Downloads require no account, token or access request. This is distinct from Bagel-Robotics-1-Preview. -This is the **physically pruned policy checkpoint selected for the full-suite evaluation campaign**. The uploaded inference files match the SHA-256 fingerprints in all five suite protocols (Precision, Memory, Generalization, Long Horizon and Open). This establishes artifact identity, not completion of every evaluation episode. +The video expert has **12,468,409,664 parameters**, 23.95% fewer than its recorded parent. Learned masks were converted into smaller FFN and cross-attention layers. Self-attention heads and the action expert are retained. No teacher or learned-mask module is required for inference. Parameter reduction is not a measured inference-speedup claim. -Keep these four files together: `video.pt`, `action.pt`, `compact_architecture.json`, `dataset_stats.json`. No learned-mask module or full teacher is needed for deployed inference. +## Fixed checkpoint identity -### Evaluation settings +- Original checkpoint revision: `2651631c5d08819088475e8778676f5cf6d9afcf`. +- Identity: `790bffc9464fa7a026aa43b217aec2033d186895cad643166daa0bcc01914d5c`. +- [artifact-manifest.json](artifact-manifest.json) pins all six bundle files and the separate public encoder/tokenizer assets. +- [SHA256SUMS](SHA256SUMS) records the unchanged SHA-256 hashes of all six bundle files. -- Action horizon: 32; execute 16 actions per query. -- Action sampling: 10 Euler steps; shift 1; policy seed 1. -- Temporal ensembling: 90% newly predicted actions, 10% previous overlapping predictions, using the recorded quaternion handling in the evaluation code. +The release adds documentation and inference packaging without changing any checkpoint file. The original revision is preserved, so historical provenance remains accessible in Git history. Current release files focus on inference. `COMPLETE.json` is the original export receipt, including export-time paths and `simulation_completed: false`; it is retained unchanged for integrity, not used as a current evaluation-status claim. Those historical paths are not required for deployment. -The full-suite campaign comprises 400 Precision, 300 Memory, 600 Generalization, 400 Long Horizon and 400 Open episodes. Frozen protocol snapshots are included under `evaluation/`. They record intended evaluation coverage and checkpoint hashes; this repository does not claim a completed full-suite score. +## Download the exact checkpoint -### Training and validation context - -Recovery after checkpoint 55 used ground-truth action supervision (1.0) and reliability-weighted teacher-video supervision (0.05), with K/V and teacher-action imitation losses both zero. Video weights trained; Action2B remained frozen. Curated 30,000-window subset, global batch 256, training seed 100008. The complete source config is preserved. - -At update 1,000, the fixed 140-window offline validation panel reported task-macro normalized native-action MSE of **0.0005726480308242441** against ground truth. The offline action metric scores up to the first 24 valid actions; it differs from the simulation execution interval of 16. `validation.json` contains the original metrics. Lower offline error alone does not establish improved robot success. +```bash +hf download bageldotcom/adaprune \ + --revision 2651631c5d08819088475e8778676f5cf6d9afcf \ + --include video.pt action.pt compact_architecture.json dataset_stats.json COMPLETE.json validation.json \ + --local-dir /absolute/path/to/checkpoints/cp1000 +``` -The original `COMPLETE.json` has `simulation_completed: false`, reflecting its export-time status. It is preserved unedited; subsequent evaluation provenance is separate. +There are approximately 29.0 GB of checkpoint tensors. Keep all six files together. The inference downloader checks their sizes and SHA-256 hashes and downloads approximately 16.7 GB of separately pinned VAE/conditioning/tokenizer assets. Allow extra disk space for caches and installation. -## Download +## Inference adapter and reevaluation -Authenticate with an account that has access to this private repository, then run: +The standalone XPolicyLab adapter is provided under [`inference/`](inference/), at release tag `adaprune-cp1000-inference-v1`. No private research repository is required. ```bash hf download bageldotcom/adaprune \ - --revision 2651631c5d08819088475e8778676f5cf6d9afcf \ - --local-dir /absolute/path/to/checkpoints/cp1000 -``` + --revision adaprune-cp1000-inference-v1 \ + --include 'inference/**' \ + --local-dir /absolute/path/to/adaprune-release -Use the code and setup link below to load these files. Keep the integrity receipts with the downloaded weights. +git clone https://github.com/XPolicyLab/XPolicyLab.git /absolute/path/to/workspace/XPolicyLab +git -C /absolute/path/to/workspace/XPolicyLab checkout 6baccd57ff958570d0db1588370289ee36c8bb70 +python /absolute/path/to/adaprune-release/inference/install_adapter.py /absolute/path/to/workspace/XPolicyLab +``` -For the prepared XPolicyLab submission, the policy directory is `policy/bagel_robotics_1` and the checkpoint name is `cp1000`. Its pinned downloader fetches the six required bundle files and the separate VAE/conditioning assets, verifies their hashes, and supplies the standalone inference runtime. The adapter PR is being prepared; no public XPolicyLab PR link is available yet. The technical report and training/pruning/export code are planned for November 20, 2026. Evaluator access must be arranged while this repository remains private. +Follow the included [policy README](inference/policy/bagel_robotics_1/README.md) to install the Python 3.10 environment, download/verify assets and run both debug checks. Follow [REEVALUATION.md](inference/policy/bagel_robotics_1/REEVALUATION.md) for task, suite and three-seed commands. Install RoboDojo and simulator assets separately using its [official guide](https://robodojo-benchmark.com/doc/usage/install-and-download/). -## Lineage and code +The adapter uses `policy_name=bagel_robotics_1`, `ckpt_name=cp1000`, ARX X5 end-effector actions, and one environment per policy process. Fixed inference settings: BF16; predict 32 actions and execute 16; ten Euler steps; shift 1; 90% new / 10% previous temporal blending. Qualification used a 96 GB RTX PRO 6000 Blackwell, Python 3.10.21 and PyTorch 2.11.0+cu130; a lower minimum GPU capacity has not been qualified. -Mask learning update 1,500 selected the channels. The physically pruned video expert has **12,468,409,664 parameters**, compared with 16,394,878,784 before pruning (23.95% fewer video parameters). The frozen Action2B expert is separate from this count. Recovery checkpoint 55 already had 55 recovery updates with K/V supervision; the later no-K/V branch continued from it to update 1,000. +These are compact-aware VPP2 artifacts, not Transformers `AutoModel` checkpoints. The XPolicyLab PR has not been created; publishing this inference release does not imply committee acceptance. -[Historical research code (access may be restricted)](https://github.com/bageldotcom/bagel-robotics/tree/2fc74c246136e543d72ff9af1732936814d3baf8/workflows/distillation) · [Historical research integration PR](https://github.com/bageldotcom/bagel-robotics/pull/169) +## Validation and release scope -These artifacts require a compact-aware VPP2 loader; they are not Transformers `AutoModel` checkpoints. The prepared XPolicyLab adapter includes that inference runtime and does not require access to the historical research repository. Until its PR is available, reviewers need the standalone adapter package from Bagel Labs. External VAE/conditioning encoders and RoboDojo data remain separate dependencies. Original upstream model/data terms continue to apply; this backup does not assert a new redistribution license. +The adapter's existing qualification includes 15 CPU tests, both real-checkpoint debug transports, four valid native simulator episodes, and eight exact action/history/reset/backend checks on the tested recordings. Full multi-seed official leaderboard validation remains separate. Historical research scores and scene exceptions are documented in the adapter's EVALUATION_RESULTS.md; they are not official leaderboard results. -## Integrity and training continuation +The technical report and training/pruning/export code are planned for **November 20, 2026**. This release contains inference code and weights; optimizer, scheduler, distributed RNG/sampler state, training datasets and simulator assets are not included. It does not support exact training continuation from weights alone. -`UPLOAD_INVENTORY.json` records every uploaded artifact's original path, size, and SHA-256. Upload verifies the source checksum against its recorded receipt and the remote file checksum. Original files are never modified or deleted. +## Attribution and terms -**Optimizer, scheduler, distributed RNG/sampler state and ZeRO shards are not included in this model-weight upload.** Model weights alone cannot exactly resume training. `RESUME_STATE_LOCAL.json` identifies the preserved local full checkpoint and its checksums; it does not mean those shards are on Hugging Face. +Derived from [VPP2](https://github.com/roboterax/video-prediction-policy-2) and Wan2.1 components. See [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) and the adapter's retained MIT/Apache-2.0 notices. Model and auxiliary-asset upstream terms continue to apply; an inference-code license is not a new blanket license for all weights or datasets. diff --git a/RELEASE.json b/RELEASE.json new file mode 100644 index 0000000000000000000000000000000000000000..bdfccdec5fc47aab9ac3ddd15f0cf03dc3395d36 --- /dev/null +++ b/RELEASE.json @@ -0,0 +1,36 @@ +{ + "model_name": "Bagel-Robotics-1", + "release_name": "AdaPrune checkpoint 1000", + "repository": "bageldotcom/adaprune", + "checkpoint_revision": "2651631c5d08819088475e8778676f5cf6d9afcf", + "checkpoint_identity": "790bffc9464fa7a026aa43b217aec2033d186895cad643166daa0bcc01914d5c", + "files": { + "COMPLETE.json": { + "sha256": "eee062fbcb8c92a881117aa7f06b5cd039dfb9912d85571b59a20aa30837b0e1", + "size": 2491 + }, + "action.pt": { + "sha256": "9b04836abe5a30972e69ee84e5f5e39c09bf53dd45865551e1d04b42ead90ec3", + "size": 4057916577 + }, + "compact_architecture.json": { + "sha256": "a7f6696ab9a9beca785531c2402b81ccd1550745cb6e9ccaad67f658630f6b32", + "size": 6563270 + }, + "dataset_stats.json": { + "sha256": "2649d4e3ff3d6d400c9953b7c20c79541474f9c38a8a9916b9caacecd8578f16", + "size": 100256 + }, + "validation.json": { + "sha256": "9806ad2b0b58f879351da58eede46507a79433ec9e4eb8f37f415cf58f2ef70e", + "size": 88781 + }, + "video.pt": { + "sha256": "fb62db0b3a74a53aeab60f4b1acc8a5be47274f5c9db166684043521fe2a40bb", + "size": 24937214042 + } + }, + "scope": "Public inference checkpoint and supporting adapter; training/pruning/export source planned November 20, 2026", + "historical_provenance": "Original checkpoint revision and checksums preserved. Older commits retain original provenance and export records; the current release view contains inference materials.", + "official_leaderboard_result": false +} diff --git a/RESUME_STATE_LOCAL.json b/RESUME_STATE_LOCAL.json deleted file mode 100644 index 38784bfe197976af073e251e3e77b43c445a8e49..0000000000000000000000000000000000000000 --- a/RESUME_STATE_LOCAL.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "original_path": "/data3/praveen/experiments/vpp2-recovery55-no-kv-to1000-20261103/recovery/checkpoints/update_001000", - "reason": "Full optimizer/resume shards exceed the personal free-tier private-storage allowance and are deferred pending destination selection.", - "receipt": { - "checkpoint_identity": "2899ec0a0f6af889a1babd95c7475e7bc6449b39b12b354384964f5abd30d388", - "files": { - "bf16_zero_pp_rank_0_mp_rank_00_optim_states.pt": { - "sha256": "0d33035235009137414b82d1d8e08f8042e3b6b2a5751f8078ee7eb66d7c4dee", - "size": 17208428484 - }, - "bf16_zero_pp_rank_1_mp_rank_00_optim_states.pt": { - "sha256": "85ea00ab82114fe05b62f0441b8615f5e2c569d4cdee1cd0d7eaee96243fed63", - "size": 17213174428 - }, - "bf16_zero_pp_rank_2_mp_rank_00_optim_states.pt": { - "sha256": "37c505863a1129efe703fd34d992b45adc440e9dd93bd1306da9d39aa856a0a8", - "size": 17211998172 - }, - "bf16_zero_pp_rank_3_mp_rank_00_optim_states.pt": { - "sha256": "923d3b5fde2d350eb134cc3bfc93a6a98d589b0ef062d8ee945c184cf4422539", - "size": 17214269733 - }, - "bf16_zero_pp_rank_4_mp_rank_00_optim_states.pt": { - "sha256": "c362c831a50935204078a434f05862560d4657d61a2d822f4bade80ab8ec4751", - "size": 17211683350 - }, - "bf16_zero_pp_rank_5_mp_rank_00_optim_states.pt": { - "sha256": "9ff16b0c5a15154c6e486d206379ac70f58fb8a156be12ed7ba777d537ccba76", - "size": 17205282759 - }, - "bf16_zero_pp_rank_6_mp_rank_00_optim_states.pt": { - "sha256": "d3d625ded0abb49ae560a5a9e7356f2f345246f6d2deb1fbf492a8c3dde3a68d", - "size": 17193645344 - }, - "bf16_zero_pp_rank_7_mp_rank_00_optim_states.pt": { - "sha256": "b64e40e2b433e0a95f28ccebd0f3fa899f2bedfb77ef62a9b0371e3f093a21a0", - "size": 17196229893 - }, - "zero_pp_rank_0_mp_rank_00_model_states.pt": { - "sha256": "4eec7353b2f34dbfff54df2013f5261bb20643e1509760766f02686d37d4a94e", - "size": 78779 - }, - "zero_pp_rank_1_mp_rank_00_model_states.pt": { - "sha256": "ab1b0fd39ea72506f2d8f74d570968e646c01ca82f3cd04705d888b137f74090", - "size": 78783 - }, - "zero_pp_rank_2_mp_rank_00_model_states.pt": { - "sha256": "30082af65f03a955dc837eb72eebf1dc2dc1aec23af1f5d20eef1a9f6edae2fe", - "size": 78780 - }, - "zero_pp_rank_3_mp_rank_00_model_states.pt": { - "sha256": "126b9d5641ba0e0c59967ef41285771ad5c76e70a8f8896c745fb9a4f1b54a81", - "size": 78781 - }, - "zero_pp_rank_4_mp_rank_00_model_states.pt": { - "sha256": "93278bc910a03046b2463d964d4187d2d6ae7ddd33b3f1f039aaf425b0dc8924", - "size": 78782 - }, - "zero_pp_rank_5_mp_rank_00_model_states.pt": { - "sha256": "a63df2fdeb27465b234d0f9f32283a86043d38a6e85a96fc89d16046fe5f4c22", - "size": 78770 - }, - "zero_pp_rank_6_mp_rank_00_model_states.pt": { - "sha256": "c7cad4d47a16c0a1bc33e39255001ac3c0b61e7fcdb36ccb337483e4d83a46a8", - "size": 78779 - }, - "zero_pp_rank_7_mp_rank_00_model_states.pt": { - "sha256": "43029cb15da85321fff5e2751376e7178dd239c852d92a6dbc3d73d1ab8db0f2", - "size": 78779 - } - }, - "identity": "790bffc9464fa7a026aa43b217aec2033d186895cad643166daa0bcc01914d5c", - "mask_identity": null, - "recovery_export_sha256": "2917adfeadbc2c6d4da60b7739dbee861d7f318f8fc66877f1ca6bd691938172", - "stage": "recovery", - "update": 1000 - }, - "total_shard_bytes": 137655342396, - "uploaded": false -} diff --git a/SHA256SUMS b/SHA256SUMS new file mode 100644 index 0000000000000000000000000000000000000000..884ce4d321dbe2038c6a24f0b389b767df77b706 --- /dev/null +++ b/SHA256SUMS @@ -0,0 +1,6 @@ +eee062fbcb8c92a881117aa7f06b5cd039dfb9912d85571b59a20aa30837b0e1 COMPLETE.json +9b04836abe5a30972e69ee84e5f5e39c09bf53dd45865551e1d04b42ead90ec3 action.pt +a7f6696ab9a9beca785531c2402b81ccd1550745cb6e9ccaad67f658630f6b32 compact_architecture.json +2649d4e3ff3d6d400c9953b7c20c79541474f9c38a8a9916b9caacecd8578f16 dataset_stats.json +9806ad2b0b58f879351da58eede46507a79433ec9e4eb8f37f415cf58f2ef70e validation.json +fb62db0b3a74a53aeab60f4b1acc8a5be47274f5c9db166684043521fe2a40bb video.pt diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md new file mode 100644 index 0000000000000000000000000000000000000000..7c7140daa83b46bf89a8ef0a227cc2585c1d8932 --- /dev/null +++ b/THIRD_PARTY_NOTICES.md @@ -0,0 +1,13 @@ +# Source and artifact notices + +- The retained VPP2/FastWAM-derived runtime carries the original MIT notice in + `LICENSE`, copyright 2026 The FastWAM Authors. Bagel-specific packaging does not + remove that attribution. See `source-provenance.json` for frozen-source hashes. +- Wan2.1/DiffSynth-derived model components retain Apache-2.0 terms; see + `licenses/Apache-2.0.txt` and upstream Wan2.1/DiffSynth source notices. +- The XPolicyLab interface follows its upstream license, included in + `licenses/XPolicyLab.txt`. RoboDojo and simulator assets are not bundled. +- Encoder weights, tokenizer files and model weights have their own upstream + terms. The code license does not assign a new license to those artifacts. +- The existing preview PR by Soroush Mehraban was consulted as a reference; its + alternate checkpoint, code and release promises are not this submission. diff --git a/UPLOAD_INVENTORY.json b/UPLOAD_INVENTORY.json deleted file mode 100644 index 935a999bc30df7bc85fd7b8008c9789ffb2e9b60..0000000000000000000000000000000000000000 --- a/UPLOAD_INVENTORY.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "files": [ - { - "bytes": 4057916577, - "mtime_ns": 1793716074808787383, - "path": "action.pt", - "sha256": "9b04836abe5a30972e69ee84e5f5e39c09bf53dd45865551e1d04b42ead90ec3", - "source": "/data3/praveen/experiments/vpp2-recovery55-no-kv-to1000-20261103/artifacts/best_models/update_001000/action.pt" - }, - { - "bytes": 6563270, - "mtime_ns": 1793716074811787315, - "path": "compact_architecture.json", - "sha256": "a7f6696ab9a9beca785531c2402b81ccd1550745cb6e9ccaad67f658630f6b32", - "source": "/data3/praveen/experiments/vpp2-recovery55-no-kv-to1000-20261103/artifacts/best_models/update_001000/compact_architecture.json" - }, - { - "bytes": 100256, - "mtime_ns": 1793716074808787383, - "path": "dataset_stats.json", - "sha256": "2649d4e3ff3d6d400c9953b7c20c79541474f9c38a8a9916b9caacecd8578f16", - "source": "/data3/praveen/experiments/vpp2-recovery55-no-kv-to1000-20261103/artifacts/best_models/update_001000/dataset_stats.json" - }, - { - "bytes": 88781, - "mtime_ns": 1793716074812787292, - "path": "validation.json", - "sha256": "9806ad2b0b58f879351da58eede46507a79433ec9e4eb8f37f415cf58f2ef70e", - "source": "/data3/praveen/experiments/vpp2-recovery55-no-kv-to1000-20261103/artifacts/best_models/update_001000/validation.json" - }, - { - "bytes": 24937214042, - "mtime_ns": 1793716059522133613, - "path": "video.pt", - "sha256": "fb62db0b3a74a53aeab60f4b1acc8a5be47274f5c9db166684043521fe2a40bb", - "source": "/data3/praveen/experiments/vpp2-recovery55-no-kv-to1000-20261103/artifacts/best_models/update_001000/video.pt" - }, - { - "bytes": 2491, - "mtime_ns": 1793822228420499831, - "path": "COMPLETE.json", - "sha256": "eee062fbcb8c92a881117aa7f06b5cd039dfb9912d85571b59a20aa30837b0e1", - "source": "/home/praveen/hf-vpp2-distillation-upload-20261104/recovery/metadata/COMPLETE.json" - }, - { - "bytes": 5403, - "mtime_ns": 1793822228422499788, - "path": "evaluation/full-suite-manifest.json", - "sha256": "07680ea0528ddc40a6851429d402af835e96963be981d1f99fc46d569a6ecf64", - "source": "/home/praveen/hf-vpp2-distillation-upload-20261104/recovery/metadata/evaluation/full-suite-manifest.json" - }, - { - "bytes": 80852, - "mtime_ns": 1793822228422499788, - "path": "evaluation/generalization-protocol.json", - "sha256": "0e16900a6fc62fe4a1bca7cddb04fe6015db82d889d9e7d969f72544dee18d4b", - "source": "/home/praveen/hf-vpp2-distillation-upload-20261104/recovery/metadata/evaluation/generalization-protocol.json" - }, - { - "bytes": 80848, - "mtime_ns": 1793822228423499766, - "path": "evaluation/long-horizon-protocol.json", - "sha256": "aa821db302916520d175f76cffe4e5cc18145242d406103005a07e654bf9e3ea", - "source": "/home/praveen/hf-vpp2-distillation-upload-20261104/recovery/metadata/evaluation/long-horizon-protocol.json" - }, - { - "bytes": 80938, - "mtime_ns": 1793822228423499766, - "path": "evaluation/memory-protocol.json", - "sha256": "731a4efed771eb6cf8061383272d605a86d2db3e9839080b8a77130889087506", - "source": "/home/praveen/hf-vpp2-distillation-upload-20261104/recovery/metadata/evaluation/memory-protocol.json" - }, - { - "bytes": 80832, - "mtime_ns": 1793822228424499744, - "path": "evaluation/open-protocol.json", - "sha256": "c6333ded75dff92991d01f6ab5fc4bf4eb883021d08cd0bb0b915da223005259", - "source": "/home/praveen/hf-vpp2-distillation-upload-20261104/recovery/metadata/evaluation/open-protocol.json" - }, - { - "bytes": 598, - "mtime_ns": 1793822228425499722, - "path": "evaluation/precision-completion.json", - "sha256": "751464aae8c9f83e80f92ab2fededc2aed7a22870aac49cd7aa946b2b4274df4", - "source": "/home/praveen/hf-vpp2-distillation-upload-20261104/recovery/metadata/evaluation/precision-completion.json" - }, - { - "bytes": 80563, - "mtime_ns": 1793822228425499722, - "path": "evaluation/precision-protocol.json", - "sha256": "09c98cae0e01a93c787a17e3e22f0ab482886fb761d4bcc9916b856dbdb7f25d", - "source": "/home/praveen/hf-vpp2-distillation-upload-20261104/recovery/metadata/evaluation/precision-protocol.json" - }, - { - "bytes": 11380, - "mtime_ns": 1793822228426499701, - "path": "provenance/config.json", - "sha256": "75d5278ad92fa2ba3d44113b74c346302bcfbb1ae4681ad33e74cd25bca714f8", - "source": "/home/praveen/hf-vpp2-distillation-upload-20261104/recovery/metadata/provenance/config.json" - }, - { - "bytes": 35190, - "mtime_ns": 1793822228426499701, - "path": "provenance/source_manifest.json", - "sha256": "e825a83c1f50d1ff8bbee371a860c901f48da3355050e1958bed81acaa5dc270", - "source": "/home/praveen/hf-vpp2-distillation-upload-20261104/recovery/metadata/provenance/source_manifest.json" - }, - { - "bytes": 3528, - "mtime_ns": 1793822228427499679, - "path": "RESUME_STATE_LOCAL.json", - "sha256": "970fb75ee3c422edab95e7267f68f42122ece34233a1d86f53db2fa356d9c226", - "source": "/home/praveen/hf-vpp2-distillation-upload-20261104/recovery/metadata/RESUME_STATE_LOCAL.json" - } - ], - "original_files_unchanged": true, - "prepared_at": "2026-11-04T19:57:08.429540+00:00", - "repo_id": "GnanaPraveen/vpp2-recovery-step-1000", - "schema": "vpp2-hf-artifact-inventory-v1", - "source_code_commit": "2fc74c246136e543d72ff9af1732936814d3baf8", - "total_bytes": 29002345549, - "training_state_included": false -} diff --git a/UPLOAD_VERIFICATION.json b/UPLOAD_VERIFICATION.json deleted file mode 100644 index e2b6ee48bf6bfdbeabc1657f078e89969f64e5ce..0000000000000000000000000000000000000000 --- a/UPLOAD_VERIFICATION.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "artifact_revision": "bc72b758356042311edf1592171d48c33e5eeb90", - "bytes": 29002345549, - "files": 16, - "inventory_sha256": "6b27ac39a5c9e96e3ea45be5da6d32006e393a75fd8b3eb921a714bc4c44e1b3", - "optimizer_resume_shards_uploaded": false, - "original_files_modified": false, - "private": true, - "repo_id": "GnanaPraveen/vpp2-recovery-step-1000", - "verification": "Source SHA-256 verified against recorded receipts; remote LFS SHA-256 or Git blob matched for every artifact; source size/mtime unchanged.", - "verified_at": "2026-11-04T20:00:51.244557+00:00" -} diff --git a/artifact-manifest.json b/artifact-manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..fcc1c37a1eaf549c4b77576d0dcbcfcc197c44aa --- /dev/null +++ b/artifact-manifest.json @@ -0,0 +1,112 @@ +{ + "schema": "bagel-cp1000-submission-v1", + "display_name": "Bagel-Robotics-1", + "checkpoint_identity": "790bffc9464fa7a026aa43b217aec2033d186895cad643166daa0bcc01914d5c", + "update": 1000, + "video_parameters": 12468409664, + "repo_id": "bageldotcom/adaprune", + "revision": "2651631c5d08819088475e8778676f5cf6d9afcf", + "private": false, + "files": { + "COMPLETE.json": { + "sha256": "eee062fbcb8c92a881117aa7f06b5cd039dfb9912d85571b59a20aa30837b0e1", + "size": 2491 + }, + "action.pt": { + "sha256": "9b04836abe5a30972e69ee84e5f5e39c09bf53dd45865551e1d04b42ead90ec3", + "size": 4057916577 + }, + "compact_architecture.json": { + "sha256": "a7f6696ab9a9beca785531c2402b81ccd1550745cb6e9ccaad67f658630f6b32", + "size": 6563270 + }, + "dataset_stats.json": { + "sha256": "2649d4e3ff3d6d400c9953b7c20c79541474f9c38a8a9916b9caacecd8578f16", + "size": 100256 + }, + "validation.json": { + "sha256": "9806ad2b0b58f879351da58eede46507a79433ec9e4eb8f37f415cf58f2ef70e", + "size": 88781 + }, + "video.pt": { + "sha256": "fb62db0b3a74a53aeab60f4b1acc8a5be47274f5c9db166684043521fe2a40bb", + "size": 24937214042 + } + }, + "wan": { + "repo": "Haodong082399/VPP2", + "revision": "04824ddb3aae11f13db50984ed7d540c3b77dd9f", + "files": [ + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/LICENSE.txt", + "blobId": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "size": 11357 + }, + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/Wan2.1_VAE.pth", + "blobId": "5897fba405232a6b07a947d6188d19a8e050ccfb", + "size": 507609880, + "lfs": { + "sha256": "38071ab59bd94681c686fa51d75a1968f64e470262043be31f7a094e442fd981", + "size": 507609880, + "pointerSize": 134 + } + }, + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/config.json", + "blobId": "f5a12b285ec9c2497cafc4a4443fc6ba61b1a30b", + "size": 250 + }, + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/google/umt5-xxl/special_tokens_map.json", + "blobId": "14855e7052ffbb595057dfd791d293c1c940db2c", + "size": 6623 + }, + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/google/umt5-xxl/spiece.model", + "blobId": "2fe5f347e9f9367585589ae89e997dfbd5cf802c", + "size": 4548313, + "lfs": { + "sha256": "e3909a67b780650b35cf529ac782ad2b6b26e6d1f849d3fbb6a872905f452458", + "size": 4548313, + "pointerSize": 132 + } + }, + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/google/umt5-xxl/tokenizer.json", + "blobId": "7bd4ee3cf5633e49c0e06a3aac2a621559e6222a", + "size": 16837417, + "lfs": { + "sha256": "6e197b4d3dbd71da14b4eb255f4fa91c9c1f2068b20a2de2472967ca3d22602b", + "size": 16837417, + "pointerSize": 133 + } + }, + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/google/umt5-xxl/tokenizer_config.json", + "blobId": "4e1cc1cd85599ce0b47fd0a746af188fe4043ff2", + "size": 61728 + }, + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/models_clip_open-clip-xlm-roberta-large-vit-huge-14.pth", + "blobId": "cbdd1a5bd944b2b4c47e21435106316971ac76d8", + "size": 4772359047, + "lfs": { + "sha256": "628c9998b613391f193eb67ff68da9667d75f492911e4eb3decf23460a158c38", + "size": 4772359047, + "pointerSize": 135 + } + }, + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/models_t5_umt5-xxl-enc-bf16.pth", + "blobId": "d5dad910304ab4b909a2c8a225a71840606e6de4", + "size": 11361920418, + "lfs": { + "sha256": "7cace0da2b446bbbbc57d031ab6cf163a3d59b366da94e5afe36745b746fd81d", + "size": 11361920418, + "pointerSize": 136 + } + } + ] + } +} diff --git a/evaluation/full-suite-manifest.json b/evaluation/full-suite-manifest.json deleted file mode 100644 index 446ab7bd56e9ad9f562e87943c1349a2d83d9894..0000000000000000000000000000000000000000 --- a/evaluation/full-suite-manifest.json +++ /dev/null @@ -1,146 +0,0 @@ -{ - "baseline": { - "checkpoint": 55, - "episodes": 400, - "mean_partial_score": 0.39425, - "source_url": "https://app.notion.com/p/40ded7607a4081f48d77c47f8549784c", - "successes": 122 - }, - "checkpoint": 1000, - "decision_rule": "Finish all400 checkpoint1000 Precision episodes, then Memory, Generalization, Long Horizon and Open regardless of success rate or partial score; checkpoint950 cancelled by user.", - "execution_sources": { - "generalization.sbatch": "d6fc7abb1b6170704fa60e4ca75bb574952253316f59ca4ffc85d83bfdeff6ca", - "long_horizon.sbatch": "bdf112f24eb2fa5c85567731046544277cd209a561f50d65f54a07bb03a2a7e0", - "memory.sbatch": "efc073d50f80bb115c41cc9b8988c1afab1010e6c047f330cd71f12d8c3b1175", - "open.sbatch": "5dfd7afdcf8f4b5b97c5fd688b980f58bd61a1a4101a37c825005b55f2ed051c", - "precision_handoff.py": "9a783d94112f12542c6715aac55f802e66d392367c1c72cd8f9aa93f65374378", - "prepare_followup.py": "c2e457fdea0f9ef3a33f5c233ea019aea31ff89fb2982a5032cc4cadac2d01ac", - "suite_common.py": "157988d7033ea528b2dc9200359a4edfbb41e5d2f692da6487108669abf11b1f", - "suite_driver.py": "d4fc61af349bd499eddd5d061675405dedede1cda918765b1954d2ec85a55d8e", - "test_followup.py": "106e26b1be0059be2444054628000e1dee482ba315adec2ce0b9a46ba371941e" - }, - "id": "c62f853a713ce9200730a1b937a619358a9c146f2d914ddddfe8988b27ae47d6", - "input_hashes": { - "inputs/authorization.json": "23aba269d4c3f71508be5fdc44e45fbfda7c358fef1ac4b761690f25cbbace45", - "inputs/generalization.json": "de5a880e127039c689082262619791f26eb66ae5ed1fe929b8308f93a818f6b5", - "inputs/long_horizon.json": "26a9c66ed3082a59ccbb11c1c43d5bc2ad0123ab66a3ffd27750e834c9de2d20", - "inputs/memory.json": "b961cfc82459c2a394922903cc6d275aaf647d8cb4561ebafc7dc259bc73928b", - "inputs/open.json": "3daaf3e86b2f7dacad8fbe063efc23aa06d805a5c50a60cac347395fec87f4a7", - "inputs/unconditional-authorization.json": "a33af04a144b2d59a15c8fe4a74fd93a6b5b94ab7539316abc09b553226bf43a" - }, - "performance_condition": "none", - "precision_protocol": "266df4b5d9b8eac16145600a8c4f9223d15e03285d61473c3bbd8c43b694f211", - "precision_root": "/home/praveen/experiments/vpp2-recovery1000-950-precision-20261103", - "precision_tasks": [ - "build_tower", - "insert_tubes", - "deposit_coin", - "fasten_screws", - "insert_key", - "play_Xylophone", - "plug_in_charger", - "pour_balls_into_vase" - ], - "replacements": [], - "revision_of": "f5491d41dd847cc86f52a9f9b8d7ffc9b8aa9642a595372aa20d51f5026b534f", - "schema": "checkpoint1000-unconditional-followup-v2", - "selection": "original", - "suite_order": [ - "memory", - "generalization", - "long_horizon", - "open" - ], - "suites": { - "generalization": { - "episodes_file": "inputs/generalization.json", - "expected": 600, - "name": "generalization", - "overrides": {}, - "reporting_holds": {}, - "runtime": { - "protocol": "4d705e28dc3ee7b401ea3f851cfa2b205981a5009d65cc01f3bd467489d50ab6", - "root": "/data/praveen/vpp2-recovery1000-followup-20261104/generalization/runtime", - "update": 1000 - }, - "task_order": [ - "stack_bowls", - "push_T", - "pack_objects_into_box", - "fold_clothes", - "hang_mugs", - "sweep_blocks", - "pour_liquid_into_cup", - "make_toast", - "arrange_largest_number", - "sort_nesting_dolls_by_size", - "store_laptop_and_headphones", - "stack_blocks" - ] - }, - "long_horizon": { - "episodes_file": "inputs/long_horizon.json", - "expected": 400, - "name": "long_horizon", - "overrides": {}, - "reporting_holds": {}, - "runtime": { - "protocol": "c2867b1bb38b88d54cbe92103a5cf6d2020c3d44f67c89412182265c4bac8256", - "root": "/data/praveen/vpp2-recovery1000-followup-20261104/long_horizon/runtime", - "update": 1000 - }, - "task_order": [ - "put_bottles_into_dustbin", - "fill_pen_holder", - "classify_objects", - "play_tic_tac_toe", - "fill_egg_holder", - "organize_table", - "make_kong", - "play_stacking_toy" - ] - }, - "memory": { - "episodes_file": "inputs/memory.json", - "expected": 300, - "name": "memory", - "overrides": {}, - "reporting_holds": {}, - "runtime": { - "protocol": "35ef508554aee3ce8b89ddc3826fb6eda60bd022db79d6d91a60f6f37e7014f8", - "root": "/data/praveen/vpp2-recovery1000-followup-20261104/memory/runtime", - "update": 1000 - }, - "task_order": [ - "cover_blocks", - "match_and_pick_from_conveyor", - "swap_blocks", - "swap_T", - "press_by_number", - "imitate_sorting_sequence" - ] - }, - "open": { - "episodes_file": "inputs/open.json", - "expected": 400, - "name": "open", - "overrides": {}, - "reporting_holds": {}, - "runtime": { - "protocol": "92558f946ce17044692364bcb3515da3925bcf3c646266c8dc9ce1f38771384e", - "root": "/data/praveen/vpp2-recovery1000-followup-20261104/open/runtime", - "update": 1000 - }, - "task_order": [ - "align_blocks", - "general_pickup", - "stack_blocks_by_language", - "solve_equation", - "classify_objects_by_language", - "pick_from_conveyor_by_image", - "store_tools_in_toolbox", - "pour_by_language" - ] - } - } -} diff --git a/evaluation/generalization-protocol.json b/evaluation/generalization-protocol.json deleted file mode 100644 index 7dccca57339275a0350127e73f706fa49b4ad4e7..0000000000000000000000000000000000000000 --- a/evaluation/generalization-protocol.json +++ /dev/null @@ -1,706 +0,0 @@ -{ - "active_policies": [ - "vpp2" - ], - "caveat": "Same checkpoint55 policy/simulator code, benchmark layouts, seeds, r16 and new90/old10. Simulator physics are not claimed bitwise deterministic. Offline ranking used replan24 without ensemble.", - "checkpoint_files": { - "COMPLETE.json": { - "mtime_ns": 1793716093276368990, - "sha256": "eee062fbcb8c92a881117aa7f06b5cd039dfb9912d85571b59a20aa30837b0e1", - "size": 2491 - }, - "action.pt": { - "mtime_ns": 1793716074808787383, - "sha256": "9b04836abe5a30972e69ee84e5f5e39c09bf53dd45865551e1d04b42ead90ec3", - "size": 4057916577 - }, - "compact_architecture.json": { - "mtime_ns": 1793716074811787315, - "sha256": "a7f6696ab9a9beca785531c2402b81ccd1550745cb6e9ccaad67f658630f6b32", - "size": 6563270 - }, - "dataset_stats.json": { - "mtime_ns": 1793716074808787383, - "sha256": "2649d4e3ff3d6d400c9953b7c20c79541474f9c38a8a9916b9caacecd8578f16", - "size": 100256 - }, - "validation.json": { - "mtime_ns": 1793716074812787292, - "sha256": "9806ad2b0b58f879351da58eede46507a79433ec9e4eb8f37f415cf58f2ef70e", - "size": 88781 - }, - "video.pt": { - "mtime_ns": 1793716059522133613, - "sha256": "fb62db0b3a74a53aeab60f4b1acc8a5be47274f5c9db166684043521fe2a40bb", - "size": 24937214042 - } - }, - "checkpoint_receipt_sha256": "eee062fbcb8c92a881117aa7f06b5cd039dfb9912d85571b59a20aa30837b0e1", - "execution_order": "one report task at a time; eight shared GPU workers", - "fresh_policy_per_episode": true, - "fresh_simulator_per_episode": true, - "gpu_sharing": { - "minimum_free_gpu_mib": 61440, - "mode": "shared-shard", - "one_worker_per_assigned_gpu": true - }, - "id": "4d705e28dc3ee7b401ea3f851cfa2b205981a5009d65cc01f3bd467489d50ab6", - "inherited_results": false, - "input_hashes": { - "inputs/episodes.json": "de5a880e127039c689082262619791f26eb66ae5ed1fe929b8308f93a818f6b5", - "inputs/master-episodes.json": "de5a880e127039c689082262619791f26eb66ae5ed1fe929b8308f93a818f6b5", - "inputs/vpp2-policy.json": "70bdf6403f8492f02317d39d061b3d11a8f5c5cedbfabcebe889608eb9041b02" - }, - "native_inference": { - "horizon": 32, - "replan": 16, - "seed": 1, - "shift": 1, - "steps": 10, - "temporal_ensemble": { - "enabled": true, - "new_weight": 0.9, - "old_weight": 0.1 - } - }, - "native_scoring": true, - "order": [ - "vpp2" - ], - "parent_evaluation": "/home/praveen/experiments/vpp2-recovery1000-950-precision-20261103/update_001000", - "parent_protocol": "266df4b5d9b8eac16145600a8c4f9223d15e03285d61473c3bbd8c43b694f211", - "primary_episodes": 600, - "repetitions": 1, - "schema": "checkpoint1000-followup-v1", - "scope": true, - "selection_manifest": "/data/praveen/vpp2-recovery1000-followup-20261104/inputs/generalization.json", - "selection_metric": "task_macro_ground_truth_native_action_mse", - "source_changes": [ - "native_eval/scope.py" - ], - "source_hashes": { - "control/simulator_recovery.py": "fcee066ec9e75ec081b0a955b136e2ab898cd1ee529a2c1e74a453c350c05367", - "native_eval/__init__.py": "2deca42c85edcf3d80dba72439ad95641937396e27e1149d77182cfc082267cd", - "native_eval/body_coverage.py": "50ce610f86584965281893ff2f98a78643c7e3207014212aad4c13fce4c8a782", - "native_eval/camera_group_cleanup.py": "8df69fdba913ec41ff7b1256ab1b43921a0b6fbef7ffbb6dacbf2adaba0f7843", - "native_eval/camera_lifecycle.py": "b0952d95d1da8a1bd3e9f544a2eb1eb0f516159b3442666c7acd9bbaee71687a", - "native_eval/check.py": "9587d7b200969ccb78ddf750dd3d8616d5e2245e29baa3a0d798e27a55bdaa5e", - "native_eval/compact_worker.py": "129a2e26a85e021f7a0282201dec976104a8e1ea1f0a67e6b75ce760257ee46e", - "native_eval/completion_integrity.py": "3b737f6dcf9ae9908b1a3602f66fda46c3b8399ee47b1c61f5c0fb9741031029", - "native_eval/criteria.py": "97ebc94d91c62d793e614f178d2d120df989faafb54881dd1d3f5d703df8bb76", - "native_eval/diagnostics.py": "53b0deb571984fd02ff65c400d5f3b9bc2754b8207ea8edf4e5017c3588ed3cd", - "native_eval/ensemble_check.py": "0bef52411b2ec2dd7e1ad21b8690b1f88ed229107b6e46b8dc43c34ca92a3572", - "native_eval/evidence.py": "cf7f769cfd838227b26101d7656ebcaede1b1d45a80785a32efb26c9befef0e9", - "native_eval/frame_epoch.py": "7b1d3b10f46d5acf82f6e983ecd5f8995310b2fef9fee04bfae168fda02e3efc", - "native_eval/hardware.py": "e30ed3359d91595d3053e24124445498a3f1be9d5c0d52f97e1e7d7d88268a5f", - "native_eval/hydra_frame.py": "c1aefee86396025b405e050597af7b67bb07c0dd1e65ea4a9be1ed78f8d99072", - "native_eval/particle_evidence.py": "378d667b2ab80176045e0bdcdbe3cb39adb612a356b8f6b81d13ae531bde711f", - "native_eval/policy.py": "e1cebbfb03c137bd4bf9f054c69be74f9a7f1df5f7ca13c250e606c2346b55b0", - "native_eval/prepare.py": "486df6d062098ea07ac63c4d3be51b5f27baf524d0d004411275243783d02ac3", - "native_eval/process_lifetime.py": "7dd20bee91c51546b6da067b96012dc5d5a013e8389dafd567b72c1f742cf97d", - "native_eval/provenance.py": "8fc2da1678832be9e9b8b778ff0dd1604db5d464cf1a19ff6137acf6b83d3e11", - "native_eval/receipts.py": "9ba5800e6e7e796937992117569efe1b3d625900a8e2ebf7955940a4e8cc81e0", - "native_eval/replay_receipts.py": "1c60f9bddccf7245e32df97b9e90749bc3ddbe5d65f37ed2d40ba339b458017e", - "native_eval/replay_server.py": "1c2c19bae8d1cd3ff564f1775540718c33293663d30161ea7bd293b8f322cab3", - "native_eval/report.py": "9d9f0ddc794d2af2ad6e349f991450592a6fe98db292e1ac3ae4fcadea961fc4", - "native_eval/repro.py": "f0e4ecd0ba009774105cebeba31f49a70f34c4f88f11855c939368027789a928", - "native_eval/reset_coverage.py": "3c6a414878c4cc2ef4114170356db0a6b2193b03ce5c3b4f6293c10c7d3138b0", - "native_eval/run.py": "23d2d58fe1160a03bdcf9591b5d5fae671d21832008cc4958ac58e060b88caa1", - "native_eval/run_one.py": "dddeea1abb269293bd08c3f5a69ea0a668620b18d07154ca1c0740a0bb213b99", - "native_eval/scope.py": "8a25f7509d394956c17e9c24d1dc62d4a2b77b3ba204f9e8a3e1eaf9ac7a2dc2", - "native_eval/simulator.py": "d40972be52b7544f62653114217e213d19d4b386bf2991abfbbbc618ab09cf83", - "native_eval/status.py": "b49d03681dbc28b80f39f4d6163c3a6e7c5a1ca62f1f0ef502c77dfbf149ca02", - "native_eval/topology.py": "062e9246890ad1f2e8bb8b64b3bbe6598f9dce6fcc33ec3eaa106f3cbc0f0ae5", - "native_eval/transport.py": "eb6cc295d064a142372dd51859e91233f61f1ad2c8ac8bf3880739f3fe4abec4", - "native_eval/vpp2_pilot.py": "571ca3eeba11fbf2afd4a4058629a280bc0ad4bd3eecca178ddde4aa543bd8de", - "source/simulator/LICENSE": "7794bb06af8fe5485ca912454ad1665ccd7846c45f9c2b1258658e480948cdbe", - "source/simulator/XPolicyLab/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", - "source/simulator/XPolicyLab/XPolicyLab.py": "a3909558697b73479f8baee03e15b4d74060a7c9ac2f31fcbc6cd659e7364862", - "source/simulator/XPolicyLab/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/client_server/__init__.py": "093e47e707f4a5598b0159b5ee371cd9a918b802c70a6e66154a18e9ef8fc5db", - "source/simulator/XPolicyLab/client_server/ws/__init__.py": "79905987a12ebf318dc0b2b9ec6f375d9b4561bac29d6c27d04e318d8f6e00b3", - "source/simulator/XPolicyLab/client_server/ws/__main__.py": "ee1c5807dcdf1c8f6721c5447463eb51babdb0f9ffbd91d1e7343834ca4aa19a", - "source/simulator/XPolicyLab/client_server/ws/model_client.py": "4d6e225ae5f577d862366350dca8742e91dd9527d6e76b8b2a6d48c991212d67", - "source/simulator/XPolicyLab/client_server/ws/model_server.py": "4988823b436cd05e6a4d8b13012cc30c7ffd57711b72497b1223a6b10dc0c043", - "source/simulator/XPolicyLab/client_server/ws/protocol/__init__.py": "19aeae375e94e58d437d789d0aff07b232c13f375235384d784984631d25d5d9", - "source/simulator/XPolicyLab/client_server/ws/protocol/client.py": "b309f58b1bddd99e56578026b61a15e6cfdc07e843e8a082bfd291d0e853ce5a", - "source/simulator/XPolicyLab/client_server/ws/protocol/codec.py": "8a97ef7e102fd954c266352d81eaceef0f1b0f5504571c03037683efe387865a", - "source/simulator/XPolicyLab/client_server/ws/protocol/exceptions.py": "73161f4cdcc7ffc8a87cec94f5459bfcb9113076be272d6cb2a3ff8d69e0c6ce", - "source/simulator/XPolicyLab/client_server/ws/protocol/keepalive.py": "7f6b9e636eefcd6c80a4b62e404a6f89e2f7e1a3b6008500312a972d6990a21d", - "source/simulator/XPolicyLab/client_server/ws/protocol/messages.py": "d05c8cbc20e0cbe1502551864907f25897035993f920748c9290c944c959eab7", - "source/simulator/XPolicyLab/client_server/ws/protocol/schemas.py": "f1ca82eafa8dcad6d968508adb51c25342b291f7b1c553fff305c381a6098bd0", - "source/simulator/XPolicyLab/model_template.py": "4f8d1eeb8073aa7ae6093abf0f395cd5fef70ff4a4bd1fa6b2d83b356a90754a", - "source/simulator/XPolicyLab/policy/VPP2/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/policy/VPP2/deploy.py": "ab94a8569e6168ab7cde6660890035e11b34961ff2648854a7b61d188c555b6e", - "source/simulator/XPolicyLab/policy/VPP2/deploy.yml": "d2c3f06eb2ffa2d1866767dc20db8d60e542fc2418dbc4cf86d4a0f86f944c5e", - "source/simulator/XPolicyLab/policy/VPP2/model.py": "699acc0c459c5997db4e3155e2b1b7eb64bf750552436074a369c4eb6e9ffef9", - "source/simulator/XPolicyLab/policy/VPP2/temporal_ensemble.py": "42be4b09c56377f4686b2e722de760fa3bafd1c6b92605ada269d94e19efc95e", - "source/simulator/XPolicyLab/policy/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/policy/internw0/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/policy/internw0/deploy.py": "42dc75140935046dfe83f19b3834bd7cf8372e1bdbe51f598b1f91b8d557b7fb", - "source/simulator/XPolicyLab/policy/internw0/deploy.yml": "e59de6edeee891d2aa24902ae9034e9c10889fb20116bc9263f30d773a4b0d10", - "source/simulator/XPolicyLab/utils/get_free_port.sh": "f45bcb327b45c91367e3e5cdff72d3a42bfb7a09f50e4774701637c4c23fc1a4", - "source/simulator/XPolicyLab/utils/load_file.py": "488590d76084f419a36c2fb3e658eeb240ae554678899e9f2ce0cc10da5c4b57", - "source/simulator/XPolicyLab/utils/process_data.py": "e044e627eb2677907e9227eda8458c857208913bd484c5e922b53025010eef0b", - "source/simulator/XPolicyLab/utils/robot/_robot_info.json": "8a5df36e750971003b484ad770a7a243e523e986d2977a4ecdbeecd4a07946bf", - "source/simulator/XPolicyLab/utils/wait_for_policy_server.sh": "f75a8360d83f2960f365dae77804c94a28aca332c2fbc62cdb4a39ae220374ad", - "source/simulator/env/camera_manager/camera_manager.py": "1a4250cb3bdc7305fe362a7c6b113f57e6f3e9e4983b69bd61e2c84e8e995471", - "source/simulator/env/camera_manager/capture/camera_view.py": "be9ec0d4df8a532c35adc7090fbd7d6a76c163f90e8dac30496ee4f875929869", - "source/simulator/env/camera_manager/capture/render_sync.py": "48d70e9a95f3445ae464ab7ea00a00c0d4829752eb55c4ce52ef73ab1f453cae", - "source/simulator/env/camera_manager/capture/tiled_capture_manager.py": "959b4d87d96e676bc279d01e7755557bb8c6e73920a75944259f72b7ac385f8b", - "source/simulator/env/description_manager/desc_manager.py": "bb566028b523a4cc27363cee2e526c2d3e008e671c9773d4f0b8401f58f0388e", - "source/simulator/env/environment/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/env/environment/base_env.py": "ade58ebc19c79bdbf720def30786a0c397b1c7d2141fb6a1bfd63c80f8a3db8e", - "source/simulator/env/environment/isaac/__init__.py": "123023ddc75a0f9b1139c7322bee64a27f0e756b6e84242f43a1481428596126", - "source/simulator/env/environment/isaac/direct_rl_env.py": "77958f14c465932697efed302c8ef13054f2ec61ee3a4bc5ad66d0390b71df77", - "source/simulator/env/environment/isaac/isaac_rl_env.py": "144af40adc2113751bc1bd72caadab145e918b316de53ef3e4e42358c01a1fbb", - "source/simulator/env/environment/task_env.py": "ac816cf26efabbb8ac4276d2a2a09fbd557e3db805514db0c3dd7ac22b58e931", - "source/simulator/env/global_configs.py": "e96f6141b42e635d69bba5b4727fb1fec54f8965431b3a70d95fe5dcd3d0ee45", - "source/simulator/env/observation_manager/obs_manager.py": "771d6cda443b591f3e7850b901a06b4e653a2feefcbabd23608042377fe9be4b", - "source/simulator/env/planner_manager/.gitignore": "bdcb46018aafd15f5c2d40adbbccbb06f2dec5b9ec4311cbf776075bdffd4156", - "source/simulator/env/planner_manager/curobo_planner.py": "3cd830c002901959409ef6f64d54106d8106b48471b266409abc2199f3cb33e1", - "source/simulator/env/reward_manager/func_parser.py": "eb928a05c3eb6bae429a922c59e64272c2c3851c22d779143d45627e47b3a504", - "source/simulator/env/reward_manager/reward_manager.py": "bc56efd3aaa861b4b38960dc4fb7778a9b4da9cf131f815ac3170300dd233a41", - "source/simulator/env/robot_manager/.gitignore": "fd94daa58076711ae84376170199a63f66177471e587a76252399fe79eb231e2", - "source/simulator/env/robot_manager/control_manager.py": "81b7ecc3bed8248c16aa1517e686682d8e28ccfa9e550d45011b579a9219caab", - "source/simulator/env/robot_manager/frozen_robot_configs/franka.yml": "a3c944f8cdd07fc1a4eb54cb915f565763292acb24f9c4f725534271449f138c", - "source/simulator/env/robot_manager/frozen_robot_configs/x5.yml": "4df90d234656c34132ca573e69a55de5984270e103aac2ea8ab9956a913685b5", - "source/simulator/env/robot_manager/robot_class/franka.py": "dc49eb7738a8b58fb731595340c60a1ce32f52ef0dc63a3da84f9c25879af140", - "source/simulator/env/robot_manager/robot_class/x5.py": "4748cbe4d273449a48d09817767dec361f53f8e5cdc6e43368fbb8724141b654", - "source/simulator/env/robot_manager/robot_config/franka.py": "8bf57a07913573e74dad97aec6c50e58b67746fa90875915d74ce213856ce35a", - "source/simulator/env/robot_manager/robot_config/x5.py": "13d35630f833d1b0a1e3df0bea05f843e88aae1248b59af8aadfefa9cad29bbb", - "source/simulator/env/robot_manager/robot_manager.py": "19636ff932a0e2192341b57d8695d4102b870bd10c69c9343d712682fcc15082", - "source/simulator/env/scene_manager/layout_manager.py": "1b4c940200dd94a1d0300e103d168b9a823e0dc00ce7c921afe16e81d4e01ddc", - "source/simulator/env/scene_manager/objects/articulation.py": "0c542a1fc8ba7a61bf71b343745c71949c863291c1b167d4d7048fe2ef9ca4c4", - "source/simulator/env/scene_manager/objects/background.py": "04afea9b5c4e21a105ba3b08ce0e5b6692c082cf17ec1053fdffd5dba1c9511b", - "source/simulator/env/scene_manager/objects/dynamic.py": "7a4652c649f503681914e37c50c959c7ca8457918bb00628413f4288993f8ea7", - "source/simulator/env/scene_manager/objects/fluid.py": "12b183d4d798d6b7188fd42747ee1927747318c386a91135551d1fa0561c41b5", - "source/simulator/env/scene_manager/objects/garment.py": "85f38bd85b52da8dd2ce34ce3692d45848016a9f0f14ecf13114705d4a1ff46a", - "source/simulator/env/scene_manager/objects/geometry.py": "3100d61b152b894b3b59be0b3be1d2708f2d8f363ddb8311dabfb5411c731f3d", - "source/simulator/env/scene_manager/objects/ground.py": "12dd51addae6f5b7c6ad410b4ae7248231d216cf63513c564057d577a09a2972", - "source/simulator/env/scene_manager/objects/light.py": "ba8c8529c6608592d4d0eb9638820b70ae6b3c0cd616631bc6dabdb1c20e421a", - "source/simulator/env/scene_manager/objects/physics_material.py": "a1ac0dc9928e9253e644ceb9a604aed262514aaad0473aff303bfae448e76c29", - "source/simulator/env/scene_manager/objects/primitives.py": "848f4ab08d86307812ebaea18cc86a51638395f0e6ea194b412d45a699ced926", - "source/simulator/env/scene_manager/objects/rigid.py": "8260fd2d8350d6a354c8281685bc7e25531923327078752efe0538d9cd78450b", - "source/simulator/env/scene_manager/objects/room.py": "946aa1afc23ab9b8fd17394517a5f54605bbbc609582d0854fed2078b3b2d8ee", - "source/simulator/env/scene_manager/objects/table.py": "c0e71396b0d53a250f74c75490e91086d67962237400a49f886a13ec07875308", - "source/simulator/env/scene_manager/scene_manager.py": "37911b12601038c9ee9bd180cae7a4751ea649bcdaf1ba2628f22c65cfd7dc72", - "source/simulator/env/seed_manager/seed_manager.py": "99bcf5a90392c8927aa0dbd799c07e06b9b03befe8b8eabaa8744a3dc9605ba4", - "source/simulator/env/seeding.py": "3f88d2a635c528253439cb31a29e5b9d0f47f6aaef0e975d86d9a8cf174be26b", - "source/simulator/env_cfg/arx_x5.yml": "7691350159fdeca92fd1b0b2da36913464ccdea3f3251eefb0176aa51db0807f", - "source/simulator/env_cfg/camera/camera_config.yml": "c1752170da855e735beba27fddbf78dad16f2395e4ef8b24e9827a768e616a62", - "source/simulator/env_cfg/camera/template.py": "68287ed1daec3b8ed7f053bf97a4d48bbddeb8b5757b53e438ac3c4240a9e61b", - "source/simulator/env_cfg/robot/_robot_info.json": "4c9de628bc1572502fc48d876c023fc63e02760e1a11a2a5258dea30ffa330e8", - "source/simulator/env_cfg/robot/dual_x5.yml": "4eefaccc75c5f83443b7bb85ef1de68ee7a3772e27af2b04a5e8d8769ab9baa1", - "source/simulator/env_cfg/robot/dual_x5_and_franka_competition.yml": "ec893f9fde577d0d1209e7dcb85ec2dd74288b636d0c68316cb07bc817b743ab", - "source/simulator/env_cfg/scene/conveyor.yml": "c1dfd27faf978f90dfc4825cd83bd203823547c46793f4f9201ce9f4b43beee7", - "source/simulator/env_cfg/scene/default.yml": "729df024b9707a55449da94f980c1ca116035e09a1284e2fe071f1b38efd061a", - "source/simulator/env_cfg/sim/sim_config.yml": "e442ede1c3d90fcfb50b9461c854d31b22dad9bfbb23397db228b27a6a486963", - "source/simulator/scripts/eval_policy.sh": "786966648496b7b68aad81e000a3f92910302eb391dbd07fec0a2dc91107956e", - "source/simulator/scripts/internal/summarize_result.py": "9ec361af587e1788d83d3cf8670e05b817ff252d33c33829a6337dc16ae370d2", - "source/simulator/scripts/internal/task_inventory.py": "ec82252b0f87fa5a3dbec2f682c170b25cbe47fe181e431a81df2c4b0675084d", - "source/simulator/src/__init__.py": "75bfbedb80f2e1421ad787992d78c23349bc8738b9edef7a76a3af83c9586fd6", - "source/simulator/src/eval_client/eval_env.py": "c577b27dab3c87588940670da81bcff007cd64b687eee8e0cc6684e5e24966b1", - "source/simulator/src/eval_client/main.py": "de2216bb5df707e505f7e2f3d31702907a4c1ab65205c5ea35494021f168c80e", - "source/simulator/src/eval_client/physx_warning_monitor.py": "6a9f8e8d75b1031d2cf2feb6dd72d37370d85d5bd80c4bea798622e23ce8dae6", - "source/simulator/task/RoboDojo/config/_task.yml": "655a87cd59fa6272bf352d32deb8ade162737b49a9824e16d428fecf0803380b", - "source/simulator/task/RoboDojo/config/align_blocks.yml": "082c9d7a32968052b8ce954bee212c7ec0a96b756150701d4b531abdea59be2b", - "source/simulator/task/RoboDojo/config/arrange_largest_number.yml": "3bf6b7e286ea328fb1e4a994a8d30af9afb4b0b4dcd7ceafed43cc6160c9978f", - "source/simulator/task/RoboDojo/config/arrange_largest_number_random.yml": "145b26eb5c8ed7d084a4ddc6e21694c542f4a86150756188ea38dcf66e565603", - "source/simulator/task/RoboDojo/config/build_tower.yml": "e1bab8756bbc5664e3171e2389c060a79a3fbbf92a6af4ef555dcaf59fce275c", - "source/simulator/task/RoboDojo/config/classify_objects.yml": "80a754d2aedd6a89f58185eae36f5b2eb1a28250f40a67325f576fde34650384", - "source/simulator/task/RoboDojo/config/classify_objects_by_language.yml": "ac6c739ca82a64b53c799af79b44363db1a88246f76d867f8830729e5613507b", - "source/simulator/task/RoboDojo/config/cover_blocks.yml": "68f90c85fad2b152cf7853cf48888d09ce74bb27a692ff2feacd11160771c5a7", - "source/simulator/task/RoboDojo/config/deposit_coin.yml": "f547b12216fb9a5dfe2e7d7e882d89e1e53ee1a805c943ba09a3c2cdea8c17a3", - "source/simulator/task/RoboDojo/config/fasten_screws.yml": "5fbe4cf5b3ee2eafc2771137b13176f01617f8b2131f02503e676a7b62e2eabf", - "source/simulator/task/RoboDojo/config/fill_egg_holder.yml": "d79129278c9a5488d63bb1d3865f2c6b39f21f85957ec94ace091af9ae29e31f", - "source/simulator/task/RoboDojo/config/fill_pen_holder.yml": "ac72e5582495e8757c547997b317e2fe990370009527b1faa6bfbf4e1275537c", - "source/simulator/task/RoboDojo/config/fold_clothes.yml": "56447e3f592e0db388ebb7482ec758ecd5485ec81b9227c2dffe5390bd7d8c8e", - "source/simulator/task/RoboDojo/config/fold_clothes_random.yml": "eafe52c0abcc1889069383b008cbe95c6af2d18ceafb1aecc78f0fae3b491b04", - "source/simulator/task/RoboDojo/config/general_pickup.yml": "35de68117cb0ed596b30db1c62f1f9090f2cd1237242a03d5aaeb7186e791d93", - "source/simulator/task/RoboDojo/config/hang_mugs.yml": "0086d374d3f7e82abb85e43a17cdfa437e1ac645a0171fb47496c2b81427dce9", - "source/simulator/task/RoboDojo/config/hang_mugs_random.yml": "847dfd39059275a671b5beff0243bf7bbaeebd9e5c0612a1877cdf12b9007dc6", - "source/simulator/task/RoboDojo/config/imitate_sorting_sequence.yml": "d9e194d8c742288601c641ccb75052a67da46e536c0b06c7fb7311d9e2c61a42", - "source/simulator/task/RoboDojo/config/insert_key.yml": "c0b409d5c020e0ad706c378b6f63b39dfe7bed4682d978907c40e1cfa7623335", - "source/simulator/task/RoboDojo/config/insert_tubes.yml": "5c070e5c764a2ea93f8de0b52e6a664a23c717963fe09fe3af17918a4a1ee9ef", - "source/simulator/task/RoboDojo/config/make_kong.yml": "8a33c9e57b6e6c719c4800911c37272ba055ad0f4cda2f1de9d531ee2910351a", - "source/simulator/task/RoboDojo/config/make_toast.yml": "d190a26233db174538ff0052b4c2958a3b107f0ccc63d0fdfe28da4c7f5dc57b", - "source/simulator/task/RoboDojo/config/make_toast_random.yml": "ca2c1e55a0975c8b019523710e90131504d8d2afeb829be362e4d7927fe97b48", - "source/simulator/task/RoboDojo/config/match_and_pick_from_conveyor.yml": "0ae1c2537d9b1880748316928cfd7ba4c6421ecccfedb85c4c5395a7a86c5361", - "source/simulator/task/RoboDojo/config/organize_table.yml": "9ffa15dd279060d4f042285a2c53a341c7208e2f89a2f3dd36ee08b22aa453fa", - "source/simulator/task/RoboDojo/config/pack_objects_into_box.yml": "e232962b8394d08c04c5da14deb88d7b233afa00ab99af8001c084218951d7ca", - "source/simulator/task/RoboDojo/config/pack_objects_into_box_random.yml": "7ac7f034fcb169e33a7f0a03b2b77e54d0206ed715409359b579055a701196ef", - "source/simulator/task/RoboDojo/config/pick_from_conveyor_by_image.yml": "6b310b70a0ead9d09e7c221c6bbc952140a44b1d43034613bf02e954eebcf9dd", - "source/simulator/task/RoboDojo/config/play_Xylophone.yml": "28adedb0f03c49693af32cea37855f3f95ec3f76f031bfd571fb8bfffb2ec59c", - "source/simulator/task/RoboDojo/config/play_stacking_toy.yml": "a09afc106161064a2ea6a40882d717f7872bd4875309a97431d6863a9b7ffa1c", - "source/simulator/task/RoboDojo/config/play_tic_tac_toe.yml": "63f863a7fb81a040f65803c64f97c4e9577d4fe32cd0f92563bdc72d1aa336d2", - "source/simulator/task/RoboDojo/config/plug_in_charger.yml": "2046b47112049e038ecfa24a8c8044fb1db84f629a4a32eeb24822157d2d4dcb", - "source/simulator/task/RoboDojo/config/pour_balls_into_vase.yml": "084a707af61d24123912777b417fe0c0b230eb9653e686af42570791e924ff8b", - "source/simulator/task/RoboDojo/config/pour_by_language.yml": "efb2e3c3cb08dd6d2d2ae011b3e9a218b5f1f0a92f025b8e3b9e8abd7011c250", - "source/simulator/task/RoboDojo/config/pour_liquid_into_cup.yml": "32092b11667b3306579b04225303610c061585ace28531fa9996afc339c5a2ba", - "source/simulator/task/RoboDojo/config/pour_liquid_into_cup_random.yml": "1603feeab6f0f7dc9c4897e7f40f322b86112b6ab987dad0598f42ac1b35db69", - "source/simulator/task/RoboDojo/config/press_by_number.yml": "b784643495bcbca933f5a5fbc91b7dad3465fe888239b358d516977c78c38f63", - "source/simulator/task/RoboDojo/config/push_T.yml": "b55ea11002ff3e5dc63982ca8c1247fd7bee4f4a607f4d674e220b86cf120a25", - "source/simulator/task/RoboDojo/config/push_T_random.yml": "07609ec20cea40afa1d5720e895fb1b445411f261b2e5b6850e75d0f1930d32d", - "source/simulator/task/RoboDojo/config/put_bottles_into_dustbin.yml": "7eddf43e287b6e8aea686c6d686fb87e13ac1be1cb5aac16a8a2b0d2e9eb976e", - "source/simulator/task/RoboDojo/config/solve_equation.yml": "bdaad2ff1cc8b7ec6413a3715d49ea9cefd664e7e204544977832e18785f1e75", - "source/simulator/task/RoboDojo/config/sort_nesting_dolls_by_size.yml": "8927cb2ebb18449554d851e629bd7d568e12e46c5c3c636c8e7122f4fab1ed1f", - "source/simulator/task/RoboDojo/config/sort_nesting_dolls_by_size_random.yml": "f895d3ce7eaae99454706afccd09011f56d077998bcc1e95840116658b78f139", - "source/simulator/task/RoboDojo/config/stack_blocks.yml": "2802e88ebc3e2d3d05ce345d75e9ad6151a6690e4ef1e0021a5223d291a402d2", - "source/simulator/task/RoboDojo/config/stack_blocks_by_language.yml": "4fbfed4f7fc49120831087e709a8dbdfdb4504eb143196000d5790b54eb3bc40", - "source/simulator/task/RoboDojo/config/stack_blocks_random.yml": "e25d2a096601da30abdcfe1256a464eaf48c0c8f844eb2c737232626d49639d5", - "source/simulator/task/RoboDojo/config/stack_bowls.yml": "4e2aaa12b8b0f58ca801f1a93638c46d3b49ebad809c5a8011382ccda846dcb1", - "source/simulator/task/RoboDojo/config/stack_bowls_random.yml": "5c08af1bcc925d958d53de51e8ebd336006203f1bc81e4ef68f3719eadfabb49", - "source/simulator/task/RoboDojo/config/store_laptop_and_headphones.yml": "0fdaab803a9370a9e2d1fc8d86a5788daa3940c08fd6f767334f625642fca3e2", - "source/simulator/task/RoboDojo/config/store_laptop_and_headphones_random.yml": "93f0ca39bc8bb32df94e84a02f22ed4d7860f37cdc0b9dd17e44721445849576", - "source/simulator/task/RoboDojo/config/store_tools_in_toolbox.yml": "641c8ef92393bd986e408d26a84b1cfcdac27466a5ac5f0b3ebe4bb84430c527", - "source/simulator/task/RoboDojo/config/swap_T.yml": "1daf769911e13714b4aeabd208292931e32f4dd39968893152bb7bb477c46c9b", - "source/simulator/task/RoboDojo/config/swap_blocks.yml": "b6bb2a9df494719f26c6b1aab2e7576107ae76e2fbac8b63a5770f21e0e9f05f", - "source/simulator/task/RoboDojo/config/sweep_blocks.yml": "98aa25ac39be9d335c71b2b586bbba372789e9d61e652e1147152c87febbf1f5", - "source/simulator/task/RoboDojo/config/sweep_blocks_random.yml": "4ebff5e2cad07f958dc4b2793b86b1aa803c0809394818ee3752d300e58b6187", - "source/simulator/task/RoboDojo/task_registry.py": "11218028f772d9253ee709a7d85aa72d1e1fd87e4f8d33ee3787d6064438f9ab", - "source/simulator/task/RoboDojo/tasks/align_blocks.py": "c8597e96132cd7c9d30f3ae101f7bbe8ac28597b629599d75d442bbea4c6e74c", - "source/simulator/task/RoboDojo/tasks/arrange_largest_number.py": "277acd20ae4345dc71267762e588b7b0343387c71685183890f044a4808b7a20", - "source/simulator/task/RoboDojo/tasks/arrange_largest_number_random.py": "01757509978663bf7c0c95059e8ae18d45b8fe0953f6b54540e2bd6bf141182e", - "source/simulator/task/RoboDojo/tasks/build_tower.py": "814cf6ffb459871e5cf49f4e127903dbfbc30926f33db71de0b84a71ab235d6e", - "source/simulator/task/RoboDojo/tasks/classify_objects.py": "aef4333c088766375e21a928d53a9a93aaee285fecae41e22385acdc74dd11ac", - "source/simulator/task/RoboDojo/tasks/classify_objects_by_language.py": "242a8f048f487eb174ef246be78613bbb5f153549ee11a2650412718cf3b36c9", - "source/simulator/task/RoboDojo/tasks/cover_blocks.py": "9d14931b16842b93bea8abf9a07991a93a7e663b93c5fd1695108c8b922ab862", - "source/simulator/task/RoboDojo/tasks/deposit_coin.py": "f9868ef827ec17b8db6c4650cc5d9a9e593d20d00ee822e2212ce229ec01fb61", - "source/simulator/task/RoboDojo/tasks/fasten_screws.py": "2e187a28e33e44efb87baae6463b3ec35264ccd41e35c21a1be44f6361675185", - "source/simulator/task/RoboDojo/tasks/fill_egg_holder.py": "506dfb772f8882ae53966e3580affde19c3c0f11591c78cc5f5b1d997ba04f7e", - "source/simulator/task/RoboDojo/tasks/fill_pen_holder.py": "8706dce239487e078b21af0b95bcc5cd4eabdcdadcdcbc6400d6b138d982f1e6", - "source/simulator/task/RoboDojo/tasks/fold_clothes.py": "ecea9c287d0579605330168e6f36734704fb14a6b1e5dec82b6f2ee3a56ec20a", - "source/simulator/task/RoboDojo/tasks/fold_clothes_random.py": "9e40abe3f7201a8c13961edc1ca8075260c315584d3d6b93fa1df966d13d1e88", - "source/simulator/task/RoboDojo/tasks/general_pickup.py": "1a9eef7fe518f9d2c6805ad1a8f97c1045fa83726f84b9c63f67ffdfabbc40a7", - "source/simulator/task/RoboDojo/tasks/hang_mugs.py": "4bc6586bd87de030b9c580fea2a45e7977c3b6a4d75cf3c43b546d349d42e906", - "source/simulator/task/RoboDojo/tasks/hang_mugs_random.py": "ebfa4a95deb954aa7a9063a07fe366cb5ea1835d3f52342b10d531225dfeee92", - "source/simulator/task/RoboDojo/tasks/imitate_sorting_sequence.py": "18400cb3c5f5103492819df2dcdf05a77916106e8a503cb62b4ee6cdbaa9305b", - "source/simulator/task/RoboDojo/tasks/insert_key.py": "180978a2915744f0596fbca4ea0ad6dcb47dce005d43f06807249bc8b4d1a828", - "source/simulator/task/RoboDojo/tasks/insert_tubes.py": "9a68795ddbd0b816ffd7627e673390ecd83594c0e9d374d4e3abf3435ad439e1", - "source/simulator/task/RoboDojo/tasks/make_kong.py": "b9266689d65f9213b05219ad952344f9fd63be8892097ec0103af99791b245d5", - "source/simulator/task/RoboDojo/tasks/make_toast.py": "1047f484a73d1f92304393879b51f87e33d661b6ad7937198352fe37a0d3233d", - "source/simulator/task/RoboDojo/tasks/make_toast_random.py": "69fb879b89e98f7369971834eb6d1b95c5a65f5ffe978b2cffae0b12c6b756ca", - "source/simulator/task/RoboDojo/tasks/match_and_pick_from_conveyor.py": "53110b8a0c971bd3ae8878bfb7d0dcd9626bd9b610d4e7fc91772313b435a5c0", - "source/simulator/task/RoboDojo/tasks/organize_table.py": "aceb298e78f3f39e4cf9a9f4c5a4f747b2c55f1a6006de2065e110a05f4295d6", - "source/simulator/task/RoboDojo/tasks/pack_objects_into_box.py": "84a1cf1dd5e166f36291130f9d8cb5dfe4b3f4732a46674bef6374a7ea2d66be", - "source/simulator/task/RoboDojo/tasks/pack_objects_into_box_random.py": "4db259a1b97cdcc39ebc9794244fadc79d31c4ae64069c9b11a233356fcb655c", - "source/simulator/task/RoboDojo/tasks/pick_from_conveyor_by_image.py": "a0d29576d0aab8232d2fd3ebcc8c510e81c70b4cc04602a5be3e99ee2275e01d", - "source/simulator/task/RoboDojo/tasks/play_Xylophone.py": "b7a4b0bc0457bcf55d714ca1867476fc4aabc53084adfc78d3ff5d1437bf7847", - "source/simulator/task/RoboDojo/tasks/play_stacking_toy.py": "23361329ee7efe330da1f1c241415205bafed2b6c082a913659d868a80d338c3", - "source/simulator/task/RoboDojo/tasks/play_tic_tac_toe.py": "8f75ebfe55c997ad9bd3b342db46e843e87397db94356f31cadcbe0cb483bca7", - "source/simulator/task/RoboDojo/tasks/plug_in_charger.py": "aaa59ade46dc54f430e1148e3f6fae487970cd29eb2c07b5ff7b4045edb831b6", - "source/simulator/task/RoboDojo/tasks/pour_balls_into_vase.py": "eae388b93ec196c401f76bbab3b0119cb2164f90bece0225d4fb925d3f2b73ab", - "source/simulator/task/RoboDojo/tasks/pour_by_language.py": "f7a15a7fca2c649a7918d68960ede27e667f409a339b668dd9876db890724cfb", - "source/simulator/task/RoboDojo/tasks/pour_liquid_into_cup.py": "73f8c91b57c352fdc1e7ba3fe5354b3c10e4156d8e5ba777762ad0fa1aff5663", - "source/simulator/task/RoboDojo/tasks/pour_liquid_into_cup_random.py": "a1c4097b6e34b2c62885b3a9c7d2584a93d9e296dc41d311a80c2e6d541d53af", - "source/simulator/task/RoboDojo/tasks/press_by_number.py": "006f969087c00c417a63875a9de153f698c52d1f1ca0caf0aa16076aa15059c5", - "source/simulator/task/RoboDojo/tasks/push_T.py": "a01d753bc320ffbf492ccc29e5f7ab3b39e6c7d255cd25804db1934a30fa5b41", - "source/simulator/task/RoboDojo/tasks/push_T_random.py": "dc8d9c8e0d2e8dfffa2b7d433a8278c0eaf707cc4861b15035364c2e70061dab", - "source/simulator/task/RoboDojo/tasks/put_bottles_into_dustbin.py": "3ba6e19df0c5ff19ba961092f031ce14e91e72a9a4a5934eece6000a1ffa1c48", - "source/simulator/task/RoboDojo/tasks/solve_equation.py": "e287a2f36b82b28e8ca7824f63b1b723b02972ea6dfc115ff32b2882729751f7", - "source/simulator/task/RoboDojo/tasks/sort_nesting_dolls_by_size.py": "1838fa6b515bad3796895cb5c1883c6a42789b7dada5434765764600e70beb49", - "source/simulator/task/RoboDojo/tasks/sort_nesting_dolls_by_size_random.py": "b793ab5bd32bd2c10bd46874440904837f9c4e290e7508b06426e2e96425709a", - "source/simulator/task/RoboDojo/tasks/stack_blocks.py": "50bd388f9e47002966fbb0146742467a820295b8686e0f86379f0efbcfffcc1b", - "source/simulator/task/RoboDojo/tasks/stack_blocks_by_language.py": "36a83925f35c7a4caac5add328dd35cb1d346bad833d3064f455d88221e7a41e", - "source/simulator/task/RoboDojo/tasks/stack_blocks_random.py": "19d4e5cd693e068ad64de75cbcd24977ab8d39e22fa17362a391dcd733bc9bb5", - "source/simulator/task/RoboDojo/tasks/stack_bowls.py": "022c129ec3493183b1a26688a0402f5a00a1546ae011999e9c19f4c0029e2b7d", - "source/simulator/task/RoboDojo/tasks/stack_bowls_random.py": "a0e20469eb44a9ee98650d09386814c1df5264c68ec139f06aabf0c86f092514", - "source/simulator/task/RoboDojo/tasks/store_laptop_and_headphones.py": "2bee4e31f0594900629fe7f43266e16fecb310b152930ce51524507136809a92", - "source/simulator/task/RoboDojo/tasks/store_laptop_and_headphones_random.py": "58c3c5113054a379214d64ae406ed8dde99603cf684ce9cd8c7bcb72ed334382", - "source/simulator/task/RoboDojo/tasks/store_tools_in_toolbox.py": "2969fc3eb171560b3c0bcea62b9f38b8b35f3aecc9bcc7085c3b1cec365b48fc", - "source/simulator/task/RoboDojo/tasks/swap_T.py": "57fc289b3957caa454e1d8e005e3a57c973d6ab40121845c94799e61e4bfafdf", - "source/simulator/task/RoboDojo/tasks/swap_blocks.py": "08ed24ae9dff27f4e5c850161a02f62ce237859c096d9b06a853a7890e0ad4ed", - "source/simulator/task/RoboDojo/tasks/sweep_blocks.py": "65786217e199c1e2b26ec8e2c232bf98ecb304a20939d0908fe12bc41e990614", - "source/simulator/task/RoboDojo/tasks/sweep_blocks_random.py": "68b6127038322cf001d5f614060b8a1d96e64a49efddfcdcae91127d5c206bc5", - "source/simulator/utils/cluttered_generator.py": "f59cfcfed2b4cce5ae9aeaf3339c86d17e237874e3526bded3cb05136dbcbd50", - "source/simulator/utils/ensure_usd_path.py": "7c8e71cf91636e630b1b174098fe0b38740857daeaf207e2fae772c4727b11bf", - "source/simulator/utils/load_file.py": "ef3a6dc96aa1a7442cfd24f7be9671052a98d2f20783c3e71032332704132943", - "source/simulator/utils/path.py": "1d427c7cf33e748e01d0d083c9432d8be8b5c3a1f35c5fb0f6ebb0714098f1d1", - "source/simulator/utils/pipeline_utils.py": "d5d8da29e6ca84ab04323a2f79130f930572785b4399634e06a42834ed4087ae", - "source/simulator/utils/rotations.py": "8e814f79938bdb9e85f1c024825617cc08d281b61728c6410b23ef1bd852c340", - "source/simulator/utils/save_file.py": "6cff5950f73bf7a1ed404f804d6f08af712974f22c3955de4cdf142f211aaf00", - "source/simulator/utils/transformer.py": "73de4f5e1e0ff60d4f2e1aaf6104368e8f919269facb68b4fa0344d35bc08cbe", - "source/simulator/utils/usd_schema.py": "260d30b0ada2976136cad3e49e810b4409304eb4a2bc60bd9ed710864d3953ac", - "source/transport_deps/annotated_types-0.8.0.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/annotated_types-0.8.0.dist-info/METADATA": "614985b278f601b8ef863f82783b991cc3ada4b89f592eb71c7c48c5f2ef2298", - "source/transport_deps/annotated_types-0.8.0.dist-info/RECORD": "c7660eb223c8080f75c49690eaf0a9c9c00b6195511791b33b15e6b24e42edd7", - "source/transport_deps/annotated_types-0.8.0.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/annotated_types-0.8.0.dist-info/WHEEL": "942926c567d0b1273d09f20295879abd37507845f6b683eab9f87d808df91100", - "source/transport_deps/annotated_types-0.8.0.dist-info/licenses/LICENSE": "fe1049884b1a0d9342901e88e07f32925d24b3121d9972b6a6805fb9824b095d", - "source/transport_deps/annotated_types/__init__.py": "a7104a4d439b27a9f74fc0be236b9ba1b7831e6044026802a205abc1298a9bc8", - "source/transport_deps/annotated_types/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/annotated_types/test_cases.py": "d867472acb57b81ce97f78972828e6bc5669ca4db33fd1e6f645c6183846068e", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/AUTHORS.md": "5fe0446ddd6d1c70fa298747368582dc1d91c23d62c8fb7228595bc87fd53232", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/LICENSE.md": "509aa7af19ae2b5b1681b22b969627ee9e1fd15ff7ea5bf9f6e301fc44d5a6c2", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/METADATA": "b7ee8fa1bf018747082cd6d2fcaa14e5d0f5956b5477ab5810eb61ac4cc7bcf9", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/RECORD": "51331727bf8d9ff60510de5e7756c5dd72aba7663f3673e2827bf1ca5c09c7e3", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/WHEEL": "1d7faff7e9e8524c94a31c99d4f312b92edab94c43011e1505da182ea0f4c70b", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/top_level.txt": "19da698ad1490bdde1c7f18fabaceb2625aaf48b364d4dd7ad404c7e5eed75b9", - "source/transport_deps/msgpack_numpy.py": "0a45a7430e2cefa2e74235c4c6a34a22ead2fb57a7de8b2631f45df977701d63", - "source/transport_deps/pydantic-2.12.3.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/pydantic-2.12.3.dist-info/METADATA": "348336c208743aafeabfa5537c29f429035a3107b7a78bbb6a3bf7b3a42fe4aa", - "source/transport_deps/pydantic-2.12.3.dist-info/RECORD": "089c7ceb033486c4e6106749bb1a38c80b63905da74d842d067735e8b9c86e4d", - "source/transport_deps/pydantic-2.12.3.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic-2.12.3.dist-info/WHEEL": "aad0b0a12256807936d52d4a6f88a1773236ae527564a688bab4e3fe780e8724", - "source/transport_deps/pydantic-2.12.3.dist-info/licenses/LICENSE": "a9e186f3ca16b5eef84318e7a701721351a00cb7b8ae3a4394b67b49e3529ef3", - "source/transport_deps/pydantic/__init__.py": "e62127278c07bf5384cdd2903f368a69929f3b8a524000bae4e0eb608ebf4bc6", - "source/transport_deps/pydantic/_internal/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/_internal/_config.py": "4d66708377346d91e24f76e8479f9862a928b877308d175e9e6c861e87d5ec4d", - "source/transport_deps/pydantic/_internal/_core_metadata.py": "63f836b778bbba5b8afb05c266fcc97d114c3d4336dda0582df69ee05cc13f2d", - "source/transport_deps/pydantic/_internal/_core_utils.py": "d63aeee156c9d31eb747a76d55cb8e23e74a4130bf77f9529c9584050cc63444", - "source/transport_deps/pydantic/_internal/_dataclasses.py": "4e4d6611a7e169dd6457b2b9b4f5f9070c5649763b0be30ac1fd0e2c58089440", - "source/transport_deps/pydantic/_internal/_decorators.py": "3e7c80a0a4a0dc135b0954999f0ab0f67684835503b58bc34fd2e5ba280f88ef", - "source/transport_deps/pydantic/_internal/_decorators_v1.py": "b5f75f76940a6384765c23b0a876d97a840cbabe95362811adf86e757047c77f", - "source/transport_deps/pydantic/_internal/_discriminated_union.py": "68c9744914b24321df5b8fa49673131cdbf0491a2a1371f73d157fd39bd1b138", - "source/transport_deps/pydantic/_internal/_docs_extraction.py": "7f2ce74801e1e40ce88675d94ad5741ef1fe9d16dabcd1cfca0fa49f1f92fc41", - "source/transport_deps/pydantic/_internal/_fields.py": "6127c42aadb51608cb27a62a6172a1d1e104b399f130fbd0ea1a7da40f0dcdfc", - "source/transport_deps/pydantic/_internal/_forward_ref.py": "e67dd8efedc028b9fcfc54b761cecabad2e23d48725e602d90464e6859e89f03", - "source/transport_deps/pydantic/_internal/_generate_schema.py": "4d3e3dbf3633a87f74ad6aefe69b4da19823cceb11d0a3e54a4a8f545ae7ac1c", - "source/transport_deps/pydantic/_internal/_generics.py": "10baa34fa2cccd0cd600ad04079ffdaa47bf8806b3cf4390e20ba7a7fb8ab986", - "source/transport_deps/pydantic/_internal/_git.py": "2303e1dc33df6b65eadeb06e07d371f25b91d80d62ebd41d7937d659722e0958", - "source/transport_deps/pydantic/_internal/_import_utils.py": "4d18710f93ae63a094a2c8a805d05c254b34a26ec820e36265d60057bcd0f233", - "source/transport_deps/pydantic/_internal/_internal_dataclass.py": "fdb79d7355dbbaeca044688b66a914930c05a506a847584a2e5479d359f2c926", - "source/transport_deps/pydantic/_internal/_known_annotated_metadata.py": "25ceca4cd159a01ddffb489b3ff36024834e795bd8137ab73930500e354c9375", - "source/transport_deps/pydantic/_internal/_mock_val_ser.py": "c2645115206fa9f70b6c8e353ec165881e2ed80677989a597a21116c3df1293a", - "source/transport_deps/pydantic/_internal/_model_construction.py": "c24f9b3460c026f76e686be7d14d3ff33125d06111bb4b2126f37cfd97e461ac", - "source/transport_deps/pydantic/_internal/_namespace_utils.py": "865dfe4d102bf365368d3c8f3f7b7e42ab2f28b8abc6d90b7cd7eb37e7e9d31f", - "source/transport_deps/pydantic/_internal/_repr.py": "8d07e726ec83c50a5244d846dbd208f4f5fc7b836fdaa599ac4c3696a8a1dd41", - "source/transport_deps/pydantic/_internal/_schema_gather.py": "54b12fe754d811e78d0f6733b32ae626ad4c56726a4ce9a72da9fb546e3873c0", - "source/transport_deps/pydantic/_internal/_schema_generation_shared.py": "17fadb41bae4a289a0c6cb24747a4fd23509ed309f7b40400c0124aba089e273", - "source/transport_deps/pydantic/_internal/_serializers.py": "6085af4a6011e5f9db19258239076e5add72078650638d9e02bb9cf9e9eb6fa7", - "source/transport_deps/pydantic/_internal/_signature.py": "f049633c97b8a529daa6e8ab1b90e4040803d618201f1100cb314f1fef47d331", - "source/transport_deps/pydantic/_internal/_typing_extra.py": "755c481a1b0be37cda79b3423108752b94235fa2386bd3959cd01c2f6a486bfc", - "source/transport_deps/pydantic/_internal/_utils.py": "0878c7fb4ce75235fd479b144a33d3f23f3efbb3f37bcca36a27ac7130152e24", - "source/transport_deps/pydantic/_internal/_validate_call.py": "3df7559d2ce15ceac436d683a03c373c558f5580f95bf80d60f7bca77520e8b8", - "source/transport_deps/pydantic/_internal/_validators.py": "76fd1ad8d91ce33718aafdf51a1fd021dda571ff96d24429574a1237380475f8", - "source/transport_deps/pydantic/_migration.py": "545ef72d1094cf722b6f9c55b75de36f7340717567105e93d7e27438b7de6790", - "source/transport_deps/pydantic/alias_generators.py": "28cd67deee097cb48197552e620de1a181f35c90fecaf82b9eaf2ed5c73087f0", - "source/transport_deps/pydantic/aliases.py": "be1087ca84969d7f8427ec166f9aa3e31c91b2c8065a74d07f3429e06499f6e8", - "source/transport_deps/pydantic/annotated_handlers.py": "59fc854aac28108157061ed3ef73f270a9682350e25f8e465a2d3e24eb024786", - "source/transport_deps/pydantic/class_validators.py": "8bf5778fe3d87462d22e68ff20965e913463ba73bc488573f0b325aae3f23fb1", - "source/transport_deps/pydantic/color.py": "033a867d540717ddbf65cb4372e7b40cce324e9d8fead7a49304483535ab2c8a", - "source/transport_deps/pydantic/config.py": "b83676c4df89ec255035e9c269529c62c244cc83a92aa9607d0bc3774d35c229", - "source/transport_deps/pydantic/dataclasses.py": "dbf8cdfb9d595abbb222c7a78cb235f9585de2a206345ddeb9ef6319c769a872", - "source/transport_deps/pydantic/datetime_parse.py": "402f9680cc4caffc10fe6357512ec055ffb684b121befb0f6353d0ca148639d9", - "source/transport_deps/pydantic/decorator.py": "617fa3500a6ee4029a55628fa1a57e9fee25ed46d2ebd184b7d45ade1b3398a2", - "source/transport_deps/pydantic/deprecated/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/deprecated/class_validators.py": "10071a550339ce9db0066974c9b37ad827d07f226f0cbc7941df4f938fed6f85", - "source/transport_deps/pydantic/deprecated/config.py": "93f96c564e7ba5ac4b24e701b9e1f4edcbb53a012059d541c66ea57da0b70825", - "source/transport_deps/pydantic/deprecated/copy_internals.py": "1a177ebe431de446020a0c821ad3ca3b9f27a7d704281402eaa9017881052368", - "source/transport_deps/pydantic/deprecated/decorator.py": "4c19ba6c9ef026c36287ff16ab92330dcc0fdf69bdfef7f1b3de9d7ac2ee934d", - "source/transport_deps/pydantic/deprecated/json.py": "1e55821b7e5146bc72cee4d2e8b4d089907046198365699ea901fcacb5bac00f", - "source/transport_deps/pydantic/deprecated/parse.py": "1b377a6ff83ccc95dcb84ed046ae5a761c7f10c25a8577dca57085d1182baaa2", - "source/transport_deps/pydantic/deprecated/tools.py": "36b9bda054595a9f3e8e57ef3e02482c4b32c29e18cd90f9d972063c32f11dc2", - "source/transport_deps/pydantic/env_settings.py": "e881de79612a9543d152fdd5f805e217f5bdd5f836270fccdced25df827f7b20", - "source/transport_deps/pydantic/error_wrappers.py": "44aea6a804dcf72303f8a043f48252f47a4a0a9ad61ddf30a3ce019e6fb77d1f", - "source/transport_deps/pydantic/errors.py": "edcb41342b6de7b919171ef52ecd87f3a22e7d0011bf8c0f29ff0385db159f9c", - "source/transport_deps/pydantic/experimental/__init__.py": "413eeb298743b0289327d1848e6b107561d2730a4aaeb3641aaeafa8e34fe914", - "source/transport_deps/pydantic/experimental/arguments_schema.py": "1059e35ffba5a7eb4fc948d05f9a6642dba0d4e14bfc071cf1b70c6cb77e7d56", - "source/transport_deps/pydantic/experimental/missing_sentinel.py": "8507a382d174d3052e40c9e2f78dbd7af83e797c88c292af8ec0fca1fa9f8fec", - "source/transport_deps/pydantic/experimental/pipeline.py": "2affddbdc7b12ae99acdf44bd32ebd01ac9e03a1f7ed2ae6b19dd2525fe7d2a6", - "source/transport_deps/pydantic/fields.py": "5ae0c63af076d8a5aeb96ddf5e74b85af838a97fed769f17ec1ac09736b8b30f", - "source/transport_deps/pydantic/functional_serializers.py": "ac4cc7dfdd73ab2de8fdb5a4d9012ebf24a67103599b05e62502c2dd9185ed00", - "source/transport_deps/pydantic/functional_validators.py": "73ffbbc1e5a918d70e61f45f55416ed758ebc4c54c75f63f73ee22b2dc24f796", - "source/transport_deps/pydantic/generics.py": "d19a99f4ef5a9e7223ff7986051aa9b3886d7b2ddbe65575f9ddad5313cc3270", - "source/transport_deps/pydantic/json.py": "647f11908ee1e01cfece9f0e7530316c952856f72853e8e131d459d01fa4d317", - "source/transport_deps/pydantic/json_schema.py": "677786d509be226f8c417ebac28c963fd5b2c055272d116d68e0cbced559f937", - "source/transport_deps/pydantic/main.py": "efb414c13b5041d51a7e8af78abe70d820b5b34be2805b460747d2953bc5dbb2", - "source/transport_deps/pydantic/mypy.py": "a7a294d46c0f1dacc5ec4e6f26ad6e2dde2d1dde8313a6eb7b8fa6e4b9f6de6b", - "source/transport_deps/pydantic/networks.py": "2c995c70c79df7b1007a9293e8e98f23d73a8e1e62c1b063935fe35f5449c37d", - "source/transport_deps/pydantic/parse.py": "c2477cd9d82dbd6b43f3de54fc8e84d61b6a3251a1052604577f5cb8149ea370", - "source/transport_deps/pydantic/plugin/__init__.py": "6bb4f0dfae94e8ade496d08235963bea773db2cfbbb86190e344d769df4eca94", - "source/transport_deps/pydantic/plugin/_loader.py": "f502d79de2c49afca15e46bff63e0bae46e67b8a8fbfaa98a6196c8c5d8c1ac0", - "source/transport_deps/pydantic/plugin/_schema_validator.py": "41b9aab06df730199fb4d4369cd8ae376d8b85badec5403b8a90d5bf7274d815", - "source/transport_deps/pydantic/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/root_model.py": "06f98bb56e22d7574993e74b38cdeb97e8e725d40679e41314172610eabaa4c8", - "source/transport_deps/pydantic/schema.py": "56aaa3beafcb9daa5592779b51ddc1a7f275a768176599d94602f8f1b5441bba", - "source/transport_deps/pydantic/tools.py": "88742977c489e43093b4f5796ad015d3a4fcf5b8d268c15e659d8b5fd95ab196", - "source/transport_deps/pydantic/type_adapter.py": "553fbeca0e1adbbb21481cd61c13cacf8f777f7890f686dd9049218d92a513b4", - "source/transport_deps/pydantic/types.py": "9ea752f89d995ea4e1daa7b224ecc14c1b475b267961115ef2068c579f5df471", - "source/transport_deps/pydantic/typing.py": "3fb7de037e4cc1370bb11d6e2fb75bd12fa8c9d071a1b9976b9e580e80606a34", - "source/transport_deps/pydantic/utils.py": "d799d1d90a6a4c1165415e1336d4c8b4cc93271fdf6f257e80f988118d46a287", - "source/transport_deps/pydantic/v1/__init__.py": "14b43c212a7a3156517e39d2edf4389b51714311421764158a41380cafb83e11", - "source/transport_deps/pydantic/v1/_hypothesis_plugin.py": "e444b9c56bb0d45400b3298b7b3cbc4209d5cf466955f5378e4993ef81f6ed54", - "source/transport_deps/pydantic/v1/annotated_types.py": "ba4d8d000c6a88d10b2a388787287129a20e87c1759585bf2f3ad6dd7ee86417", - "source/transport_deps/pydantic/v1/class_validators.py": "50b39a21481850306c1cbec411511aadc33e52e6ca52082837c8526c3a27b051", - "source/transport_deps/pydantic/v1/color.py": "8990012d8a7a395a28d801643fd229ae2ff049cebe2a496ef18ba149aaed7798", - "source/transport_deps/pydantic/v1/config.py": "6ba3f459eafdc7871bc0a5bb5eff29a1252a33858ff912d6c17e9832962af400", - "source/transport_deps/pydantic/v1/dataclasses.py": "efce1caaf2276f020f5abf6eb1fa57ddc87bcf8b77276b532ba374ebbff0935a", - "source/transport_deps/pydantic/v1/datetime_parse.py": "e10cb5910a6adeb3556497881de48f0e9b92d81be1a7528fb73246d71bbe1f4d", - "source/transport_deps/pydantic/v1/decorator.py": "cda6b1c71a163c29bcd7c0f56ecd3285aa518d79b7d95f06d191d609d335b970", - "source/transport_deps/pydantic/v1/env_settings.py": "03d557c2d465d36018fa31f40b4a2ecb954dc377e2e85fe9933b870e380000e3", - "source/transport_deps/pydantic/v1/error_wrappers.py": "ebadb931fc3daa40b63708ad07f2450167bc07e5efeb3054eeb2fd936f2d7f2a", - "source/transport_deps/pydantic/v1/errors.py": "988c0f103e6f18ce50e6fe02e19d493e5753447fa89af132947ea4b0c84e98fc", - "source/transport_deps/pydantic/v1/fields.py": "56a5890ab894362132a6d5eba03549e74d49a550347a7d9500d724b2a5cbd9bf", - "source/transport_deps/pydantic/v1/generics.py": "5730bd61457e11b3e94376807e4d5c3457a3efdfc8cf39e443b5ab9934d94bd1", - "source/transport_deps/pydantic/v1/json.py": "590e47cbf848a5f751dd84bc93a37613a28c273b1d6c18bf95d58e3c9695f353", - "source/transport_deps/pydantic/v1/main.py": "cee36974de50d15d301b65144cab741d4cb75c9e0e02f3d26437625d8f85233b", - "source/transport_deps/pydantic/v1/mypy.py": "0a5f1745f0a621c544de3e40114e760bc88387c95c5fffc3de1cf68c85b1300b", - "source/transport_deps/pydantic/v1/networks.py": "1d836d2807ce98e9ca269b0383583a488923f563e153ffa2f25e5ed89281a46e", - "source/transport_deps/pydantic/v1/parse.py": "049b5daa2651b5abfd55114298ec6863e2889909a33f2f80fcda288e21546716", - "source/transport_deps/pydantic/v1/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/v1/schema.py": "6aa06e03ef9cabc8005648a6e4124f140487cce67c745b66157fdf346afa8a9e", - "source/transport_deps/pydantic/v1/tools.py": "d650dd5c79348cbe6e3f7bb9442600bd402518296000efb8e6592af63edfc810", - "source/transport_deps/pydantic/v1/types.py": "07397e45c9e2b4f0479eac308fd8afec98c7b8dd46a67587db874a905de5f5ef", - "source/transport_deps/pydantic/v1/typing.py": "ec67418356131d42d4f35b6107ff5c8d13437d97e7e248685fb9c6b70fe47821", - "source/transport_deps/pydantic/v1/utils.py": "339151c9f3546f50369a4f6568680255d7c71dbdc0b5082b8cee6a7f205fe310", - "source/transport_deps/pydantic/v1/validators.py": "9725249f5316847c65097e597c48058ff0801e88e888f71a41e31d10cf57be25", - "source/transport_deps/pydantic/v1/version.py": "1d79d75bed5b316e6a2a196be5180e10fa21ad90c20d2bb2cbcfa08bc182819a", - "source/transport_deps/pydantic/validate_call_decorator.py": "f23a8b9605d38d6123e1d5c3834c08dc41902a46f42670ac2ff2525236d4e528", - "source/transport_deps/pydantic/validators.py": "a706c825755bd42576980138c3f1067cd8fb0f0cec29a5b0fed4cbe9cbe24eeb", - "source/transport_deps/pydantic/version.py": "4e6124eaa03e540d4f56c737f5b66584f010032bda71de812b3c57007c96d395", - "source/transport_deps/pydantic/warnings.py": "5aed551b3aef159c384fac8220a1e31fb2d263ae878dbb720856e7e6e5a8309e", - "source/transport_deps/pydantic_core-2.41.4.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/pydantic_core-2.41.4.dist-info/METADATA": "3434fb886fe254ed414541f305a86e43ff575093f8f6d15c89bd11144ed8e131", - "source/transport_deps/pydantic_core-2.41.4.dist-info/RECORD": "7f3a82de0054511dbd2f7309c5e5b6ddb3d96c6230bfa83fd73bbdffc51cd0f1", - "source/transport_deps/pydantic_core-2.41.4.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic_core-2.41.4.dist-info/WHEEL": "7f32b0ec3e21425972f904759f2efc26a495ce223c174ce187bb87ac82f5240a", - "source/transport_deps/pydantic_core-2.41.4.dist-info/licenses/LICENSE": "2afdd30d54b4d62b6f488a6bcc1546e84ec5061f13f4209c03d012348783795a", - "source/transport_deps/pydantic_core/__init__.py": "9cad6292b75254af606a970aae9bff6e5ae9f0b08089cd63acafa391b60794d2", - "source/transport_deps/pydantic_core/_pydantic_core.cpython-310-x86_64-linux-gnu.so": "cd9bb47485cdffc363010507a214155966ca860b0b93bda39583492c6764e631", - "source/transport_deps/pydantic_core/_pydantic_core.pyi": "3ea1dbd4182f08cf9341f24b3c5cf7db77a05b3535ffe9e23525127a3617a11f", - "source/transport_deps/pydantic_core/core_schema.py": "bbdc850b72d685133a0e250fed263b33691dcdf3813492f3c0e31001e3d46005", - "source/transport_deps/pydantic_core/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection-0.4.4.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/typing_inspection-0.4.4.dist-info/METADATA": "bad3d9e6342ef6750cf5128ec942327b8bebdce0b6e4d6f67cb15b27ae5118da", - "source/transport_deps/typing_inspection-0.4.4.dist-info/RECORD": "cf5e3948866214f2e9ab0c1d43c157e9f9c14f59cf8442936c6cb97d5f2b6a5d", - "source/transport_deps/typing_inspection-0.4.4.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection-0.4.4.dist-info/WHEEL": "ccec20e2307acd7da453dd7437e70c6b08e2bc3ead3bc3445af135da37b56d59", - "source/transport_deps/typing_inspection-0.4.4.dist-info/licenses/LICENSE": "804b59b25f2c31bd278f9202a19ae49a3945aa2664387e2d0a128c7cacc61ec3", - "source/transport_deps/typing_inspection/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection/introspection.py": "5888c45bd627da692d9527699e3f549adf35651596b1656772310e12181b4396", - "source/transport_deps/typing_inspection/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection/typing_objects.py": "a778d6290d51581c9c9a23e0263af2a4604c76def5c4d40a7cd1a375b0046ff6", - "source/transport_deps/typing_inspection/typing_objects.pyi": "3bd24dd92d0270d31d64fd40abc1ef8693f5322aab9a78aeb3c5b62f992f84be", - "source/vpp2/src/vpp2/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/adaptive_mask/__init__.py": "a73f5515ffb77d323f9c324776e9c166d13817c470506cfd5db4ef0546cbbdda", - "source/vpp2/src/vpp2/adaptive_mask/audit.py": "c949909a2e60c3c4389c0221c79459961f2c4925baa07f7985774a52257a1d17", - "source/vpp2/src/vpp2/adaptive_mask/budget.py": "74e32285903dbf673ecadb6a60d917a990b9c6619beac9f926c1b3cbdae3887c", - "source/vpp2/src/vpp2/adaptive_mask/controller.py": "328f636201a845ebdc211340a9014a5076fa895e10cf9c2e1f91b96761a2514b", - "source/vpp2/src/vpp2/adaptive_mask/data.py": "e3b633fedaa503b101c80610cbed0933e9e245acf56a6c0692c4d99620faf84c", - "source/vpp2/src/vpp2/adaptive_mask/equivalence.py": "8658cb69d549fa0575570364fe3aa1e0b121fcf8b9965b17cd174d459dddf5ab", - "source/vpp2/src/vpp2/adaptive_mask/execution.py": "efec52c9b2eabf0300c72edea18f9cd4cc16a0889496793abb6a50161f2328ef", - "source/vpp2/src/vpp2/adaptive_mask/export.py": "0ce51e74787d28bbe9f4e73a3774297b424aa131fa78968d24154ff56db98b0f", - "source/vpp2/src/vpp2/adaptive_mask/feedback.py": "519fa4e6416723fc000754815a2f05d3415299ae35724f37bb806ebc22393d38", - "source/vpp2/src/vpp2/adaptive_mask/geometry.py": "f1ce4110c3a3a893f4f240c49e2ccc4e93215ac4ba9e447de8042f9b19afab98", - "source/vpp2/src/vpp2/adaptive_mask/hidden.py": "968560bd6dae0fce59bd28084091b10d559cf165c81764f6ad24b7492101810d", - "source/vpp2/src/vpp2/adaptive_mask/losses.py": "4a7dea6f87ef0fa38a7202d85d98d37460f8f4dc13ca5336f32b1da8b84a4322", - "source/vpp2/src/vpp2/adaptive_mask/masking.py": "31b595916410c60f772fff1ab63e92c854c8fd0d2261e6b865fd05ce2c61b9c6", - "source/vpp2/src/vpp2/adaptive_mask/monitor.py": "48b71f499dd5a0a79557eeb918f5fb1a641dc8654e5d412aa628ca9c57b5dcf8", - "source/vpp2/src/vpp2/adaptive_mask/physical.py": "f54e8b4fae8026cc89f296d74bf4cbea06fa4e126905b572a22c7d8226f0238c", - "source/vpp2/src/vpp2/adaptive_mask/preflight.py": "b646e7ca785afc87356e3e1184e48f535792ebafc84936450fc83bfd3f9f5ea8", - "source/vpp2/src/vpp2/adaptive_mask/priority.py": "68ccff1a384081f0c9a82e8f54ad2c720293f8500e7440a469b5e8fac1ee608a", - "source/vpp2/src/vpp2/adaptive_mask/quality.py": "c3b3a2264ca0b4773805f4485ebfe91bb4ab861e226ff4bd27bd667ab372b59b", - "source/vpp2/src/vpp2/adaptive_mask/quality_policy.py": "f100b7d4a412592777d936a6cf3c73a9f787cc4a62d5f1b8a369fed74acf897f", - "source/vpp2/src/vpp2/adaptive_mask/reliability.py": "306b41720154810bd972fe4d9c4c388e6967539d076ddbedd3a432ac62d13104", - "source/vpp2/src/vpp2/adaptive_mask/report.py": "f71401e09297daed8bbb72cb3af3b887e5fdf5ec282f47637fbb01392d280171", - "source/vpp2/src/vpp2/adaptive_mask/runtime.py": "ed74bfedd147389ea01f3be8c2979fa06c7152326ccc29ee347175690cb9c6cc", - "source/vpp2/src/vpp2/adaptive_mask/state.py": "5e8f95021eeb35511f5481e4e91ae687fe605f9e88d17b3b98d377cc967c17e1", - "source/vpp2/src/vpp2/adaptive_mask/train.py": "ad95349bfb242bcecd7ddf82fc58b31d63f2938a2101f9560bbc9e305f5f5b20", - "source/vpp2/src/vpp2/benchmark/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/benchmark/audit.py": "8587be371653c38b9926aa0ace006a244f270e0ef0020147a7bf5b0fc85d4538", - "source/vpp2/src/vpp2/benchmark/packed.py": "5047fd02f3fcc68e41f543fe83bc9202769a05794d898524d6d25e308f2b5125", - "source/vpp2/src/vpp2/benchmark/scheduler_io.py": "d6df06259549faed2da9f2888b540eac8e1ff2895c339eea58b4ea6a7e3b3cb0", - "source/vpp2/src/vpp2/checkpoint_compat.py": "462c5f93812483b5871633b200bc2ffecb9c201a2caf6b14f8f36dbe95fba50a", - "source/vpp2/src/vpp2/cli.py": "54c19a0f7e25b53bbf56ec13b0f537c9d7b81282e1e80575bddfb470172164e3", - "source/vpp2/src/vpp2/compact_kv/__init__.py": "f34f2f77f68399f45f6656b562a5c331f2504672dc145df368e086532191f766", - "source/vpp2/src/vpp2/compact_kv/blocks.py": "662c1f35055c2be2e2a14f2d92615d046f5e454879e34af39e3c7aec3af34098", - "source/vpp2/src/vpp2/compact_kv/checkpointing.py": "3c33c156e96f26ceb22eee61cfb8b18c3cb9560db0ab405cfd4c46efe5aba353", - "source/vpp2/src/vpp2/compact_kv/eval_prepare.py": "bdb33444056245e3cc773b0849b4db608b454cd24a7ac5b752f1ba26ff978865", - "source/vpp2/src/vpp2/compact_kv/export_check.py": "e6cba70b47027882a34d587aba0da5f9371128ec2db2282b91ad2d49e40065b9", - "source/vpp2/src/vpp2/compact_kv/gpu_check.py": "fedb6a9ab69b51080161ff2a4feae3f85262cc50f932f48e8decf04c1d147a20", - "source/vpp2/src/vpp2/compact_kv/losses.py": "914437ebf3ad91fd2cffa893a65ecb04ab01f2b337658a781a472feeb50c0a06", - "source/vpp2/src/vpp2/compact_kv/model.py": "332ebaebf543d40a34d188ebbe81055ec3e4bcff164bfe90d15aa6cef0748b8d", - "source/vpp2/src/vpp2/compact_kv/prepare.py": "7b01764cad0fafc0cc9441952b2e928048b0a43a6105dbd0eb64c349f4b9bf1f", - "source/vpp2/src/vpp2/compact_kv/provenance.py": "103e0f7100be56233aa86041ba9bc427ccb0db4fe045c4e6b8d3481ab6bb42da", - "source/vpp2/src/vpp2/compact_kv/reporting.py": "0b9ff602fc3425d1b9c122a77da3a426814e11c9cbdcb6b9a75a2a48130087a7", - "source/vpp2/src/vpp2/compact_kv/sampling.py": "2e8d82704f07853a7b487d5aaedef1b2f1fcfc5247e9100a56ed21d69262eae2", - "source/vpp2/src/vpp2/compact_kv/spec.py": "9bc920fc7d4398e424a0bde38ce97f87473aa417cf68b48e2c292a59491bc7d7", - "source/vpp2/src/vpp2/compact_kv/train.py": "a9e4410c5cde5df002d9808554538c29b77ed9e2d2bedc9ac5f8465eed70cc3b", - "source/vpp2/src/vpp2/compact_kv/validation.py": "73b62d02ce1d518cba7b9462e85c3c8d272ae9974e1161b1b6adea6f0040e2b5", - "source/vpp2/src/vpp2/convert_robodojo.py": "7ec2d6bfffbb4f5891ee33a4bf630cf27b17628506aa3cee1c46b3050027b290", - "source/vpp2/src/vpp2/critical_windows/__init__.py": "22721b77e25ec4874c4853d2f2991a14dff6aaa665da500f2830826b06545478", - "source/vpp2/src/vpp2/critical_windows/contracts.py": "ded4a239f7599785d74ff57ff892c5aa74f0280d6759460c93942e91f505d47a", - "source/vpp2/src/vpp2/critical_windows/coverage.py": "6c18bf995aacf413bbe4536eaeed92ab4b2f15f9eaaaa03a2730256ea7922ce4", - "source/vpp2/src/vpp2/critical_windows/inference.py": "df301bd187b27d20b6623febcb5e85815e1b7d4a1e9524a8a65bdf5904bf7232", - "source/vpp2/src/vpp2/critical_windows/metrics.py": "ae2bab145555d55696ef479758a5bae6780527fd3085a4f46d035b667ff32736", - "source/vpp2/src/vpp2/critical_windows/packets.py": "8f7d2c411407d95b1ff4d0e5b9055589f6114b1bb1020eeb7e1b106f330b853a", - "source/vpp2/src/vpp2/critical_windows/prepare_staged.py": "694cb5699de2d9f5ce1bc4667627b47d6bf0698715b4aad86907139859caffe5", - "source/vpp2/src/vpp2/critical_windows/reselect.py": "8d0e31ca1c17906d74de6439276e49ff7ea78abfc66fa556d8a306070b3dbf4c", - "source/vpp2/src/vpp2/critical_windows/score.py": "32daceb9a3fd957d9be75823b4d519629bc60a64d1da62f465e172cb1ec98d55", - "source/vpp2/src/vpp2/critical_windows/selection.py": "a7c35f6719d3308bfb738965d17544a15985c6d684bb47eac7272d6155d96786", - "source/vpp2/src/vpp2/critical_windows/staged_review.py": "d5cfb3f49ec5acc6914da98f5413d1549b2695e7c85c9aed9c0db83dee6be754", - "source/vpp2/src/vpp2/data.py": "8574e1ae3c6ca6e4b84633ee1815f2b3f2ea17c1e55f12fda0b00c5c5a6a7b53", - "source/vpp2/src/vpp2/datasets/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/dataset_utils.py": "e1a1471b0aa70917eaf699f85a9acf3ac70d9fb6eb9ebaf02d2bf2f218d6ab2f", - "source/vpp2/src/vpp2/datasets/lerobot/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/base_lerobot_dataset.py": "729fb3fd4ca531212eadb4a4e9c7e9f97ad34cca091d66380acd6b179f0c29c6", - "source/vpp2/src/vpp2/datasets/lerobot/constants.py": "11ac9260341e1560c5eb0dd7acb79ed63c74180b8ab4113c27622ff213db417f", - "source/vpp2/src/vpp2/datasets/lerobot/critical_phase_dataset.py": "bfe75bb9593ec646236777d90d9fa309fa0e1188db07e07a3be0810edbe3da56", - "source/vpp2/src/vpp2/datasets/lerobot/critical_phase_sampling.py": "266b0b7b023f014f4ccd935b6015b0a05b4659f372264fdefd997ea9692b244a", - "source/vpp2/src/vpp2/datasets/lerobot/episode_instruction.py": "74767839a813c7902861f4561101541c282b72e261df1fd28fe8d06c91231b69", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/__init__.py": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/__init__.py": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/compute_stats.py": "7d7daab219332b5abdfd5ec67ccaf3502e8eb583a17a4e482c3f3d4f7a691e89", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/utils.py": "4fdb4ac0653201e6743f2161c485213429948c1e1d5b068d03b4d97803254006", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/video_utils.py": "4f66c410ae6aa5a98acfc3320f3dd7b017d0285117054f14226f9e5d82395087", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/lerobot_dataset.py": "5659e992010bb6674ec50ab0d33b28a8e9dab0ecc895c199662af4c40fe56629", - "source/vpp2/src/vpp2/datasets/lerobot/processors/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/processors/base_processor.py": "d3327cbe398d77761df960014d41e70d349bb0fa42bca874333b9ee970222447", - "source/vpp2/src/vpp2/datasets/lerobot/processors/vpp2_processor.py": "43c5604cbfc315b7377316cb97c9a6f3322124404397abfd01c6c3d0090cd414", - "source/vpp2/src/vpp2/datasets/lerobot/robot_video_dataset.py": "8eabfbd649116b0b4d6c9704c0df34febbf8875f6ab863dd75f4107dbbcdef73", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/action_state_merger.py": "39fd44f254bd7fb71b9269d75d8f9b5a5bbbe167ea438dda92d40eda1d256734", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/image.py": "f494d262ce29770e959bdff60b997f7a07e5f00d10ef515eee7be813d1db038f", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/rotation.py": "feb59d26539be6cfdb86488f0c10c11488ed73901658bc657e67a755ddb9e67e", - "source/vpp2/src/vpp2/datasets/lerobot/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/utils/normalizer.py": "8207d813b698a91dfdbe6910a4aa1fe0e775a2a8edf5c05b2d7a42591e9f8adb", - "source/vpp2/src/vpp2/datasets/lerobot/utils/rotation.py": "8ea2c72565707f5979967a1abeb5edf1eaa2c3fec55a7b50e640de869fc9fbcf", - "source/vpp2/src/vpp2/datasets/lerobot/video_event_dataset.py": "c20d3f5e2bc05e1b7ed94ae38872883a976a179e09b7fa051e94f94e2836c02d", - "source/vpp2/src/vpp2/enhance_prompt.py": "f31b3190c24bad073c5e3121ded4f564232729566e8c1fcc3e76fe75b28faf45", - "source/vpp2/src/vpp2/evaluation.py": "9b76882149e3c3a8c417a0e23514af1bb305c01bf0b6d21fff1f70bc9843f55a", - "source/vpp2/src/vpp2/flexible_mask/__init__.py": "64bed1808976d1f3c708154c36a97288a75abc6463d49d7f0065cb8360a2fb16", - "source/vpp2/src/vpp2/flexible_mask/calibration_batch.py": "dc5d83fc9e2bb595b9e3aeb1923115ebb9345283290a7c3f95c79fdeef7d3e76", - "source/vpp2/src/vpp2/flexible_mask/checkpoint.py": "c8531727e2388ec3d7a9770a504ceda119afcf03d64b2462befcd45a48949f9d", - "source/vpp2/src/vpp2/flexible_mask/coefficient.py": "07a3cc8d8e6c8b60119b9f94ae85074da017b08158fa0a0912cc9051b6df8ef7", - "source/vpp2/src/vpp2/flexible_mask/config.py": "4e1e9b289e293145b4e895c8ef7347bc837d01c929e05fd5cbf65bdb3c20be5b", - "source/vpp2/src/vpp2/flexible_mask/continuation.py": "2016463b4efe01b5d0a9ee84f03c3d95ee16f8e24f230faa465598cc978da29b", - "source/vpp2/src/vpp2/flexible_mask/controller.py": "263f1c9091e0c4318aeefb61e91549ba905ff046a625e35e1b18c94da4b4668d", - "source/vpp2/src/vpp2/flexible_mask/data.py": "d245bafd6f04f33ae7cef7c01d5db876a1a2a1a138c4de8a139d3ea78095521c", - "source/vpp2/src/vpp2/flexible_mask/diagnose.py": "faa29a0fa57c66af3b2e817640fdedfddc998bf878357f484415b244555ae4a5", - "source/vpp2/src/vpp2/flexible_mask/export.py": "3064dfd82bb55a145c16c77bbe17244970d07d18e944b793f4b7368dbcede764", - "source/vpp2/src/vpp2/flexible_mask/gradient_probe.py": "6fe3f13540cb9d8dd20c0b6429268ca74625dfad1e41806412c0f980fac76509", - "source/vpp2/src/vpp2/flexible_mask/losses.py": "df264b71365885ea90329c0b0facc92db3d2eb6e04324ea90a4701a1cd457abf", - "source/vpp2/src/vpp2/flexible_mask/metrics.py": "e976dd066e4b5e7e7ae79db77b9d1be64d17c212c61d0bc113b87a048e8f2b6f", - "source/vpp2/src/vpp2/flexible_mask/performance.py": "95b3977fd739cc98f7de94b14fb490a7c132021e742e7179dc5b5dddd6557c68", - "source/vpp2/src/vpp2/flexible_mask/preflight.py": "f794b997a492911c4d77656310c89d3b85e54983b3b889ba9904be64fb961e43", - "source/vpp2/src/vpp2/flexible_mask/prepare.py": "d6cf82e27555ecc13973727f4b71ce7e40558fef7d95805665fc7e458a42fad4", - "source/vpp2/src/vpp2/flexible_mask/pressure.py": "6cf74edcf3625fce9eec689d70841c6c1481f7c1abd87e5bf70bb38eb34632a2", - "source/vpp2/src/vpp2/flexible_mask/recover.py": "418b2d5ecdd08b08686b2a07bbeb0f969471eb73c04ac6952dcfbcda3b123f30", - "source/vpp2/src/vpp2/flexible_mask/recovery_best.py": "917d924c5708584a0192050a6d8210809e905938aaf877dd81cff3be287ea289", - "source/vpp2/src/vpp2/flexible_mask/recovery_checkpointing.py": "6f6a61c2ee7076c6b0977d1acb489fee7df04322d7f6b13bee9bb8229be319df", - "source/vpp2/src/vpp2/flexible_mask/recovery_export.py": "c50433aa1b7e528fb23c514dddb5b9197f44c662829838ecda106980ab0dd54d", - "source/vpp2/src/vpp2/flexible_mask/recovery_handoff.py": "aa590f707738e4b7c7250f901e29795c7441430f961bfa764437cf34bdc514b1", - "source/vpp2/src/vpp2/flexible_mask/recovery_kv_decay.py": "bf83761798deea4f89c32d14f43bbfb0f16f751b3230962456c073b843dcd08a", - "source/vpp2/src/vpp2/flexible_mask/recovery_subset.py": "7f7154cab6d910b747a0189742ee625983d08f13de50ca60bd4154f61df2b0d3", - "source/vpp2/src/vpp2/flexible_mask/report.py": "5b49283d472bace3a6ad56ce568af04f2c3d04add1a3920ad5006fe98374bce6", - "source/vpp2/src/vpp2/flexible_mask/rng.py": "01680b5b7e8a29ce92e96d756e12ceb80bb0e0ce1ebb642a14fa2a3a34776daf", - "source/vpp2/src/vpp2/flexible_mask/runtime.py": "373a3ecbc2ab6592a359daf6adfd8c958cb657f393e698ca2cb834f06750be4e", - "source/vpp2/src/vpp2/flexible_mask/select.py": "b547857bad61ae7ebd25b888fba73c2ca8f50a8eb31551ca54a909c75c8984be", - "source/vpp2/src/vpp2/flexible_mask/selection.py": "b9453c8735051b54ae7dc8610d2ca332eae8ca1a3e099aaadaf5ab75bfb0f8b0", - "source/vpp2/src/vpp2/flexible_mask/speed_review.py": "9d7099d1e173026274eb439169df2ad4812ec1d56a5f0b21242f972cd835ffd2", - "source/vpp2/src/vpp2/flexible_mask/throughput.py": "ce21bdfda51ae10d1470ac537d910d9f46f60a38910888808ffb3f5a80174d58", - "source/vpp2/src/vpp2/flexible_mask/train.py": "86625613bbc692722c6d2d24278a586f88ce0d76263a9daf92562a9002a8e037", - "source/vpp2/src/vpp2/flexible_mask/verify_export.py": "fb68e62b0da98e6f96cfa694bd061162bbeec1763e5787e057a1cbac5b2ce8f6", - "source/vpp2/src/vpp2/full_mask/__init__.py": "27c9ede277380e8d64586371f2a03334e68ab2d3bfe516d95e8cb96099827929", - "source/vpp2/src/vpp2/full_mask/calibration.py": "5d97e0385eba82252e12cc1562d1a77da2f2bce29332d758c1b5b6b84c5bb47a", - "source/vpp2/src/vpp2/full_mask/conditioning_cache.py": "07adf95165db4c3c1c469695d6b7b6fe4cf4fa9aff0a3d360f4229bffe9be17e", - "source/vpp2/src/vpp2/full_mask/controller.py": "0e6a969b89a4275352cc5a1e00bdfe8e3f8754a6ebd7f9266b92179cbe6bdd10", - "source/vpp2/src/vpp2/full_mask/cpu_contracts.py": "1a46a53a68d2d8a202c5f98d9a78f6d5f5041dada0c2239ed81e7916a28f0758", - "source/vpp2/src/vpp2/full_mask/curation.py": "4ffd7b0212bdbca1daf73ba7c24423523437012150fc044a43bbb33cce747545", - "source/vpp2/src/vpp2/full_mask/curation_v3.py": "9dba386d66869de0fba321ade79b2692d47f111ccfebc7f367194cef7a4b4e8c", - "source/vpp2/src/vpp2/full_mask/curation_v3_checks.py": "688ea4e7e44c4ecc1a3cd81cf682e2cbf611d9ad2d52744ba1308324da70febc", - "source/vpp2/src/vpp2/full_mask/curation_v3_features.py": "11011a089f1586045e2972cf267773aaf4602cf08c8b0e755bbf017ede1e6e43", - "source/vpp2/src/vpp2/full_mask/curation_v3_finalize.py": "a2a7812eb6c670686a7a4f4adff0a2c6363dbc078c71d948537f1c5fd546254f", - "source/vpp2/src/vpp2/full_mask/curation_v3_probe.py": "2755e9cabd0fe02e70cb8330c083af881a5e4696697d58cf7aa01bd00ef57f6d", - "source/vpp2/src/vpp2/full_mask/curation_v3_quality.py": "b9170398762112a23bb133dde53c6a49193c671c767647239c8b0ff15159530c", - "source/vpp2/src/vpp2/full_mask/data.py": "668a7c5f88a3ab17854eb0df240c974082f4aa64604cf11d3143b18337f73181", - "source/vpp2/src/vpp2/full_mask/distributed_smoke.py": "f699d4f330309f29a537fbabb61c60f61eb3322d7304605351dba3d2acb48e8e", - "source/vpp2/src/vpp2/full_mask/gpu_prepare.py": "92ce96dc4c1b6d6ebc22d99935472c15d86ba2a7c050e31640d2c32e08748ec5", - "source/vpp2/src/vpp2/full_mask/monitor.py": "2724a934d1f96444227c854f75ef84df6025c02485aa68eca34f3b28d509fe19", - "source/vpp2/src/vpp2/full_mask/native_monitor.py": "5572712a340f17692a669d2a4c41d1d691164925eb7bd06a56fff1dc2afd69fa", - "source/vpp2/src/vpp2/full_mask/panel.py": "2844b663340cbfb54f7622f3447a7831e2809050739a52dc076fd6ae32ed9e46", - "source/vpp2/src/vpp2/full_mask/review_decisions.py": "ed1184bcda7b5bb3fb11bb4262c4461c408e3d3ac0d23e80d2f8cafcf39c7e18", - "source/vpp2/src/vpp2/full_mask/review_report.py": "752ba9e8a3caf5b8cefa2d18e6fe14860e6f998f57c03af0940af0943b09a9b1", - "source/vpp2/src/vpp2/full_mask/runtime.py": "ae30b4d3fd3c888bef17672376dc3b34491cb296a1883959674ad465579efe7b", - "source/vpp2/src/vpp2/full_mask/search_quality.py": "ee3238d3366799e97d3f9a90c11f579ff8f51d5bd0642f52c37d9dcdbcf02e6e", - "source/vpp2/src/vpp2/full_mask/train.py": "f4127e6580522d4d9e5a50db10d201526e948d4d3479ddfbbc12e60ec61c7501", - "source/vpp2/src/vpp2/full_mask/verify_data.py": "72ee60ba2016d5f73eb2ccb01b666a5dac37138620efc4a79a20607df3658fb3", - "source/vpp2/src/vpp2/inference.py": "42b3057a85aaacbb87440bc740f13b09b9c82cd51d8c5af4e080716aabdcf38e", - "source/vpp2/src/vpp2/learned_width_kv/__init__.py": "0c59cb8424b6cd64508a005625e9edf63c84d24618a5d2caf6e6fa5d63cc859e", - "source/vpp2/src/vpp2/learned_width_kv/calibrate.py": "b89bbf103b49fd85f85f8c300a7868bb42ae7a13f29bd9878dbd5a11061ae51d", - "source/vpp2/src/vpp2/learned_width_kv/checkpointing.py": "7d30e46b95d91df8aff088346ae75809958622b3a8e8d953db4f30adfbaebadd", - "source/vpp2/src/vpp2/learned_width_kv/common.py": "52dff98c6317b34df2a13313a641998acf4f9e18ac31ea4e8e25227afa14620d", - "source/vpp2/src/vpp2/learned_width_kv/controller.py": "7b5a8793a540e1e7464185229189f4f1f1acadcd7cf3c2bf477bda5de7d18787", - "source/vpp2/src/vpp2/learned_width_kv/data_scope.py": "0ddde6805f646afbf5f5966c53530f829becd083802f0e0a8697dc1004e2003e", - "source/vpp2/src/vpp2/learned_width_kv/distributed_check.py": "f89f153a20730a6bc3c70133479f34918d30c5a48775bb3f6c14bb25701801ce", - "source/vpp2/src/vpp2/learned_width_kv/gradient_probe.py": "3bed964f6488e95b386cc58058e7f28aff50c9a98dd526f3365891a9049a6fab", - "source/vpp2/src/vpp2/learned_width_kv/lifecycle.py": "798afa47ec5dcc8749982da2d7853eff184e450a32d51bcf70eb4578f2bb0b09", - "source/vpp2/src/vpp2/learned_width_kv/masking.py": "3272ea09271130dcb3cab6935f6bb7d61bda66b9982c3baabcd61ee0efd914a0", - "source/vpp2/src/vpp2/learned_width_kv/performance.py": "a2fd9597c51bf0cf5c435b48e8f57792df24d2723a6d7b6b841d6fa24f17ab2f", - "source/vpp2/src/vpp2/learned_width_kv/reliability.py": "f74399fb67427093b3e4c7df9749379f9291b7ac58bd6632db226b6e78fdbfd0", - "source/vpp2/src/vpp2/learned_width_kv/reporting.py": "f22c1d8806a5b7757bb6dd99b15153d0305b2eeb0790bb37763337690d642036", - "source/vpp2/src/vpp2/learned_width_kv/runtime.py": "513da1e06ba9509164f017e0b8dbf6b219d7e1cff82edb2d2fd8d2d7839e666f", - "source/vpp2/src/vpp2/learned_width_kv/train.py": "5813ebd4fefec6d3a8cead9e0c645d10734f5ec88c4d74a5742587f2eb4de6c3", - "source/vpp2/src/vpp2/learned_width_kv/validation.py": "d5594ce875c8011bff12d3c77083dca68878178ed022b8079761267d04a82386", - "source/vpp2/src/vpp2/learned_width_kv/verification.py": "1bc43d48ef0ec3056af614adf43ca0744d94b1e77fe970168fef87c7cf2e6fe8", - "source/vpp2/src/vpp2/libero/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/libero/action_model.py": "178fbe4cf02b9a2e133ef31389b6bb2f9baf0504bd0818a265b6bff32ebc3914", - "source/vpp2/src/vpp2/libero/cli.py": "fcf68a88e2db0a9b786c6199d9b719802fe4b84514741658b49e2b06e2473e45", - "source/vpp2/src/vpp2/libero/data.py": "19b699381e7d6fa769b5090c7125ae01b7584576e969468660ee65b1585ef5f1", - "source/vpp2/src/vpp2/libero/diagnostics.py": "9540e31dfd2def06bec942ffe73262278700a17a340e14cb5bd41a295706e147", - "source/vpp2/src/vpp2/libero/eval_helpers.py": "ac338d4ade195ceb3a87620d162befa9679e2d7ed3d91b09927e5d59d86d97f4", - "source/vpp2/src/vpp2/libero/eval_libero_single.py": "87e6b457dc412ef4fe5d01aa48b1a6d20a28dbce3152848042e2103769e4efef", - "source/vpp2/src/vpp2/libero/eval_libero_task_manifest.py": "f0c721a7ddc768edddc8b0e065a4d8aeec35e1a546c88deebd9097ad93f6227b", - "source/vpp2/src/vpp2/libero/evaluate.py": "24216f9814f8304e077d72ff8d8c778fd588239313b34cd7d23b960c8f924c67", - "source/vpp2/src/vpp2/libero/libero_utils.py": "c7cc23976c86eabcada4846d46345d3605fc2ce03929761646486be3901697d4", - "source/vpp2/src/vpp2/libero/prepare_pro.py": "0999050352d924c11d29b22f63e902162d8cfb23f94815c93c01295c11ed81ae", - "source/vpp2/src/vpp2/libero/pro_alias.py": "90b5c8c8061bc727a6e413a8746fcc98cbd06e1c7c4175fd223b45af4f10b700", - "source/vpp2/src/vpp2/libero/pro_runtime.py": "adf94ed64b032aaeb0d88391e7b653f88f67e76b9411419ece25faa31ccc1340", - "source/vpp2/src/vpp2/libero/protocols.py": "68225c95eeeee25032966a7f90c1ba18067c53225397f59a463d764030fd0d93", - "source/vpp2/src/vpp2/libero/runtime.py": "1e2e2900a604d33cbdf8774cfa33dcee1065f21dc0b59fcf30799b5098c1662a", - "source/vpp2/src/vpp2/libero/trainer.py": "ea29b4e000047a6b0c8aee3cb6f32df9187987a657924085dbafd9628315107b", - "source/vpp2/src/vpp2/libero/worker.py": "9df6350c4ab92dea70863c08f1bdcebd0d77574a3a2d8d7ac9899a5a825be6b0", - "source/vpp2/src/vpp2/models/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/action_dit.py": "9a654edd860ce77c1308923bd338c7f14d09f68686642531d7143c16b9f6f331", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/compact_channels.py": "6f7ad787624844970985117002ab809bd777f7474969daca121e7101381c6d0c", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/gradient.py": "594249b6eb931048e352fd3ffef9b1ac1db9e4fc74659e04216d6b823dd174f3", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/io.py": "1b68cf2f2fd674c7a59140f8632d4464044bffc2e9277ef5f9a975e7c699966a", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/loader.py": "b9180b9c9177af192e5cb92387b4a09bd0dbc08fb75a94e843b67d315c94e339", - "source/vpp2/src/vpp2/models/wan21_14b/mot.py": "cc14a909bfb181a441bc9d8d6de12f3c31d89f3dc3415031e34a5f8c21410019", - "source/vpp2/src/vpp2/models/wan21_14b/schedulers/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/schedulers/scheduler_continuous.py": "15de04574c1d8ccb794ca6560b1e501e5c83cc86104bb80f1eb3cc3b0324ffe0", - "source/vpp2/src/vpp2/models/wan21_14b/vpp2.py": "8c419af905a8ffa93d77c827a283b7aeff744f3a461c390783eef8a333c31756", - "source/vpp2/src/vpp2/models/wan21_14b/wan21.py": "01b45cc71f69a6914f7b286559317c8e8485d0b0fec93bb28ebc37c183c295f4", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_clip.py": "f65e44c9d1b7811d2996b3fa22e6fe4c2ac5e6edf1fc2c14251cf582bf8d1f05", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_dit.py": "0d1b5837ea923508c05394d56aaa465813e7b4f5aea3b31ceceae39b2de9b0f9", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_text_encoder.py": "902a1e46b21b5c48e166fe03defabb94b3773c6bbe836fc09b9a0d0894eb1f6e", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_vae.py": "33f7d804677b44a6f3ab334684017dcdb1e9dfb748279de76ad94a5bb71a7e51", - "source/vpp2/src/vpp2/policy.py": "2a7696cd73ccb99575bf901185cf578c3775945f61f6e67aeb2b4ec6bfc4e30b", - "source/vpp2/src/vpp2/preflight.py": "7a91e486675a4cdf38565e0f4b58e60a68bba7de5654cfff736b5df58f5c53a6", - "source/vpp2/src/vpp2/robodojo.py": "183db869a622ef17ee92c487949db2e22a7d1365558fe703bfb8dd8fef83e9c6", - "source/vpp2/src/vpp2/runtime.py": "e26885a3732f5fdac3d8381da870a1673d0c03354f02f9deee7fe779d645f8a7", - "source/vpp2/src/vpp2/trainer.py": "feaa0ac4ed94a376836eb60cfe6f52460392b11f7cafafec9c6d9f151f5b61f1", - "source/vpp2/src/vpp2/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/utils/conditioning.py": "43d43f0f3ca0add64498c3d64a3791513a53e3fce0ea53f77ef09580a86b7b2d", - "source/vpp2/src/vpp2/utils/fs.py": "69e6df236b43360428a613686c8f37c531c0d16a3a2c5b06a725c46b49d657c5", - "source/vpp2/src/vpp2/utils/logging_config.py": "1de4abf66d9d201b49e7bff48291643b9dc5ec9b6e7918ca73e1bd18887b1c43", - "source/vpp2/src/vpp2/utils/lr_continuation.py": "72ea9f2af52041db19aab681d7a99fdf6d87d5ed5486f2499383a211c6c1ab76", - "source/vpp2/src/vpp2/utils/misc.py": "7e42c330c24604e118f1878473dc804aa8a272944df502ef1414c05be4d5bba2", - "source/vpp2/src/vpp2/utils/pytorch_utils.py": "9b0ba19de9a64458b12a0fb24f0811f49d9e9fca5d8b815f5f5ecd3b7886fd63", - "source/vpp2/src/vpp2/utils/samplers.py": "4d3bd9b2d498f4ad8f2cf9765d60c4bf5368fa6fa2a7d42d0db6210f66899652", - "source/vpp2/src/vpp2/utils/training_profiler.py": "91f6d98577e63d85e474c738a9bc1901edc194bdf318b5387d527c31b6708832", - "source/vpp2/src/vpp2/utils/video_caption.py": "d9572deb3690aecb0f16c052016cedc5f94da8ce8f016b4dff1a4e358e18d5e5", - "source/vpp2/src/vpp2/utils/video_io.py": "9e9898b021a44e87aa1b4e6d13e3755a9869a2e27a7eb53c72a6802808d5bd80", - "source/vpp2/src/vpp2/utils/video_metrics.py": "1840a37685d686336c7326a2a3d4fbe048d1e8e7e431fb14519d360a8b7aaae8", - "source/vpp2/src/vpp2/video_training.py": "20f55bf8b0a7dba6422a1115be1c8adf31a0db6a9f53a8f6f53f5d970188bfb2", - "source/vpp2/src/vpp2/weight_resize.py": "269edd4b9d32a1c7f363ee082dde7ce57f2176190daab6d5bf4a1c98ab43f0b4", - "source/vpp2/src/vpp2/weights.py": "5dbdff347de1b57e30433efca6da28334d0263d27aaa9b2278d95614db1b8641", - "source/vpp2/src/vpp2/width_kv/__init__.py": "0183a7106da7e45223550a552db2905d6b59c2a4259f8c86cb98629b03e66b43", - "source/vpp2/src/vpp2/width_kv/calibrate.py": "93a06910cb23a9e1dbd961ee9ef9794d70aaaa6186b08483260c8215109598f5", - "source/vpp2/src/vpp2/width_kv/common.py": "45f5f7087f5f3dc067358838e3fc738698b796defecb2ea721545d275f767766", - "source/vpp2/src/vpp2/width_kv/diagnostics.py": "cf184ae58f5e1c5f4453774eee1e10c85931e618bbbf768ab42f649cf301f5f1", - "source/vpp2/src/vpp2/width_kv/reproducibility.py": "89c5377e1314dd6e8de7f67c4385d30f5bd91fa4a5742449f1c1ff8dd578f451", - "source/vpp2/src/vpp2/width_kv/scoring.py": "7644358d0b2d29d3b91515fcea56090dbd2a7a0dad2d5e5c88e8d585bff15533", - "source/vpp2/src/vpp2/width_kv/slicing.py": "856203c14e0b06d19585a96392d00a00703779ebdb9dbdc9ab1323d50daf8ba4" - }, - "suite": "generalization", - "update": 1000, - "validation_gt_action_mse": 0.0005726480308242441, - "video_parameters": 12468409664 -} diff --git a/evaluation/long-horizon-protocol.json b/evaluation/long-horizon-protocol.json deleted file mode 100644 index 0a95893421b8b417c5fd882be2b21ba4ee62a887..0000000000000000000000000000000000000000 --- a/evaluation/long-horizon-protocol.json +++ /dev/null @@ -1,706 +0,0 @@ -{ - "active_policies": [ - "vpp2" - ], - "caveat": "Same checkpoint55 policy/simulator code, benchmark layouts, seeds, r16 and new90/old10. Simulator physics are not claimed bitwise deterministic. Offline ranking used replan24 without ensemble.", - "checkpoint_files": { - "COMPLETE.json": { - "mtime_ns": 1793716093276368990, - "sha256": "eee062fbcb8c92a881117aa7f06b5cd039dfb9912d85571b59a20aa30837b0e1", - "size": 2491 - }, - "action.pt": { - "mtime_ns": 1793716074808787383, - "sha256": "9b04836abe5a30972e69ee84e5f5e39c09bf53dd45865551e1d04b42ead90ec3", - "size": 4057916577 - }, - "compact_architecture.json": { - "mtime_ns": 1793716074811787315, - "sha256": "a7f6696ab9a9beca785531c2402b81ccd1550745cb6e9ccaad67f658630f6b32", - "size": 6563270 - }, - "dataset_stats.json": { - "mtime_ns": 1793716074808787383, - "sha256": "2649d4e3ff3d6d400c9953b7c20c79541474f9c38a8a9916b9caacecd8578f16", - "size": 100256 - }, - "validation.json": { - "mtime_ns": 1793716074812787292, - "sha256": "9806ad2b0b58f879351da58eede46507a79433ec9e4eb8f37f415cf58f2ef70e", - "size": 88781 - }, - "video.pt": { - "mtime_ns": 1793716059522133613, - "sha256": "fb62db0b3a74a53aeab60f4b1acc8a5be47274f5c9db166684043521fe2a40bb", - "size": 24937214042 - } - }, - "checkpoint_receipt_sha256": "eee062fbcb8c92a881117aa7f06b5cd039dfb9912d85571b59a20aa30837b0e1", - "execution_order": "one report task at a time; eight shared GPU workers", - "fresh_policy_per_episode": true, - "fresh_simulator_per_episode": true, - "gpu_sharing": { - "minimum_free_gpu_mib": 61440, - "mode": "shared-shard", - "one_worker_per_assigned_gpu": true - }, - "id": "c2867b1bb38b88d54cbe92103a5cf6d2020c3d44f67c89412182265c4bac8256", - "inherited_results": false, - "input_hashes": { - "inputs/episodes.json": "26a9c66ed3082a59ccbb11c1c43d5bc2ad0123ab66a3ffd27750e834c9de2d20", - "inputs/master-episodes.json": "26a9c66ed3082a59ccbb11c1c43d5bc2ad0123ab66a3ffd27750e834c9de2d20", - "inputs/vpp2-policy.json": "3acd3dd24eb03f6d0e51670aee1f6d7bd1c58d845432cb8435020582a778123a" - }, - "native_inference": { - "horizon": 32, - "replan": 16, - "seed": 1, - "shift": 1, - "steps": 10, - "temporal_ensemble": { - "enabled": true, - "new_weight": 0.9, - "old_weight": 0.1 - } - }, - "native_scoring": true, - "order": [ - "vpp2" - ], - "parent_evaluation": "/home/praveen/experiments/vpp2-recovery1000-950-precision-20261103/update_001000", - "parent_protocol": "266df4b5d9b8eac16145600a8c4f9223d15e03285d61473c3bbd8c43b694f211", - "primary_episodes": 400, - "repetitions": 1, - "schema": "checkpoint1000-followup-v1", - "scope": true, - "selection_manifest": "/data/praveen/vpp2-recovery1000-followup-20261104/inputs/long_horizon.json", - "selection_metric": "task_macro_ground_truth_native_action_mse", - "source_changes": [ - "native_eval/scope.py" - ], - "source_hashes": { - "control/simulator_recovery.py": "fcee066ec9e75ec081b0a955b136e2ab898cd1ee529a2c1e74a453c350c05367", - "native_eval/__init__.py": "2deca42c85edcf3d80dba72439ad95641937396e27e1149d77182cfc082267cd", - "native_eval/body_coverage.py": "50ce610f86584965281893ff2f98a78643c7e3207014212aad4c13fce4c8a782", - "native_eval/camera_group_cleanup.py": "8df69fdba913ec41ff7b1256ab1b43921a0b6fbef7ffbb6dacbf2adaba0f7843", - "native_eval/camera_lifecycle.py": "b0952d95d1da8a1bd3e9f544a2eb1eb0f516159b3442666c7acd9bbaee71687a", - "native_eval/check.py": "9587d7b200969ccb78ddf750dd3d8616d5e2245e29baa3a0d798e27a55bdaa5e", - "native_eval/compact_worker.py": "129a2e26a85e021f7a0282201dec976104a8e1ea1f0a67e6b75ce760257ee46e", - "native_eval/completion_integrity.py": "3b737f6dcf9ae9908b1a3602f66fda46c3b8399ee47b1c61f5c0fb9741031029", - "native_eval/criteria.py": "97ebc94d91c62d793e614f178d2d120df989faafb54881dd1d3f5d703df8bb76", - "native_eval/diagnostics.py": "53b0deb571984fd02ff65c400d5f3b9bc2754b8207ea8edf4e5017c3588ed3cd", - "native_eval/ensemble_check.py": "0bef52411b2ec2dd7e1ad21b8690b1f88ed229107b6e46b8dc43c34ca92a3572", - "native_eval/evidence.py": "cf7f769cfd838227b26101d7656ebcaede1b1d45a80785a32efb26c9befef0e9", - "native_eval/frame_epoch.py": "7b1d3b10f46d5acf82f6e983ecd5f8995310b2fef9fee04bfae168fda02e3efc", - "native_eval/hardware.py": "e30ed3359d91595d3053e24124445498a3f1be9d5c0d52f97e1e7d7d88268a5f", - "native_eval/hydra_frame.py": "c1aefee86396025b405e050597af7b67bb07c0dd1e65ea4a9be1ed78f8d99072", - "native_eval/particle_evidence.py": "378d667b2ab80176045e0bdcdbe3cb39adb612a356b8f6b81d13ae531bde711f", - "native_eval/policy.py": "e1cebbfb03c137bd4bf9f054c69be74f9a7f1df5f7ca13c250e606c2346b55b0", - "native_eval/prepare.py": "486df6d062098ea07ac63c4d3be51b5f27baf524d0d004411275243783d02ac3", - "native_eval/process_lifetime.py": "7dd20bee91c51546b6da067b96012dc5d5a013e8389dafd567b72c1f742cf97d", - "native_eval/provenance.py": "8fc2da1678832be9e9b8b778ff0dd1604db5d464cf1a19ff6137acf6b83d3e11", - "native_eval/receipts.py": "9ba5800e6e7e796937992117569efe1b3d625900a8e2ebf7955940a4e8cc81e0", - "native_eval/replay_receipts.py": "1c60f9bddccf7245e32df97b9e90749bc3ddbe5d65f37ed2d40ba339b458017e", - "native_eval/replay_server.py": "1c2c19bae8d1cd3ff564f1775540718c33293663d30161ea7bd293b8f322cab3", - "native_eval/report.py": "9d9f0ddc794d2af2ad6e349f991450592a6fe98db292e1ac3ae4fcadea961fc4", - "native_eval/repro.py": "f0e4ecd0ba009774105cebeba31f49a70f34c4f88f11855c939368027789a928", - "native_eval/reset_coverage.py": "3c6a414878c4cc2ef4114170356db0a6b2193b03ce5c3b4f6293c10c7d3138b0", - "native_eval/run.py": "23d2d58fe1160a03bdcf9591b5d5fae671d21832008cc4958ac58e060b88caa1", - "native_eval/run_one.py": "dddeea1abb269293bd08c3f5a69ea0a668620b18d07154ca1c0740a0bb213b99", - "native_eval/scope.py": "d0ddf1b0896f798c6fd2c9c482874b92cfb57585579e648b619ecb0e5a00dcc9", - "native_eval/simulator.py": "d40972be52b7544f62653114217e213d19d4b386bf2991abfbbbc618ab09cf83", - "native_eval/status.py": "b49d03681dbc28b80f39f4d6163c3a6e7c5a1ca62f1f0ef502c77dfbf149ca02", - "native_eval/topology.py": "062e9246890ad1f2e8bb8b64b3bbe6598f9dce6fcc33ec3eaa106f3cbc0f0ae5", - "native_eval/transport.py": "eb6cc295d064a142372dd51859e91233f61f1ad2c8ac8bf3880739f3fe4abec4", - "native_eval/vpp2_pilot.py": "571ca3eeba11fbf2afd4a4058629a280bc0ad4bd3eecca178ddde4aa543bd8de", - "source/simulator/LICENSE": "7794bb06af8fe5485ca912454ad1665ccd7846c45f9c2b1258658e480948cdbe", - "source/simulator/XPolicyLab/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", - "source/simulator/XPolicyLab/XPolicyLab.py": "a3909558697b73479f8baee03e15b4d74060a7c9ac2f31fcbc6cd659e7364862", - "source/simulator/XPolicyLab/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/client_server/__init__.py": "093e47e707f4a5598b0159b5ee371cd9a918b802c70a6e66154a18e9ef8fc5db", - "source/simulator/XPolicyLab/client_server/ws/__init__.py": "79905987a12ebf318dc0b2b9ec6f375d9b4561bac29d6c27d04e318d8f6e00b3", - "source/simulator/XPolicyLab/client_server/ws/__main__.py": "ee1c5807dcdf1c8f6721c5447463eb51babdb0f9ffbd91d1e7343834ca4aa19a", - "source/simulator/XPolicyLab/client_server/ws/model_client.py": "4d6e225ae5f577d862366350dca8742e91dd9527d6e76b8b2a6d48c991212d67", - "source/simulator/XPolicyLab/client_server/ws/model_server.py": "4988823b436cd05e6a4d8b13012cc30c7ffd57711b72497b1223a6b10dc0c043", - "source/simulator/XPolicyLab/client_server/ws/protocol/__init__.py": "19aeae375e94e58d437d789d0aff07b232c13f375235384d784984631d25d5d9", - "source/simulator/XPolicyLab/client_server/ws/protocol/client.py": "b309f58b1bddd99e56578026b61a15e6cfdc07e843e8a082bfd291d0e853ce5a", - "source/simulator/XPolicyLab/client_server/ws/protocol/codec.py": "8a97ef7e102fd954c266352d81eaceef0f1b0f5504571c03037683efe387865a", - "source/simulator/XPolicyLab/client_server/ws/protocol/exceptions.py": "73161f4cdcc7ffc8a87cec94f5459bfcb9113076be272d6cb2a3ff8d69e0c6ce", - "source/simulator/XPolicyLab/client_server/ws/protocol/keepalive.py": "7f6b9e636eefcd6c80a4b62e404a6f89e2f7e1a3b6008500312a972d6990a21d", - "source/simulator/XPolicyLab/client_server/ws/protocol/messages.py": "d05c8cbc20e0cbe1502551864907f25897035993f920748c9290c944c959eab7", - "source/simulator/XPolicyLab/client_server/ws/protocol/schemas.py": "f1ca82eafa8dcad6d968508adb51c25342b291f7b1c553fff305c381a6098bd0", - "source/simulator/XPolicyLab/model_template.py": "4f8d1eeb8073aa7ae6093abf0f395cd5fef70ff4a4bd1fa6b2d83b356a90754a", - "source/simulator/XPolicyLab/policy/VPP2/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/policy/VPP2/deploy.py": "ab94a8569e6168ab7cde6660890035e11b34961ff2648854a7b61d188c555b6e", - "source/simulator/XPolicyLab/policy/VPP2/deploy.yml": "d2c3f06eb2ffa2d1866767dc20db8d60e542fc2418dbc4cf86d4a0f86f944c5e", - "source/simulator/XPolicyLab/policy/VPP2/model.py": "699acc0c459c5997db4e3155e2b1b7eb64bf750552436074a369c4eb6e9ffef9", - "source/simulator/XPolicyLab/policy/VPP2/temporal_ensemble.py": "42be4b09c56377f4686b2e722de760fa3bafd1c6b92605ada269d94e19efc95e", - "source/simulator/XPolicyLab/policy/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/policy/internw0/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/policy/internw0/deploy.py": "42dc75140935046dfe83f19b3834bd7cf8372e1bdbe51f598b1f91b8d557b7fb", - "source/simulator/XPolicyLab/policy/internw0/deploy.yml": "e59de6edeee891d2aa24902ae9034e9c10889fb20116bc9263f30d773a4b0d10", - "source/simulator/XPolicyLab/utils/get_free_port.sh": "f45bcb327b45c91367e3e5cdff72d3a42bfb7a09f50e4774701637c4c23fc1a4", - "source/simulator/XPolicyLab/utils/load_file.py": "488590d76084f419a36c2fb3e658eeb240ae554678899e9f2ce0cc10da5c4b57", - "source/simulator/XPolicyLab/utils/process_data.py": "e044e627eb2677907e9227eda8458c857208913bd484c5e922b53025010eef0b", - "source/simulator/XPolicyLab/utils/robot/_robot_info.json": "8a5df36e750971003b484ad770a7a243e523e986d2977a4ecdbeecd4a07946bf", - "source/simulator/XPolicyLab/utils/wait_for_policy_server.sh": "f75a8360d83f2960f365dae77804c94a28aca332c2fbc62cdb4a39ae220374ad", - "source/simulator/env/camera_manager/camera_manager.py": "1a4250cb3bdc7305fe362a7c6b113f57e6f3e9e4983b69bd61e2c84e8e995471", - "source/simulator/env/camera_manager/capture/camera_view.py": "be9ec0d4df8a532c35adc7090fbd7d6a76c163f90e8dac30496ee4f875929869", - "source/simulator/env/camera_manager/capture/render_sync.py": "48d70e9a95f3445ae464ab7ea00a00c0d4829752eb55c4ce52ef73ab1f453cae", - "source/simulator/env/camera_manager/capture/tiled_capture_manager.py": "959b4d87d96e676bc279d01e7755557bb8c6e73920a75944259f72b7ac385f8b", - "source/simulator/env/description_manager/desc_manager.py": "bb566028b523a4cc27363cee2e526c2d3e008e671c9773d4f0b8401f58f0388e", - "source/simulator/env/environment/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/env/environment/base_env.py": "ade58ebc19c79bdbf720def30786a0c397b1c7d2141fb6a1bfd63c80f8a3db8e", - "source/simulator/env/environment/isaac/__init__.py": "123023ddc75a0f9b1139c7322bee64a27f0e756b6e84242f43a1481428596126", - "source/simulator/env/environment/isaac/direct_rl_env.py": "77958f14c465932697efed302c8ef13054f2ec61ee3a4bc5ad66d0390b71df77", - "source/simulator/env/environment/isaac/isaac_rl_env.py": "144af40adc2113751bc1bd72caadab145e918b316de53ef3e4e42358c01a1fbb", - "source/simulator/env/environment/task_env.py": "ac816cf26efabbb8ac4276d2a2a09fbd557e3db805514db0c3dd7ac22b58e931", - "source/simulator/env/global_configs.py": "e96f6141b42e635d69bba5b4727fb1fec54f8965431b3a70d95fe5dcd3d0ee45", - "source/simulator/env/observation_manager/obs_manager.py": "771d6cda443b591f3e7850b901a06b4e653a2feefcbabd23608042377fe9be4b", - "source/simulator/env/planner_manager/.gitignore": "bdcb46018aafd15f5c2d40adbbccbb06f2dec5b9ec4311cbf776075bdffd4156", - "source/simulator/env/planner_manager/curobo_planner.py": "3cd830c002901959409ef6f64d54106d8106b48471b266409abc2199f3cb33e1", - "source/simulator/env/reward_manager/func_parser.py": "eb928a05c3eb6bae429a922c59e64272c2c3851c22d779143d45627e47b3a504", - "source/simulator/env/reward_manager/reward_manager.py": "bc56efd3aaa861b4b38960dc4fb7778a9b4da9cf131f815ac3170300dd233a41", - "source/simulator/env/robot_manager/.gitignore": "fd94daa58076711ae84376170199a63f66177471e587a76252399fe79eb231e2", - "source/simulator/env/robot_manager/control_manager.py": "81b7ecc3bed8248c16aa1517e686682d8e28ccfa9e550d45011b579a9219caab", - "source/simulator/env/robot_manager/frozen_robot_configs/franka.yml": "a3c944f8cdd07fc1a4eb54cb915f565763292acb24f9c4f725534271449f138c", - "source/simulator/env/robot_manager/frozen_robot_configs/x5.yml": "4df90d234656c34132ca573e69a55de5984270e103aac2ea8ab9956a913685b5", - "source/simulator/env/robot_manager/robot_class/franka.py": "dc49eb7738a8b58fb731595340c60a1ce32f52ef0dc63a3da84f9c25879af140", - "source/simulator/env/robot_manager/robot_class/x5.py": "4748cbe4d273449a48d09817767dec361f53f8e5cdc6e43368fbb8724141b654", - "source/simulator/env/robot_manager/robot_config/franka.py": "8bf57a07913573e74dad97aec6c50e58b67746fa90875915d74ce213856ce35a", - "source/simulator/env/robot_manager/robot_config/x5.py": "13d35630f833d1b0a1e3df0bea05f843e88aae1248b59af8aadfefa9cad29bbb", - "source/simulator/env/robot_manager/robot_manager.py": "19636ff932a0e2192341b57d8695d4102b870bd10c69c9343d712682fcc15082", - "source/simulator/env/scene_manager/layout_manager.py": "1b4c940200dd94a1d0300e103d168b9a823e0dc00ce7c921afe16e81d4e01ddc", - "source/simulator/env/scene_manager/objects/articulation.py": "0c542a1fc8ba7a61bf71b343745c71949c863291c1b167d4d7048fe2ef9ca4c4", - "source/simulator/env/scene_manager/objects/background.py": "04afea9b5c4e21a105ba3b08ce0e5b6692c082cf17ec1053fdffd5dba1c9511b", - "source/simulator/env/scene_manager/objects/dynamic.py": "7a4652c649f503681914e37c50c959c7ca8457918bb00628413f4288993f8ea7", - "source/simulator/env/scene_manager/objects/fluid.py": "12b183d4d798d6b7188fd42747ee1927747318c386a91135551d1fa0561c41b5", - "source/simulator/env/scene_manager/objects/garment.py": "85f38bd85b52da8dd2ce34ce3692d45848016a9f0f14ecf13114705d4a1ff46a", - "source/simulator/env/scene_manager/objects/geometry.py": "3100d61b152b894b3b59be0b3be1d2708f2d8f363ddb8311dabfb5411c731f3d", - "source/simulator/env/scene_manager/objects/ground.py": "12dd51addae6f5b7c6ad410b4ae7248231d216cf63513c564057d577a09a2972", - "source/simulator/env/scene_manager/objects/light.py": "ba8c8529c6608592d4d0eb9638820b70ae6b3c0cd616631bc6dabdb1c20e421a", - "source/simulator/env/scene_manager/objects/physics_material.py": "a1ac0dc9928e9253e644ceb9a604aed262514aaad0473aff303bfae448e76c29", - "source/simulator/env/scene_manager/objects/primitives.py": "848f4ab08d86307812ebaea18cc86a51638395f0e6ea194b412d45a699ced926", - "source/simulator/env/scene_manager/objects/rigid.py": "8260fd2d8350d6a354c8281685bc7e25531923327078752efe0538d9cd78450b", - "source/simulator/env/scene_manager/objects/room.py": "946aa1afc23ab9b8fd17394517a5f54605bbbc609582d0854fed2078b3b2d8ee", - "source/simulator/env/scene_manager/objects/table.py": "c0e71396b0d53a250f74c75490e91086d67962237400a49f886a13ec07875308", - "source/simulator/env/scene_manager/scene_manager.py": "37911b12601038c9ee9bd180cae7a4751ea649bcdaf1ba2628f22c65cfd7dc72", - "source/simulator/env/seed_manager/seed_manager.py": "99bcf5a90392c8927aa0dbd799c07e06b9b03befe8b8eabaa8744a3dc9605ba4", - "source/simulator/env/seeding.py": "3f88d2a635c528253439cb31a29e5b9d0f47f6aaef0e975d86d9a8cf174be26b", - "source/simulator/env_cfg/arx_x5.yml": "7691350159fdeca92fd1b0b2da36913464ccdea3f3251eefb0176aa51db0807f", - "source/simulator/env_cfg/camera/camera_config.yml": "c1752170da855e735beba27fddbf78dad16f2395e4ef8b24e9827a768e616a62", - "source/simulator/env_cfg/camera/template.py": "68287ed1daec3b8ed7f053bf97a4d48bbddeb8b5757b53e438ac3c4240a9e61b", - "source/simulator/env_cfg/robot/_robot_info.json": "4c9de628bc1572502fc48d876c023fc63e02760e1a11a2a5258dea30ffa330e8", - "source/simulator/env_cfg/robot/dual_x5.yml": "4eefaccc75c5f83443b7bb85ef1de68ee7a3772e27af2b04a5e8d8769ab9baa1", - "source/simulator/env_cfg/robot/dual_x5_and_franka_competition.yml": "ec893f9fde577d0d1209e7dcb85ec2dd74288b636d0c68316cb07bc817b743ab", - "source/simulator/env_cfg/scene/conveyor.yml": "c1dfd27faf978f90dfc4825cd83bd203823547c46793f4f9201ce9f4b43beee7", - "source/simulator/env_cfg/scene/default.yml": "729df024b9707a55449da94f980c1ca116035e09a1284e2fe071f1b38efd061a", - "source/simulator/env_cfg/sim/sim_config.yml": "e442ede1c3d90fcfb50b9461c854d31b22dad9bfbb23397db228b27a6a486963", - "source/simulator/scripts/eval_policy.sh": "786966648496b7b68aad81e000a3f92910302eb391dbd07fec0a2dc91107956e", - "source/simulator/scripts/internal/summarize_result.py": "9ec361af587e1788d83d3cf8670e05b817ff252d33c33829a6337dc16ae370d2", - "source/simulator/scripts/internal/task_inventory.py": "ec82252b0f87fa5a3dbec2f682c170b25cbe47fe181e431a81df2c4b0675084d", - "source/simulator/src/__init__.py": "75bfbedb80f2e1421ad787992d78c23349bc8738b9edef7a76a3af83c9586fd6", - "source/simulator/src/eval_client/eval_env.py": "c577b27dab3c87588940670da81bcff007cd64b687eee8e0cc6684e5e24966b1", - "source/simulator/src/eval_client/main.py": "de2216bb5df707e505f7e2f3d31702907a4c1ab65205c5ea35494021f168c80e", - "source/simulator/src/eval_client/physx_warning_monitor.py": "6a9f8e8d75b1031d2cf2feb6dd72d37370d85d5bd80c4bea798622e23ce8dae6", - "source/simulator/task/RoboDojo/config/_task.yml": "655a87cd59fa6272bf352d32deb8ade162737b49a9824e16d428fecf0803380b", - "source/simulator/task/RoboDojo/config/align_blocks.yml": "082c9d7a32968052b8ce954bee212c7ec0a96b756150701d4b531abdea59be2b", - "source/simulator/task/RoboDojo/config/arrange_largest_number.yml": "3bf6b7e286ea328fb1e4a994a8d30af9afb4b0b4dcd7ceafed43cc6160c9978f", - "source/simulator/task/RoboDojo/config/arrange_largest_number_random.yml": "145b26eb5c8ed7d084a4ddc6e21694c542f4a86150756188ea38dcf66e565603", - "source/simulator/task/RoboDojo/config/build_tower.yml": "e1bab8756bbc5664e3171e2389c060a79a3fbbf92a6af4ef555dcaf59fce275c", - "source/simulator/task/RoboDojo/config/classify_objects.yml": "80a754d2aedd6a89f58185eae36f5b2eb1a28250f40a67325f576fde34650384", - "source/simulator/task/RoboDojo/config/classify_objects_by_language.yml": "ac6c739ca82a64b53c799af79b44363db1a88246f76d867f8830729e5613507b", - "source/simulator/task/RoboDojo/config/cover_blocks.yml": "68f90c85fad2b152cf7853cf48888d09ce74bb27a692ff2feacd11160771c5a7", - "source/simulator/task/RoboDojo/config/deposit_coin.yml": "f547b12216fb9a5dfe2e7d7e882d89e1e53ee1a805c943ba09a3c2cdea8c17a3", - "source/simulator/task/RoboDojo/config/fasten_screws.yml": "5fbe4cf5b3ee2eafc2771137b13176f01617f8b2131f02503e676a7b62e2eabf", - "source/simulator/task/RoboDojo/config/fill_egg_holder.yml": "d79129278c9a5488d63bb1d3865f2c6b39f21f85957ec94ace091af9ae29e31f", - "source/simulator/task/RoboDojo/config/fill_pen_holder.yml": "ac72e5582495e8757c547997b317e2fe990370009527b1faa6bfbf4e1275537c", - "source/simulator/task/RoboDojo/config/fold_clothes.yml": "56447e3f592e0db388ebb7482ec758ecd5485ec81b9227c2dffe5390bd7d8c8e", - "source/simulator/task/RoboDojo/config/fold_clothes_random.yml": "eafe52c0abcc1889069383b008cbe95c6af2d18ceafb1aecc78f0fae3b491b04", - "source/simulator/task/RoboDojo/config/general_pickup.yml": "35de68117cb0ed596b30db1c62f1f9090f2cd1237242a03d5aaeb7186e791d93", - "source/simulator/task/RoboDojo/config/hang_mugs.yml": "0086d374d3f7e82abb85e43a17cdfa437e1ac645a0171fb47496c2b81427dce9", - "source/simulator/task/RoboDojo/config/hang_mugs_random.yml": "847dfd39059275a671b5beff0243bf7bbaeebd9e5c0612a1877cdf12b9007dc6", - "source/simulator/task/RoboDojo/config/imitate_sorting_sequence.yml": "d9e194d8c742288601c641ccb75052a67da46e536c0b06c7fb7311d9e2c61a42", - "source/simulator/task/RoboDojo/config/insert_key.yml": "c0b409d5c020e0ad706c378b6f63b39dfe7bed4682d978907c40e1cfa7623335", - "source/simulator/task/RoboDojo/config/insert_tubes.yml": "5c070e5c764a2ea93f8de0b52e6a664a23c717963fe09fe3af17918a4a1ee9ef", - "source/simulator/task/RoboDojo/config/make_kong.yml": "8a33c9e57b6e6c719c4800911c37272ba055ad0f4cda2f1de9d531ee2910351a", - "source/simulator/task/RoboDojo/config/make_toast.yml": "d190a26233db174538ff0052b4c2958a3b107f0ccc63d0fdfe28da4c7f5dc57b", - "source/simulator/task/RoboDojo/config/make_toast_random.yml": "ca2c1e55a0975c8b019523710e90131504d8d2afeb829be362e4d7927fe97b48", - "source/simulator/task/RoboDojo/config/match_and_pick_from_conveyor.yml": "0ae1c2537d9b1880748316928cfd7ba4c6421ecccfedb85c4c5395a7a86c5361", - "source/simulator/task/RoboDojo/config/organize_table.yml": "9ffa15dd279060d4f042285a2c53a341c7208e2f89a2f3dd36ee08b22aa453fa", - "source/simulator/task/RoboDojo/config/pack_objects_into_box.yml": "e232962b8394d08c04c5da14deb88d7b233afa00ab99af8001c084218951d7ca", - "source/simulator/task/RoboDojo/config/pack_objects_into_box_random.yml": "7ac7f034fcb169e33a7f0a03b2b77e54d0206ed715409359b579055a701196ef", - "source/simulator/task/RoboDojo/config/pick_from_conveyor_by_image.yml": "6b310b70a0ead9d09e7c221c6bbc952140a44b1d43034613bf02e954eebcf9dd", - "source/simulator/task/RoboDojo/config/play_Xylophone.yml": "28adedb0f03c49693af32cea37855f3f95ec3f76f031bfd571fb8bfffb2ec59c", - "source/simulator/task/RoboDojo/config/play_stacking_toy.yml": "a09afc106161064a2ea6a40882d717f7872bd4875309a97431d6863a9b7ffa1c", - "source/simulator/task/RoboDojo/config/play_tic_tac_toe.yml": "63f863a7fb81a040f65803c64f97c4e9577d4fe32cd0f92563bdc72d1aa336d2", - "source/simulator/task/RoboDojo/config/plug_in_charger.yml": "2046b47112049e038ecfa24a8c8044fb1db84f629a4a32eeb24822157d2d4dcb", - "source/simulator/task/RoboDojo/config/pour_balls_into_vase.yml": "084a707af61d24123912777b417fe0c0b230eb9653e686af42570791e924ff8b", - "source/simulator/task/RoboDojo/config/pour_by_language.yml": "efb2e3c3cb08dd6d2d2ae011b3e9a218b5f1f0a92f025b8e3b9e8abd7011c250", - "source/simulator/task/RoboDojo/config/pour_liquid_into_cup.yml": "32092b11667b3306579b04225303610c061585ace28531fa9996afc339c5a2ba", - "source/simulator/task/RoboDojo/config/pour_liquid_into_cup_random.yml": "1603feeab6f0f7dc9c4897e7f40f322b86112b6ab987dad0598f42ac1b35db69", - "source/simulator/task/RoboDojo/config/press_by_number.yml": "b784643495bcbca933f5a5fbc91b7dad3465fe888239b358d516977c78c38f63", - "source/simulator/task/RoboDojo/config/push_T.yml": "b55ea11002ff3e5dc63982ca8c1247fd7bee4f4a607f4d674e220b86cf120a25", - "source/simulator/task/RoboDojo/config/push_T_random.yml": "07609ec20cea40afa1d5720e895fb1b445411f261b2e5b6850e75d0f1930d32d", - "source/simulator/task/RoboDojo/config/put_bottles_into_dustbin.yml": "7eddf43e287b6e8aea686c6d686fb87e13ac1be1cb5aac16a8a2b0d2e9eb976e", - "source/simulator/task/RoboDojo/config/solve_equation.yml": "bdaad2ff1cc8b7ec6413a3715d49ea9cefd664e7e204544977832e18785f1e75", - "source/simulator/task/RoboDojo/config/sort_nesting_dolls_by_size.yml": "8927cb2ebb18449554d851e629bd7d568e12e46c5c3c636c8e7122f4fab1ed1f", - "source/simulator/task/RoboDojo/config/sort_nesting_dolls_by_size_random.yml": "f895d3ce7eaae99454706afccd09011f56d077998bcc1e95840116658b78f139", - "source/simulator/task/RoboDojo/config/stack_blocks.yml": "2802e88ebc3e2d3d05ce345d75e9ad6151a6690e4ef1e0021a5223d291a402d2", - "source/simulator/task/RoboDojo/config/stack_blocks_by_language.yml": "4fbfed4f7fc49120831087e709a8dbdfdb4504eb143196000d5790b54eb3bc40", - "source/simulator/task/RoboDojo/config/stack_blocks_random.yml": "e25d2a096601da30abdcfe1256a464eaf48c0c8f844eb2c737232626d49639d5", - "source/simulator/task/RoboDojo/config/stack_bowls.yml": "4e2aaa12b8b0f58ca801f1a93638c46d3b49ebad809c5a8011382ccda846dcb1", - "source/simulator/task/RoboDojo/config/stack_bowls_random.yml": "5c08af1bcc925d958d53de51e8ebd336006203f1bc81e4ef68f3719eadfabb49", - "source/simulator/task/RoboDojo/config/store_laptop_and_headphones.yml": "0fdaab803a9370a9e2d1fc8d86a5788daa3940c08fd6f767334f625642fca3e2", - "source/simulator/task/RoboDojo/config/store_laptop_and_headphones_random.yml": "93f0ca39bc8bb32df94e84a02f22ed4d7860f37cdc0b9dd17e44721445849576", - "source/simulator/task/RoboDojo/config/store_tools_in_toolbox.yml": "641c8ef92393bd986e408d26a84b1cfcdac27466a5ac5f0b3ebe4bb84430c527", - "source/simulator/task/RoboDojo/config/swap_T.yml": "1daf769911e13714b4aeabd208292931e32f4dd39968893152bb7bb477c46c9b", - "source/simulator/task/RoboDojo/config/swap_blocks.yml": "b6bb2a9df494719f26c6b1aab2e7576107ae76e2fbac8b63a5770f21e0e9f05f", - "source/simulator/task/RoboDojo/config/sweep_blocks.yml": "98aa25ac39be9d335c71b2b586bbba372789e9d61e652e1147152c87febbf1f5", - "source/simulator/task/RoboDojo/config/sweep_blocks_random.yml": "4ebff5e2cad07f958dc4b2793b86b1aa803c0809394818ee3752d300e58b6187", - "source/simulator/task/RoboDojo/task_registry.py": "11218028f772d9253ee709a7d85aa72d1e1fd87e4f8d33ee3787d6064438f9ab", - "source/simulator/task/RoboDojo/tasks/align_blocks.py": "c8597e96132cd7c9d30f3ae101f7bbe8ac28597b629599d75d442bbea4c6e74c", - "source/simulator/task/RoboDojo/tasks/arrange_largest_number.py": "277acd20ae4345dc71267762e588b7b0343387c71685183890f044a4808b7a20", - "source/simulator/task/RoboDojo/tasks/arrange_largest_number_random.py": "01757509978663bf7c0c95059e8ae18d45b8fe0953f6b54540e2bd6bf141182e", - "source/simulator/task/RoboDojo/tasks/build_tower.py": "814cf6ffb459871e5cf49f4e127903dbfbc30926f33db71de0b84a71ab235d6e", - "source/simulator/task/RoboDojo/tasks/classify_objects.py": "aef4333c088766375e21a928d53a9a93aaee285fecae41e22385acdc74dd11ac", - "source/simulator/task/RoboDojo/tasks/classify_objects_by_language.py": "242a8f048f487eb174ef246be78613bbb5f153549ee11a2650412718cf3b36c9", - "source/simulator/task/RoboDojo/tasks/cover_blocks.py": "9d14931b16842b93bea8abf9a07991a93a7e663b93c5fd1695108c8b922ab862", - "source/simulator/task/RoboDojo/tasks/deposit_coin.py": "f9868ef827ec17b8db6c4650cc5d9a9e593d20d00ee822e2212ce229ec01fb61", - "source/simulator/task/RoboDojo/tasks/fasten_screws.py": "2e187a28e33e44efb87baae6463b3ec35264ccd41e35c21a1be44f6361675185", - "source/simulator/task/RoboDojo/tasks/fill_egg_holder.py": "506dfb772f8882ae53966e3580affde19c3c0f11591c78cc5f5b1d997ba04f7e", - "source/simulator/task/RoboDojo/tasks/fill_pen_holder.py": "8706dce239487e078b21af0b95bcc5cd4eabdcdadcdcbc6400d6b138d982f1e6", - "source/simulator/task/RoboDojo/tasks/fold_clothes.py": "ecea9c287d0579605330168e6f36734704fb14a6b1e5dec82b6f2ee3a56ec20a", - "source/simulator/task/RoboDojo/tasks/fold_clothes_random.py": "9e40abe3f7201a8c13961edc1ca8075260c315584d3d6b93fa1df966d13d1e88", - "source/simulator/task/RoboDojo/tasks/general_pickup.py": "1a9eef7fe518f9d2c6805ad1a8f97c1045fa83726f84b9c63f67ffdfabbc40a7", - "source/simulator/task/RoboDojo/tasks/hang_mugs.py": "4bc6586bd87de030b9c580fea2a45e7977c3b6a4d75cf3c43b546d349d42e906", - "source/simulator/task/RoboDojo/tasks/hang_mugs_random.py": "ebfa4a95deb954aa7a9063a07fe366cb5ea1835d3f52342b10d531225dfeee92", - "source/simulator/task/RoboDojo/tasks/imitate_sorting_sequence.py": "18400cb3c5f5103492819df2dcdf05a77916106e8a503cb62b4ee6cdbaa9305b", - "source/simulator/task/RoboDojo/tasks/insert_key.py": "180978a2915744f0596fbca4ea0ad6dcb47dce005d43f06807249bc8b4d1a828", - "source/simulator/task/RoboDojo/tasks/insert_tubes.py": "9a68795ddbd0b816ffd7627e673390ecd83594c0e9d374d4e3abf3435ad439e1", - "source/simulator/task/RoboDojo/tasks/make_kong.py": "b9266689d65f9213b05219ad952344f9fd63be8892097ec0103af99791b245d5", - "source/simulator/task/RoboDojo/tasks/make_toast.py": "1047f484a73d1f92304393879b51f87e33d661b6ad7937198352fe37a0d3233d", - "source/simulator/task/RoboDojo/tasks/make_toast_random.py": "69fb879b89e98f7369971834eb6d1b95c5a65f5ffe978b2cffae0b12c6b756ca", - "source/simulator/task/RoboDojo/tasks/match_and_pick_from_conveyor.py": "53110b8a0c971bd3ae8878bfb7d0dcd9626bd9b610d4e7fc91772313b435a5c0", - "source/simulator/task/RoboDojo/tasks/organize_table.py": "aceb298e78f3f39e4cf9a9f4c5a4f747b2c55f1a6006de2065e110a05f4295d6", - "source/simulator/task/RoboDojo/tasks/pack_objects_into_box.py": "84a1cf1dd5e166f36291130f9d8cb5dfe4b3f4732a46674bef6374a7ea2d66be", - "source/simulator/task/RoboDojo/tasks/pack_objects_into_box_random.py": "4db259a1b97cdcc39ebc9794244fadc79d31c4ae64069c9b11a233356fcb655c", - "source/simulator/task/RoboDojo/tasks/pick_from_conveyor_by_image.py": "a0d29576d0aab8232d2fd3ebcc8c510e81c70b4cc04602a5be3e99ee2275e01d", - "source/simulator/task/RoboDojo/tasks/play_Xylophone.py": "b7a4b0bc0457bcf55d714ca1867476fc4aabc53084adfc78d3ff5d1437bf7847", - "source/simulator/task/RoboDojo/tasks/play_stacking_toy.py": "23361329ee7efe330da1f1c241415205bafed2b6c082a913659d868a80d338c3", - "source/simulator/task/RoboDojo/tasks/play_tic_tac_toe.py": "8f75ebfe55c997ad9bd3b342db46e843e87397db94356f31cadcbe0cb483bca7", - "source/simulator/task/RoboDojo/tasks/plug_in_charger.py": "aaa59ade46dc54f430e1148e3f6fae487970cd29eb2c07b5ff7b4045edb831b6", - "source/simulator/task/RoboDojo/tasks/pour_balls_into_vase.py": "eae388b93ec196c401f76bbab3b0119cb2164f90bece0225d4fb925d3f2b73ab", - "source/simulator/task/RoboDojo/tasks/pour_by_language.py": "f7a15a7fca2c649a7918d68960ede27e667f409a339b668dd9876db890724cfb", - "source/simulator/task/RoboDojo/tasks/pour_liquid_into_cup.py": "73f8c91b57c352fdc1e7ba3fe5354b3c10e4156d8e5ba777762ad0fa1aff5663", - "source/simulator/task/RoboDojo/tasks/pour_liquid_into_cup_random.py": "a1c4097b6e34b2c62885b3a9c7d2584a93d9e296dc41d311a80c2e6d541d53af", - "source/simulator/task/RoboDojo/tasks/press_by_number.py": "006f969087c00c417a63875a9de153f698c52d1f1ca0caf0aa16076aa15059c5", - "source/simulator/task/RoboDojo/tasks/push_T.py": "a01d753bc320ffbf492ccc29e5f7ab3b39e6c7d255cd25804db1934a30fa5b41", - "source/simulator/task/RoboDojo/tasks/push_T_random.py": "dc8d9c8e0d2e8dfffa2b7d433a8278c0eaf707cc4861b15035364c2e70061dab", - "source/simulator/task/RoboDojo/tasks/put_bottles_into_dustbin.py": "3ba6e19df0c5ff19ba961092f031ce14e91e72a9a4a5934eece6000a1ffa1c48", - "source/simulator/task/RoboDojo/tasks/solve_equation.py": "e287a2f36b82b28e8ca7824f63b1b723b02972ea6dfc115ff32b2882729751f7", - "source/simulator/task/RoboDojo/tasks/sort_nesting_dolls_by_size.py": "1838fa6b515bad3796895cb5c1883c6a42789b7dada5434765764600e70beb49", - "source/simulator/task/RoboDojo/tasks/sort_nesting_dolls_by_size_random.py": "b793ab5bd32bd2c10bd46874440904837f9c4e290e7508b06426e2e96425709a", - "source/simulator/task/RoboDojo/tasks/stack_blocks.py": "50bd388f9e47002966fbb0146742467a820295b8686e0f86379f0efbcfffcc1b", - "source/simulator/task/RoboDojo/tasks/stack_blocks_by_language.py": "36a83925f35c7a4caac5add328dd35cb1d346bad833d3064f455d88221e7a41e", - "source/simulator/task/RoboDojo/tasks/stack_blocks_random.py": "19d4e5cd693e068ad64de75cbcd24977ab8d39e22fa17362a391dcd733bc9bb5", - "source/simulator/task/RoboDojo/tasks/stack_bowls.py": "022c129ec3493183b1a26688a0402f5a00a1546ae011999e9c19f4c0029e2b7d", - "source/simulator/task/RoboDojo/tasks/stack_bowls_random.py": "a0e20469eb44a9ee98650d09386814c1df5264c68ec139f06aabf0c86f092514", - "source/simulator/task/RoboDojo/tasks/store_laptop_and_headphones.py": "2bee4e31f0594900629fe7f43266e16fecb310b152930ce51524507136809a92", - "source/simulator/task/RoboDojo/tasks/store_laptop_and_headphones_random.py": "58c3c5113054a379214d64ae406ed8dde99603cf684ce9cd8c7bcb72ed334382", - "source/simulator/task/RoboDojo/tasks/store_tools_in_toolbox.py": "2969fc3eb171560b3c0bcea62b9f38b8b35f3aecc9bcc7085c3b1cec365b48fc", - "source/simulator/task/RoboDojo/tasks/swap_T.py": "57fc289b3957caa454e1d8e005e3a57c973d6ab40121845c94799e61e4bfafdf", - "source/simulator/task/RoboDojo/tasks/swap_blocks.py": "08ed24ae9dff27f4e5c850161a02f62ce237859c096d9b06a853a7890e0ad4ed", - "source/simulator/task/RoboDojo/tasks/sweep_blocks.py": "65786217e199c1e2b26ec8e2c232bf98ecb304a20939d0908fe12bc41e990614", - "source/simulator/task/RoboDojo/tasks/sweep_blocks_random.py": "68b6127038322cf001d5f614060b8a1d96e64a49efddfcdcae91127d5c206bc5", - "source/simulator/utils/cluttered_generator.py": "f59cfcfed2b4cce5ae9aeaf3339c86d17e237874e3526bded3cb05136dbcbd50", - "source/simulator/utils/ensure_usd_path.py": "7c8e71cf91636e630b1b174098fe0b38740857daeaf207e2fae772c4727b11bf", - "source/simulator/utils/load_file.py": "ef3a6dc96aa1a7442cfd24f7be9671052a98d2f20783c3e71032332704132943", - "source/simulator/utils/path.py": "1d427c7cf33e748e01d0d083c9432d8be8b5c3a1f35c5fb0f6ebb0714098f1d1", - "source/simulator/utils/pipeline_utils.py": "d5d8da29e6ca84ab04323a2f79130f930572785b4399634e06a42834ed4087ae", - "source/simulator/utils/rotations.py": "8e814f79938bdb9e85f1c024825617cc08d281b61728c6410b23ef1bd852c340", - "source/simulator/utils/save_file.py": "6cff5950f73bf7a1ed404f804d6f08af712974f22c3955de4cdf142f211aaf00", - "source/simulator/utils/transformer.py": "73de4f5e1e0ff60d4f2e1aaf6104368e8f919269facb68b4fa0344d35bc08cbe", - "source/simulator/utils/usd_schema.py": "260d30b0ada2976136cad3e49e810b4409304eb4a2bc60bd9ed710864d3953ac", - "source/transport_deps/annotated_types-0.8.0.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/annotated_types-0.8.0.dist-info/METADATA": "614985b278f601b8ef863f82783b991cc3ada4b89f592eb71c7c48c5f2ef2298", - "source/transport_deps/annotated_types-0.8.0.dist-info/RECORD": "c7660eb223c8080f75c49690eaf0a9c9c00b6195511791b33b15e6b24e42edd7", - "source/transport_deps/annotated_types-0.8.0.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/annotated_types-0.8.0.dist-info/WHEEL": "942926c567d0b1273d09f20295879abd37507845f6b683eab9f87d808df91100", - "source/transport_deps/annotated_types-0.8.0.dist-info/licenses/LICENSE": "fe1049884b1a0d9342901e88e07f32925d24b3121d9972b6a6805fb9824b095d", - "source/transport_deps/annotated_types/__init__.py": "a7104a4d439b27a9f74fc0be236b9ba1b7831e6044026802a205abc1298a9bc8", - "source/transport_deps/annotated_types/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/annotated_types/test_cases.py": "d867472acb57b81ce97f78972828e6bc5669ca4db33fd1e6f645c6183846068e", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/AUTHORS.md": "5fe0446ddd6d1c70fa298747368582dc1d91c23d62c8fb7228595bc87fd53232", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/LICENSE.md": "509aa7af19ae2b5b1681b22b969627ee9e1fd15ff7ea5bf9f6e301fc44d5a6c2", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/METADATA": "b7ee8fa1bf018747082cd6d2fcaa14e5d0f5956b5477ab5810eb61ac4cc7bcf9", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/RECORD": "51331727bf8d9ff60510de5e7756c5dd72aba7663f3673e2827bf1ca5c09c7e3", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/WHEEL": "1d7faff7e9e8524c94a31c99d4f312b92edab94c43011e1505da182ea0f4c70b", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/top_level.txt": "19da698ad1490bdde1c7f18fabaceb2625aaf48b364d4dd7ad404c7e5eed75b9", - "source/transport_deps/msgpack_numpy.py": "0a45a7430e2cefa2e74235c4c6a34a22ead2fb57a7de8b2631f45df977701d63", - "source/transport_deps/pydantic-2.12.3.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/pydantic-2.12.3.dist-info/METADATA": "348336c208743aafeabfa5537c29f429035a3107b7a78bbb6a3bf7b3a42fe4aa", - "source/transport_deps/pydantic-2.12.3.dist-info/RECORD": "089c7ceb033486c4e6106749bb1a38c80b63905da74d842d067735e8b9c86e4d", - "source/transport_deps/pydantic-2.12.3.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic-2.12.3.dist-info/WHEEL": "aad0b0a12256807936d52d4a6f88a1773236ae527564a688bab4e3fe780e8724", - "source/transport_deps/pydantic-2.12.3.dist-info/licenses/LICENSE": "a9e186f3ca16b5eef84318e7a701721351a00cb7b8ae3a4394b67b49e3529ef3", - "source/transport_deps/pydantic/__init__.py": "e62127278c07bf5384cdd2903f368a69929f3b8a524000bae4e0eb608ebf4bc6", - "source/transport_deps/pydantic/_internal/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/_internal/_config.py": "4d66708377346d91e24f76e8479f9862a928b877308d175e9e6c861e87d5ec4d", - "source/transport_deps/pydantic/_internal/_core_metadata.py": "63f836b778bbba5b8afb05c266fcc97d114c3d4336dda0582df69ee05cc13f2d", - "source/transport_deps/pydantic/_internal/_core_utils.py": "d63aeee156c9d31eb747a76d55cb8e23e74a4130bf77f9529c9584050cc63444", - "source/transport_deps/pydantic/_internal/_dataclasses.py": "4e4d6611a7e169dd6457b2b9b4f5f9070c5649763b0be30ac1fd0e2c58089440", - "source/transport_deps/pydantic/_internal/_decorators.py": "3e7c80a0a4a0dc135b0954999f0ab0f67684835503b58bc34fd2e5ba280f88ef", - "source/transport_deps/pydantic/_internal/_decorators_v1.py": "b5f75f76940a6384765c23b0a876d97a840cbabe95362811adf86e757047c77f", - "source/transport_deps/pydantic/_internal/_discriminated_union.py": "68c9744914b24321df5b8fa49673131cdbf0491a2a1371f73d157fd39bd1b138", - "source/transport_deps/pydantic/_internal/_docs_extraction.py": "7f2ce74801e1e40ce88675d94ad5741ef1fe9d16dabcd1cfca0fa49f1f92fc41", - "source/transport_deps/pydantic/_internal/_fields.py": "6127c42aadb51608cb27a62a6172a1d1e104b399f130fbd0ea1a7da40f0dcdfc", - "source/transport_deps/pydantic/_internal/_forward_ref.py": "e67dd8efedc028b9fcfc54b761cecabad2e23d48725e602d90464e6859e89f03", - "source/transport_deps/pydantic/_internal/_generate_schema.py": "4d3e3dbf3633a87f74ad6aefe69b4da19823cceb11d0a3e54a4a8f545ae7ac1c", - "source/transport_deps/pydantic/_internal/_generics.py": "10baa34fa2cccd0cd600ad04079ffdaa47bf8806b3cf4390e20ba7a7fb8ab986", - "source/transport_deps/pydantic/_internal/_git.py": "2303e1dc33df6b65eadeb06e07d371f25b91d80d62ebd41d7937d659722e0958", - "source/transport_deps/pydantic/_internal/_import_utils.py": "4d18710f93ae63a094a2c8a805d05c254b34a26ec820e36265d60057bcd0f233", - "source/transport_deps/pydantic/_internal/_internal_dataclass.py": "fdb79d7355dbbaeca044688b66a914930c05a506a847584a2e5479d359f2c926", - "source/transport_deps/pydantic/_internal/_known_annotated_metadata.py": "25ceca4cd159a01ddffb489b3ff36024834e795bd8137ab73930500e354c9375", - "source/transport_deps/pydantic/_internal/_mock_val_ser.py": "c2645115206fa9f70b6c8e353ec165881e2ed80677989a597a21116c3df1293a", - "source/transport_deps/pydantic/_internal/_model_construction.py": "c24f9b3460c026f76e686be7d14d3ff33125d06111bb4b2126f37cfd97e461ac", - "source/transport_deps/pydantic/_internal/_namespace_utils.py": "865dfe4d102bf365368d3c8f3f7b7e42ab2f28b8abc6d90b7cd7eb37e7e9d31f", - "source/transport_deps/pydantic/_internal/_repr.py": "8d07e726ec83c50a5244d846dbd208f4f5fc7b836fdaa599ac4c3696a8a1dd41", - "source/transport_deps/pydantic/_internal/_schema_gather.py": "54b12fe754d811e78d0f6733b32ae626ad4c56726a4ce9a72da9fb546e3873c0", - "source/transport_deps/pydantic/_internal/_schema_generation_shared.py": "17fadb41bae4a289a0c6cb24747a4fd23509ed309f7b40400c0124aba089e273", - "source/transport_deps/pydantic/_internal/_serializers.py": "6085af4a6011e5f9db19258239076e5add72078650638d9e02bb9cf9e9eb6fa7", - "source/transport_deps/pydantic/_internal/_signature.py": "f049633c97b8a529daa6e8ab1b90e4040803d618201f1100cb314f1fef47d331", - "source/transport_deps/pydantic/_internal/_typing_extra.py": "755c481a1b0be37cda79b3423108752b94235fa2386bd3959cd01c2f6a486bfc", - "source/transport_deps/pydantic/_internal/_utils.py": "0878c7fb4ce75235fd479b144a33d3f23f3efbb3f37bcca36a27ac7130152e24", - "source/transport_deps/pydantic/_internal/_validate_call.py": "3df7559d2ce15ceac436d683a03c373c558f5580f95bf80d60f7bca77520e8b8", - "source/transport_deps/pydantic/_internal/_validators.py": "76fd1ad8d91ce33718aafdf51a1fd021dda571ff96d24429574a1237380475f8", - "source/transport_deps/pydantic/_migration.py": "545ef72d1094cf722b6f9c55b75de36f7340717567105e93d7e27438b7de6790", - "source/transport_deps/pydantic/alias_generators.py": "28cd67deee097cb48197552e620de1a181f35c90fecaf82b9eaf2ed5c73087f0", - "source/transport_deps/pydantic/aliases.py": "be1087ca84969d7f8427ec166f9aa3e31c91b2c8065a74d07f3429e06499f6e8", - "source/transport_deps/pydantic/annotated_handlers.py": "59fc854aac28108157061ed3ef73f270a9682350e25f8e465a2d3e24eb024786", - "source/transport_deps/pydantic/class_validators.py": "8bf5778fe3d87462d22e68ff20965e913463ba73bc488573f0b325aae3f23fb1", - "source/transport_deps/pydantic/color.py": "033a867d540717ddbf65cb4372e7b40cce324e9d8fead7a49304483535ab2c8a", - "source/transport_deps/pydantic/config.py": "b83676c4df89ec255035e9c269529c62c244cc83a92aa9607d0bc3774d35c229", - "source/transport_deps/pydantic/dataclasses.py": "dbf8cdfb9d595abbb222c7a78cb235f9585de2a206345ddeb9ef6319c769a872", - "source/transport_deps/pydantic/datetime_parse.py": "402f9680cc4caffc10fe6357512ec055ffb684b121befb0f6353d0ca148639d9", - "source/transport_deps/pydantic/decorator.py": "617fa3500a6ee4029a55628fa1a57e9fee25ed46d2ebd184b7d45ade1b3398a2", - "source/transport_deps/pydantic/deprecated/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/deprecated/class_validators.py": "10071a550339ce9db0066974c9b37ad827d07f226f0cbc7941df4f938fed6f85", - "source/transport_deps/pydantic/deprecated/config.py": "93f96c564e7ba5ac4b24e701b9e1f4edcbb53a012059d541c66ea57da0b70825", - "source/transport_deps/pydantic/deprecated/copy_internals.py": "1a177ebe431de446020a0c821ad3ca3b9f27a7d704281402eaa9017881052368", - "source/transport_deps/pydantic/deprecated/decorator.py": "4c19ba6c9ef026c36287ff16ab92330dcc0fdf69bdfef7f1b3de9d7ac2ee934d", - "source/transport_deps/pydantic/deprecated/json.py": "1e55821b7e5146bc72cee4d2e8b4d089907046198365699ea901fcacb5bac00f", - "source/transport_deps/pydantic/deprecated/parse.py": "1b377a6ff83ccc95dcb84ed046ae5a761c7f10c25a8577dca57085d1182baaa2", - "source/transport_deps/pydantic/deprecated/tools.py": "36b9bda054595a9f3e8e57ef3e02482c4b32c29e18cd90f9d972063c32f11dc2", - "source/transport_deps/pydantic/env_settings.py": "e881de79612a9543d152fdd5f805e217f5bdd5f836270fccdced25df827f7b20", - "source/transport_deps/pydantic/error_wrappers.py": "44aea6a804dcf72303f8a043f48252f47a4a0a9ad61ddf30a3ce019e6fb77d1f", - "source/transport_deps/pydantic/errors.py": "edcb41342b6de7b919171ef52ecd87f3a22e7d0011bf8c0f29ff0385db159f9c", - "source/transport_deps/pydantic/experimental/__init__.py": "413eeb298743b0289327d1848e6b107561d2730a4aaeb3641aaeafa8e34fe914", - "source/transport_deps/pydantic/experimental/arguments_schema.py": "1059e35ffba5a7eb4fc948d05f9a6642dba0d4e14bfc071cf1b70c6cb77e7d56", - "source/transport_deps/pydantic/experimental/missing_sentinel.py": "8507a382d174d3052e40c9e2f78dbd7af83e797c88c292af8ec0fca1fa9f8fec", - "source/transport_deps/pydantic/experimental/pipeline.py": "2affddbdc7b12ae99acdf44bd32ebd01ac9e03a1f7ed2ae6b19dd2525fe7d2a6", - "source/transport_deps/pydantic/fields.py": "5ae0c63af076d8a5aeb96ddf5e74b85af838a97fed769f17ec1ac09736b8b30f", - "source/transport_deps/pydantic/functional_serializers.py": "ac4cc7dfdd73ab2de8fdb5a4d9012ebf24a67103599b05e62502c2dd9185ed00", - "source/transport_deps/pydantic/functional_validators.py": "73ffbbc1e5a918d70e61f45f55416ed758ebc4c54c75f63f73ee22b2dc24f796", - "source/transport_deps/pydantic/generics.py": "d19a99f4ef5a9e7223ff7986051aa9b3886d7b2ddbe65575f9ddad5313cc3270", - "source/transport_deps/pydantic/json.py": "647f11908ee1e01cfece9f0e7530316c952856f72853e8e131d459d01fa4d317", - "source/transport_deps/pydantic/json_schema.py": "677786d509be226f8c417ebac28c963fd5b2c055272d116d68e0cbced559f937", - "source/transport_deps/pydantic/main.py": "efb414c13b5041d51a7e8af78abe70d820b5b34be2805b460747d2953bc5dbb2", - "source/transport_deps/pydantic/mypy.py": "a7a294d46c0f1dacc5ec4e6f26ad6e2dde2d1dde8313a6eb7b8fa6e4b9f6de6b", - "source/transport_deps/pydantic/networks.py": "2c995c70c79df7b1007a9293e8e98f23d73a8e1e62c1b063935fe35f5449c37d", - "source/transport_deps/pydantic/parse.py": "c2477cd9d82dbd6b43f3de54fc8e84d61b6a3251a1052604577f5cb8149ea370", - "source/transport_deps/pydantic/plugin/__init__.py": "6bb4f0dfae94e8ade496d08235963bea773db2cfbbb86190e344d769df4eca94", - "source/transport_deps/pydantic/plugin/_loader.py": "f502d79de2c49afca15e46bff63e0bae46e67b8a8fbfaa98a6196c8c5d8c1ac0", - "source/transport_deps/pydantic/plugin/_schema_validator.py": "41b9aab06df730199fb4d4369cd8ae376d8b85badec5403b8a90d5bf7274d815", - "source/transport_deps/pydantic/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/root_model.py": "06f98bb56e22d7574993e74b38cdeb97e8e725d40679e41314172610eabaa4c8", - "source/transport_deps/pydantic/schema.py": "56aaa3beafcb9daa5592779b51ddc1a7f275a768176599d94602f8f1b5441bba", - "source/transport_deps/pydantic/tools.py": "88742977c489e43093b4f5796ad015d3a4fcf5b8d268c15e659d8b5fd95ab196", - "source/transport_deps/pydantic/type_adapter.py": "553fbeca0e1adbbb21481cd61c13cacf8f777f7890f686dd9049218d92a513b4", - "source/transport_deps/pydantic/types.py": "9ea752f89d995ea4e1daa7b224ecc14c1b475b267961115ef2068c579f5df471", - "source/transport_deps/pydantic/typing.py": "3fb7de037e4cc1370bb11d6e2fb75bd12fa8c9d071a1b9976b9e580e80606a34", - "source/transport_deps/pydantic/utils.py": "d799d1d90a6a4c1165415e1336d4c8b4cc93271fdf6f257e80f988118d46a287", - "source/transport_deps/pydantic/v1/__init__.py": "14b43c212a7a3156517e39d2edf4389b51714311421764158a41380cafb83e11", - "source/transport_deps/pydantic/v1/_hypothesis_plugin.py": "e444b9c56bb0d45400b3298b7b3cbc4209d5cf466955f5378e4993ef81f6ed54", - "source/transport_deps/pydantic/v1/annotated_types.py": "ba4d8d000c6a88d10b2a388787287129a20e87c1759585bf2f3ad6dd7ee86417", - "source/transport_deps/pydantic/v1/class_validators.py": "50b39a21481850306c1cbec411511aadc33e52e6ca52082837c8526c3a27b051", - "source/transport_deps/pydantic/v1/color.py": "8990012d8a7a395a28d801643fd229ae2ff049cebe2a496ef18ba149aaed7798", - "source/transport_deps/pydantic/v1/config.py": "6ba3f459eafdc7871bc0a5bb5eff29a1252a33858ff912d6c17e9832962af400", - "source/transport_deps/pydantic/v1/dataclasses.py": "efce1caaf2276f020f5abf6eb1fa57ddc87bcf8b77276b532ba374ebbff0935a", - "source/transport_deps/pydantic/v1/datetime_parse.py": "e10cb5910a6adeb3556497881de48f0e9b92d81be1a7528fb73246d71bbe1f4d", - "source/transport_deps/pydantic/v1/decorator.py": "cda6b1c71a163c29bcd7c0f56ecd3285aa518d79b7d95f06d191d609d335b970", - "source/transport_deps/pydantic/v1/env_settings.py": "03d557c2d465d36018fa31f40b4a2ecb954dc377e2e85fe9933b870e380000e3", - "source/transport_deps/pydantic/v1/error_wrappers.py": "ebadb931fc3daa40b63708ad07f2450167bc07e5efeb3054eeb2fd936f2d7f2a", - "source/transport_deps/pydantic/v1/errors.py": "988c0f103e6f18ce50e6fe02e19d493e5753447fa89af132947ea4b0c84e98fc", - "source/transport_deps/pydantic/v1/fields.py": "56a5890ab894362132a6d5eba03549e74d49a550347a7d9500d724b2a5cbd9bf", - "source/transport_deps/pydantic/v1/generics.py": "5730bd61457e11b3e94376807e4d5c3457a3efdfc8cf39e443b5ab9934d94bd1", - "source/transport_deps/pydantic/v1/json.py": "590e47cbf848a5f751dd84bc93a37613a28c273b1d6c18bf95d58e3c9695f353", - "source/transport_deps/pydantic/v1/main.py": "cee36974de50d15d301b65144cab741d4cb75c9e0e02f3d26437625d8f85233b", - "source/transport_deps/pydantic/v1/mypy.py": "0a5f1745f0a621c544de3e40114e760bc88387c95c5fffc3de1cf68c85b1300b", - "source/transport_deps/pydantic/v1/networks.py": "1d836d2807ce98e9ca269b0383583a488923f563e153ffa2f25e5ed89281a46e", - "source/transport_deps/pydantic/v1/parse.py": "049b5daa2651b5abfd55114298ec6863e2889909a33f2f80fcda288e21546716", - "source/transport_deps/pydantic/v1/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/v1/schema.py": "6aa06e03ef9cabc8005648a6e4124f140487cce67c745b66157fdf346afa8a9e", - "source/transport_deps/pydantic/v1/tools.py": "d650dd5c79348cbe6e3f7bb9442600bd402518296000efb8e6592af63edfc810", - "source/transport_deps/pydantic/v1/types.py": "07397e45c9e2b4f0479eac308fd8afec98c7b8dd46a67587db874a905de5f5ef", - "source/transport_deps/pydantic/v1/typing.py": "ec67418356131d42d4f35b6107ff5c8d13437d97e7e248685fb9c6b70fe47821", - "source/transport_deps/pydantic/v1/utils.py": "339151c9f3546f50369a4f6568680255d7c71dbdc0b5082b8cee6a7f205fe310", - "source/transport_deps/pydantic/v1/validators.py": "9725249f5316847c65097e597c48058ff0801e88e888f71a41e31d10cf57be25", - "source/transport_deps/pydantic/v1/version.py": "1d79d75bed5b316e6a2a196be5180e10fa21ad90c20d2bb2cbcfa08bc182819a", - "source/transport_deps/pydantic/validate_call_decorator.py": "f23a8b9605d38d6123e1d5c3834c08dc41902a46f42670ac2ff2525236d4e528", - "source/transport_deps/pydantic/validators.py": "a706c825755bd42576980138c3f1067cd8fb0f0cec29a5b0fed4cbe9cbe24eeb", - "source/transport_deps/pydantic/version.py": "4e6124eaa03e540d4f56c737f5b66584f010032bda71de812b3c57007c96d395", - "source/transport_deps/pydantic/warnings.py": "5aed551b3aef159c384fac8220a1e31fb2d263ae878dbb720856e7e6e5a8309e", - "source/transport_deps/pydantic_core-2.41.4.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/pydantic_core-2.41.4.dist-info/METADATA": "3434fb886fe254ed414541f305a86e43ff575093f8f6d15c89bd11144ed8e131", - "source/transport_deps/pydantic_core-2.41.4.dist-info/RECORD": "7f3a82de0054511dbd2f7309c5e5b6ddb3d96c6230bfa83fd73bbdffc51cd0f1", - "source/transport_deps/pydantic_core-2.41.4.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic_core-2.41.4.dist-info/WHEEL": "7f32b0ec3e21425972f904759f2efc26a495ce223c174ce187bb87ac82f5240a", - "source/transport_deps/pydantic_core-2.41.4.dist-info/licenses/LICENSE": "2afdd30d54b4d62b6f488a6bcc1546e84ec5061f13f4209c03d012348783795a", - "source/transport_deps/pydantic_core/__init__.py": "9cad6292b75254af606a970aae9bff6e5ae9f0b08089cd63acafa391b60794d2", - "source/transport_deps/pydantic_core/_pydantic_core.cpython-310-x86_64-linux-gnu.so": "cd9bb47485cdffc363010507a214155966ca860b0b93bda39583492c6764e631", - "source/transport_deps/pydantic_core/_pydantic_core.pyi": "3ea1dbd4182f08cf9341f24b3c5cf7db77a05b3535ffe9e23525127a3617a11f", - "source/transport_deps/pydantic_core/core_schema.py": "bbdc850b72d685133a0e250fed263b33691dcdf3813492f3c0e31001e3d46005", - "source/transport_deps/pydantic_core/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection-0.4.4.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/typing_inspection-0.4.4.dist-info/METADATA": "bad3d9e6342ef6750cf5128ec942327b8bebdce0b6e4d6f67cb15b27ae5118da", - "source/transport_deps/typing_inspection-0.4.4.dist-info/RECORD": "cf5e3948866214f2e9ab0c1d43c157e9f9c14f59cf8442936c6cb97d5f2b6a5d", - "source/transport_deps/typing_inspection-0.4.4.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection-0.4.4.dist-info/WHEEL": "ccec20e2307acd7da453dd7437e70c6b08e2bc3ead3bc3445af135da37b56d59", - "source/transport_deps/typing_inspection-0.4.4.dist-info/licenses/LICENSE": "804b59b25f2c31bd278f9202a19ae49a3945aa2664387e2d0a128c7cacc61ec3", - "source/transport_deps/typing_inspection/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection/introspection.py": "5888c45bd627da692d9527699e3f549adf35651596b1656772310e12181b4396", - "source/transport_deps/typing_inspection/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection/typing_objects.py": "a778d6290d51581c9c9a23e0263af2a4604c76def5c4d40a7cd1a375b0046ff6", - "source/transport_deps/typing_inspection/typing_objects.pyi": "3bd24dd92d0270d31d64fd40abc1ef8693f5322aab9a78aeb3c5b62f992f84be", - "source/vpp2/src/vpp2/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/adaptive_mask/__init__.py": "a73f5515ffb77d323f9c324776e9c166d13817c470506cfd5db4ef0546cbbdda", - "source/vpp2/src/vpp2/adaptive_mask/audit.py": "c949909a2e60c3c4389c0221c79459961f2c4925baa07f7985774a52257a1d17", - "source/vpp2/src/vpp2/adaptive_mask/budget.py": "74e32285903dbf673ecadb6a60d917a990b9c6619beac9f926c1b3cbdae3887c", - "source/vpp2/src/vpp2/adaptive_mask/controller.py": "328f636201a845ebdc211340a9014a5076fa895e10cf9c2e1f91b96761a2514b", - "source/vpp2/src/vpp2/adaptive_mask/data.py": "e3b633fedaa503b101c80610cbed0933e9e245acf56a6c0692c4d99620faf84c", - "source/vpp2/src/vpp2/adaptive_mask/equivalence.py": "8658cb69d549fa0575570364fe3aa1e0b121fcf8b9965b17cd174d459dddf5ab", - "source/vpp2/src/vpp2/adaptive_mask/execution.py": "efec52c9b2eabf0300c72edea18f9cd4cc16a0889496793abb6a50161f2328ef", - "source/vpp2/src/vpp2/adaptive_mask/export.py": "0ce51e74787d28bbe9f4e73a3774297b424aa131fa78968d24154ff56db98b0f", - "source/vpp2/src/vpp2/adaptive_mask/feedback.py": "519fa4e6416723fc000754815a2f05d3415299ae35724f37bb806ebc22393d38", - "source/vpp2/src/vpp2/adaptive_mask/geometry.py": "f1ce4110c3a3a893f4f240c49e2ccc4e93215ac4ba9e447de8042f9b19afab98", - "source/vpp2/src/vpp2/adaptive_mask/hidden.py": "968560bd6dae0fce59bd28084091b10d559cf165c81764f6ad24b7492101810d", - "source/vpp2/src/vpp2/adaptive_mask/losses.py": "4a7dea6f87ef0fa38a7202d85d98d37460f8f4dc13ca5336f32b1da8b84a4322", - "source/vpp2/src/vpp2/adaptive_mask/masking.py": "31b595916410c60f772fff1ab63e92c854c8fd0d2261e6b865fd05ce2c61b9c6", - "source/vpp2/src/vpp2/adaptive_mask/monitor.py": "48b71f499dd5a0a79557eeb918f5fb1a641dc8654e5d412aa628ca9c57b5dcf8", - "source/vpp2/src/vpp2/adaptive_mask/physical.py": "f54e8b4fae8026cc89f296d74bf4cbea06fa4e126905b572a22c7d8226f0238c", - "source/vpp2/src/vpp2/adaptive_mask/preflight.py": "b646e7ca785afc87356e3e1184e48f535792ebafc84936450fc83bfd3f9f5ea8", - "source/vpp2/src/vpp2/adaptive_mask/priority.py": "68ccff1a384081f0c9a82e8f54ad2c720293f8500e7440a469b5e8fac1ee608a", - "source/vpp2/src/vpp2/adaptive_mask/quality.py": "c3b3a2264ca0b4773805f4485ebfe91bb4ab861e226ff4bd27bd667ab372b59b", - "source/vpp2/src/vpp2/adaptive_mask/quality_policy.py": "f100b7d4a412592777d936a6cf3c73a9f787cc4a62d5f1b8a369fed74acf897f", - "source/vpp2/src/vpp2/adaptive_mask/reliability.py": "306b41720154810bd972fe4d9c4c388e6967539d076ddbedd3a432ac62d13104", - "source/vpp2/src/vpp2/adaptive_mask/report.py": "f71401e09297daed8bbb72cb3af3b887e5fdf5ec282f47637fbb01392d280171", - "source/vpp2/src/vpp2/adaptive_mask/runtime.py": "ed74bfedd147389ea01f3be8c2979fa06c7152326ccc29ee347175690cb9c6cc", - "source/vpp2/src/vpp2/adaptive_mask/state.py": "5e8f95021eeb35511f5481e4e91ae687fe605f9e88d17b3b98d377cc967c17e1", - "source/vpp2/src/vpp2/adaptive_mask/train.py": "ad95349bfb242bcecd7ddf82fc58b31d63f2938a2101f9560bbc9e305f5f5b20", - "source/vpp2/src/vpp2/benchmark/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/benchmark/audit.py": "8587be371653c38b9926aa0ace006a244f270e0ef0020147a7bf5b0fc85d4538", - "source/vpp2/src/vpp2/benchmark/packed.py": "5047fd02f3fcc68e41f543fe83bc9202769a05794d898524d6d25e308f2b5125", - "source/vpp2/src/vpp2/benchmark/scheduler_io.py": "d6df06259549faed2da9f2888b540eac8e1ff2895c339eea58b4ea6a7e3b3cb0", - "source/vpp2/src/vpp2/checkpoint_compat.py": "462c5f93812483b5871633b200bc2ffecb9c201a2caf6b14f8f36dbe95fba50a", - "source/vpp2/src/vpp2/cli.py": "54c19a0f7e25b53bbf56ec13b0f537c9d7b81282e1e80575bddfb470172164e3", - "source/vpp2/src/vpp2/compact_kv/__init__.py": "f34f2f77f68399f45f6656b562a5c331f2504672dc145df368e086532191f766", - "source/vpp2/src/vpp2/compact_kv/blocks.py": "662c1f35055c2be2e2a14f2d92615d046f5e454879e34af39e3c7aec3af34098", - "source/vpp2/src/vpp2/compact_kv/checkpointing.py": "3c33c156e96f26ceb22eee61cfb8b18c3cb9560db0ab405cfd4c46efe5aba353", - "source/vpp2/src/vpp2/compact_kv/eval_prepare.py": "bdb33444056245e3cc773b0849b4db608b454cd24a7ac5b752f1ba26ff978865", - "source/vpp2/src/vpp2/compact_kv/export_check.py": "e6cba70b47027882a34d587aba0da5f9371128ec2db2282b91ad2d49e40065b9", - "source/vpp2/src/vpp2/compact_kv/gpu_check.py": "fedb6a9ab69b51080161ff2a4feae3f85262cc50f932f48e8decf04c1d147a20", - "source/vpp2/src/vpp2/compact_kv/losses.py": "914437ebf3ad91fd2cffa893a65ecb04ab01f2b337658a781a472feeb50c0a06", - "source/vpp2/src/vpp2/compact_kv/model.py": "332ebaebf543d40a34d188ebbe81055ec3e4bcff164bfe90d15aa6cef0748b8d", - "source/vpp2/src/vpp2/compact_kv/prepare.py": "7b01764cad0fafc0cc9441952b2e928048b0a43a6105dbd0eb64c349f4b9bf1f", - "source/vpp2/src/vpp2/compact_kv/provenance.py": "103e0f7100be56233aa86041ba9bc427ccb0db4fe045c4e6b8d3481ab6bb42da", - "source/vpp2/src/vpp2/compact_kv/reporting.py": "0b9ff602fc3425d1b9c122a77da3a426814e11c9cbdcb6b9a75a2a48130087a7", - "source/vpp2/src/vpp2/compact_kv/sampling.py": "2e8d82704f07853a7b487d5aaedef1b2f1fcfc5247e9100a56ed21d69262eae2", - "source/vpp2/src/vpp2/compact_kv/spec.py": "9bc920fc7d4398e424a0bde38ce97f87473aa417cf68b48e2c292a59491bc7d7", - "source/vpp2/src/vpp2/compact_kv/train.py": "a9e4410c5cde5df002d9808554538c29b77ed9e2d2bedc9ac5f8465eed70cc3b", - "source/vpp2/src/vpp2/compact_kv/validation.py": "73b62d02ce1d518cba7b9462e85c3c8d272ae9974e1161b1b6adea6f0040e2b5", - "source/vpp2/src/vpp2/convert_robodojo.py": "7ec2d6bfffbb4f5891ee33a4bf630cf27b17628506aa3cee1c46b3050027b290", - "source/vpp2/src/vpp2/critical_windows/__init__.py": "22721b77e25ec4874c4853d2f2991a14dff6aaa665da500f2830826b06545478", - "source/vpp2/src/vpp2/critical_windows/contracts.py": "ded4a239f7599785d74ff57ff892c5aa74f0280d6759460c93942e91f505d47a", - "source/vpp2/src/vpp2/critical_windows/coverage.py": "6c18bf995aacf413bbe4536eaeed92ab4b2f15f9eaaaa03a2730256ea7922ce4", - "source/vpp2/src/vpp2/critical_windows/inference.py": "df301bd187b27d20b6623febcb5e85815e1b7d4a1e9524a8a65bdf5904bf7232", - "source/vpp2/src/vpp2/critical_windows/metrics.py": "ae2bab145555d55696ef479758a5bae6780527fd3085a4f46d035b667ff32736", - "source/vpp2/src/vpp2/critical_windows/packets.py": "8f7d2c411407d95b1ff4d0e5b9055589f6114b1bb1020eeb7e1b106f330b853a", - "source/vpp2/src/vpp2/critical_windows/prepare_staged.py": "694cb5699de2d9f5ce1bc4667627b47d6bf0698715b4aad86907139859caffe5", - "source/vpp2/src/vpp2/critical_windows/reselect.py": "8d0e31ca1c17906d74de6439276e49ff7ea78abfc66fa556d8a306070b3dbf4c", - "source/vpp2/src/vpp2/critical_windows/score.py": "32daceb9a3fd957d9be75823b4d519629bc60a64d1da62f465e172cb1ec98d55", - "source/vpp2/src/vpp2/critical_windows/selection.py": "a7c35f6719d3308bfb738965d17544a15985c6d684bb47eac7272d6155d96786", - "source/vpp2/src/vpp2/critical_windows/staged_review.py": "d5cfb3f49ec5acc6914da98f5413d1549b2695e7c85c9aed9c0db83dee6be754", - "source/vpp2/src/vpp2/data.py": "8574e1ae3c6ca6e4b84633ee1815f2b3f2ea17c1e55f12fda0b00c5c5a6a7b53", - "source/vpp2/src/vpp2/datasets/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/dataset_utils.py": "e1a1471b0aa70917eaf699f85a9acf3ac70d9fb6eb9ebaf02d2bf2f218d6ab2f", - "source/vpp2/src/vpp2/datasets/lerobot/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/base_lerobot_dataset.py": "729fb3fd4ca531212eadb4a4e9c7e9f97ad34cca091d66380acd6b179f0c29c6", - "source/vpp2/src/vpp2/datasets/lerobot/constants.py": "11ac9260341e1560c5eb0dd7acb79ed63c74180b8ab4113c27622ff213db417f", - "source/vpp2/src/vpp2/datasets/lerobot/critical_phase_dataset.py": "bfe75bb9593ec646236777d90d9fa309fa0e1188db07e07a3be0810edbe3da56", - "source/vpp2/src/vpp2/datasets/lerobot/critical_phase_sampling.py": "266b0b7b023f014f4ccd935b6015b0a05b4659f372264fdefd997ea9692b244a", - "source/vpp2/src/vpp2/datasets/lerobot/episode_instruction.py": "74767839a813c7902861f4561101541c282b72e261df1fd28fe8d06c91231b69", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/__init__.py": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/__init__.py": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/compute_stats.py": "7d7daab219332b5abdfd5ec67ccaf3502e8eb583a17a4e482c3f3d4f7a691e89", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/utils.py": "4fdb4ac0653201e6743f2161c485213429948c1e1d5b068d03b4d97803254006", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/video_utils.py": "4f66c410ae6aa5a98acfc3320f3dd7b017d0285117054f14226f9e5d82395087", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/lerobot_dataset.py": "5659e992010bb6674ec50ab0d33b28a8e9dab0ecc895c199662af4c40fe56629", - "source/vpp2/src/vpp2/datasets/lerobot/processors/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/processors/base_processor.py": "d3327cbe398d77761df960014d41e70d349bb0fa42bca874333b9ee970222447", - "source/vpp2/src/vpp2/datasets/lerobot/processors/vpp2_processor.py": "43c5604cbfc315b7377316cb97c9a6f3322124404397abfd01c6c3d0090cd414", - "source/vpp2/src/vpp2/datasets/lerobot/robot_video_dataset.py": "8eabfbd649116b0b4d6c9704c0df34febbf8875f6ab863dd75f4107dbbcdef73", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/action_state_merger.py": "39fd44f254bd7fb71b9269d75d8f9b5a5bbbe167ea438dda92d40eda1d256734", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/image.py": "f494d262ce29770e959bdff60b997f7a07e5f00d10ef515eee7be813d1db038f", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/rotation.py": "feb59d26539be6cfdb86488f0c10c11488ed73901658bc657e67a755ddb9e67e", - "source/vpp2/src/vpp2/datasets/lerobot/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/utils/normalizer.py": "8207d813b698a91dfdbe6910a4aa1fe0e775a2a8edf5c05b2d7a42591e9f8adb", - "source/vpp2/src/vpp2/datasets/lerobot/utils/rotation.py": "8ea2c72565707f5979967a1abeb5edf1eaa2c3fec55a7b50e640de869fc9fbcf", - "source/vpp2/src/vpp2/datasets/lerobot/video_event_dataset.py": "c20d3f5e2bc05e1b7ed94ae38872883a976a179e09b7fa051e94f94e2836c02d", - "source/vpp2/src/vpp2/enhance_prompt.py": "f31b3190c24bad073c5e3121ded4f564232729566e8c1fcc3e76fe75b28faf45", - "source/vpp2/src/vpp2/evaluation.py": "9b76882149e3c3a8c417a0e23514af1bb305c01bf0b6d21fff1f70bc9843f55a", - "source/vpp2/src/vpp2/flexible_mask/__init__.py": "64bed1808976d1f3c708154c36a97288a75abc6463d49d7f0065cb8360a2fb16", - "source/vpp2/src/vpp2/flexible_mask/calibration_batch.py": "dc5d83fc9e2bb595b9e3aeb1923115ebb9345283290a7c3f95c79fdeef7d3e76", - "source/vpp2/src/vpp2/flexible_mask/checkpoint.py": "c8531727e2388ec3d7a9770a504ceda119afcf03d64b2462befcd45a48949f9d", - "source/vpp2/src/vpp2/flexible_mask/coefficient.py": "07a3cc8d8e6c8b60119b9f94ae85074da017b08158fa0a0912cc9051b6df8ef7", - "source/vpp2/src/vpp2/flexible_mask/config.py": "4e1e9b289e293145b4e895c8ef7347bc837d01c929e05fd5cbf65bdb3c20be5b", - "source/vpp2/src/vpp2/flexible_mask/continuation.py": "2016463b4efe01b5d0a9ee84f03c3d95ee16f8e24f230faa465598cc978da29b", - "source/vpp2/src/vpp2/flexible_mask/controller.py": "263f1c9091e0c4318aeefb61e91549ba905ff046a625e35e1b18c94da4b4668d", - "source/vpp2/src/vpp2/flexible_mask/data.py": "d245bafd6f04f33ae7cef7c01d5db876a1a2a1a138c4de8a139d3ea78095521c", - "source/vpp2/src/vpp2/flexible_mask/diagnose.py": "faa29a0fa57c66af3b2e817640fdedfddc998bf878357f484415b244555ae4a5", - "source/vpp2/src/vpp2/flexible_mask/export.py": "3064dfd82bb55a145c16c77bbe17244970d07d18e944b793f4b7368dbcede764", - "source/vpp2/src/vpp2/flexible_mask/gradient_probe.py": "6fe3f13540cb9d8dd20c0b6429268ca74625dfad1e41806412c0f980fac76509", - "source/vpp2/src/vpp2/flexible_mask/losses.py": "df264b71365885ea90329c0b0facc92db3d2eb6e04324ea90a4701a1cd457abf", - "source/vpp2/src/vpp2/flexible_mask/metrics.py": "e976dd066e4b5e7e7ae79db77b9d1be64d17c212c61d0bc113b87a048e8f2b6f", - "source/vpp2/src/vpp2/flexible_mask/performance.py": "95b3977fd739cc98f7de94b14fb490a7c132021e742e7179dc5b5dddd6557c68", - "source/vpp2/src/vpp2/flexible_mask/preflight.py": "f794b997a492911c4d77656310c89d3b85e54983b3b889ba9904be64fb961e43", - "source/vpp2/src/vpp2/flexible_mask/prepare.py": "d6cf82e27555ecc13973727f4b71ce7e40558fef7d95805665fc7e458a42fad4", - "source/vpp2/src/vpp2/flexible_mask/pressure.py": "6cf74edcf3625fce9eec689d70841c6c1481f7c1abd87e5bf70bb38eb34632a2", - "source/vpp2/src/vpp2/flexible_mask/recover.py": "418b2d5ecdd08b08686b2a07bbeb0f969471eb73c04ac6952dcfbcda3b123f30", - "source/vpp2/src/vpp2/flexible_mask/recovery_best.py": "917d924c5708584a0192050a6d8210809e905938aaf877dd81cff3be287ea289", - "source/vpp2/src/vpp2/flexible_mask/recovery_checkpointing.py": "6f6a61c2ee7076c6b0977d1acb489fee7df04322d7f6b13bee9bb8229be319df", - "source/vpp2/src/vpp2/flexible_mask/recovery_export.py": "c50433aa1b7e528fb23c514dddb5b9197f44c662829838ecda106980ab0dd54d", - "source/vpp2/src/vpp2/flexible_mask/recovery_handoff.py": "aa590f707738e4b7c7250f901e29795c7441430f961bfa764437cf34bdc514b1", - "source/vpp2/src/vpp2/flexible_mask/recovery_kv_decay.py": "bf83761798deea4f89c32d14f43bbfb0f16f751b3230962456c073b843dcd08a", - "source/vpp2/src/vpp2/flexible_mask/recovery_subset.py": "7f7154cab6d910b747a0189742ee625983d08f13de50ca60bd4154f61df2b0d3", - "source/vpp2/src/vpp2/flexible_mask/report.py": "5b49283d472bace3a6ad56ce568af04f2c3d04add1a3920ad5006fe98374bce6", - "source/vpp2/src/vpp2/flexible_mask/rng.py": "01680b5b7e8a29ce92e96d756e12ceb80bb0e0ce1ebb642a14fa2a3a34776daf", - "source/vpp2/src/vpp2/flexible_mask/runtime.py": "373a3ecbc2ab6592a359daf6adfd8c958cb657f393e698ca2cb834f06750be4e", - "source/vpp2/src/vpp2/flexible_mask/select.py": "b547857bad61ae7ebd25b888fba73c2ca8f50a8eb31551ca54a909c75c8984be", - "source/vpp2/src/vpp2/flexible_mask/selection.py": "b9453c8735051b54ae7dc8610d2ca332eae8ca1a3e099aaadaf5ab75bfb0f8b0", - "source/vpp2/src/vpp2/flexible_mask/speed_review.py": "9d7099d1e173026274eb439169df2ad4812ec1d56a5f0b21242f972cd835ffd2", - "source/vpp2/src/vpp2/flexible_mask/throughput.py": "ce21bdfda51ae10d1470ac537d910d9f46f60a38910888808ffb3f5a80174d58", - "source/vpp2/src/vpp2/flexible_mask/train.py": "86625613bbc692722c6d2d24278a586f88ce0d76263a9daf92562a9002a8e037", - "source/vpp2/src/vpp2/flexible_mask/verify_export.py": "fb68e62b0da98e6f96cfa694bd061162bbeec1763e5787e057a1cbac5b2ce8f6", - "source/vpp2/src/vpp2/full_mask/__init__.py": "27c9ede277380e8d64586371f2a03334e68ab2d3bfe516d95e8cb96099827929", - "source/vpp2/src/vpp2/full_mask/calibration.py": "5d97e0385eba82252e12cc1562d1a77da2f2bce29332d758c1b5b6b84c5bb47a", - "source/vpp2/src/vpp2/full_mask/conditioning_cache.py": "07adf95165db4c3c1c469695d6b7b6fe4cf4fa9aff0a3d360f4229bffe9be17e", - "source/vpp2/src/vpp2/full_mask/controller.py": "0e6a969b89a4275352cc5a1e00bdfe8e3f8754a6ebd7f9266b92179cbe6bdd10", - "source/vpp2/src/vpp2/full_mask/cpu_contracts.py": "1a46a53a68d2d8a202c5f98d9a78f6d5f5041dada0c2239ed81e7916a28f0758", - "source/vpp2/src/vpp2/full_mask/curation.py": "4ffd7b0212bdbca1daf73ba7c24423523437012150fc044a43bbb33cce747545", - "source/vpp2/src/vpp2/full_mask/curation_v3.py": "9dba386d66869de0fba321ade79b2692d47f111ccfebc7f367194cef7a4b4e8c", - "source/vpp2/src/vpp2/full_mask/curation_v3_checks.py": "688ea4e7e44c4ecc1a3cd81cf682e2cbf611d9ad2d52744ba1308324da70febc", - "source/vpp2/src/vpp2/full_mask/curation_v3_features.py": "11011a089f1586045e2972cf267773aaf4602cf08c8b0e755bbf017ede1e6e43", - "source/vpp2/src/vpp2/full_mask/curation_v3_finalize.py": "a2a7812eb6c670686a7a4f4adff0a2c6363dbc078c71d948537f1c5fd546254f", - "source/vpp2/src/vpp2/full_mask/curation_v3_probe.py": "2755e9cabd0fe02e70cb8330c083af881a5e4696697d58cf7aa01bd00ef57f6d", - "source/vpp2/src/vpp2/full_mask/curation_v3_quality.py": "b9170398762112a23bb133dde53c6a49193c671c767647239c8b0ff15159530c", - "source/vpp2/src/vpp2/full_mask/data.py": "668a7c5f88a3ab17854eb0df240c974082f4aa64604cf11d3143b18337f73181", - "source/vpp2/src/vpp2/full_mask/distributed_smoke.py": "f699d4f330309f29a537fbabb61c60f61eb3322d7304605351dba3d2acb48e8e", - "source/vpp2/src/vpp2/full_mask/gpu_prepare.py": "92ce96dc4c1b6d6ebc22d99935472c15d86ba2a7c050e31640d2c32e08748ec5", - "source/vpp2/src/vpp2/full_mask/monitor.py": "2724a934d1f96444227c854f75ef84df6025c02485aa68eca34f3b28d509fe19", - "source/vpp2/src/vpp2/full_mask/native_monitor.py": "5572712a340f17692a669d2a4c41d1d691164925eb7bd06a56fff1dc2afd69fa", - "source/vpp2/src/vpp2/full_mask/panel.py": "2844b663340cbfb54f7622f3447a7831e2809050739a52dc076fd6ae32ed9e46", - "source/vpp2/src/vpp2/full_mask/review_decisions.py": "ed1184bcda7b5bb3fb11bb4262c4461c408e3d3ac0d23e80d2f8cafcf39c7e18", - "source/vpp2/src/vpp2/full_mask/review_report.py": "752ba9e8a3caf5b8cefa2d18e6fe14860e6f998f57c03af0940af0943b09a9b1", - "source/vpp2/src/vpp2/full_mask/runtime.py": "ae30b4d3fd3c888bef17672376dc3b34491cb296a1883959674ad465579efe7b", - "source/vpp2/src/vpp2/full_mask/search_quality.py": "ee3238d3366799e97d3f9a90c11f579ff8f51d5bd0642f52c37d9dcdbcf02e6e", - "source/vpp2/src/vpp2/full_mask/train.py": "f4127e6580522d4d9e5a50db10d201526e948d4d3479ddfbbc12e60ec61c7501", - "source/vpp2/src/vpp2/full_mask/verify_data.py": "72ee60ba2016d5f73eb2ccb01b666a5dac37138620efc4a79a20607df3658fb3", - "source/vpp2/src/vpp2/inference.py": "42b3057a85aaacbb87440bc740f13b09b9c82cd51d8c5af4e080716aabdcf38e", - "source/vpp2/src/vpp2/learned_width_kv/__init__.py": "0c59cb8424b6cd64508a005625e9edf63c84d24618a5d2caf6e6fa5d63cc859e", - "source/vpp2/src/vpp2/learned_width_kv/calibrate.py": "b89bbf103b49fd85f85f8c300a7868bb42ae7a13f29bd9878dbd5a11061ae51d", - "source/vpp2/src/vpp2/learned_width_kv/checkpointing.py": "7d30e46b95d91df8aff088346ae75809958622b3a8e8d953db4f30adfbaebadd", - "source/vpp2/src/vpp2/learned_width_kv/common.py": "52dff98c6317b34df2a13313a641998acf4f9e18ac31ea4e8e25227afa14620d", - "source/vpp2/src/vpp2/learned_width_kv/controller.py": "7b5a8793a540e1e7464185229189f4f1f1acadcd7cf3c2bf477bda5de7d18787", - "source/vpp2/src/vpp2/learned_width_kv/data_scope.py": "0ddde6805f646afbf5f5966c53530f829becd083802f0e0a8697dc1004e2003e", - "source/vpp2/src/vpp2/learned_width_kv/distributed_check.py": "f89f153a20730a6bc3c70133479f34918d30c5a48775bb3f6c14bb25701801ce", - "source/vpp2/src/vpp2/learned_width_kv/gradient_probe.py": "3bed964f6488e95b386cc58058e7f28aff50c9a98dd526f3365891a9049a6fab", - "source/vpp2/src/vpp2/learned_width_kv/lifecycle.py": "798afa47ec5dcc8749982da2d7853eff184e450a32d51bcf70eb4578f2bb0b09", - "source/vpp2/src/vpp2/learned_width_kv/masking.py": "3272ea09271130dcb3cab6935f6bb7d61bda66b9982c3baabcd61ee0efd914a0", - "source/vpp2/src/vpp2/learned_width_kv/performance.py": "a2fd9597c51bf0cf5c435b48e8f57792df24d2723a6d7b6b841d6fa24f17ab2f", - "source/vpp2/src/vpp2/learned_width_kv/reliability.py": "f74399fb67427093b3e4c7df9749379f9291b7ac58bd6632db226b6e78fdbfd0", - "source/vpp2/src/vpp2/learned_width_kv/reporting.py": "f22c1d8806a5b7757bb6dd99b15153d0305b2eeb0790bb37763337690d642036", - "source/vpp2/src/vpp2/learned_width_kv/runtime.py": "513da1e06ba9509164f017e0b8dbf6b219d7e1cff82edb2d2fd8d2d7839e666f", - "source/vpp2/src/vpp2/learned_width_kv/train.py": "5813ebd4fefec6d3a8cead9e0c645d10734f5ec88c4d74a5742587f2eb4de6c3", - "source/vpp2/src/vpp2/learned_width_kv/validation.py": "d5594ce875c8011bff12d3c77083dca68878178ed022b8079761267d04a82386", - "source/vpp2/src/vpp2/learned_width_kv/verification.py": "1bc43d48ef0ec3056af614adf43ca0744d94b1e77fe970168fef87c7cf2e6fe8", - "source/vpp2/src/vpp2/libero/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/libero/action_model.py": "178fbe4cf02b9a2e133ef31389b6bb2f9baf0504bd0818a265b6bff32ebc3914", - "source/vpp2/src/vpp2/libero/cli.py": "fcf68a88e2db0a9b786c6199d9b719802fe4b84514741658b49e2b06e2473e45", - "source/vpp2/src/vpp2/libero/data.py": "19b699381e7d6fa769b5090c7125ae01b7584576e969468660ee65b1585ef5f1", - "source/vpp2/src/vpp2/libero/diagnostics.py": "9540e31dfd2def06bec942ffe73262278700a17a340e14cb5bd41a295706e147", - "source/vpp2/src/vpp2/libero/eval_helpers.py": "ac338d4ade195ceb3a87620d162befa9679e2d7ed3d91b09927e5d59d86d97f4", - "source/vpp2/src/vpp2/libero/eval_libero_single.py": "87e6b457dc412ef4fe5d01aa48b1a6d20a28dbce3152848042e2103769e4efef", - "source/vpp2/src/vpp2/libero/eval_libero_task_manifest.py": "f0c721a7ddc768edddc8b0e065a4d8aeec35e1a546c88deebd9097ad93f6227b", - "source/vpp2/src/vpp2/libero/evaluate.py": "24216f9814f8304e077d72ff8d8c778fd588239313b34cd7d23b960c8f924c67", - "source/vpp2/src/vpp2/libero/libero_utils.py": "c7cc23976c86eabcada4846d46345d3605fc2ce03929761646486be3901697d4", - "source/vpp2/src/vpp2/libero/prepare_pro.py": "0999050352d924c11d29b22f63e902162d8cfb23f94815c93c01295c11ed81ae", - "source/vpp2/src/vpp2/libero/pro_alias.py": "90b5c8c8061bc727a6e413a8746fcc98cbd06e1c7c4175fd223b45af4f10b700", - "source/vpp2/src/vpp2/libero/pro_runtime.py": "adf94ed64b032aaeb0d88391e7b653f88f67e76b9411419ece25faa31ccc1340", - "source/vpp2/src/vpp2/libero/protocols.py": "68225c95eeeee25032966a7f90c1ba18067c53225397f59a463d764030fd0d93", - "source/vpp2/src/vpp2/libero/runtime.py": "1e2e2900a604d33cbdf8774cfa33dcee1065f21dc0b59fcf30799b5098c1662a", - "source/vpp2/src/vpp2/libero/trainer.py": "ea29b4e000047a6b0c8aee3cb6f32df9187987a657924085dbafd9628315107b", - "source/vpp2/src/vpp2/libero/worker.py": "9df6350c4ab92dea70863c08f1bdcebd0d77574a3a2d8d7ac9899a5a825be6b0", - "source/vpp2/src/vpp2/models/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/action_dit.py": "9a654edd860ce77c1308923bd338c7f14d09f68686642531d7143c16b9f6f331", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/compact_channels.py": "6f7ad787624844970985117002ab809bd777f7474969daca121e7101381c6d0c", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/gradient.py": "594249b6eb931048e352fd3ffef9b1ac1db9e4fc74659e04216d6b823dd174f3", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/io.py": "1b68cf2f2fd674c7a59140f8632d4464044bffc2e9277ef5f9a975e7c699966a", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/loader.py": "b9180b9c9177af192e5cb92387b4a09bd0dbc08fb75a94e843b67d315c94e339", - "source/vpp2/src/vpp2/models/wan21_14b/mot.py": "cc14a909bfb181a441bc9d8d6de12f3c31d89f3dc3415031e34a5f8c21410019", - "source/vpp2/src/vpp2/models/wan21_14b/schedulers/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/schedulers/scheduler_continuous.py": "15de04574c1d8ccb794ca6560b1e501e5c83cc86104bb80f1eb3cc3b0324ffe0", - "source/vpp2/src/vpp2/models/wan21_14b/vpp2.py": "8c419af905a8ffa93d77c827a283b7aeff744f3a461c390783eef8a333c31756", - "source/vpp2/src/vpp2/models/wan21_14b/wan21.py": "01b45cc71f69a6914f7b286559317c8e8485d0b0fec93bb28ebc37c183c295f4", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_clip.py": "f65e44c9d1b7811d2996b3fa22e6fe4c2ac5e6edf1fc2c14251cf582bf8d1f05", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_dit.py": "0d1b5837ea923508c05394d56aaa465813e7b4f5aea3b31ceceae39b2de9b0f9", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_text_encoder.py": "902a1e46b21b5c48e166fe03defabb94b3773c6bbe836fc09b9a0d0894eb1f6e", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_vae.py": "33f7d804677b44a6f3ab334684017dcdb1e9dfb748279de76ad94a5bb71a7e51", - "source/vpp2/src/vpp2/policy.py": "2a7696cd73ccb99575bf901185cf578c3775945f61f6e67aeb2b4ec6bfc4e30b", - "source/vpp2/src/vpp2/preflight.py": "7a91e486675a4cdf38565e0f4b58e60a68bba7de5654cfff736b5df58f5c53a6", - "source/vpp2/src/vpp2/robodojo.py": "183db869a622ef17ee92c487949db2e22a7d1365558fe703bfb8dd8fef83e9c6", - "source/vpp2/src/vpp2/runtime.py": "e26885a3732f5fdac3d8381da870a1673d0c03354f02f9deee7fe779d645f8a7", - "source/vpp2/src/vpp2/trainer.py": "feaa0ac4ed94a376836eb60cfe6f52460392b11f7cafafec9c6d9f151f5b61f1", - "source/vpp2/src/vpp2/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/utils/conditioning.py": "43d43f0f3ca0add64498c3d64a3791513a53e3fce0ea53f77ef09580a86b7b2d", - "source/vpp2/src/vpp2/utils/fs.py": "69e6df236b43360428a613686c8f37c531c0d16a3a2c5b06a725c46b49d657c5", - "source/vpp2/src/vpp2/utils/logging_config.py": "1de4abf66d9d201b49e7bff48291643b9dc5ec9b6e7918ca73e1bd18887b1c43", - "source/vpp2/src/vpp2/utils/lr_continuation.py": "72ea9f2af52041db19aab681d7a99fdf6d87d5ed5486f2499383a211c6c1ab76", - "source/vpp2/src/vpp2/utils/misc.py": "7e42c330c24604e118f1878473dc804aa8a272944df502ef1414c05be4d5bba2", - "source/vpp2/src/vpp2/utils/pytorch_utils.py": "9b0ba19de9a64458b12a0fb24f0811f49d9e9fca5d8b815f5f5ecd3b7886fd63", - "source/vpp2/src/vpp2/utils/samplers.py": "4d3bd9b2d498f4ad8f2cf9765d60c4bf5368fa6fa2a7d42d0db6210f66899652", - "source/vpp2/src/vpp2/utils/training_profiler.py": "91f6d98577e63d85e474c738a9bc1901edc194bdf318b5387d527c31b6708832", - "source/vpp2/src/vpp2/utils/video_caption.py": "d9572deb3690aecb0f16c052016cedc5f94da8ce8f016b4dff1a4e358e18d5e5", - "source/vpp2/src/vpp2/utils/video_io.py": "9e9898b021a44e87aa1b4e6d13e3755a9869a2e27a7eb53c72a6802808d5bd80", - "source/vpp2/src/vpp2/utils/video_metrics.py": "1840a37685d686336c7326a2a3d4fbe048d1e8e7e431fb14519d360a8b7aaae8", - "source/vpp2/src/vpp2/video_training.py": "20f55bf8b0a7dba6422a1115be1c8adf31a0db6a9f53a8f6f53f5d970188bfb2", - "source/vpp2/src/vpp2/weight_resize.py": "269edd4b9d32a1c7f363ee082dde7ce57f2176190daab6d5bf4a1c98ab43f0b4", - "source/vpp2/src/vpp2/weights.py": "5dbdff347de1b57e30433efca6da28334d0263d27aaa9b2278d95614db1b8641", - "source/vpp2/src/vpp2/width_kv/__init__.py": "0183a7106da7e45223550a552db2905d6b59c2a4259f8c86cb98629b03e66b43", - "source/vpp2/src/vpp2/width_kv/calibrate.py": "93a06910cb23a9e1dbd961ee9ef9794d70aaaa6186b08483260c8215109598f5", - "source/vpp2/src/vpp2/width_kv/common.py": "45f5f7087f5f3dc067358838e3fc738698b796defecb2ea721545d275f767766", - "source/vpp2/src/vpp2/width_kv/diagnostics.py": "cf184ae58f5e1c5f4453774eee1e10c85931e618bbbf768ab42f649cf301f5f1", - "source/vpp2/src/vpp2/width_kv/reproducibility.py": "89c5377e1314dd6e8de7f67c4385d30f5bd91fa4a5742449f1c1ff8dd578f451", - "source/vpp2/src/vpp2/width_kv/scoring.py": "7644358d0b2d29d3b91515fcea56090dbd2a7a0dad2d5e5c88e8d585bff15533", - "source/vpp2/src/vpp2/width_kv/slicing.py": "856203c14e0b06d19585a96392d00a00703779ebdb9dbdc9ab1323d50daf8ba4" - }, - "suite": "long_horizon", - "update": 1000, - "validation_gt_action_mse": 0.0005726480308242441, - "video_parameters": 12468409664 -} diff --git a/evaluation/memory-protocol.json b/evaluation/memory-protocol.json deleted file mode 100644 index 0d250765619a8a895fdabcbb0c916ff33a1d9c7d..0000000000000000000000000000000000000000 --- a/evaluation/memory-protocol.json +++ /dev/null @@ -1,707 +0,0 @@ -{ - "active_policies": [ - "vpp2" - ], - "caveat": "Same checkpoint55 policy/simulator code, benchmark layouts, seeds, r16 and new90/old10. Simulator physics are not claimed bitwise deterministic. Offline ranking used replan24 without ensemble.", - "checkpoint_files": { - "COMPLETE.json": { - "mtime_ns": 1793716093276368990, - "sha256": "eee062fbcb8c92a881117aa7f06b5cd039dfb9912d85571b59a20aa30837b0e1", - "size": 2491 - }, - "action.pt": { - "mtime_ns": 1793716074808787383, - "sha256": "9b04836abe5a30972e69ee84e5f5e39c09bf53dd45865551e1d04b42ead90ec3", - "size": 4057916577 - }, - "compact_architecture.json": { - "mtime_ns": 1793716074811787315, - "sha256": "a7f6696ab9a9beca785531c2402b81ccd1550745cb6e9ccaad67f658630f6b32", - "size": 6563270 - }, - "dataset_stats.json": { - "mtime_ns": 1793716074808787383, - "sha256": "2649d4e3ff3d6d400c9953b7c20c79541474f9c38a8a9916b9caacecd8578f16", - "size": 100256 - }, - "validation.json": { - "mtime_ns": 1793716074812787292, - "sha256": "9806ad2b0b58f879351da58eede46507a79433ec9e4eb8f37f415cf58f2ef70e", - "size": 88781 - }, - "video.pt": { - "mtime_ns": 1793716059522133613, - "sha256": "fb62db0b3a74a53aeab60f4b1acc8a5be47274f5c9db166684043521fe2a40bb", - "size": 24937214042 - } - }, - "checkpoint_receipt_sha256": "eee062fbcb8c92a881117aa7f06b5cd039dfb9912d85571b59a20aa30837b0e1", - "execution_order": "one report task at a time; eight shared GPU workers", - "fresh_policy_per_episode": true, - "fresh_simulator_per_episode": true, - "gpu_sharing": { - "minimum_free_gpu_mib": 61440, - "mode": "shared-shard", - "one_worker_per_assigned_gpu": true - }, - "id": "35ef508554aee3ce8b89ddc3826fb6eda60bd022db79d6d91a60f6f37e7014f8", - "inherited_results": false, - "input_hashes": { - "inputs/episodes.json": "b961cfc82459c2a394922903cc6d275aaf647d8cb4561ebafc7dc259bc73928b", - "inputs/master-episodes.json": "b961cfc82459c2a394922903cc6d275aaf647d8cb4561ebafc7dc259bc73928b", - "inputs/support-assets.json": "57c577018fddc4e95cfb79b45d526b77a87da916cb6a4117aec5aada2d4dae58", - "inputs/vpp2-policy.json": "9d7a376622b8eae0a9b1d45f8cdf3f606ab6ba59490fa4c63f56353a7f8e8ef8" - }, - "native_inference": { - "horizon": 32, - "replan": 16, - "seed": 1, - "shift": 1, - "steps": 10, - "temporal_ensemble": { - "enabled": true, - "new_weight": 0.9, - "old_weight": 0.1 - } - }, - "native_scoring": true, - "order": [ - "vpp2" - ], - "parent_evaluation": "/home/praveen/experiments/vpp2-recovery1000-950-precision-20261103/update_001000", - "parent_protocol": "266df4b5d9b8eac16145600a8c4f9223d15e03285d61473c3bbd8c43b694f211", - "primary_episodes": 300, - "repetitions": 1, - "schema": "checkpoint1000-followup-v1", - "scope": true, - "selection_manifest": "/data/praveen/vpp2-recovery1000-followup-20261104/inputs/memory.json", - "selection_metric": "task_macro_ground_truth_native_action_mse", - "source_changes": [ - "native_eval/scope.py" - ], - "source_hashes": { - "control/simulator_recovery.py": "fcee066ec9e75ec081b0a955b136e2ab898cd1ee529a2c1e74a453c350c05367", - "native_eval/__init__.py": "2deca42c85edcf3d80dba72439ad95641937396e27e1149d77182cfc082267cd", - "native_eval/body_coverage.py": "50ce610f86584965281893ff2f98a78643c7e3207014212aad4c13fce4c8a782", - "native_eval/camera_group_cleanup.py": "8df69fdba913ec41ff7b1256ab1b43921a0b6fbef7ffbb6dacbf2adaba0f7843", - "native_eval/camera_lifecycle.py": "b0952d95d1da8a1bd3e9f544a2eb1eb0f516159b3442666c7acd9bbaee71687a", - "native_eval/check.py": "9587d7b200969ccb78ddf750dd3d8616d5e2245e29baa3a0d798e27a55bdaa5e", - "native_eval/compact_worker.py": "129a2e26a85e021f7a0282201dec976104a8e1ea1f0a67e6b75ce760257ee46e", - "native_eval/completion_integrity.py": "3b737f6dcf9ae9908b1a3602f66fda46c3b8399ee47b1c61f5c0fb9741031029", - "native_eval/criteria.py": "97ebc94d91c62d793e614f178d2d120df989faafb54881dd1d3f5d703df8bb76", - "native_eval/diagnostics.py": "53b0deb571984fd02ff65c400d5f3b9bc2754b8207ea8edf4e5017c3588ed3cd", - "native_eval/ensemble_check.py": "0bef52411b2ec2dd7e1ad21b8690b1f88ed229107b6e46b8dc43c34ca92a3572", - "native_eval/evidence.py": "cf7f769cfd838227b26101d7656ebcaede1b1d45a80785a32efb26c9befef0e9", - "native_eval/frame_epoch.py": "7b1d3b10f46d5acf82f6e983ecd5f8995310b2fef9fee04bfae168fda02e3efc", - "native_eval/hardware.py": "e30ed3359d91595d3053e24124445498a3f1be9d5c0d52f97e1e7d7d88268a5f", - "native_eval/hydra_frame.py": "c1aefee86396025b405e050597af7b67bb07c0dd1e65ea4a9be1ed78f8d99072", - "native_eval/particle_evidence.py": "378d667b2ab80176045e0bdcdbe3cb39adb612a356b8f6b81d13ae531bde711f", - "native_eval/policy.py": "e1cebbfb03c137bd4bf9f054c69be74f9a7f1df5f7ca13c250e606c2346b55b0", - "native_eval/prepare.py": "486df6d062098ea07ac63c4d3be51b5f27baf524d0d004411275243783d02ac3", - "native_eval/process_lifetime.py": "7dd20bee91c51546b6da067b96012dc5d5a013e8389dafd567b72c1f742cf97d", - "native_eval/provenance.py": "8fc2da1678832be9e9b8b778ff0dd1604db5d464cf1a19ff6137acf6b83d3e11", - "native_eval/receipts.py": "9ba5800e6e7e796937992117569efe1b3d625900a8e2ebf7955940a4e8cc81e0", - "native_eval/replay_receipts.py": "1c60f9bddccf7245e32df97b9e90749bc3ddbe5d65f37ed2d40ba339b458017e", - "native_eval/replay_server.py": "1c2c19bae8d1cd3ff564f1775540718c33293663d30161ea7bd293b8f322cab3", - "native_eval/report.py": "9d9f0ddc794d2af2ad6e349f991450592a6fe98db292e1ac3ae4fcadea961fc4", - "native_eval/repro.py": "f0e4ecd0ba009774105cebeba31f49a70f34c4f88f11855c939368027789a928", - "native_eval/reset_coverage.py": "3c6a414878c4cc2ef4114170356db0a6b2193b03ce5c3b4f6293c10c7d3138b0", - "native_eval/run.py": "23d2d58fe1160a03bdcf9591b5d5fae671d21832008cc4958ac58e060b88caa1", - "native_eval/run_one.py": "dddeea1abb269293bd08c3f5a69ea0a668620b18d07154ca1c0740a0bb213b99", - "native_eval/scope.py": "f27b394ac956aaa512f815e13c94a044e434eedc10a493812b4cb99591038b40", - "native_eval/simulator.py": "d40972be52b7544f62653114217e213d19d4b386bf2991abfbbbc618ab09cf83", - "native_eval/status.py": "b49d03681dbc28b80f39f4d6163c3a6e7c5a1ca62f1f0ef502c77dfbf149ca02", - "native_eval/topology.py": "062e9246890ad1f2e8bb8b64b3bbe6598f9dce6fcc33ec3eaa106f3cbc0f0ae5", - "native_eval/transport.py": "eb6cc295d064a142372dd51859e91233f61f1ad2c8ac8bf3880739f3fe4abec4", - "native_eval/vpp2_pilot.py": "571ca3eeba11fbf2afd4a4058629a280bc0ad4bd3eecca178ddde4aa543bd8de", - "source/simulator/LICENSE": "7794bb06af8fe5485ca912454ad1665ccd7846c45f9c2b1258658e480948cdbe", - "source/simulator/XPolicyLab/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", - "source/simulator/XPolicyLab/XPolicyLab.py": "a3909558697b73479f8baee03e15b4d74060a7c9ac2f31fcbc6cd659e7364862", - "source/simulator/XPolicyLab/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/client_server/__init__.py": "093e47e707f4a5598b0159b5ee371cd9a918b802c70a6e66154a18e9ef8fc5db", - "source/simulator/XPolicyLab/client_server/ws/__init__.py": "79905987a12ebf318dc0b2b9ec6f375d9b4561bac29d6c27d04e318d8f6e00b3", - "source/simulator/XPolicyLab/client_server/ws/__main__.py": "ee1c5807dcdf1c8f6721c5447463eb51babdb0f9ffbd91d1e7343834ca4aa19a", - "source/simulator/XPolicyLab/client_server/ws/model_client.py": "4d6e225ae5f577d862366350dca8742e91dd9527d6e76b8b2a6d48c991212d67", - "source/simulator/XPolicyLab/client_server/ws/model_server.py": "4988823b436cd05e6a4d8b13012cc30c7ffd57711b72497b1223a6b10dc0c043", - "source/simulator/XPolicyLab/client_server/ws/protocol/__init__.py": "19aeae375e94e58d437d789d0aff07b232c13f375235384d784984631d25d5d9", - "source/simulator/XPolicyLab/client_server/ws/protocol/client.py": "b309f58b1bddd99e56578026b61a15e6cfdc07e843e8a082bfd291d0e853ce5a", - "source/simulator/XPolicyLab/client_server/ws/protocol/codec.py": "8a97ef7e102fd954c266352d81eaceef0f1b0f5504571c03037683efe387865a", - "source/simulator/XPolicyLab/client_server/ws/protocol/exceptions.py": "73161f4cdcc7ffc8a87cec94f5459bfcb9113076be272d6cb2a3ff8d69e0c6ce", - "source/simulator/XPolicyLab/client_server/ws/protocol/keepalive.py": "7f6b9e636eefcd6c80a4b62e404a6f89e2f7e1a3b6008500312a972d6990a21d", - "source/simulator/XPolicyLab/client_server/ws/protocol/messages.py": "d05c8cbc20e0cbe1502551864907f25897035993f920748c9290c944c959eab7", - "source/simulator/XPolicyLab/client_server/ws/protocol/schemas.py": "f1ca82eafa8dcad6d968508adb51c25342b291f7b1c553fff305c381a6098bd0", - "source/simulator/XPolicyLab/model_template.py": "4f8d1eeb8073aa7ae6093abf0f395cd5fef70ff4a4bd1fa6b2d83b356a90754a", - "source/simulator/XPolicyLab/policy/VPP2/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/policy/VPP2/deploy.py": "ab94a8569e6168ab7cde6660890035e11b34961ff2648854a7b61d188c555b6e", - "source/simulator/XPolicyLab/policy/VPP2/deploy.yml": "d2c3f06eb2ffa2d1866767dc20db8d60e542fc2418dbc4cf86d4a0f86f944c5e", - "source/simulator/XPolicyLab/policy/VPP2/model.py": "699acc0c459c5997db4e3155e2b1b7eb64bf750552436074a369c4eb6e9ffef9", - "source/simulator/XPolicyLab/policy/VPP2/temporal_ensemble.py": "42be4b09c56377f4686b2e722de760fa3bafd1c6b92605ada269d94e19efc95e", - "source/simulator/XPolicyLab/policy/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/policy/internw0/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/policy/internw0/deploy.py": "42dc75140935046dfe83f19b3834bd7cf8372e1bdbe51f598b1f91b8d557b7fb", - "source/simulator/XPolicyLab/policy/internw0/deploy.yml": "e59de6edeee891d2aa24902ae9034e9c10889fb20116bc9263f30d773a4b0d10", - "source/simulator/XPolicyLab/utils/get_free_port.sh": "f45bcb327b45c91367e3e5cdff72d3a42bfb7a09f50e4774701637c4c23fc1a4", - "source/simulator/XPolicyLab/utils/load_file.py": "488590d76084f419a36c2fb3e658eeb240ae554678899e9f2ce0cc10da5c4b57", - "source/simulator/XPolicyLab/utils/process_data.py": "e044e627eb2677907e9227eda8458c857208913bd484c5e922b53025010eef0b", - "source/simulator/XPolicyLab/utils/robot/_robot_info.json": "8a5df36e750971003b484ad770a7a243e523e986d2977a4ecdbeecd4a07946bf", - "source/simulator/XPolicyLab/utils/wait_for_policy_server.sh": "f75a8360d83f2960f365dae77804c94a28aca332c2fbc62cdb4a39ae220374ad", - "source/simulator/env/camera_manager/camera_manager.py": "1a4250cb3bdc7305fe362a7c6b113f57e6f3e9e4983b69bd61e2c84e8e995471", - "source/simulator/env/camera_manager/capture/camera_view.py": "be9ec0d4df8a532c35adc7090fbd7d6a76c163f90e8dac30496ee4f875929869", - "source/simulator/env/camera_manager/capture/render_sync.py": "48d70e9a95f3445ae464ab7ea00a00c0d4829752eb55c4ce52ef73ab1f453cae", - "source/simulator/env/camera_manager/capture/tiled_capture_manager.py": "959b4d87d96e676bc279d01e7755557bb8c6e73920a75944259f72b7ac385f8b", - "source/simulator/env/description_manager/desc_manager.py": "bb566028b523a4cc27363cee2e526c2d3e008e671c9773d4f0b8401f58f0388e", - "source/simulator/env/environment/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/env/environment/base_env.py": "ade58ebc19c79bdbf720def30786a0c397b1c7d2141fb6a1bfd63c80f8a3db8e", - "source/simulator/env/environment/isaac/__init__.py": "123023ddc75a0f9b1139c7322bee64a27f0e756b6e84242f43a1481428596126", - "source/simulator/env/environment/isaac/direct_rl_env.py": "77958f14c465932697efed302c8ef13054f2ec61ee3a4bc5ad66d0390b71df77", - "source/simulator/env/environment/isaac/isaac_rl_env.py": "144af40adc2113751bc1bd72caadab145e918b316de53ef3e4e42358c01a1fbb", - "source/simulator/env/environment/task_env.py": "ac816cf26efabbb8ac4276d2a2a09fbd557e3db805514db0c3dd7ac22b58e931", - "source/simulator/env/global_configs.py": "e96f6141b42e635d69bba5b4727fb1fec54f8965431b3a70d95fe5dcd3d0ee45", - "source/simulator/env/observation_manager/obs_manager.py": "771d6cda443b591f3e7850b901a06b4e653a2feefcbabd23608042377fe9be4b", - "source/simulator/env/planner_manager/.gitignore": "bdcb46018aafd15f5c2d40adbbccbb06f2dec5b9ec4311cbf776075bdffd4156", - "source/simulator/env/planner_manager/curobo_planner.py": "3cd830c002901959409ef6f64d54106d8106b48471b266409abc2199f3cb33e1", - "source/simulator/env/reward_manager/func_parser.py": "eb928a05c3eb6bae429a922c59e64272c2c3851c22d779143d45627e47b3a504", - "source/simulator/env/reward_manager/reward_manager.py": "bc56efd3aaa861b4b38960dc4fb7778a9b4da9cf131f815ac3170300dd233a41", - "source/simulator/env/robot_manager/.gitignore": "fd94daa58076711ae84376170199a63f66177471e587a76252399fe79eb231e2", - "source/simulator/env/robot_manager/control_manager.py": "81b7ecc3bed8248c16aa1517e686682d8e28ccfa9e550d45011b579a9219caab", - "source/simulator/env/robot_manager/frozen_robot_configs/franka.yml": "a3c944f8cdd07fc1a4eb54cb915f565763292acb24f9c4f725534271449f138c", - "source/simulator/env/robot_manager/frozen_robot_configs/x5.yml": "4df90d234656c34132ca573e69a55de5984270e103aac2ea8ab9956a913685b5", - "source/simulator/env/robot_manager/robot_class/franka.py": "dc49eb7738a8b58fb731595340c60a1ce32f52ef0dc63a3da84f9c25879af140", - "source/simulator/env/robot_manager/robot_class/x5.py": "4748cbe4d273449a48d09817767dec361f53f8e5cdc6e43368fbb8724141b654", - "source/simulator/env/robot_manager/robot_config/franka.py": "8bf57a07913573e74dad97aec6c50e58b67746fa90875915d74ce213856ce35a", - "source/simulator/env/robot_manager/robot_config/x5.py": "13d35630f833d1b0a1e3df0bea05f843e88aae1248b59af8aadfefa9cad29bbb", - "source/simulator/env/robot_manager/robot_manager.py": "19636ff932a0e2192341b57d8695d4102b870bd10c69c9343d712682fcc15082", - "source/simulator/env/scene_manager/layout_manager.py": "1b4c940200dd94a1d0300e103d168b9a823e0dc00ce7c921afe16e81d4e01ddc", - "source/simulator/env/scene_manager/objects/articulation.py": "0c542a1fc8ba7a61bf71b343745c71949c863291c1b167d4d7048fe2ef9ca4c4", - "source/simulator/env/scene_manager/objects/background.py": "04afea9b5c4e21a105ba3b08ce0e5b6692c082cf17ec1053fdffd5dba1c9511b", - "source/simulator/env/scene_manager/objects/dynamic.py": "7a4652c649f503681914e37c50c959c7ca8457918bb00628413f4288993f8ea7", - "source/simulator/env/scene_manager/objects/fluid.py": "12b183d4d798d6b7188fd42747ee1927747318c386a91135551d1fa0561c41b5", - "source/simulator/env/scene_manager/objects/garment.py": "85f38bd85b52da8dd2ce34ce3692d45848016a9f0f14ecf13114705d4a1ff46a", - "source/simulator/env/scene_manager/objects/geometry.py": "3100d61b152b894b3b59be0b3be1d2708f2d8f363ddb8311dabfb5411c731f3d", - "source/simulator/env/scene_manager/objects/ground.py": "12dd51addae6f5b7c6ad410b4ae7248231d216cf63513c564057d577a09a2972", - "source/simulator/env/scene_manager/objects/light.py": "ba8c8529c6608592d4d0eb9638820b70ae6b3c0cd616631bc6dabdb1c20e421a", - "source/simulator/env/scene_manager/objects/physics_material.py": "a1ac0dc9928e9253e644ceb9a604aed262514aaad0473aff303bfae448e76c29", - "source/simulator/env/scene_manager/objects/primitives.py": "848f4ab08d86307812ebaea18cc86a51638395f0e6ea194b412d45a699ced926", - "source/simulator/env/scene_manager/objects/rigid.py": "8260fd2d8350d6a354c8281685bc7e25531923327078752efe0538d9cd78450b", - "source/simulator/env/scene_manager/objects/room.py": "946aa1afc23ab9b8fd17394517a5f54605bbbc609582d0854fed2078b3b2d8ee", - "source/simulator/env/scene_manager/objects/table.py": "c0e71396b0d53a250f74c75490e91086d67962237400a49f886a13ec07875308", - "source/simulator/env/scene_manager/scene_manager.py": "37911b12601038c9ee9bd180cae7a4751ea649bcdaf1ba2628f22c65cfd7dc72", - "source/simulator/env/seed_manager/seed_manager.py": "99bcf5a90392c8927aa0dbd799c07e06b9b03befe8b8eabaa8744a3dc9605ba4", - "source/simulator/env/seeding.py": "3f88d2a635c528253439cb31a29e5b9d0f47f6aaef0e975d86d9a8cf174be26b", - "source/simulator/env_cfg/arx_x5.yml": "7691350159fdeca92fd1b0b2da36913464ccdea3f3251eefb0176aa51db0807f", - "source/simulator/env_cfg/camera/camera_config.yml": "c1752170da855e735beba27fddbf78dad16f2395e4ef8b24e9827a768e616a62", - "source/simulator/env_cfg/camera/template.py": "68287ed1daec3b8ed7f053bf97a4d48bbddeb8b5757b53e438ac3c4240a9e61b", - "source/simulator/env_cfg/robot/_robot_info.json": "4c9de628bc1572502fc48d876c023fc63e02760e1a11a2a5258dea30ffa330e8", - "source/simulator/env_cfg/robot/dual_x5.yml": "4eefaccc75c5f83443b7bb85ef1de68ee7a3772e27af2b04a5e8d8769ab9baa1", - "source/simulator/env_cfg/robot/dual_x5_and_franka_competition.yml": "ec893f9fde577d0d1209e7dcb85ec2dd74288b636d0c68316cb07bc817b743ab", - "source/simulator/env_cfg/scene/conveyor.yml": "c1dfd27faf978f90dfc4825cd83bd203823547c46793f4f9201ce9f4b43beee7", - "source/simulator/env_cfg/scene/default.yml": "729df024b9707a55449da94f980c1ca116035e09a1284e2fe071f1b38efd061a", - "source/simulator/env_cfg/sim/sim_config.yml": "e442ede1c3d90fcfb50b9461c854d31b22dad9bfbb23397db228b27a6a486963", - "source/simulator/scripts/eval_policy.sh": "786966648496b7b68aad81e000a3f92910302eb391dbd07fec0a2dc91107956e", - "source/simulator/scripts/internal/summarize_result.py": "9ec361af587e1788d83d3cf8670e05b817ff252d33c33829a6337dc16ae370d2", - "source/simulator/scripts/internal/task_inventory.py": "ec82252b0f87fa5a3dbec2f682c170b25cbe47fe181e431a81df2c4b0675084d", - "source/simulator/src/__init__.py": "75bfbedb80f2e1421ad787992d78c23349bc8738b9edef7a76a3af83c9586fd6", - "source/simulator/src/eval_client/eval_env.py": "c577b27dab3c87588940670da81bcff007cd64b687eee8e0cc6684e5e24966b1", - "source/simulator/src/eval_client/main.py": "de2216bb5df707e505f7e2f3d31702907a4c1ab65205c5ea35494021f168c80e", - "source/simulator/src/eval_client/physx_warning_monitor.py": "6a9f8e8d75b1031d2cf2feb6dd72d37370d85d5bd80c4bea798622e23ce8dae6", - "source/simulator/task/RoboDojo/config/_task.yml": "655a87cd59fa6272bf352d32deb8ade162737b49a9824e16d428fecf0803380b", - "source/simulator/task/RoboDojo/config/align_blocks.yml": "082c9d7a32968052b8ce954bee212c7ec0a96b756150701d4b531abdea59be2b", - "source/simulator/task/RoboDojo/config/arrange_largest_number.yml": "3bf6b7e286ea328fb1e4a994a8d30af9afb4b0b4dcd7ceafed43cc6160c9978f", - "source/simulator/task/RoboDojo/config/arrange_largest_number_random.yml": "145b26eb5c8ed7d084a4ddc6e21694c542f4a86150756188ea38dcf66e565603", - "source/simulator/task/RoboDojo/config/build_tower.yml": "e1bab8756bbc5664e3171e2389c060a79a3fbbf92a6af4ef555dcaf59fce275c", - "source/simulator/task/RoboDojo/config/classify_objects.yml": "80a754d2aedd6a89f58185eae36f5b2eb1a28250f40a67325f576fde34650384", - "source/simulator/task/RoboDojo/config/classify_objects_by_language.yml": "ac6c739ca82a64b53c799af79b44363db1a88246f76d867f8830729e5613507b", - "source/simulator/task/RoboDojo/config/cover_blocks.yml": "68f90c85fad2b152cf7853cf48888d09ce74bb27a692ff2feacd11160771c5a7", - "source/simulator/task/RoboDojo/config/deposit_coin.yml": "f547b12216fb9a5dfe2e7d7e882d89e1e53ee1a805c943ba09a3c2cdea8c17a3", - "source/simulator/task/RoboDojo/config/fasten_screws.yml": "5fbe4cf5b3ee2eafc2771137b13176f01617f8b2131f02503e676a7b62e2eabf", - "source/simulator/task/RoboDojo/config/fill_egg_holder.yml": "d79129278c9a5488d63bb1d3865f2c6b39f21f85957ec94ace091af9ae29e31f", - "source/simulator/task/RoboDojo/config/fill_pen_holder.yml": "ac72e5582495e8757c547997b317e2fe990370009527b1faa6bfbf4e1275537c", - "source/simulator/task/RoboDojo/config/fold_clothes.yml": "56447e3f592e0db388ebb7482ec758ecd5485ec81b9227c2dffe5390bd7d8c8e", - "source/simulator/task/RoboDojo/config/fold_clothes_random.yml": "eafe52c0abcc1889069383b008cbe95c6af2d18ceafb1aecc78f0fae3b491b04", - "source/simulator/task/RoboDojo/config/general_pickup.yml": "35de68117cb0ed596b30db1c62f1f9090f2cd1237242a03d5aaeb7186e791d93", - "source/simulator/task/RoboDojo/config/hang_mugs.yml": "0086d374d3f7e82abb85e43a17cdfa437e1ac645a0171fb47496c2b81427dce9", - "source/simulator/task/RoboDojo/config/hang_mugs_random.yml": "847dfd39059275a671b5beff0243bf7bbaeebd9e5c0612a1877cdf12b9007dc6", - "source/simulator/task/RoboDojo/config/imitate_sorting_sequence.yml": "d9e194d8c742288601c641ccb75052a67da46e536c0b06c7fb7311d9e2c61a42", - "source/simulator/task/RoboDojo/config/insert_key.yml": "c0b409d5c020e0ad706c378b6f63b39dfe7bed4682d978907c40e1cfa7623335", - "source/simulator/task/RoboDojo/config/insert_tubes.yml": "5c070e5c764a2ea93f8de0b52e6a664a23c717963fe09fe3af17918a4a1ee9ef", - "source/simulator/task/RoboDojo/config/make_kong.yml": "8a33c9e57b6e6c719c4800911c37272ba055ad0f4cda2f1de9d531ee2910351a", - "source/simulator/task/RoboDojo/config/make_toast.yml": "d190a26233db174538ff0052b4c2958a3b107f0ccc63d0fdfe28da4c7f5dc57b", - "source/simulator/task/RoboDojo/config/make_toast_random.yml": "ca2c1e55a0975c8b019523710e90131504d8d2afeb829be362e4d7927fe97b48", - "source/simulator/task/RoboDojo/config/match_and_pick_from_conveyor.yml": "0ae1c2537d9b1880748316928cfd7ba4c6421ecccfedb85c4c5395a7a86c5361", - "source/simulator/task/RoboDojo/config/organize_table.yml": "9ffa15dd279060d4f042285a2c53a341c7208e2f89a2f3dd36ee08b22aa453fa", - "source/simulator/task/RoboDojo/config/pack_objects_into_box.yml": "e232962b8394d08c04c5da14deb88d7b233afa00ab99af8001c084218951d7ca", - "source/simulator/task/RoboDojo/config/pack_objects_into_box_random.yml": "7ac7f034fcb169e33a7f0a03b2b77e54d0206ed715409359b579055a701196ef", - "source/simulator/task/RoboDojo/config/pick_from_conveyor_by_image.yml": "6b310b70a0ead9d09e7c221c6bbc952140a44b1d43034613bf02e954eebcf9dd", - "source/simulator/task/RoboDojo/config/play_Xylophone.yml": "28adedb0f03c49693af32cea37855f3f95ec3f76f031bfd571fb8bfffb2ec59c", - "source/simulator/task/RoboDojo/config/play_stacking_toy.yml": "a09afc106161064a2ea6a40882d717f7872bd4875309a97431d6863a9b7ffa1c", - "source/simulator/task/RoboDojo/config/play_tic_tac_toe.yml": "63f863a7fb81a040f65803c64f97c4e9577d4fe32cd0f92563bdc72d1aa336d2", - "source/simulator/task/RoboDojo/config/plug_in_charger.yml": "2046b47112049e038ecfa24a8c8044fb1db84f629a4a32eeb24822157d2d4dcb", - "source/simulator/task/RoboDojo/config/pour_balls_into_vase.yml": "084a707af61d24123912777b417fe0c0b230eb9653e686af42570791e924ff8b", - "source/simulator/task/RoboDojo/config/pour_by_language.yml": "efb2e3c3cb08dd6d2d2ae011b3e9a218b5f1f0a92f025b8e3b9e8abd7011c250", - "source/simulator/task/RoboDojo/config/pour_liquid_into_cup.yml": "32092b11667b3306579b04225303610c061585ace28531fa9996afc339c5a2ba", - "source/simulator/task/RoboDojo/config/pour_liquid_into_cup_random.yml": "1603feeab6f0f7dc9c4897e7f40f322b86112b6ab987dad0598f42ac1b35db69", - "source/simulator/task/RoboDojo/config/press_by_number.yml": "b784643495bcbca933f5a5fbc91b7dad3465fe888239b358d516977c78c38f63", - "source/simulator/task/RoboDojo/config/push_T.yml": "b55ea11002ff3e5dc63982ca8c1247fd7bee4f4a607f4d674e220b86cf120a25", - "source/simulator/task/RoboDojo/config/push_T_random.yml": "07609ec20cea40afa1d5720e895fb1b445411f261b2e5b6850e75d0f1930d32d", - "source/simulator/task/RoboDojo/config/put_bottles_into_dustbin.yml": "7eddf43e287b6e8aea686c6d686fb87e13ac1be1cb5aac16a8a2b0d2e9eb976e", - "source/simulator/task/RoboDojo/config/solve_equation.yml": "bdaad2ff1cc8b7ec6413a3715d49ea9cefd664e7e204544977832e18785f1e75", - "source/simulator/task/RoboDojo/config/sort_nesting_dolls_by_size.yml": "8927cb2ebb18449554d851e629bd7d568e12e46c5c3c636c8e7122f4fab1ed1f", - "source/simulator/task/RoboDojo/config/sort_nesting_dolls_by_size_random.yml": "f895d3ce7eaae99454706afccd09011f56d077998bcc1e95840116658b78f139", - "source/simulator/task/RoboDojo/config/stack_blocks.yml": "2802e88ebc3e2d3d05ce345d75e9ad6151a6690e4ef1e0021a5223d291a402d2", - "source/simulator/task/RoboDojo/config/stack_blocks_by_language.yml": "4fbfed4f7fc49120831087e709a8dbdfdb4504eb143196000d5790b54eb3bc40", - "source/simulator/task/RoboDojo/config/stack_blocks_random.yml": "e25d2a096601da30abdcfe1256a464eaf48c0c8f844eb2c737232626d49639d5", - "source/simulator/task/RoboDojo/config/stack_bowls.yml": "4e2aaa12b8b0f58ca801f1a93638c46d3b49ebad809c5a8011382ccda846dcb1", - "source/simulator/task/RoboDojo/config/stack_bowls_random.yml": "5c08af1bcc925d958d53de51e8ebd336006203f1bc81e4ef68f3719eadfabb49", - "source/simulator/task/RoboDojo/config/store_laptop_and_headphones.yml": "0fdaab803a9370a9e2d1fc8d86a5788daa3940c08fd6f767334f625642fca3e2", - "source/simulator/task/RoboDojo/config/store_laptop_and_headphones_random.yml": "93f0ca39bc8bb32df94e84a02f22ed4d7860f37cdc0b9dd17e44721445849576", - "source/simulator/task/RoboDojo/config/store_tools_in_toolbox.yml": "641c8ef92393bd986e408d26a84b1cfcdac27466a5ac5f0b3ebe4bb84430c527", - "source/simulator/task/RoboDojo/config/swap_T.yml": "1daf769911e13714b4aeabd208292931e32f4dd39968893152bb7bb477c46c9b", - "source/simulator/task/RoboDojo/config/swap_blocks.yml": "b6bb2a9df494719f26c6b1aab2e7576107ae76e2fbac8b63a5770f21e0e9f05f", - "source/simulator/task/RoboDojo/config/sweep_blocks.yml": "98aa25ac39be9d335c71b2b586bbba372789e9d61e652e1147152c87febbf1f5", - "source/simulator/task/RoboDojo/config/sweep_blocks_random.yml": "4ebff5e2cad07f958dc4b2793b86b1aa803c0809394818ee3752d300e58b6187", - "source/simulator/task/RoboDojo/task_registry.py": "11218028f772d9253ee709a7d85aa72d1e1fd87e4f8d33ee3787d6064438f9ab", - "source/simulator/task/RoboDojo/tasks/align_blocks.py": "c8597e96132cd7c9d30f3ae101f7bbe8ac28597b629599d75d442bbea4c6e74c", - "source/simulator/task/RoboDojo/tasks/arrange_largest_number.py": "277acd20ae4345dc71267762e588b7b0343387c71685183890f044a4808b7a20", - "source/simulator/task/RoboDojo/tasks/arrange_largest_number_random.py": "01757509978663bf7c0c95059e8ae18d45b8fe0953f6b54540e2bd6bf141182e", - "source/simulator/task/RoboDojo/tasks/build_tower.py": "814cf6ffb459871e5cf49f4e127903dbfbc30926f33db71de0b84a71ab235d6e", - "source/simulator/task/RoboDojo/tasks/classify_objects.py": "aef4333c088766375e21a928d53a9a93aaee285fecae41e22385acdc74dd11ac", - "source/simulator/task/RoboDojo/tasks/classify_objects_by_language.py": "242a8f048f487eb174ef246be78613bbb5f153549ee11a2650412718cf3b36c9", - "source/simulator/task/RoboDojo/tasks/cover_blocks.py": "9d14931b16842b93bea8abf9a07991a93a7e663b93c5fd1695108c8b922ab862", - "source/simulator/task/RoboDojo/tasks/deposit_coin.py": "f9868ef827ec17b8db6c4650cc5d9a9e593d20d00ee822e2212ce229ec01fb61", - "source/simulator/task/RoboDojo/tasks/fasten_screws.py": "2e187a28e33e44efb87baae6463b3ec35264ccd41e35c21a1be44f6361675185", - "source/simulator/task/RoboDojo/tasks/fill_egg_holder.py": "506dfb772f8882ae53966e3580affde19c3c0f11591c78cc5f5b1d997ba04f7e", - "source/simulator/task/RoboDojo/tasks/fill_pen_holder.py": "8706dce239487e078b21af0b95bcc5cd4eabdcdadcdcbc6400d6b138d982f1e6", - "source/simulator/task/RoboDojo/tasks/fold_clothes.py": "ecea9c287d0579605330168e6f36734704fb14a6b1e5dec82b6f2ee3a56ec20a", - "source/simulator/task/RoboDojo/tasks/fold_clothes_random.py": "9e40abe3f7201a8c13961edc1ca8075260c315584d3d6b93fa1df966d13d1e88", - "source/simulator/task/RoboDojo/tasks/general_pickup.py": "1a9eef7fe518f9d2c6805ad1a8f97c1045fa83726f84b9c63f67ffdfabbc40a7", - "source/simulator/task/RoboDojo/tasks/hang_mugs.py": "4bc6586bd87de030b9c580fea2a45e7977c3b6a4d75cf3c43b546d349d42e906", - "source/simulator/task/RoboDojo/tasks/hang_mugs_random.py": "ebfa4a95deb954aa7a9063a07fe366cb5ea1835d3f52342b10d531225dfeee92", - "source/simulator/task/RoboDojo/tasks/imitate_sorting_sequence.py": "18400cb3c5f5103492819df2dcdf05a77916106e8a503cb62b4ee6cdbaa9305b", - "source/simulator/task/RoboDojo/tasks/insert_key.py": "180978a2915744f0596fbca4ea0ad6dcb47dce005d43f06807249bc8b4d1a828", - "source/simulator/task/RoboDojo/tasks/insert_tubes.py": "9a68795ddbd0b816ffd7627e673390ecd83594c0e9d374d4e3abf3435ad439e1", - "source/simulator/task/RoboDojo/tasks/make_kong.py": "b9266689d65f9213b05219ad952344f9fd63be8892097ec0103af99791b245d5", - "source/simulator/task/RoboDojo/tasks/make_toast.py": "1047f484a73d1f92304393879b51f87e33d661b6ad7937198352fe37a0d3233d", - "source/simulator/task/RoboDojo/tasks/make_toast_random.py": "69fb879b89e98f7369971834eb6d1b95c5a65f5ffe978b2cffae0b12c6b756ca", - "source/simulator/task/RoboDojo/tasks/match_and_pick_from_conveyor.py": "53110b8a0c971bd3ae8878bfb7d0dcd9626bd9b610d4e7fc91772313b435a5c0", - "source/simulator/task/RoboDojo/tasks/organize_table.py": "aceb298e78f3f39e4cf9a9f4c5a4f747b2c55f1a6006de2065e110a05f4295d6", - "source/simulator/task/RoboDojo/tasks/pack_objects_into_box.py": "84a1cf1dd5e166f36291130f9d8cb5dfe4b3f4732a46674bef6374a7ea2d66be", - "source/simulator/task/RoboDojo/tasks/pack_objects_into_box_random.py": "4db259a1b97cdcc39ebc9794244fadc79d31c4ae64069c9b11a233356fcb655c", - "source/simulator/task/RoboDojo/tasks/pick_from_conveyor_by_image.py": "a0d29576d0aab8232d2fd3ebcc8c510e81c70b4cc04602a5be3e99ee2275e01d", - "source/simulator/task/RoboDojo/tasks/play_Xylophone.py": "b7a4b0bc0457bcf55d714ca1867476fc4aabc53084adfc78d3ff5d1437bf7847", - "source/simulator/task/RoboDojo/tasks/play_stacking_toy.py": "23361329ee7efe330da1f1c241415205bafed2b6c082a913659d868a80d338c3", - "source/simulator/task/RoboDojo/tasks/play_tic_tac_toe.py": "8f75ebfe55c997ad9bd3b342db46e843e87397db94356f31cadcbe0cb483bca7", - "source/simulator/task/RoboDojo/tasks/plug_in_charger.py": "aaa59ade46dc54f430e1148e3f6fae487970cd29eb2c07b5ff7b4045edb831b6", - "source/simulator/task/RoboDojo/tasks/pour_balls_into_vase.py": "eae388b93ec196c401f76bbab3b0119cb2164f90bece0225d4fb925d3f2b73ab", - "source/simulator/task/RoboDojo/tasks/pour_by_language.py": "f7a15a7fca2c649a7918d68960ede27e667f409a339b668dd9876db890724cfb", - "source/simulator/task/RoboDojo/tasks/pour_liquid_into_cup.py": "73f8c91b57c352fdc1e7ba3fe5354b3c10e4156d8e5ba777762ad0fa1aff5663", - "source/simulator/task/RoboDojo/tasks/pour_liquid_into_cup_random.py": "a1c4097b6e34b2c62885b3a9c7d2584a93d9e296dc41d311a80c2e6d541d53af", - "source/simulator/task/RoboDojo/tasks/press_by_number.py": "006f969087c00c417a63875a9de153f698c52d1f1ca0caf0aa16076aa15059c5", - "source/simulator/task/RoboDojo/tasks/push_T.py": "a01d753bc320ffbf492ccc29e5f7ab3b39e6c7d255cd25804db1934a30fa5b41", - "source/simulator/task/RoboDojo/tasks/push_T_random.py": "dc8d9c8e0d2e8dfffa2b7d433a8278c0eaf707cc4861b15035364c2e70061dab", - "source/simulator/task/RoboDojo/tasks/put_bottles_into_dustbin.py": "3ba6e19df0c5ff19ba961092f031ce14e91e72a9a4a5934eece6000a1ffa1c48", - "source/simulator/task/RoboDojo/tasks/solve_equation.py": "e287a2f36b82b28e8ca7824f63b1b723b02972ea6dfc115ff32b2882729751f7", - "source/simulator/task/RoboDojo/tasks/sort_nesting_dolls_by_size.py": "1838fa6b515bad3796895cb5c1883c6a42789b7dada5434765764600e70beb49", - "source/simulator/task/RoboDojo/tasks/sort_nesting_dolls_by_size_random.py": "b793ab5bd32bd2c10bd46874440904837f9c4e290e7508b06426e2e96425709a", - "source/simulator/task/RoboDojo/tasks/stack_blocks.py": "50bd388f9e47002966fbb0146742467a820295b8686e0f86379f0efbcfffcc1b", - "source/simulator/task/RoboDojo/tasks/stack_blocks_by_language.py": "36a83925f35c7a4caac5add328dd35cb1d346bad833d3064f455d88221e7a41e", - "source/simulator/task/RoboDojo/tasks/stack_blocks_random.py": "19d4e5cd693e068ad64de75cbcd24977ab8d39e22fa17362a391dcd733bc9bb5", - "source/simulator/task/RoboDojo/tasks/stack_bowls.py": "022c129ec3493183b1a26688a0402f5a00a1546ae011999e9c19f4c0029e2b7d", - "source/simulator/task/RoboDojo/tasks/stack_bowls_random.py": "a0e20469eb44a9ee98650d09386814c1df5264c68ec139f06aabf0c86f092514", - "source/simulator/task/RoboDojo/tasks/store_laptop_and_headphones.py": "2bee4e31f0594900629fe7f43266e16fecb310b152930ce51524507136809a92", - "source/simulator/task/RoboDojo/tasks/store_laptop_and_headphones_random.py": "58c3c5113054a379214d64ae406ed8dde99603cf684ce9cd8c7bcb72ed334382", - "source/simulator/task/RoboDojo/tasks/store_tools_in_toolbox.py": "2969fc3eb171560b3c0bcea62b9f38b8b35f3aecc9bcc7085c3b1cec365b48fc", - "source/simulator/task/RoboDojo/tasks/swap_T.py": "57fc289b3957caa454e1d8e005e3a57c973d6ab40121845c94799e61e4bfafdf", - "source/simulator/task/RoboDojo/tasks/swap_blocks.py": "08ed24ae9dff27f4e5c850161a02f62ce237859c096d9b06a853a7890e0ad4ed", - "source/simulator/task/RoboDojo/tasks/sweep_blocks.py": "65786217e199c1e2b26ec8e2c232bf98ecb304a20939d0908fe12bc41e990614", - "source/simulator/task/RoboDojo/tasks/sweep_blocks_random.py": "68b6127038322cf001d5f614060b8a1d96e64a49efddfcdcae91127d5c206bc5", - "source/simulator/utils/cluttered_generator.py": "f59cfcfed2b4cce5ae9aeaf3339c86d17e237874e3526bded3cb05136dbcbd50", - "source/simulator/utils/ensure_usd_path.py": "7c8e71cf91636e630b1b174098fe0b38740857daeaf207e2fae772c4727b11bf", - "source/simulator/utils/load_file.py": "ef3a6dc96aa1a7442cfd24f7be9671052a98d2f20783c3e71032332704132943", - "source/simulator/utils/path.py": "1d427c7cf33e748e01d0d083c9432d8be8b5c3a1f35c5fb0f6ebb0714098f1d1", - "source/simulator/utils/pipeline_utils.py": "d5d8da29e6ca84ab04323a2f79130f930572785b4399634e06a42834ed4087ae", - "source/simulator/utils/rotations.py": "8e814f79938bdb9e85f1c024825617cc08d281b61728c6410b23ef1bd852c340", - "source/simulator/utils/save_file.py": "6cff5950f73bf7a1ed404f804d6f08af712974f22c3955de4cdf142f211aaf00", - "source/simulator/utils/transformer.py": "73de4f5e1e0ff60d4f2e1aaf6104368e8f919269facb68b4fa0344d35bc08cbe", - "source/simulator/utils/usd_schema.py": "260d30b0ada2976136cad3e49e810b4409304eb4a2bc60bd9ed710864d3953ac", - "source/transport_deps/annotated_types-0.8.0.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/annotated_types-0.8.0.dist-info/METADATA": "614985b278f601b8ef863f82783b991cc3ada4b89f592eb71c7c48c5f2ef2298", - "source/transport_deps/annotated_types-0.8.0.dist-info/RECORD": "c7660eb223c8080f75c49690eaf0a9c9c00b6195511791b33b15e6b24e42edd7", - "source/transport_deps/annotated_types-0.8.0.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/annotated_types-0.8.0.dist-info/WHEEL": "942926c567d0b1273d09f20295879abd37507845f6b683eab9f87d808df91100", - "source/transport_deps/annotated_types-0.8.0.dist-info/licenses/LICENSE": "fe1049884b1a0d9342901e88e07f32925d24b3121d9972b6a6805fb9824b095d", - "source/transport_deps/annotated_types/__init__.py": "a7104a4d439b27a9f74fc0be236b9ba1b7831e6044026802a205abc1298a9bc8", - "source/transport_deps/annotated_types/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/annotated_types/test_cases.py": "d867472acb57b81ce97f78972828e6bc5669ca4db33fd1e6f645c6183846068e", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/AUTHORS.md": "5fe0446ddd6d1c70fa298747368582dc1d91c23d62c8fb7228595bc87fd53232", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/LICENSE.md": "509aa7af19ae2b5b1681b22b969627ee9e1fd15ff7ea5bf9f6e301fc44d5a6c2", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/METADATA": "b7ee8fa1bf018747082cd6d2fcaa14e5d0f5956b5477ab5810eb61ac4cc7bcf9", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/RECORD": "51331727bf8d9ff60510de5e7756c5dd72aba7663f3673e2827bf1ca5c09c7e3", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/WHEEL": "1d7faff7e9e8524c94a31c99d4f312b92edab94c43011e1505da182ea0f4c70b", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/top_level.txt": "19da698ad1490bdde1c7f18fabaceb2625aaf48b364d4dd7ad404c7e5eed75b9", - "source/transport_deps/msgpack_numpy.py": "0a45a7430e2cefa2e74235c4c6a34a22ead2fb57a7de8b2631f45df977701d63", - "source/transport_deps/pydantic-2.12.3.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/pydantic-2.12.3.dist-info/METADATA": "348336c208743aafeabfa5537c29f429035a3107b7a78bbb6a3bf7b3a42fe4aa", - "source/transport_deps/pydantic-2.12.3.dist-info/RECORD": "089c7ceb033486c4e6106749bb1a38c80b63905da74d842d067735e8b9c86e4d", - "source/transport_deps/pydantic-2.12.3.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic-2.12.3.dist-info/WHEEL": "aad0b0a12256807936d52d4a6f88a1773236ae527564a688bab4e3fe780e8724", - "source/transport_deps/pydantic-2.12.3.dist-info/licenses/LICENSE": "a9e186f3ca16b5eef84318e7a701721351a00cb7b8ae3a4394b67b49e3529ef3", - "source/transport_deps/pydantic/__init__.py": "e62127278c07bf5384cdd2903f368a69929f3b8a524000bae4e0eb608ebf4bc6", - "source/transport_deps/pydantic/_internal/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/_internal/_config.py": "4d66708377346d91e24f76e8479f9862a928b877308d175e9e6c861e87d5ec4d", - "source/transport_deps/pydantic/_internal/_core_metadata.py": "63f836b778bbba5b8afb05c266fcc97d114c3d4336dda0582df69ee05cc13f2d", - "source/transport_deps/pydantic/_internal/_core_utils.py": "d63aeee156c9d31eb747a76d55cb8e23e74a4130bf77f9529c9584050cc63444", - "source/transport_deps/pydantic/_internal/_dataclasses.py": "4e4d6611a7e169dd6457b2b9b4f5f9070c5649763b0be30ac1fd0e2c58089440", - "source/transport_deps/pydantic/_internal/_decorators.py": "3e7c80a0a4a0dc135b0954999f0ab0f67684835503b58bc34fd2e5ba280f88ef", - "source/transport_deps/pydantic/_internal/_decorators_v1.py": "b5f75f76940a6384765c23b0a876d97a840cbabe95362811adf86e757047c77f", - "source/transport_deps/pydantic/_internal/_discriminated_union.py": "68c9744914b24321df5b8fa49673131cdbf0491a2a1371f73d157fd39bd1b138", - "source/transport_deps/pydantic/_internal/_docs_extraction.py": "7f2ce74801e1e40ce88675d94ad5741ef1fe9d16dabcd1cfca0fa49f1f92fc41", - "source/transport_deps/pydantic/_internal/_fields.py": "6127c42aadb51608cb27a62a6172a1d1e104b399f130fbd0ea1a7da40f0dcdfc", - "source/transport_deps/pydantic/_internal/_forward_ref.py": "e67dd8efedc028b9fcfc54b761cecabad2e23d48725e602d90464e6859e89f03", - "source/transport_deps/pydantic/_internal/_generate_schema.py": "4d3e3dbf3633a87f74ad6aefe69b4da19823cceb11d0a3e54a4a8f545ae7ac1c", - "source/transport_deps/pydantic/_internal/_generics.py": "10baa34fa2cccd0cd600ad04079ffdaa47bf8806b3cf4390e20ba7a7fb8ab986", - "source/transport_deps/pydantic/_internal/_git.py": "2303e1dc33df6b65eadeb06e07d371f25b91d80d62ebd41d7937d659722e0958", - "source/transport_deps/pydantic/_internal/_import_utils.py": "4d18710f93ae63a094a2c8a805d05c254b34a26ec820e36265d60057bcd0f233", - "source/transport_deps/pydantic/_internal/_internal_dataclass.py": "fdb79d7355dbbaeca044688b66a914930c05a506a847584a2e5479d359f2c926", - "source/transport_deps/pydantic/_internal/_known_annotated_metadata.py": "25ceca4cd159a01ddffb489b3ff36024834e795bd8137ab73930500e354c9375", - "source/transport_deps/pydantic/_internal/_mock_val_ser.py": "c2645115206fa9f70b6c8e353ec165881e2ed80677989a597a21116c3df1293a", - "source/transport_deps/pydantic/_internal/_model_construction.py": "c24f9b3460c026f76e686be7d14d3ff33125d06111bb4b2126f37cfd97e461ac", - "source/transport_deps/pydantic/_internal/_namespace_utils.py": "865dfe4d102bf365368d3c8f3f7b7e42ab2f28b8abc6d90b7cd7eb37e7e9d31f", - "source/transport_deps/pydantic/_internal/_repr.py": "8d07e726ec83c50a5244d846dbd208f4f5fc7b836fdaa599ac4c3696a8a1dd41", - "source/transport_deps/pydantic/_internal/_schema_gather.py": "54b12fe754d811e78d0f6733b32ae626ad4c56726a4ce9a72da9fb546e3873c0", - "source/transport_deps/pydantic/_internal/_schema_generation_shared.py": "17fadb41bae4a289a0c6cb24747a4fd23509ed309f7b40400c0124aba089e273", - "source/transport_deps/pydantic/_internal/_serializers.py": "6085af4a6011e5f9db19258239076e5add72078650638d9e02bb9cf9e9eb6fa7", - "source/transport_deps/pydantic/_internal/_signature.py": "f049633c97b8a529daa6e8ab1b90e4040803d618201f1100cb314f1fef47d331", - "source/transport_deps/pydantic/_internal/_typing_extra.py": "755c481a1b0be37cda79b3423108752b94235fa2386bd3959cd01c2f6a486bfc", - "source/transport_deps/pydantic/_internal/_utils.py": "0878c7fb4ce75235fd479b144a33d3f23f3efbb3f37bcca36a27ac7130152e24", - "source/transport_deps/pydantic/_internal/_validate_call.py": "3df7559d2ce15ceac436d683a03c373c558f5580f95bf80d60f7bca77520e8b8", - "source/transport_deps/pydantic/_internal/_validators.py": "76fd1ad8d91ce33718aafdf51a1fd021dda571ff96d24429574a1237380475f8", - "source/transport_deps/pydantic/_migration.py": "545ef72d1094cf722b6f9c55b75de36f7340717567105e93d7e27438b7de6790", - "source/transport_deps/pydantic/alias_generators.py": "28cd67deee097cb48197552e620de1a181f35c90fecaf82b9eaf2ed5c73087f0", - "source/transport_deps/pydantic/aliases.py": "be1087ca84969d7f8427ec166f9aa3e31c91b2c8065a74d07f3429e06499f6e8", - "source/transport_deps/pydantic/annotated_handlers.py": "59fc854aac28108157061ed3ef73f270a9682350e25f8e465a2d3e24eb024786", - "source/transport_deps/pydantic/class_validators.py": "8bf5778fe3d87462d22e68ff20965e913463ba73bc488573f0b325aae3f23fb1", - "source/transport_deps/pydantic/color.py": "033a867d540717ddbf65cb4372e7b40cce324e9d8fead7a49304483535ab2c8a", - "source/transport_deps/pydantic/config.py": "b83676c4df89ec255035e9c269529c62c244cc83a92aa9607d0bc3774d35c229", - "source/transport_deps/pydantic/dataclasses.py": "dbf8cdfb9d595abbb222c7a78cb235f9585de2a206345ddeb9ef6319c769a872", - "source/transport_deps/pydantic/datetime_parse.py": "402f9680cc4caffc10fe6357512ec055ffb684b121befb0f6353d0ca148639d9", - "source/transport_deps/pydantic/decorator.py": "617fa3500a6ee4029a55628fa1a57e9fee25ed46d2ebd184b7d45ade1b3398a2", - "source/transport_deps/pydantic/deprecated/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/deprecated/class_validators.py": "10071a550339ce9db0066974c9b37ad827d07f226f0cbc7941df4f938fed6f85", - "source/transport_deps/pydantic/deprecated/config.py": "93f96c564e7ba5ac4b24e701b9e1f4edcbb53a012059d541c66ea57da0b70825", - "source/transport_deps/pydantic/deprecated/copy_internals.py": "1a177ebe431de446020a0c821ad3ca3b9f27a7d704281402eaa9017881052368", - "source/transport_deps/pydantic/deprecated/decorator.py": "4c19ba6c9ef026c36287ff16ab92330dcc0fdf69bdfef7f1b3de9d7ac2ee934d", - "source/transport_deps/pydantic/deprecated/json.py": "1e55821b7e5146bc72cee4d2e8b4d089907046198365699ea901fcacb5bac00f", - "source/transport_deps/pydantic/deprecated/parse.py": "1b377a6ff83ccc95dcb84ed046ae5a761c7f10c25a8577dca57085d1182baaa2", - "source/transport_deps/pydantic/deprecated/tools.py": "36b9bda054595a9f3e8e57ef3e02482c4b32c29e18cd90f9d972063c32f11dc2", - "source/transport_deps/pydantic/env_settings.py": "e881de79612a9543d152fdd5f805e217f5bdd5f836270fccdced25df827f7b20", - "source/transport_deps/pydantic/error_wrappers.py": "44aea6a804dcf72303f8a043f48252f47a4a0a9ad61ddf30a3ce019e6fb77d1f", - "source/transport_deps/pydantic/errors.py": "edcb41342b6de7b919171ef52ecd87f3a22e7d0011bf8c0f29ff0385db159f9c", - "source/transport_deps/pydantic/experimental/__init__.py": "413eeb298743b0289327d1848e6b107561d2730a4aaeb3641aaeafa8e34fe914", - "source/transport_deps/pydantic/experimental/arguments_schema.py": "1059e35ffba5a7eb4fc948d05f9a6642dba0d4e14bfc071cf1b70c6cb77e7d56", - "source/transport_deps/pydantic/experimental/missing_sentinel.py": "8507a382d174d3052e40c9e2f78dbd7af83e797c88c292af8ec0fca1fa9f8fec", - "source/transport_deps/pydantic/experimental/pipeline.py": "2affddbdc7b12ae99acdf44bd32ebd01ac9e03a1f7ed2ae6b19dd2525fe7d2a6", - "source/transport_deps/pydantic/fields.py": "5ae0c63af076d8a5aeb96ddf5e74b85af838a97fed769f17ec1ac09736b8b30f", - "source/transport_deps/pydantic/functional_serializers.py": "ac4cc7dfdd73ab2de8fdb5a4d9012ebf24a67103599b05e62502c2dd9185ed00", - "source/transport_deps/pydantic/functional_validators.py": "73ffbbc1e5a918d70e61f45f55416ed758ebc4c54c75f63f73ee22b2dc24f796", - "source/transport_deps/pydantic/generics.py": "d19a99f4ef5a9e7223ff7986051aa9b3886d7b2ddbe65575f9ddad5313cc3270", - "source/transport_deps/pydantic/json.py": "647f11908ee1e01cfece9f0e7530316c952856f72853e8e131d459d01fa4d317", - "source/transport_deps/pydantic/json_schema.py": "677786d509be226f8c417ebac28c963fd5b2c055272d116d68e0cbced559f937", - "source/transport_deps/pydantic/main.py": "efb414c13b5041d51a7e8af78abe70d820b5b34be2805b460747d2953bc5dbb2", - "source/transport_deps/pydantic/mypy.py": "a7a294d46c0f1dacc5ec4e6f26ad6e2dde2d1dde8313a6eb7b8fa6e4b9f6de6b", - "source/transport_deps/pydantic/networks.py": "2c995c70c79df7b1007a9293e8e98f23d73a8e1e62c1b063935fe35f5449c37d", - "source/transport_deps/pydantic/parse.py": "c2477cd9d82dbd6b43f3de54fc8e84d61b6a3251a1052604577f5cb8149ea370", - "source/transport_deps/pydantic/plugin/__init__.py": "6bb4f0dfae94e8ade496d08235963bea773db2cfbbb86190e344d769df4eca94", - "source/transport_deps/pydantic/plugin/_loader.py": "f502d79de2c49afca15e46bff63e0bae46e67b8a8fbfaa98a6196c8c5d8c1ac0", - "source/transport_deps/pydantic/plugin/_schema_validator.py": "41b9aab06df730199fb4d4369cd8ae376d8b85badec5403b8a90d5bf7274d815", - "source/transport_deps/pydantic/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/root_model.py": "06f98bb56e22d7574993e74b38cdeb97e8e725d40679e41314172610eabaa4c8", - "source/transport_deps/pydantic/schema.py": "56aaa3beafcb9daa5592779b51ddc1a7f275a768176599d94602f8f1b5441bba", - "source/transport_deps/pydantic/tools.py": "88742977c489e43093b4f5796ad015d3a4fcf5b8d268c15e659d8b5fd95ab196", - "source/transport_deps/pydantic/type_adapter.py": "553fbeca0e1adbbb21481cd61c13cacf8f777f7890f686dd9049218d92a513b4", - "source/transport_deps/pydantic/types.py": "9ea752f89d995ea4e1daa7b224ecc14c1b475b267961115ef2068c579f5df471", - "source/transport_deps/pydantic/typing.py": "3fb7de037e4cc1370bb11d6e2fb75bd12fa8c9d071a1b9976b9e580e80606a34", - "source/transport_deps/pydantic/utils.py": "d799d1d90a6a4c1165415e1336d4c8b4cc93271fdf6f257e80f988118d46a287", - "source/transport_deps/pydantic/v1/__init__.py": "14b43c212a7a3156517e39d2edf4389b51714311421764158a41380cafb83e11", - "source/transport_deps/pydantic/v1/_hypothesis_plugin.py": "e444b9c56bb0d45400b3298b7b3cbc4209d5cf466955f5378e4993ef81f6ed54", - "source/transport_deps/pydantic/v1/annotated_types.py": "ba4d8d000c6a88d10b2a388787287129a20e87c1759585bf2f3ad6dd7ee86417", - "source/transport_deps/pydantic/v1/class_validators.py": "50b39a21481850306c1cbec411511aadc33e52e6ca52082837c8526c3a27b051", - "source/transport_deps/pydantic/v1/color.py": "8990012d8a7a395a28d801643fd229ae2ff049cebe2a496ef18ba149aaed7798", - "source/transport_deps/pydantic/v1/config.py": "6ba3f459eafdc7871bc0a5bb5eff29a1252a33858ff912d6c17e9832962af400", - "source/transport_deps/pydantic/v1/dataclasses.py": "efce1caaf2276f020f5abf6eb1fa57ddc87bcf8b77276b532ba374ebbff0935a", - "source/transport_deps/pydantic/v1/datetime_parse.py": "e10cb5910a6adeb3556497881de48f0e9b92d81be1a7528fb73246d71bbe1f4d", - "source/transport_deps/pydantic/v1/decorator.py": "cda6b1c71a163c29bcd7c0f56ecd3285aa518d79b7d95f06d191d609d335b970", - "source/transport_deps/pydantic/v1/env_settings.py": "03d557c2d465d36018fa31f40b4a2ecb954dc377e2e85fe9933b870e380000e3", - "source/transport_deps/pydantic/v1/error_wrappers.py": "ebadb931fc3daa40b63708ad07f2450167bc07e5efeb3054eeb2fd936f2d7f2a", - "source/transport_deps/pydantic/v1/errors.py": "988c0f103e6f18ce50e6fe02e19d493e5753447fa89af132947ea4b0c84e98fc", - "source/transport_deps/pydantic/v1/fields.py": "56a5890ab894362132a6d5eba03549e74d49a550347a7d9500d724b2a5cbd9bf", - "source/transport_deps/pydantic/v1/generics.py": "5730bd61457e11b3e94376807e4d5c3457a3efdfc8cf39e443b5ab9934d94bd1", - "source/transport_deps/pydantic/v1/json.py": "590e47cbf848a5f751dd84bc93a37613a28c273b1d6c18bf95d58e3c9695f353", - "source/transport_deps/pydantic/v1/main.py": "cee36974de50d15d301b65144cab741d4cb75c9e0e02f3d26437625d8f85233b", - "source/transport_deps/pydantic/v1/mypy.py": "0a5f1745f0a621c544de3e40114e760bc88387c95c5fffc3de1cf68c85b1300b", - "source/transport_deps/pydantic/v1/networks.py": "1d836d2807ce98e9ca269b0383583a488923f563e153ffa2f25e5ed89281a46e", - "source/transport_deps/pydantic/v1/parse.py": "049b5daa2651b5abfd55114298ec6863e2889909a33f2f80fcda288e21546716", - "source/transport_deps/pydantic/v1/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/v1/schema.py": "6aa06e03ef9cabc8005648a6e4124f140487cce67c745b66157fdf346afa8a9e", - "source/transport_deps/pydantic/v1/tools.py": "d650dd5c79348cbe6e3f7bb9442600bd402518296000efb8e6592af63edfc810", - "source/transport_deps/pydantic/v1/types.py": "07397e45c9e2b4f0479eac308fd8afec98c7b8dd46a67587db874a905de5f5ef", - "source/transport_deps/pydantic/v1/typing.py": "ec67418356131d42d4f35b6107ff5c8d13437d97e7e248685fb9c6b70fe47821", - "source/transport_deps/pydantic/v1/utils.py": "339151c9f3546f50369a4f6568680255d7c71dbdc0b5082b8cee6a7f205fe310", - "source/transport_deps/pydantic/v1/validators.py": "9725249f5316847c65097e597c48058ff0801e88e888f71a41e31d10cf57be25", - "source/transport_deps/pydantic/v1/version.py": "1d79d75bed5b316e6a2a196be5180e10fa21ad90c20d2bb2cbcfa08bc182819a", - "source/transport_deps/pydantic/validate_call_decorator.py": "f23a8b9605d38d6123e1d5c3834c08dc41902a46f42670ac2ff2525236d4e528", - "source/transport_deps/pydantic/validators.py": "a706c825755bd42576980138c3f1067cd8fb0f0cec29a5b0fed4cbe9cbe24eeb", - "source/transport_deps/pydantic/version.py": "4e6124eaa03e540d4f56c737f5b66584f010032bda71de812b3c57007c96d395", - "source/transport_deps/pydantic/warnings.py": "5aed551b3aef159c384fac8220a1e31fb2d263ae878dbb720856e7e6e5a8309e", - "source/transport_deps/pydantic_core-2.41.4.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/pydantic_core-2.41.4.dist-info/METADATA": "3434fb886fe254ed414541f305a86e43ff575093f8f6d15c89bd11144ed8e131", - "source/transport_deps/pydantic_core-2.41.4.dist-info/RECORD": "7f3a82de0054511dbd2f7309c5e5b6ddb3d96c6230bfa83fd73bbdffc51cd0f1", - "source/transport_deps/pydantic_core-2.41.4.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic_core-2.41.4.dist-info/WHEEL": "7f32b0ec3e21425972f904759f2efc26a495ce223c174ce187bb87ac82f5240a", - "source/transport_deps/pydantic_core-2.41.4.dist-info/licenses/LICENSE": "2afdd30d54b4d62b6f488a6bcc1546e84ec5061f13f4209c03d012348783795a", - "source/transport_deps/pydantic_core/__init__.py": "9cad6292b75254af606a970aae9bff6e5ae9f0b08089cd63acafa391b60794d2", - "source/transport_deps/pydantic_core/_pydantic_core.cpython-310-x86_64-linux-gnu.so": "cd9bb47485cdffc363010507a214155966ca860b0b93bda39583492c6764e631", - "source/transport_deps/pydantic_core/_pydantic_core.pyi": "3ea1dbd4182f08cf9341f24b3c5cf7db77a05b3535ffe9e23525127a3617a11f", - "source/transport_deps/pydantic_core/core_schema.py": "bbdc850b72d685133a0e250fed263b33691dcdf3813492f3c0e31001e3d46005", - "source/transport_deps/pydantic_core/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection-0.4.4.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/typing_inspection-0.4.4.dist-info/METADATA": "bad3d9e6342ef6750cf5128ec942327b8bebdce0b6e4d6f67cb15b27ae5118da", - "source/transport_deps/typing_inspection-0.4.4.dist-info/RECORD": "cf5e3948866214f2e9ab0c1d43c157e9f9c14f59cf8442936c6cb97d5f2b6a5d", - "source/transport_deps/typing_inspection-0.4.4.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection-0.4.4.dist-info/WHEEL": "ccec20e2307acd7da453dd7437e70c6b08e2bc3ead3bc3445af135da37b56d59", - "source/transport_deps/typing_inspection-0.4.4.dist-info/licenses/LICENSE": "804b59b25f2c31bd278f9202a19ae49a3945aa2664387e2d0a128c7cacc61ec3", - "source/transport_deps/typing_inspection/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection/introspection.py": "5888c45bd627da692d9527699e3f549adf35651596b1656772310e12181b4396", - "source/transport_deps/typing_inspection/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection/typing_objects.py": "a778d6290d51581c9c9a23e0263af2a4604c76def5c4d40a7cd1a375b0046ff6", - "source/transport_deps/typing_inspection/typing_objects.pyi": "3bd24dd92d0270d31d64fd40abc1ef8693f5322aab9a78aeb3c5b62f992f84be", - "source/vpp2/src/vpp2/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/adaptive_mask/__init__.py": "a73f5515ffb77d323f9c324776e9c166d13817c470506cfd5db4ef0546cbbdda", - "source/vpp2/src/vpp2/adaptive_mask/audit.py": "c949909a2e60c3c4389c0221c79459961f2c4925baa07f7985774a52257a1d17", - "source/vpp2/src/vpp2/adaptive_mask/budget.py": "74e32285903dbf673ecadb6a60d917a990b9c6619beac9f926c1b3cbdae3887c", - "source/vpp2/src/vpp2/adaptive_mask/controller.py": "328f636201a845ebdc211340a9014a5076fa895e10cf9c2e1f91b96761a2514b", - "source/vpp2/src/vpp2/adaptive_mask/data.py": "e3b633fedaa503b101c80610cbed0933e9e245acf56a6c0692c4d99620faf84c", - "source/vpp2/src/vpp2/adaptive_mask/equivalence.py": "8658cb69d549fa0575570364fe3aa1e0b121fcf8b9965b17cd174d459dddf5ab", - "source/vpp2/src/vpp2/adaptive_mask/execution.py": "efec52c9b2eabf0300c72edea18f9cd4cc16a0889496793abb6a50161f2328ef", - "source/vpp2/src/vpp2/adaptive_mask/export.py": "0ce51e74787d28bbe9f4e73a3774297b424aa131fa78968d24154ff56db98b0f", - "source/vpp2/src/vpp2/adaptive_mask/feedback.py": "519fa4e6416723fc000754815a2f05d3415299ae35724f37bb806ebc22393d38", - "source/vpp2/src/vpp2/adaptive_mask/geometry.py": "f1ce4110c3a3a893f4f240c49e2ccc4e93215ac4ba9e447de8042f9b19afab98", - "source/vpp2/src/vpp2/adaptive_mask/hidden.py": "968560bd6dae0fce59bd28084091b10d559cf165c81764f6ad24b7492101810d", - "source/vpp2/src/vpp2/adaptive_mask/losses.py": "4a7dea6f87ef0fa38a7202d85d98d37460f8f4dc13ca5336f32b1da8b84a4322", - "source/vpp2/src/vpp2/adaptive_mask/masking.py": "31b595916410c60f772fff1ab63e92c854c8fd0d2261e6b865fd05ce2c61b9c6", - "source/vpp2/src/vpp2/adaptive_mask/monitor.py": "48b71f499dd5a0a79557eeb918f5fb1a641dc8654e5d412aa628ca9c57b5dcf8", - "source/vpp2/src/vpp2/adaptive_mask/physical.py": "f54e8b4fae8026cc89f296d74bf4cbea06fa4e126905b572a22c7d8226f0238c", - "source/vpp2/src/vpp2/adaptive_mask/preflight.py": "b646e7ca785afc87356e3e1184e48f535792ebafc84936450fc83bfd3f9f5ea8", - "source/vpp2/src/vpp2/adaptive_mask/priority.py": "68ccff1a384081f0c9a82e8f54ad2c720293f8500e7440a469b5e8fac1ee608a", - "source/vpp2/src/vpp2/adaptive_mask/quality.py": "c3b3a2264ca0b4773805f4485ebfe91bb4ab861e226ff4bd27bd667ab372b59b", - "source/vpp2/src/vpp2/adaptive_mask/quality_policy.py": "f100b7d4a412592777d936a6cf3c73a9f787cc4a62d5f1b8a369fed74acf897f", - "source/vpp2/src/vpp2/adaptive_mask/reliability.py": "306b41720154810bd972fe4d9c4c388e6967539d076ddbedd3a432ac62d13104", - "source/vpp2/src/vpp2/adaptive_mask/report.py": "f71401e09297daed8bbb72cb3af3b887e5fdf5ec282f47637fbb01392d280171", - "source/vpp2/src/vpp2/adaptive_mask/runtime.py": "ed74bfedd147389ea01f3be8c2979fa06c7152326ccc29ee347175690cb9c6cc", - "source/vpp2/src/vpp2/adaptive_mask/state.py": "5e8f95021eeb35511f5481e4e91ae687fe605f9e88d17b3b98d377cc967c17e1", - "source/vpp2/src/vpp2/adaptive_mask/train.py": "ad95349bfb242bcecd7ddf82fc58b31d63f2938a2101f9560bbc9e305f5f5b20", - "source/vpp2/src/vpp2/benchmark/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/benchmark/audit.py": "8587be371653c38b9926aa0ace006a244f270e0ef0020147a7bf5b0fc85d4538", - "source/vpp2/src/vpp2/benchmark/packed.py": "5047fd02f3fcc68e41f543fe83bc9202769a05794d898524d6d25e308f2b5125", - "source/vpp2/src/vpp2/benchmark/scheduler_io.py": "d6df06259549faed2da9f2888b540eac8e1ff2895c339eea58b4ea6a7e3b3cb0", - "source/vpp2/src/vpp2/checkpoint_compat.py": "462c5f93812483b5871633b200bc2ffecb9c201a2caf6b14f8f36dbe95fba50a", - "source/vpp2/src/vpp2/cli.py": "54c19a0f7e25b53bbf56ec13b0f537c9d7b81282e1e80575bddfb470172164e3", - "source/vpp2/src/vpp2/compact_kv/__init__.py": "f34f2f77f68399f45f6656b562a5c331f2504672dc145df368e086532191f766", - "source/vpp2/src/vpp2/compact_kv/blocks.py": "662c1f35055c2be2e2a14f2d92615d046f5e454879e34af39e3c7aec3af34098", - "source/vpp2/src/vpp2/compact_kv/checkpointing.py": "3c33c156e96f26ceb22eee61cfb8b18c3cb9560db0ab405cfd4c46efe5aba353", - "source/vpp2/src/vpp2/compact_kv/eval_prepare.py": "bdb33444056245e3cc773b0849b4db608b454cd24a7ac5b752f1ba26ff978865", - "source/vpp2/src/vpp2/compact_kv/export_check.py": "e6cba70b47027882a34d587aba0da5f9371128ec2db2282b91ad2d49e40065b9", - "source/vpp2/src/vpp2/compact_kv/gpu_check.py": "fedb6a9ab69b51080161ff2a4feae3f85262cc50f932f48e8decf04c1d147a20", - "source/vpp2/src/vpp2/compact_kv/losses.py": "914437ebf3ad91fd2cffa893a65ecb04ab01f2b337658a781a472feeb50c0a06", - "source/vpp2/src/vpp2/compact_kv/model.py": "332ebaebf543d40a34d188ebbe81055ec3e4bcff164bfe90d15aa6cef0748b8d", - "source/vpp2/src/vpp2/compact_kv/prepare.py": "7b01764cad0fafc0cc9441952b2e928048b0a43a6105dbd0eb64c349f4b9bf1f", - "source/vpp2/src/vpp2/compact_kv/provenance.py": "103e0f7100be56233aa86041ba9bc427ccb0db4fe045c4e6b8d3481ab6bb42da", - "source/vpp2/src/vpp2/compact_kv/reporting.py": "0b9ff602fc3425d1b9c122a77da3a426814e11c9cbdcb6b9a75a2a48130087a7", - "source/vpp2/src/vpp2/compact_kv/sampling.py": "2e8d82704f07853a7b487d5aaedef1b2f1fcfc5247e9100a56ed21d69262eae2", - "source/vpp2/src/vpp2/compact_kv/spec.py": "9bc920fc7d4398e424a0bde38ce97f87473aa417cf68b48e2c292a59491bc7d7", - "source/vpp2/src/vpp2/compact_kv/train.py": "a9e4410c5cde5df002d9808554538c29b77ed9e2d2bedc9ac5f8465eed70cc3b", - "source/vpp2/src/vpp2/compact_kv/validation.py": "73b62d02ce1d518cba7b9462e85c3c8d272ae9974e1161b1b6adea6f0040e2b5", - "source/vpp2/src/vpp2/convert_robodojo.py": "7ec2d6bfffbb4f5891ee33a4bf630cf27b17628506aa3cee1c46b3050027b290", - "source/vpp2/src/vpp2/critical_windows/__init__.py": "22721b77e25ec4874c4853d2f2991a14dff6aaa665da500f2830826b06545478", - "source/vpp2/src/vpp2/critical_windows/contracts.py": "ded4a239f7599785d74ff57ff892c5aa74f0280d6759460c93942e91f505d47a", - "source/vpp2/src/vpp2/critical_windows/coverage.py": "6c18bf995aacf413bbe4536eaeed92ab4b2f15f9eaaaa03a2730256ea7922ce4", - "source/vpp2/src/vpp2/critical_windows/inference.py": "df301bd187b27d20b6623febcb5e85815e1b7d4a1e9524a8a65bdf5904bf7232", - "source/vpp2/src/vpp2/critical_windows/metrics.py": "ae2bab145555d55696ef479758a5bae6780527fd3085a4f46d035b667ff32736", - "source/vpp2/src/vpp2/critical_windows/packets.py": "8f7d2c411407d95b1ff4d0e5b9055589f6114b1bb1020eeb7e1b106f330b853a", - "source/vpp2/src/vpp2/critical_windows/prepare_staged.py": "694cb5699de2d9f5ce1bc4667627b47d6bf0698715b4aad86907139859caffe5", - "source/vpp2/src/vpp2/critical_windows/reselect.py": "8d0e31ca1c17906d74de6439276e49ff7ea78abfc66fa556d8a306070b3dbf4c", - "source/vpp2/src/vpp2/critical_windows/score.py": "32daceb9a3fd957d9be75823b4d519629bc60a64d1da62f465e172cb1ec98d55", - "source/vpp2/src/vpp2/critical_windows/selection.py": "a7c35f6719d3308bfb738965d17544a15985c6d684bb47eac7272d6155d96786", - "source/vpp2/src/vpp2/critical_windows/staged_review.py": "d5cfb3f49ec5acc6914da98f5413d1549b2695e7c85c9aed9c0db83dee6be754", - "source/vpp2/src/vpp2/data.py": "8574e1ae3c6ca6e4b84633ee1815f2b3f2ea17c1e55f12fda0b00c5c5a6a7b53", - "source/vpp2/src/vpp2/datasets/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/dataset_utils.py": "e1a1471b0aa70917eaf699f85a9acf3ac70d9fb6eb9ebaf02d2bf2f218d6ab2f", - "source/vpp2/src/vpp2/datasets/lerobot/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/base_lerobot_dataset.py": "729fb3fd4ca531212eadb4a4e9c7e9f97ad34cca091d66380acd6b179f0c29c6", - "source/vpp2/src/vpp2/datasets/lerobot/constants.py": "11ac9260341e1560c5eb0dd7acb79ed63c74180b8ab4113c27622ff213db417f", - "source/vpp2/src/vpp2/datasets/lerobot/critical_phase_dataset.py": "bfe75bb9593ec646236777d90d9fa309fa0e1188db07e07a3be0810edbe3da56", - "source/vpp2/src/vpp2/datasets/lerobot/critical_phase_sampling.py": "266b0b7b023f014f4ccd935b6015b0a05b4659f372264fdefd997ea9692b244a", - "source/vpp2/src/vpp2/datasets/lerobot/episode_instruction.py": "74767839a813c7902861f4561101541c282b72e261df1fd28fe8d06c91231b69", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/__init__.py": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/__init__.py": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/compute_stats.py": "7d7daab219332b5abdfd5ec67ccaf3502e8eb583a17a4e482c3f3d4f7a691e89", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/utils.py": "4fdb4ac0653201e6743f2161c485213429948c1e1d5b068d03b4d97803254006", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/video_utils.py": "4f66c410ae6aa5a98acfc3320f3dd7b017d0285117054f14226f9e5d82395087", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/lerobot_dataset.py": "5659e992010bb6674ec50ab0d33b28a8e9dab0ecc895c199662af4c40fe56629", - "source/vpp2/src/vpp2/datasets/lerobot/processors/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/processors/base_processor.py": "d3327cbe398d77761df960014d41e70d349bb0fa42bca874333b9ee970222447", - "source/vpp2/src/vpp2/datasets/lerobot/processors/vpp2_processor.py": "43c5604cbfc315b7377316cb97c9a6f3322124404397abfd01c6c3d0090cd414", - "source/vpp2/src/vpp2/datasets/lerobot/robot_video_dataset.py": "8eabfbd649116b0b4d6c9704c0df34febbf8875f6ab863dd75f4107dbbcdef73", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/action_state_merger.py": "39fd44f254bd7fb71b9269d75d8f9b5a5bbbe167ea438dda92d40eda1d256734", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/image.py": "f494d262ce29770e959bdff60b997f7a07e5f00d10ef515eee7be813d1db038f", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/rotation.py": "feb59d26539be6cfdb86488f0c10c11488ed73901658bc657e67a755ddb9e67e", - "source/vpp2/src/vpp2/datasets/lerobot/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/utils/normalizer.py": "8207d813b698a91dfdbe6910a4aa1fe0e775a2a8edf5c05b2d7a42591e9f8adb", - "source/vpp2/src/vpp2/datasets/lerobot/utils/rotation.py": "8ea2c72565707f5979967a1abeb5edf1eaa2c3fec55a7b50e640de869fc9fbcf", - "source/vpp2/src/vpp2/datasets/lerobot/video_event_dataset.py": "c20d3f5e2bc05e1b7ed94ae38872883a976a179e09b7fa051e94f94e2836c02d", - "source/vpp2/src/vpp2/enhance_prompt.py": "f31b3190c24bad073c5e3121ded4f564232729566e8c1fcc3e76fe75b28faf45", - "source/vpp2/src/vpp2/evaluation.py": "9b76882149e3c3a8c417a0e23514af1bb305c01bf0b6d21fff1f70bc9843f55a", - "source/vpp2/src/vpp2/flexible_mask/__init__.py": "64bed1808976d1f3c708154c36a97288a75abc6463d49d7f0065cb8360a2fb16", - "source/vpp2/src/vpp2/flexible_mask/calibration_batch.py": "dc5d83fc9e2bb595b9e3aeb1923115ebb9345283290a7c3f95c79fdeef7d3e76", - "source/vpp2/src/vpp2/flexible_mask/checkpoint.py": "c8531727e2388ec3d7a9770a504ceda119afcf03d64b2462befcd45a48949f9d", - "source/vpp2/src/vpp2/flexible_mask/coefficient.py": "07a3cc8d8e6c8b60119b9f94ae85074da017b08158fa0a0912cc9051b6df8ef7", - "source/vpp2/src/vpp2/flexible_mask/config.py": "4e1e9b289e293145b4e895c8ef7347bc837d01c929e05fd5cbf65bdb3c20be5b", - "source/vpp2/src/vpp2/flexible_mask/continuation.py": "2016463b4efe01b5d0a9ee84f03c3d95ee16f8e24f230faa465598cc978da29b", - "source/vpp2/src/vpp2/flexible_mask/controller.py": "263f1c9091e0c4318aeefb61e91549ba905ff046a625e35e1b18c94da4b4668d", - "source/vpp2/src/vpp2/flexible_mask/data.py": "d245bafd6f04f33ae7cef7c01d5db876a1a2a1a138c4de8a139d3ea78095521c", - "source/vpp2/src/vpp2/flexible_mask/diagnose.py": "faa29a0fa57c66af3b2e817640fdedfddc998bf878357f484415b244555ae4a5", - "source/vpp2/src/vpp2/flexible_mask/export.py": "3064dfd82bb55a145c16c77bbe17244970d07d18e944b793f4b7368dbcede764", - "source/vpp2/src/vpp2/flexible_mask/gradient_probe.py": "6fe3f13540cb9d8dd20c0b6429268ca74625dfad1e41806412c0f980fac76509", - "source/vpp2/src/vpp2/flexible_mask/losses.py": "df264b71365885ea90329c0b0facc92db3d2eb6e04324ea90a4701a1cd457abf", - "source/vpp2/src/vpp2/flexible_mask/metrics.py": "e976dd066e4b5e7e7ae79db77b9d1be64d17c212c61d0bc113b87a048e8f2b6f", - "source/vpp2/src/vpp2/flexible_mask/performance.py": "95b3977fd739cc98f7de94b14fb490a7c132021e742e7179dc5b5dddd6557c68", - "source/vpp2/src/vpp2/flexible_mask/preflight.py": "f794b997a492911c4d77656310c89d3b85e54983b3b889ba9904be64fb961e43", - "source/vpp2/src/vpp2/flexible_mask/prepare.py": "d6cf82e27555ecc13973727f4b71ce7e40558fef7d95805665fc7e458a42fad4", - "source/vpp2/src/vpp2/flexible_mask/pressure.py": "6cf74edcf3625fce9eec689d70841c6c1481f7c1abd87e5bf70bb38eb34632a2", - "source/vpp2/src/vpp2/flexible_mask/recover.py": "418b2d5ecdd08b08686b2a07bbeb0f969471eb73c04ac6952dcfbcda3b123f30", - "source/vpp2/src/vpp2/flexible_mask/recovery_best.py": "917d924c5708584a0192050a6d8210809e905938aaf877dd81cff3be287ea289", - "source/vpp2/src/vpp2/flexible_mask/recovery_checkpointing.py": "6f6a61c2ee7076c6b0977d1acb489fee7df04322d7f6b13bee9bb8229be319df", - "source/vpp2/src/vpp2/flexible_mask/recovery_export.py": "c50433aa1b7e528fb23c514dddb5b9197f44c662829838ecda106980ab0dd54d", - "source/vpp2/src/vpp2/flexible_mask/recovery_handoff.py": "aa590f707738e4b7c7250f901e29795c7441430f961bfa764437cf34bdc514b1", - "source/vpp2/src/vpp2/flexible_mask/recovery_kv_decay.py": "bf83761798deea4f89c32d14f43bbfb0f16f751b3230962456c073b843dcd08a", - "source/vpp2/src/vpp2/flexible_mask/recovery_subset.py": "7f7154cab6d910b747a0189742ee625983d08f13de50ca60bd4154f61df2b0d3", - "source/vpp2/src/vpp2/flexible_mask/report.py": "5b49283d472bace3a6ad56ce568af04f2c3d04add1a3920ad5006fe98374bce6", - "source/vpp2/src/vpp2/flexible_mask/rng.py": "01680b5b7e8a29ce92e96d756e12ceb80bb0e0ce1ebb642a14fa2a3a34776daf", - "source/vpp2/src/vpp2/flexible_mask/runtime.py": "373a3ecbc2ab6592a359daf6adfd8c958cb657f393e698ca2cb834f06750be4e", - "source/vpp2/src/vpp2/flexible_mask/select.py": "b547857bad61ae7ebd25b888fba73c2ca8f50a8eb31551ca54a909c75c8984be", - "source/vpp2/src/vpp2/flexible_mask/selection.py": "b9453c8735051b54ae7dc8610d2ca332eae8ca1a3e099aaadaf5ab75bfb0f8b0", - "source/vpp2/src/vpp2/flexible_mask/speed_review.py": "9d7099d1e173026274eb439169df2ad4812ec1d56a5f0b21242f972cd835ffd2", - "source/vpp2/src/vpp2/flexible_mask/throughput.py": "ce21bdfda51ae10d1470ac537d910d9f46f60a38910888808ffb3f5a80174d58", - "source/vpp2/src/vpp2/flexible_mask/train.py": "86625613bbc692722c6d2d24278a586f88ce0d76263a9daf92562a9002a8e037", - "source/vpp2/src/vpp2/flexible_mask/verify_export.py": "fb68e62b0da98e6f96cfa694bd061162bbeec1763e5787e057a1cbac5b2ce8f6", - "source/vpp2/src/vpp2/full_mask/__init__.py": "27c9ede277380e8d64586371f2a03334e68ab2d3bfe516d95e8cb96099827929", - "source/vpp2/src/vpp2/full_mask/calibration.py": "5d97e0385eba82252e12cc1562d1a77da2f2bce29332d758c1b5b6b84c5bb47a", - "source/vpp2/src/vpp2/full_mask/conditioning_cache.py": "07adf95165db4c3c1c469695d6b7b6fe4cf4fa9aff0a3d360f4229bffe9be17e", - "source/vpp2/src/vpp2/full_mask/controller.py": "0e6a969b89a4275352cc5a1e00bdfe8e3f8754a6ebd7f9266b92179cbe6bdd10", - "source/vpp2/src/vpp2/full_mask/cpu_contracts.py": "1a46a53a68d2d8a202c5f98d9a78f6d5f5041dada0c2239ed81e7916a28f0758", - "source/vpp2/src/vpp2/full_mask/curation.py": "4ffd7b0212bdbca1daf73ba7c24423523437012150fc044a43bbb33cce747545", - "source/vpp2/src/vpp2/full_mask/curation_v3.py": "9dba386d66869de0fba321ade79b2692d47f111ccfebc7f367194cef7a4b4e8c", - "source/vpp2/src/vpp2/full_mask/curation_v3_checks.py": "688ea4e7e44c4ecc1a3cd81cf682e2cbf611d9ad2d52744ba1308324da70febc", - "source/vpp2/src/vpp2/full_mask/curation_v3_features.py": "11011a089f1586045e2972cf267773aaf4602cf08c8b0e755bbf017ede1e6e43", - "source/vpp2/src/vpp2/full_mask/curation_v3_finalize.py": "a2a7812eb6c670686a7a4f4adff0a2c6363dbc078c71d948537f1c5fd546254f", - "source/vpp2/src/vpp2/full_mask/curation_v3_probe.py": "2755e9cabd0fe02e70cb8330c083af881a5e4696697d58cf7aa01bd00ef57f6d", - "source/vpp2/src/vpp2/full_mask/curation_v3_quality.py": "b9170398762112a23bb133dde53c6a49193c671c767647239c8b0ff15159530c", - "source/vpp2/src/vpp2/full_mask/data.py": "668a7c5f88a3ab17854eb0df240c974082f4aa64604cf11d3143b18337f73181", - "source/vpp2/src/vpp2/full_mask/distributed_smoke.py": "f699d4f330309f29a537fbabb61c60f61eb3322d7304605351dba3d2acb48e8e", - "source/vpp2/src/vpp2/full_mask/gpu_prepare.py": "92ce96dc4c1b6d6ebc22d99935472c15d86ba2a7c050e31640d2c32e08748ec5", - "source/vpp2/src/vpp2/full_mask/monitor.py": "2724a934d1f96444227c854f75ef84df6025c02485aa68eca34f3b28d509fe19", - "source/vpp2/src/vpp2/full_mask/native_monitor.py": "5572712a340f17692a669d2a4c41d1d691164925eb7bd06a56fff1dc2afd69fa", - "source/vpp2/src/vpp2/full_mask/panel.py": "2844b663340cbfb54f7622f3447a7831e2809050739a52dc076fd6ae32ed9e46", - "source/vpp2/src/vpp2/full_mask/review_decisions.py": "ed1184bcda7b5bb3fb11bb4262c4461c408e3d3ac0d23e80d2f8cafcf39c7e18", - "source/vpp2/src/vpp2/full_mask/review_report.py": "752ba9e8a3caf5b8cefa2d18e6fe14860e6f998f57c03af0940af0943b09a9b1", - "source/vpp2/src/vpp2/full_mask/runtime.py": "ae30b4d3fd3c888bef17672376dc3b34491cb296a1883959674ad465579efe7b", - "source/vpp2/src/vpp2/full_mask/search_quality.py": "ee3238d3366799e97d3f9a90c11f579ff8f51d5bd0642f52c37d9dcdbcf02e6e", - "source/vpp2/src/vpp2/full_mask/train.py": "f4127e6580522d4d9e5a50db10d201526e948d4d3479ddfbbc12e60ec61c7501", - "source/vpp2/src/vpp2/full_mask/verify_data.py": "72ee60ba2016d5f73eb2ccb01b666a5dac37138620efc4a79a20607df3658fb3", - "source/vpp2/src/vpp2/inference.py": "42b3057a85aaacbb87440bc740f13b09b9c82cd51d8c5af4e080716aabdcf38e", - "source/vpp2/src/vpp2/learned_width_kv/__init__.py": "0c59cb8424b6cd64508a005625e9edf63c84d24618a5d2caf6e6fa5d63cc859e", - "source/vpp2/src/vpp2/learned_width_kv/calibrate.py": "b89bbf103b49fd85f85f8c300a7868bb42ae7a13f29bd9878dbd5a11061ae51d", - "source/vpp2/src/vpp2/learned_width_kv/checkpointing.py": "7d30e46b95d91df8aff088346ae75809958622b3a8e8d953db4f30adfbaebadd", - "source/vpp2/src/vpp2/learned_width_kv/common.py": "52dff98c6317b34df2a13313a641998acf4f9e18ac31ea4e8e25227afa14620d", - "source/vpp2/src/vpp2/learned_width_kv/controller.py": "7b5a8793a540e1e7464185229189f4f1f1acadcd7cf3c2bf477bda5de7d18787", - "source/vpp2/src/vpp2/learned_width_kv/data_scope.py": "0ddde6805f646afbf5f5966c53530f829becd083802f0e0a8697dc1004e2003e", - "source/vpp2/src/vpp2/learned_width_kv/distributed_check.py": "f89f153a20730a6bc3c70133479f34918d30c5a48775bb3f6c14bb25701801ce", - "source/vpp2/src/vpp2/learned_width_kv/gradient_probe.py": "3bed964f6488e95b386cc58058e7f28aff50c9a98dd526f3365891a9049a6fab", - "source/vpp2/src/vpp2/learned_width_kv/lifecycle.py": "798afa47ec5dcc8749982da2d7853eff184e450a32d51bcf70eb4578f2bb0b09", - "source/vpp2/src/vpp2/learned_width_kv/masking.py": "3272ea09271130dcb3cab6935f6bb7d61bda66b9982c3baabcd61ee0efd914a0", - "source/vpp2/src/vpp2/learned_width_kv/performance.py": "a2fd9597c51bf0cf5c435b48e8f57792df24d2723a6d7b6b841d6fa24f17ab2f", - "source/vpp2/src/vpp2/learned_width_kv/reliability.py": "f74399fb67427093b3e4c7df9749379f9291b7ac58bd6632db226b6e78fdbfd0", - "source/vpp2/src/vpp2/learned_width_kv/reporting.py": "f22c1d8806a5b7757bb6dd99b15153d0305b2eeb0790bb37763337690d642036", - "source/vpp2/src/vpp2/learned_width_kv/runtime.py": "513da1e06ba9509164f017e0b8dbf6b219d7e1cff82edb2d2fd8d2d7839e666f", - "source/vpp2/src/vpp2/learned_width_kv/train.py": "5813ebd4fefec6d3a8cead9e0c645d10734f5ec88c4d74a5742587f2eb4de6c3", - "source/vpp2/src/vpp2/learned_width_kv/validation.py": "d5594ce875c8011bff12d3c77083dca68878178ed022b8079761267d04a82386", - "source/vpp2/src/vpp2/learned_width_kv/verification.py": "1bc43d48ef0ec3056af614adf43ca0744d94b1e77fe970168fef87c7cf2e6fe8", - "source/vpp2/src/vpp2/libero/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/libero/action_model.py": "178fbe4cf02b9a2e133ef31389b6bb2f9baf0504bd0818a265b6bff32ebc3914", - "source/vpp2/src/vpp2/libero/cli.py": "fcf68a88e2db0a9b786c6199d9b719802fe4b84514741658b49e2b06e2473e45", - "source/vpp2/src/vpp2/libero/data.py": "19b699381e7d6fa769b5090c7125ae01b7584576e969468660ee65b1585ef5f1", - "source/vpp2/src/vpp2/libero/diagnostics.py": "9540e31dfd2def06bec942ffe73262278700a17a340e14cb5bd41a295706e147", - "source/vpp2/src/vpp2/libero/eval_helpers.py": "ac338d4ade195ceb3a87620d162befa9679e2d7ed3d91b09927e5d59d86d97f4", - "source/vpp2/src/vpp2/libero/eval_libero_single.py": "87e6b457dc412ef4fe5d01aa48b1a6d20a28dbce3152848042e2103769e4efef", - "source/vpp2/src/vpp2/libero/eval_libero_task_manifest.py": "f0c721a7ddc768edddc8b0e065a4d8aeec35e1a546c88deebd9097ad93f6227b", - "source/vpp2/src/vpp2/libero/evaluate.py": "24216f9814f8304e077d72ff8d8c778fd588239313b34cd7d23b960c8f924c67", - "source/vpp2/src/vpp2/libero/libero_utils.py": "c7cc23976c86eabcada4846d46345d3605fc2ce03929761646486be3901697d4", - "source/vpp2/src/vpp2/libero/prepare_pro.py": "0999050352d924c11d29b22f63e902162d8cfb23f94815c93c01295c11ed81ae", - "source/vpp2/src/vpp2/libero/pro_alias.py": "90b5c8c8061bc727a6e413a8746fcc98cbd06e1c7c4175fd223b45af4f10b700", - "source/vpp2/src/vpp2/libero/pro_runtime.py": "adf94ed64b032aaeb0d88391e7b653f88f67e76b9411419ece25faa31ccc1340", - "source/vpp2/src/vpp2/libero/protocols.py": "68225c95eeeee25032966a7f90c1ba18067c53225397f59a463d764030fd0d93", - "source/vpp2/src/vpp2/libero/runtime.py": "1e2e2900a604d33cbdf8774cfa33dcee1065f21dc0b59fcf30799b5098c1662a", - "source/vpp2/src/vpp2/libero/trainer.py": "ea29b4e000047a6b0c8aee3cb6f32df9187987a657924085dbafd9628315107b", - "source/vpp2/src/vpp2/libero/worker.py": "9df6350c4ab92dea70863c08f1bdcebd0d77574a3a2d8d7ac9899a5a825be6b0", - "source/vpp2/src/vpp2/models/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/action_dit.py": "9a654edd860ce77c1308923bd338c7f14d09f68686642531d7143c16b9f6f331", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/compact_channels.py": "6f7ad787624844970985117002ab809bd777f7474969daca121e7101381c6d0c", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/gradient.py": "594249b6eb931048e352fd3ffef9b1ac1db9e4fc74659e04216d6b823dd174f3", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/io.py": "1b68cf2f2fd674c7a59140f8632d4464044bffc2e9277ef5f9a975e7c699966a", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/loader.py": "b9180b9c9177af192e5cb92387b4a09bd0dbc08fb75a94e843b67d315c94e339", - "source/vpp2/src/vpp2/models/wan21_14b/mot.py": "cc14a909bfb181a441bc9d8d6de12f3c31d89f3dc3415031e34a5f8c21410019", - "source/vpp2/src/vpp2/models/wan21_14b/schedulers/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/schedulers/scheduler_continuous.py": "15de04574c1d8ccb794ca6560b1e501e5c83cc86104bb80f1eb3cc3b0324ffe0", - "source/vpp2/src/vpp2/models/wan21_14b/vpp2.py": "8c419af905a8ffa93d77c827a283b7aeff744f3a461c390783eef8a333c31756", - "source/vpp2/src/vpp2/models/wan21_14b/wan21.py": "01b45cc71f69a6914f7b286559317c8e8485d0b0fec93bb28ebc37c183c295f4", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_clip.py": "f65e44c9d1b7811d2996b3fa22e6fe4c2ac5e6edf1fc2c14251cf582bf8d1f05", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_dit.py": "0d1b5837ea923508c05394d56aaa465813e7b4f5aea3b31ceceae39b2de9b0f9", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_text_encoder.py": "902a1e46b21b5c48e166fe03defabb94b3773c6bbe836fc09b9a0d0894eb1f6e", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_vae.py": "33f7d804677b44a6f3ab334684017dcdb1e9dfb748279de76ad94a5bb71a7e51", - "source/vpp2/src/vpp2/policy.py": "2a7696cd73ccb99575bf901185cf578c3775945f61f6e67aeb2b4ec6bfc4e30b", - "source/vpp2/src/vpp2/preflight.py": "7a91e486675a4cdf38565e0f4b58e60a68bba7de5654cfff736b5df58f5c53a6", - "source/vpp2/src/vpp2/robodojo.py": "183db869a622ef17ee92c487949db2e22a7d1365558fe703bfb8dd8fef83e9c6", - "source/vpp2/src/vpp2/runtime.py": "e26885a3732f5fdac3d8381da870a1673d0c03354f02f9deee7fe779d645f8a7", - "source/vpp2/src/vpp2/trainer.py": "feaa0ac4ed94a376836eb60cfe6f52460392b11f7cafafec9c6d9f151f5b61f1", - "source/vpp2/src/vpp2/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/utils/conditioning.py": "43d43f0f3ca0add64498c3d64a3791513a53e3fce0ea53f77ef09580a86b7b2d", - "source/vpp2/src/vpp2/utils/fs.py": "69e6df236b43360428a613686c8f37c531c0d16a3a2c5b06a725c46b49d657c5", - "source/vpp2/src/vpp2/utils/logging_config.py": "1de4abf66d9d201b49e7bff48291643b9dc5ec9b6e7918ca73e1bd18887b1c43", - "source/vpp2/src/vpp2/utils/lr_continuation.py": "72ea9f2af52041db19aab681d7a99fdf6d87d5ed5486f2499383a211c6c1ab76", - "source/vpp2/src/vpp2/utils/misc.py": "7e42c330c24604e118f1878473dc804aa8a272944df502ef1414c05be4d5bba2", - "source/vpp2/src/vpp2/utils/pytorch_utils.py": "9b0ba19de9a64458b12a0fb24f0811f49d9e9fca5d8b815f5f5ecd3b7886fd63", - "source/vpp2/src/vpp2/utils/samplers.py": "4d3bd9b2d498f4ad8f2cf9765d60c4bf5368fa6fa2a7d42d0db6210f66899652", - "source/vpp2/src/vpp2/utils/training_profiler.py": "91f6d98577e63d85e474c738a9bc1901edc194bdf318b5387d527c31b6708832", - "source/vpp2/src/vpp2/utils/video_caption.py": "d9572deb3690aecb0f16c052016cedc5f94da8ce8f016b4dff1a4e358e18d5e5", - "source/vpp2/src/vpp2/utils/video_io.py": "9e9898b021a44e87aa1b4e6d13e3755a9869a2e27a7eb53c72a6802808d5bd80", - "source/vpp2/src/vpp2/utils/video_metrics.py": "1840a37685d686336c7326a2a3d4fbe048d1e8e7e431fb14519d360a8b7aaae8", - "source/vpp2/src/vpp2/video_training.py": "20f55bf8b0a7dba6422a1115be1c8adf31a0db6a9f53a8f6f53f5d970188bfb2", - "source/vpp2/src/vpp2/weight_resize.py": "269edd4b9d32a1c7f363ee082dde7ce57f2176190daab6d5bf4a1c98ab43f0b4", - "source/vpp2/src/vpp2/weights.py": "5dbdff347de1b57e30433efca6da28334d0263d27aaa9b2278d95614db1b8641", - "source/vpp2/src/vpp2/width_kv/__init__.py": "0183a7106da7e45223550a552db2905d6b59c2a4259f8c86cb98629b03e66b43", - "source/vpp2/src/vpp2/width_kv/calibrate.py": "93a06910cb23a9e1dbd961ee9ef9794d70aaaa6186b08483260c8215109598f5", - "source/vpp2/src/vpp2/width_kv/common.py": "45f5f7087f5f3dc067358838e3fc738698b796defecb2ea721545d275f767766", - "source/vpp2/src/vpp2/width_kv/diagnostics.py": "cf184ae58f5e1c5f4453774eee1e10c85931e618bbbf768ab42f649cf301f5f1", - "source/vpp2/src/vpp2/width_kv/reproducibility.py": "89c5377e1314dd6e8de7f67c4385d30f5bd91fa4a5742449f1c1ff8dd578f451", - "source/vpp2/src/vpp2/width_kv/scoring.py": "7644358d0b2d29d3b91515fcea56090dbd2a7a0dad2d5e5c88e8d585bff15533", - "source/vpp2/src/vpp2/width_kv/slicing.py": "856203c14e0b06d19585a96392d00a00703779ebdb9dbdc9ab1323d50daf8ba4" - }, - "suite": "memory", - "update": 1000, - "validation_gt_action_mse": 0.0005726480308242441, - "video_parameters": 12468409664 -} diff --git a/evaluation/open-protocol.json b/evaluation/open-protocol.json deleted file mode 100644 index d82958f15a029dd72001be805a329660aae81198..0000000000000000000000000000000000000000 --- a/evaluation/open-protocol.json +++ /dev/null @@ -1,706 +0,0 @@ -{ - "active_policies": [ - "vpp2" - ], - "caveat": "Same checkpoint55 policy/simulator code, benchmark layouts, seeds, r16 and new90/old10. Simulator physics are not claimed bitwise deterministic. Offline ranking used replan24 without ensemble.", - "checkpoint_files": { - "COMPLETE.json": { - "mtime_ns": 1793716093276368990, - "sha256": "eee062fbcb8c92a881117aa7f06b5cd039dfb9912d85571b59a20aa30837b0e1", - "size": 2491 - }, - "action.pt": { - "mtime_ns": 1793716074808787383, - "sha256": "9b04836abe5a30972e69ee84e5f5e39c09bf53dd45865551e1d04b42ead90ec3", - "size": 4057916577 - }, - "compact_architecture.json": { - "mtime_ns": 1793716074811787315, - "sha256": "a7f6696ab9a9beca785531c2402b81ccd1550745cb6e9ccaad67f658630f6b32", - "size": 6563270 - }, - "dataset_stats.json": { - "mtime_ns": 1793716074808787383, - "sha256": "2649d4e3ff3d6d400c9953b7c20c79541474f9c38a8a9916b9caacecd8578f16", - "size": 100256 - }, - "validation.json": { - "mtime_ns": 1793716074812787292, - "sha256": "9806ad2b0b58f879351da58eede46507a79433ec9e4eb8f37f415cf58f2ef70e", - "size": 88781 - }, - "video.pt": { - "mtime_ns": 1793716059522133613, - "sha256": "fb62db0b3a74a53aeab60f4b1acc8a5be47274f5c9db166684043521fe2a40bb", - "size": 24937214042 - } - }, - "checkpoint_receipt_sha256": "eee062fbcb8c92a881117aa7f06b5cd039dfb9912d85571b59a20aa30837b0e1", - "execution_order": "one report task at a time; eight shared GPU workers", - "fresh_policy_per_episode": true, - "fresh_simulator_per_episode": true, - "gpu_sharing": { - "minimum_free_gpu_mib": 61440, - "mode": "shared-shard", - "one_worker_per_assigned_gpu": true - }, - "id": "92558f946ce17044692364bcb3515da3925bcf3c646266c8dc9ce1f38771384e", - "inherited_results": false, - "input_hashes": { - "inputs/episodes.json": "3daaf3e86b2f7dacad8fbe063efc23aa06d805a5c50a60cac347395fec87f4a7", - "inputs/master-episodes.json": "3daaf3e86b2f7dacad8fbe063efc23aa06d805a5c50a60cac347395fec87f4a7", - "inputs/vpp2-policy.json": "6cd61ca72b51b0be68fbfee10bcb9c0556322daf8757a0ef03982b3f080d9708" - }, - "native_inference": { - "horizon": 32, - "replan": 16, - "seed": 1, - "shift": 1, - "steps": 10, - "temporal_ensemble": { - "enabled": true, - "new_weight": 0.9, - "old_weight": 0.1 - } - }, - "native_scoring": true, - "order": [ - "vpp2" - ], - "parent_evaluation": "/home/praveen/experiments/vpp2-recovery1000-950-precision-20261103/update_001000", - "parent_protocol": "266df4b5d9b8eac16145600a8c4f9223d15e03285d61473c3bbd8c43b694f211", - "primary_episodes": 400, - "repetitions": 1, - "schema": "checkpoint1000-followup-v1", - "scope": true, - "selection_manifest": "/data/praveen/vpp2-recovery1000-followup-20261104/inputs/open.json", - "selection_metric": "task_macro_ground_truth_native_action_mse", - "source_changes": [ - "native_eval/scope.py" - ], - "source_hashes": { - "control/simulator_recovery.py": "fcee066ec9e75ec081b0a955b136e2ab898cd1ee529a2c1e74a453c350c05367", - "native_eval/__init__.py": "2deca42c85edcf3d80dba72439ad95641937396e27e1149d77182cfc082267cd", - "native_eval/body_coverage.py": "50ce610f86584965281893ff2f98a78643c7e3207014212aad4c13fce4c8a782", - "native_eval/camera_group_cleanup.py": "8df69fdba913ec41ff7b1256ab1b43921a0b6fbef7ffbb6dacbf2adaba0f7843", - "native_eval/camera_lifecycle.py": "b0952d95d1da8a1bd3e9f544a2eb1eb0f516159b3442666c7acd9bbaee71687a", - "native_eval/check.py": "9587d7b200969ccb78ddf750dd3d8616d5e2245e29baa3a0d798e27a55bdaa5e", - "native_eval/compact_worker.py": "129a2e26a85e021f7a0282201dec976104a8e1ea1f0a67e6b75ce760257ee46e", - "native_eval/completion_integrity.py": "3b737f6dcf9ae9908b1a3602f66fda46c3b8399ee47b1c61f5c0fb9741031029", - "native_eval/criteria.py": "97ebc94d91c62d793e614f178d2d120df989faafb54881dd1d3f5d703df8bb76", - "native_eval/diagnostics.py": "53b0deb571984fd02ff65c400d5f3b9bc2754b8207ea8edf4e5017c3588ed3cd", - "native_eval/ensemble_check.py": "0bef52411b2ec2dd7e1ad21b8690b1f88ed229107b6e46b8dc43c34ca92a3572", - "native_eval/evidence.py": "cf7f769cfd838227b26101d7656ebcaede1b1d45a80785a32efb26c9befef0e9", - "native_eval/frame_epoch.py": "7b1d3b10f46d5acf82f6e983ecd5f8995310b2fef9fee04bfae168fda02e3efc", - "native_eval/hardware.py": "e30ed3359d91595d3053e24124445498a3f1be9d5c0d52f97e1e7d7d88268a5f", - "native_eval/hydra_frame.py": "c1aefee86396025b405e050597af7b67bb07c0dd1e65ea4a9be1ed78f8d99072", - "native_eval/particle_evidence.py": "378d667b2ab80176045e0bdcdbe3cb39adb612a356b8f6b81d13ae531bde711f", - "native_eval/policy.py": "e1cebbfb03c137bd4bf9f054c69be74f9a7f1df5f7ca13c250e606c2346b55b0", - "native_eval/prepare.py": "486df6d062098ea07ac63c4d3be51b5f27baf524d0d004411275243783d02ac3", - "native_eval/process_lifetime.py": "7dd20bee91c51546b6da067b96012dc5d5a013e8389dafd567b72c1f742cf97d", - "native_eval/provenance.py": "8fc2da1678832be9e9b8b778ff0dd1604db5d464cf1a19ff6137acf6b83d3e11", - "native_eval/receipts.py": "9ba5800e6e7e796937992117569efe1b3d625900a8e2ebf7955940a4e8cc81e0", - "native_eval/replay_receipts.py": "1c60f9bddccf7245e32df97b9e90749bc3ddbe5d65f37ed2d40ba339b458017e", - "native_eval/replay_server.py": "1c2c19bae8d1cd3ff564f1775540718c33293663d30161ea7bd293b8f322cab3", - "native_eval/report.py": "9d9f0ddc794d2af2ad6e349f991450592a6fe98db292e1ac3ae4fcadea961fc4", - "native_eval/repro.py": "f0e4ecd0ba009774105cebeba31f49a70f34c4f88f11855c939368027789a928", - "native_eval/reset_coverage.py": "3c6a414878c4cc2ef4114170356db0a6b2193b03ce5c3b4f6293c10c7d3138b0", - "native_eval/run.py": "23d2d58fe1160a03bdcf9591b5d5fae671d21832008cc4958ac58e060b88caa1", - "native_eval/run_one.py": "dddeea1abb269293bd08c3f5a69ea0a668620b18d07154ca1c0740a0bb213b99", - "native_eval/scope.py": "0f2738c8fb3c682eafed843eebc5b9101eedfbbec64fe85b03575347ece0a530", - "native_eval/simulator.py": "d40972be52b7544f62653114217e213d19d4b386bf2991abfbbbc618ab09cf83", - "native_eval/status.py": "b49d03681dbc28b80f39f4d6163c3a6e7c5a1ca62f1f0ef502c77dfbf149ca02", - "native_eval/topology.py": "062e9246890ad1f2e8bb8b64b3bbe6598f9dce6fcc33ec3eaa106f3cbc0f0ae5", - "native_eval/transport.py": "eb6cc295d064a142372dd51859e91233f61f1ad2c8ac8bf3880739f3fe4abec4", - "native_eval/vpp2_pilot.py": "571ca3eeba11fbf2afd4a4058629a280bc0ad4bd3eecca178ddde4aa543bd8de", - "source/simulator/LICENSE": "7794bb06af8fe5485ca912454ad1665ccd7846c45f9c2b1258658e480948cdbe", - "source/simulator/XPolicyLab/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", - "source/simulator/XPolicyLab/XPolicyLab.py": "a3909558697b73479f8baee03e15b4d74060a7c9ac2f31fcbc6cd659e7364862", - "source/simulator/XPolicyLab/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/client_server/__init__.py": "093e47e707f4a5598b0159b5ee371cd9a918b802c70a6e66154a18e9ef8fc5db", - "source/simulator/XPolicyLab/client_server/ws/__init__.py": "79905987a12ebf318dc0b2b9ec6f375d9b4561bac29d6c27d04e318d8f6e00b3", - "source/simulator/XPolicyLab/client_server/ws/__main__.py": "ee1c5807dcdf1c8f6721c5447463eb51babdb0f9ffbd91d1e7343834ca4aa19a", - "source/simulator/XPolicyLab/client_server/ws/model_client.py": "4d6e225ae5f577d862366350dca8742e91dd9527d6e76b8b2a6d48c991212d67", - "source/simulator/XPolicyLab/client_server/ws/model_server.py": "4988823b436cd05e6a4d8b13012cc30c7ffd57711b72497b1223a6b10dc0c043", - "source/simulator/XPolicyLab/client_server/ws/protocol/__init__.py": "19aeae375e94e58d437d789d0aff07b232c13f375235384d784984631d25d5d9", - "source/simulator/XPolicyLab/client_server/ws/protocol/client.py": "b309f58b1bddd99e56578026b61a15e6cfdc07e843e8a082bfd291d0e853ce5a", - "source/simulator/XPolicyLab/client_server/ws/protocol/codec.py": "8a97ef7e102fd954c266352d81eaceef0f1b0f5504571c03037683efe387865a", - "source/simulator/XPolicyLab/client_server/ws/protocol/exceptions.py": "73161f4cdcc7ffc8a87cec94f5459bfcb9113076be272d6cb2a3ff8d69e0c6ce", - "source/simulator/XPolicyLab/client_server/ws/protocol/keepalive.py": "7f6b9e636eefcd6c80a4b62e404a6f89e2f7e1a3b6008500312a972d6990a21d", - "source/simulator/XPolicyLab/client_server/ws/protocol/messages.py": "d05c8cbc20e0cbe1502551864907f25897035993f920748c9290c944c959eab7", - "source/simulator/XPolicyLab/client_server/ws/protocol/schemas.py": "f1ca82eafa8dcad6d968508adb51c25342b291f7b1c553fff305c381a6098bd0", - "source/simulator/XPolicyLab/model_template.py": "4f8d1eeb8073aa7ae6093abf0f395cd5fef70ff4a4bd1fa6b2d83b356a90754a", - "source/simulator/XPolicyLab/policy/VPP2/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/policy/VPP2/deploy.py": "ab94a8569e6168ab7cde6660890035e11b34961ff2648854a7b61d188c555b6e", - "source/simulator/XPolicyLab/policy/VPP2/deploy.yml": "d2c3f06eb2ffa2d1866767dc20db8d60e542fc2418dbc4cf86d4a0f86f944c5e", - "source/simulator/XPolicyLab/policy/VPP2/model.py": "699acc0c459c5997db4e3155e2b1b7eb64bf750552436074a369c4eb6e9ffef9", - "source/simulator/XPolicyLab/policy/VPP2/temporal_ensemble.py": "42be4b09c56377f4686b2e722de760fa3bafd1c6b92605ada269d94e19efc95e", - "source/simulator/XPolicyLab/policy/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/policy/internw0/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/policy/internw0/deploy.py": "42dc75140935046dfe83f19b3834bd7cf8372e1bdbe51f598b1f91b8d557b7fb", - "source/simulator/XPolicyLab/policy/internw0/deploy.yml": "e59de6edeee891d2aa24902ae9034e9c10889fb20116bc9263f30d773a4b0d10", - "source/simulator/XPolicyLab/utils/get_free_port.sh": "f45bcb327b45c91367e3e5cdff72d3a42bfb7a09f50e4774701637c4c23fc1a4", - "source/simulator/XPolicyLab/utils/load_file.py": "488590d76084f419a36c2fb3e658eeb240ae554678899e9f2ce0cc10da5c4b57", - "source/simulator/XPolicyLab/utils/process_data.py": "e044e627eb2677907e9227eda8458c857208913bd484c5e922b53025010eef0b", - "source/simulator/XPolicyLab/utils/robot/_robot_info.json": "8a5df36e750971003b484ad770a7a243e523e986d2977a4ecdbeecd4a07946bf", - "source/simulator/XPolicyLab/utils/wait_for_policy_server.sh": "f75a8360d83f2960f365dae77804c94a28aca332c2fbc62cdb4a39ae220374ad", - "source/simulator/env/camera_manager/camera_manager.py": "1a4250cb3bdc7305fe362a7c6b113f57e6f3e9e4983b69bd61e2c84e8e995471", - "source/simulator/env/camera_manager/capture/camera_view.py": "be9ec0d4df8a532c35adc7090fbd7d6a76c163f90e8dac30496ee4f875929869", - "source/simulator/env/camera_manager/capture/render_sync.py": "48d70e9a95f3445ae464ab7ea00a00c0d4829752eb55c4ce52ef73ab1f453cae", - "source/simulator/env/camera_manager/capture/tiled_capture_manager.py": "959b4d87d96e676bc279d01e7755557bb8c6e73920a75944259f72b7ac385f8b", - "source/simulator/env/description_manager/desc_manager.py": "bb566028b523a4cc27363cee2e526c2d3e008e671c9773d4f0b8401f58f0388e", - "source/simulator/env/environment/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/env/environment/base_env.py": "ade58ebc19c79bdbf720def30786a0c397b1c7d2141fb6a1bfd63c80f8a3db8e", - "source/simulator/env/environment/isaac/__init__.py": "123023ddc75a0f9b1139c7322bee64a27f0e756b6e84242f43a1481428596126", - "source/simulator/env/environment/isaac/direct_rl_env.py": "77958f14c465932697efed302c8ef13054f2ec61ee3a4bc5ad66d0390b71df77", - "source/simulator/env/environment/isaac/isaac_rl_env.py": "144af40adc2113751bc1bd72caadab145e918b316de53ef3e4e42358c01a1fbb", - "source/simulator/env/environment/task_env.py": "ac816cf26efabbb8ac4276d2a2a09fbd557e3db805514db0c3dd7ac22b58e931", - "source/simulator/env/global_configs.py": "e96f6141b42e635d69bba5b4727fb1fec54f8965431b3a70d95fe5dcd3d0ee45", - "source/simulator/env/observation_manager/obs_manager.py": "771d6cda443b591f3e7850b901a06b4e653a2feefcbabd23608042377fe9be4b", - "source/simulator/env/planner_manager/.gitignore": "bdcb46018aafd15f5c2d40adbbccbb06f2dec5b9ec4311cbf776075bdffd4156", - "source/simulator/env/planner_manager/curobo_planner.py": "3cd830c002901959409ef6f64d54106d8106b48471b266409abc2199f3cb33e1", - "source/simulator/env/reward_manager/func_parser.py": "eb928a05c3eb6bae429a922c59e64272c2c3851c22d779143d45627e47b3a504", - "source/simulator/env/reward_manager/reward_manager.py": "bc56efd3aaa861b4b38960dc4fb7778a9b4da9cf131f815ac3170300dd233a41", - "source/simulator/env/robot_manager/.gitignore": "fd94daa58076711ae84376170199a63f66177471e587a76252399fe79eb231e2", - "source/simulator/env/robot_manager/control_manager.py": "81b7ecc3bed8248c16aa1517e686682d8e28ccfa9e550d45011b579a9219caab", - "source/simulator/env/robot_manager/frozen_robot_configs/franka.yml": "a3c944f8cdd07fc1a4eb54cb915f565763292acb24f9c4f725534271449f138c", - "source/simulator/env/robot_manager/frozen_robot_configs/x5.yml": "4df90d234656c34132ca573e69a55de5984270e103aac2ea8ab9956a913685b5", - "source/simulator/env/robot_manager/robot_class/franka.py": "dc49eb7738a8b58fb731595340c60a1ce32f52ef0dc63a3da84f9c25879af140", - "source/simulator/env/robot_manager/robot_class/x5.py": "4748cbe4d273449a48d09817767dec361f53f8e5cdc6e43368fbb8724141b654", - "source/simulator/env/robot_manager/robot_config/franka.py": "8bf57a07913573e74dad97aec6c50e58b67746fa90875915d74ce213856ce35a", - "source/simulator/env/robot_manager/robot_config/x5.py": "13d35630f833d1b0a1e3df0bea05f843e88aae1248b59af8aadfefa9cad29bbb", - "source/simulator/env/robot_manager/robot_manager.py": "19636ff932a0e2192341b57d8695d4102b870bd10c69c9343d712682fcc15082", - "source/simulator/env/scene_manager/layout_manager.py": "1b4c940200dd94a1d0300e103d168b9a823e0dc00ce7c921afe16e81d4e01ddc", - "source/simulator/env/scene_manager/objects/articulation.py": "0c542a1fc8ba7a61bf71b343745c71949c863291c1b167d4d7048fe2ef9ca4c4", - "source/simulator/env/scene_manager/objects/background.py": "04afea9b5c4e21a105ba3b08ce0e5b6692c082cf17ec1053fdffd5dba1c9511b", - "source/simulator/env/scene_manager/objects/dynamic.py": "7a4652c649f503681914e37c50c959c7ca8457918bb00628413f4288993f8ea7", - "source/simulator/env/scene_manager/objects/fluid.py": "12b183d4d798d6b7188fd42747ee1927747318c386a91135551d1fa0561c41b5", - "source/simulator/env/scene_manager/objects/garment.py": "85f38bd85b52da8dd2ce34ce3692d45848016a9f0f14ecf13114705d4a1ff46a", - "source/simulator/env/scene_manager/objects/geometry.py": "3100d61b152b894b3b59be0b3be1d2708f2d8f363ddb8311dabfb5411c731f3d", - "source/simulator/env/scene_manager/objects/ground.py": "12dd51addae6f5b7c6ad410b4ae7248231d216cf63513c564057d577a09a2972", - "source/simulator/env/scene_manager/objects/light.py": "ba8c8529c6608592d4d0eb9638820b70ae6b3c0cd616631bc6dabdb1c20e421a", - "source/simulator/env/scene_manager/objects/physics_material.py": "a1ac0dc9928e9253e644ceb9a604aed262514aaad0473aff303bfae448e76c29", - "source/simulator/env/scene_manager/objects/primitives.py": "848f4ab08d86307812ebaea18cc86a51638395f0e6ea194b412d45a699ced926", - "source/simulator/env/scene_manager/objects/rigid.py": "8260fd2d8350d6a354c8281685bc7e25531923327078752efe0538d9cd78450b", - "source/simulator/env/scene_manager/objects/room.py": "946aa1afc23ab9b8fd17394517a5f54605bbbc609582d0854fed2078b3b2d8ee", - "source/simulator/env/scene_manager/objects/table.py": "c0e71396b0d53a250f74c75490e91086d67962237400a49f886a13ec07875308", - "source/simulator/env/scene_manager/scene_manager.py": "37911b12601038c9ee9bd180cae7a4751ea649bcdaf1ba2628f22c65cfd7dc72", - "source/simulator/env/seed_manager/seed_manager.py": "99bcf5a90392c8927aa0dbd799c07e06b9b03befe8b8eabaa8744a3dc9605ba4", - "source/simulator/env/seeding.py": "3f88d2a635c528253439cb31a29e5b9d0f47f6aaef0e975d86d9a8cf174be26b", - "source/simulator/env_cfg/arx_x5.yml": "7691350159fdeca92fd1b0b2da36913464ccdea3f3251eefb0176aa51db0807f", - "source/simulator/env_cfg/camera/camera_config.yml": "c1752170da855e735beba27fddbf78dad16f2395e4ef8b24e9827a768e616a62", - "source/simulator/env_cfg/camera/template.py": "68287ed1daec3b8ed7f053bf97a4d48bbddeb8b5757b53e438ac3c4240a9e61b", - "source/simulator/env_cfg/robot/_robot_info.json": "4c9de628bc1572502fc48d876c023fc63e02760e1a11a2a5258dea30ffa330e8", - "source/simulator/env_cfg/robot/dual_x5.yml": "4eefaccc75c5f83443b7bb85ef1de68ee7a3772e27af2b04a5e8d8769ab9baa1", - "source/simulator/env_cfg/robot/dual_x5_and_franka_competition.yml": "ec893f9fde577d0d1209e7dcb85ec2dd74288b636d0c68316cb07bc817b743ab", - "source/simulator/env_cfg/scene/conveyor.yml": "c1dfd27faf978f90dfc4825cd83bd203823547c46793f4f9201ce9f4b43beee7", - "source/simulator/env_cfg/scene/default.yml": "729df024b9707a55449da94f980c1ca116035e09a1284e2fe071f1b38efd061a", - "source/simulator/env_cfg/sim/sim_config.yml": "e442ede1c3d90fcfb50b9461c854d31b22dad9bfbb23397db228b27a6a486963", - "source/simulator/scripts/eval_policy.sh": "786966648496b7b68aad81e000a3f92910302eb391dbd07fec0a2dc91107956e", - "source/simulator/scripts/internal/summarize_result.py": "9ec361af587e1788d83d3cf8670e05b817ff252d33c33829a6337dc16ae370d2", - "source/simulator/scripts/internal/task_inventory.py": "ec82252b0f87fa5a3dbec2f682c170b25cbe47fe181e431a81df2c4b0675084d", - "source/simulator/src/__init__.py": "75bfbedb80f2e1421ad787992d78c23349bc8738b9edef7a76a3af83c9586fd6", - "source/simulator/src/eval_client/eval_env.py": "c577b27dab3c87588940670da81bcff007cd64b687eee8e0cc6684e5e24966b1", - "source/simulator/src/eval_client/main.py": "de2216bb5df707e505f7e2f3d31702907a4c1ab65205c5ea35494021f168c80e", - "source/simulator/src/eval_client/physx_warning_monitor.py": "6a9f8e8d75b1031d2cf2feb6dd72d37370d85d5bd80c4bea798622e23ce8dae6", - "source/simulator/task/RoboDojo/config/_task.yml": "655a87cd59fa6272bf352d32deb8ade162737b49a9824e16d428fecf0803380b", - "source/simulator/task/RoboDojo/config/align_blocks.yml": "082c9d7a32968052b8ce954bee212c7ec0a96b756150701d4b531abdea59be2b", - "source/simulator/task/RoboDojo/config/arrange_largest_number.yml": "3bf6b7e286ea328fb1e4a994a8d30af9afb4b0b4dcd7ceafed43cc6160c9978f", - "source/simulator/task/RoboDojo/config/arrange_largest_number_random.yml": "145b26eb5c8ed7d084a4ddc6e21694c542f4a86150756188ea38dcf66e565603", - "source/simulator/task/RoboDojo/config/build_tower.yml": "e1bab8756bbc5664e3171e2389c060a79a3fbbf92a6af4ef555dcaf59fce275c", - "source/simulator/task/RoboDojo/config/classify_objects.yml": "80a754d2aedd6a89f58185eae36f5b2eb1a28250f40a67325f576fde34650384", - "source/simulator/task/RoboDojo/config/classify_objects_by_language.yml": "ac6c739ca82a64b53c799af79b44363db1a88246f76d867f8830729e5613507b", - "source/simulator/task/RoboDojo/config/cover_blocks.yml": "68f90c85fad2b152cf7853cf48888d09ce74bb27a692ff2feacd11160771c5a7", - "source/simulator/task/RoboDojo/config/deposit_coin.yml": "f547b12216fb9a5dfe2e7d7e882d89e1e53ee1a805c943ba09a3c2cdea8c17a3", - "source/simulator/task/RoboDojo/config/fasten_screws.yml": "5fbe4cf5b3ee2eafc2771137b13176f01617f8b2131f02503e676a7b62e2eabf", - "source/simulator/task/RoboDojo/config/fill_egg_holder.yml": "d79129278c9a5488d63bb1d3865f2c6b39f21f85957ec94ace091af9ae29e31f", - "source/simulator/task/RoboDojo/config/fill_pen_holder.yml": "ac72e5582495e8757c547997b317e2fe990370009527b1faa6bfbf4e1275537c", - "source/simulator/task/RoboDojo/config/fold_clothes.yml": "56447e3f592e0db388ebb7482ec758ecd5485ec81b9227c2dffe5390bd7d8c8e", - "source/simulator/task/RoboDojo/config/fold_clothes_random.yml": "eafe52c0abcc1889069383b008cbe95c6af2d18ceafb1aecc78f0fae3b491b04", - "source/simulator/task/RoboDojo/config/general_pickup.yml": "35de68117cb0ed596b30db1c62f1f9090f2cd1237242a03d5aaeb7186e791d93", - "source/simulator/task/RoboDojo/config/hang_mugs.yml": "0086d374d3f7e82abb85e43a17cdfa437e1ac645a0171fb47496c2b81427dce9", - "source/simulator/task/RoboDojo/config/hang_mugs_random.yml": "847dfd39059275a671b5beff0243bf7bbaeebd9e5c0612a1877cdf12b9007dc6", - "source/simulator/task/RoboDojo/config/imitate_sorting_sequence.yml": "d9e194d8c742288601c641ccb75052a67da46e536c0b06c7fb7311d9e2c61a42", - "source/simulator/task/RoboDojo/config/insert_key.yml": "c0b409d5c020e0ad706c378b6f63b39dfe7bed4682d978907c40e1cfa7623335", - "source/simulator/task/RoboDojo/config/insert_tubes.yml": "5c070e5c764a2ea93f8de0b52e6a664a23c717963fe09fe3af17918a4a1ee9ef", - "source/simulator/task/RoboDojo/config/make_kong.yml": "8a33c9e57b6e6c719c4800911c37272ba055ad0f4cda2f1de9d531ee2910351a", - "source/simulator/task/RoboDojo/config/make_toast.yml": "d190a26233db174538ff0052b4c2958a3b107f0ccc63d0fdfe28da4c7f5dc57b", - "source/simulator/task/RoboDojo/config/make_toast_random.yml": "ca2c1e55a0975c8b019523710e90131504d8d2afeb829be362e4d7927fe97b48", - "source/simulator/task/RoboDojo/config/match_and_pick_from_conveyor.yml": "0ae1c2537d9b1880748316928cfd7ba4c6421ecccfedb85c4c5395a7a86c5361", - "source/simulator/task/RoboDojo/config/organize_table.yml": "9ffa15dd279060d4f042285a2c53a341c7208e2f89a2f3dd36ee08b22aa453fa", - "source/simulator/task/RoboDojo/config/pack_objects_into_box.yml": "e232962b8394d08c04c5da14deb88d7b233afa00ab99af8001c084218951d7ca", - "source/simulator/task/RoboDojo/config/pack_objects_into_box_random.yml": "7ac7f034fcb169e33a7f0a03b2b77e54d0206ed715409359b579055a701196ef", - "source/simulator/task/RoboDojo/config/pick_from_conveyor_by_image.yml": "6b310b70a0ead9d09e7c221c6bbc952140a44b1d43034613bf02e954eebcf9dd", - "source/simulator/task/RoboDojo/config/play_Xylophone.yml": "28adedb0f03c49693af32cea37855f3f95ec3f76f031bfd571fb8bfffb2ec59c", - "source/simulator/task/RoboDojo/config/play_stacking_toy.yml": "a09afc106161064a2ea6a40882d717f7872bd4875309a97431d6863a9b7ffa1c", - "source/simulator/task/RoboDojo/config/play_tic_tac_toe.yml": "63f863a7fb81a040f65803c64f97c4e9577d4fe32cd0f92563bdc72d1aa336d2", - "source/simulator/task/RoboDojo/config/plug_in_charger.yml": "2046b47112049e038ecfa24a8c8044fb1db84f629a4a32eeb24822157d2d4dcb", - "source/simulator/task/RoboDojo/config/pour_balls_into_vase.yml": "084a707af61d24123912777b417fe0c0b230eb9653e686af42570791e924ff8b", - "source/simulator/task/RoboDojo/config/pour_by_language.yml": "efb2e3c3cb08dd6d2d2ae011b3e9a218b5f1f0a92f025b8e3b9e8abd7011c250", - "source/simulator/task/RoboDojo/config/pour_liquid_into_cup.yml": "32092b11667b3306579b04225303610c061585ace28531fa9996afc339c5a2ba", - "source/simulator/task/RoboDojo/config/pour_liquid_into_cup_random.yml": "1603feeab6f0f7dc9c4897e7f40f322b86112b6ab987dad0598f42ac1b35db69", - "source/simulator/task/RoboDojo/config/press_by_number.yml": "b784643495bcbca933f5a5fbc91b7dad3465fe888239b358d516977c78c38f63", - "source/simulator/task/RoboDojo/config/push_T.yml": "b55ea11002ff3e5dc63982ca8c1247fd7bee4f4a607f4d674e220b86cf120a25", - "source/simulator/task/RoboDojo/config/push_T_random.yml": "07609ec20cea40afa1d5720e895fb1b445411f261b2e5b6850e75d0f1930d32d", - "source/simulator/task/RoboDojo/config/put_bottles_into_dustbin.yml": "7eddf43e287b6e8aea686c6d686fb87e13ac1be1cb5aac16a8a2b0d2e9eb976e", - "source/simulator/task/RoboDojo/config/solve_equation.yml": "bdaad2ff1cc8b7ec6413a3715d49ea9cefd664e7e204544977832e18785f1e75", - "source/simulator/task/RoboDojo/config/sort_nesting_dolls_by_size.yml": "8927cb2ebb18449554d851e629bd7d568e12e46c5c3c636c8e7122f4fab1ed1f", - "source/simulator/task/RoboDojo/config/sort_nesting_dolls_by_size_random.yml": "f895d3ce7eaae99454706afccd09011f56d077998bcc1e95840116658b78f139", - "source/simulator/task/RoboDojo/config/stack_blocks.yml": "2802e88ebc3e2d3d05ce345d75e9ad6151a6690e4ef1e0021a5223d291a402d2", - "source/simulator/task/RoboDojo/config/stack_blocks_by_language.yml": "4fbfed4f7fc49120831087e709a8dbdfdb4504eb143196000d5790b54eb3bc40", - "source/simulator/task/RoboDojo/config/stack_blocks_random.yml": "e25d2a096601da30abdcfe1256a464eaf48c0c8f844eb2c737232626d49639d5", - "source/simulator/task/RoboDojo/config/stack_bowls.yml": "4e2aaa12b8b0f58ca801f1a93638c46d3b49ebad809c5a8011382ccda846dcb1", - "source/simulator/task/RoboDojo/config/stack_bowls_random.yml": "5c08af1bcc925d958d53de51e8ebd336006203f1bc81e4ef68f3719eadfabb49", - "source/simulator/task/RoboDojo/config/store_laptop_and_headphones.yml": "0fdaab803a9370a9e2d1fc8d86a5788daa3940c08fd6f767334f625642fca3e2", - "source/simulator/task/RoboDojo/config/store_laptop_and_headphones_random.yml": "93f0ca39bc8bb32df94e84a02f22ed4d7860f37cdc0b9dd17e44721445849576", - "source/simulator/task/RoboDojo/config/store_tools_in_toolbox.yml": "641c8ef92393bd986e408d26a84b1cfcdac27466a5ac5f0b3ebe4bb84430c527", - "source/simulator/task/RoboDojo/config/swap_T.yml": "1daf769911e13714b4aeabd208292931e32f4dd39968893152bb7bb477c46c9b", - "source/simulator/task/RoboDojo/config/swap_blocks.yml": "b6bb2a9df494719f26c6b1aab2e7576107ae76e2fbac8b63a5770f21e0e9f05f", - "source/simulator/task/RoboDojo/config/sweep_blocks.yml": "98aa25ac39be9d335c71b2b586bbba372789e9d61e652e1147152c87febbf1f5", - "source/simulator/task/RoboDojo/config/sweep_blocks_random.yml": "4ebff5e2cad07f958dc4b2793b86b1aa803c0809394818ee3752d300e58b6187", - "source/simulator/task/RoboDojo/task_registry.py": "11218028f772d9253ee709a7d85aa72d1e1fd87e4f8d33ee3787d6064438f9ab", - "source/simulator/task/RoboDojo/tasks/align_blocks.py": "c8597e96132cd7c9d30f3ae101f7bbe8ac28597b629599d75d442bbea4c6e74c", - "source/simulator/task/RoboDojo/tasks/arrange_largest_number.py": "277acd20ae4345dc71267762e588b7b0343387c71685183890f044a4808b7a20", - "source/simulator/task/RoboDojo/tasks/arrange_largest_number_random.py": "01757509978663bf7c0c95059e8ae18d45b8fe0953f6b54540e2bd6bf141182e", - "source/simulator/task/RoboDojo/tasks/build_tower.py": "814cf6ffb459871e5cf49f4e127903dbfbc30926f33db71de0b84a71ab235d6e", - "source/simulator/task/RoboDojo/tasks/classify_objects.py": "aef4333c088766375e21a928d53a9a93aaee285fecae41e22385acdc74dd11ac", - "source/simulator/task/RoboDojo/tasks/classify_objects_by_language.py": "242a8f048f487eb174ef246be78613bbb5f153549ee11a2650412718cf3b36c9", - "source/simulator/task/RoboDojo/tasks/cover_blocks.py": "9d14931b16842b93bea8abf9a07991a93a7e663b93c5fd1695108c8b922ab862", - "source/simulator/task/RoboDojo/tasks/deposit_coin.py": "f9868ef827ec17b8db6c4650cc5d9a9e593d20d00ee822e2212ce229ec01fb61", - "source/simulator/task/RoboDojo/tasks/fasten_screws.py": "2e187a28e33e44efb87baae6463b3ec35264ccd41e35c21a1be44f6361675185", - "source/simulator/task/RoboDojo/tasks/fill_egg_holder.py": "506dfb772f8882ae53966e3580affde19c3c0f11591c78cc5f5b1d997ba04f7e", - "source/simulator/task/RoboDojo/tasks/fill_pen_holder.py": "8706dce239487e078b21af0b95bcc5cd4eabdcdadcdcbc6400d6b138d982f1e6", - "source/simulator/task/RoboDojo/tasks/fold_clothes.py": "ecea9c287d0579605330168e6f36734704fb14a6b1e5dec82b6f2ee3a56ec20a", - "source/simulator/task/RoboDojo/tasks/fold_clothes_random.py": "9e40abe3f7201a8c13961edc1ca8075260c315584d3d6b93fa1df966d13d1e88", - "source/simulator/task/RoboDojo/tasks/general_pickup.py": "1a9eef7fe518f9d2c6805ad1a8f97c1045fa83726f84b9c63f67ffdfabbc40a7", - "source/simulator/task/RoboDojo/tasks/hang_mugs.py": "4bc6586bd87de030b9c580fea2a45e7977c3b6a4d75cf3c43b546d349d42e906", - "source/simulator/task/RoboDojo/tasks/hang_mugs_random.py": "ebfa4a95deb954aa7a9063a07fe366cb5ea1835d3f52342b10d531225dfeee92", - "source/simulator/task/RoboDojo/tasks/imitate_sorting_sequence.py": "18400cb3c5f5103492819df2dcdf05a77916106e8a503cb62b4ee6cdbaa9305b", - "source/simulator/task/RoboDojo/tasks/insert_key.py": "180978a2915744f0596fbca4ea0ad6dcb47dce005d43f06807249bc8b4d1a828", - "source/simulator/task/RoboDojo/tasks/insert_tubes.py": "9a68795ddbd0b816ffd7627e673390ecd83594c0e9d374d4e3abf3435ad439e1", - "source/simulator/task/RoboDojo/tasks/make_kong.py": "b9266689d65f9213b05219ad952344f9fd63be8892097ec0103af99791b245d5", - "source/simulator/task/RoboDojo/tasks/make_toast.py": "1047f484a73d1f92304393879b51f87e33d661b6ad7937198352fe37a0d3233d", - "source/simulator/task/RoboDojo/tasks/make_toast_random.py": "69fb879b89e98f7369971834eb6d1b95c5a65f5ffe978b2cffae0b12c6b756ca", - "source/simulator/task/RoboDojo/tasks/match_and_pick_from_conveyor.py": "53110b8a0c971bd3ae8878bfb7d0dcd9626bd9b610d4e7fc91772313b435a5c0", - "source/simulator/task/RoboDojo/tasks/organize_table.py": "aceb298e78f3f39e4cf9a9f4c5a4f747b2c55f1a6006de2065e110a05f4295d6", - "source/simulator/task/RoboDojo/tasks/pack_objects_into_box.py": "84a1cf1dd5e166f36291130f9d8cb5dfe4b3f4732a46674bef6374a7ea2d66be", - "source/simulator/task/RoboDojo/tasks/pack_objects_into_box_random.py": "4db259a1b97cdcc39ebc9794244fadc79d31c4ae64069c9b11a233356fcb655c", - "source/simulator/task/RoboDojo/tasks/pick_from_conveyor_by_image.py": "a0d29576d0aab8232d2fd3ebcc8c510e81c70b4cc04602a5be3e99ee2275e01d", - "source/simulator/task/RoboDojo/tasks/play_Xylophone.py": "b7a4b0bc0457bcf55d714ca1867476fc4aabc53084adfc78d3ff5d1437bf7847", - "source/simulator/task/RoboDojo/tasks/play_stacking_toy.py": "23361329ee7efe330da1f1c241415205bafed2b6c082a913659d868a80d338c3", - "source/simulator/task/RoboDojo/tasks/play_tic_tac_toe.py": "8f75ebfe55c997ad9bd3b342db46e843e87397db94356f31cadcbe0cb483bca7", - "source/simulator/task/RoboDojo/tasks/plug_in_charger.py": "aaa59ade46dc54f430e1148e3f6fae487970cd29eb2c07b5ff7b4045edb831b6", - "source/simulator/task/RoboDojo/tasks/pour_balls_into_vase.py": "eae388b93ec196c401f76bbab3b0119cb2164f90bece0225d4fb925d3f2b73ab", - "source/simulator/task/RoboDojo/tasks/pour_by_language.py": "f7a15a7fca2c649a7918d68960ede27e667f409a339b668dd9876db890724cfb", - "source/simulator/task/RoboDojo/tasks/pour_liquid_into_cup.py": "73f8c91b57c352fdc1e7ba3fe5354b3c10e4156d8e5ba777762ad0fa1aff5663", - "source/simulator/task/RoboDojo/tasks/pour_liquid_into_cup_random.py": "a1c4097b6e34b2c62885b3a9c7d2584a93d9e296dc41d311a80c2e6d541d53af", - "source/simulator/task/RoboDojo/tasks/press_by_number.py": "006f969087c00c417a63875a9de153f698c52d1f1ca0caf0aa16076aa15059c5", - "source/simulator/task/RoboDojo/tasks/push_T.py": "a01d753bc320ffbf492ccc29e5f7ab3b39e6c7d255cd25804db1934a30fa5b41", - "source/simulator/task/RoboDojo/tasks/push_T_random.py": "dc8d9c8e0d2e8dfffa2b7d433a8278c0eaf707cc4861b15035364c2e70061dab", - "source/simulator/task/RoboDojo/tasks/put_bottles_into_dustbin.py": "3ba6e19df0c5ff19ba961092f031ce14e91e72a9a4a5934eece6000a1ffa1c48", - "source/simulator/task/RoboDojo/tasks/solve_equation.py": "e287a2f36b82b28e8ca7824f63b1b723b02972ea6dfc115ff32b2882729751f7", - "source/simulator/task/RoboDojo/tasks/sort_nesting_dolls_by_size.py": "1838fa6b515bad3796895cb5c1883c6a42789b7dada5434765764600e70beb49", - "source/simulator/task/RoboDojo/tasks/sort_nesting_dolls_by_size_random.py": "b793ab5bd32bd2c10bd46874440904837f9c4e290e7508b06426e2e96425709a", - "source/simulator/task/RoboDojo/tasks/stack_blocks.py": "50bd388f9e47002966fbb0146742467a820295b8686e0f86379f0efbcfffcc1b", - "source/simulator/task/RoboDojo/tasks/stack_blocks_by_language.py": "36a83925f35c7a4caac5add328dd35cb1d346bad833d3064f455d88221e7a41e", - "source/simulator/task/RoboDojo/tasks/stack_blocks_random.py": "19d4e5cd693e068ad64de75cbcd24977ab8d39e22fa17362a391dcd733bc9bb5", - "source/simulator/task/RoboDojo/tasks/stack_bowls.py": "022c129ec3493183b1a26688a0402f5a00a1546ae011999e9c19f4c0029e2b7d", - "source/simulator/task/RoboDojo/tasks/stack_bowls_random.py": "a0e20469eb44a9ee98650d09386814c1df5264c68ec139f06aabf0c86f092514", - "source/simulator/task/RoboDojo/tasks/store_laptop_and_headphones.py": "2bee4e31f0594900629fe7f43266e16fecb310b152930ce51524507136809a92", - "source/simulator/task/RoboDojo/tasks/store_laptop_and_headphones_random.py": "58c3c5113054a379214d64ae406ed8dde99603cf684ce9cd8c7bcb72ed334382", - "source/simulator/task/RoboDojo/tasks/store_tools_in_toolbox.py": "2969fc3eb171560b3c0bcea62b9f38b8b35f3aecc9bcc7085c3b1cec365b48fc", - "source/simulator/task/RoboDojo/tasks/swap_T.py": "57fc289b3957caa454e1d8e005e3a57c973d6ab40121845c94799e61e4bfafdf", - "source/simulator/task/RoboDojo/tasks/swap_blocks.py": "08ed24ae9dff27f4e5c850161a02f62ce237859c096d9b06a853a7890e0ad4ed", - "source/simulator/task/RoboDojo/tasks/sweep_blocks.py": "65786217e199c1e2b26ec8e2c232bf98ecb304a20939d0908fe12bc41e990614", - "source/simulator/task/RoboDojo/tasks/sweep_blocks_random.py": "68b6127038322cf001d5f614060b8a1d96e64a49efddfcdcae91127d5c206bc5", - "source/simulator/utils/cluttered_generator.py": "f59cfcfed2b4cce5ae9aeaf3339c86d17e237874e3526bded3cb05136dbcbd50", - "source/simulator/utils/ensure_usd_path.py": "7c8e71cf91636e630b1b174098fe0b38740857daeaf207e2fae772c4727b11bf", - "source/simulator/utils/load_file.py": "ef3a6dc96aa1a7442cfd24f7be9671052a98d2f20783c3e71032332704132943", - "source/simulator/utils/path.py": "1d427c7cf33e748e01d0d083c9432d8be8b5c3a1f35c5fb0f6ebb0714098f1d1", - "source/simulator/utils/pipeline_utils.py": "d5d8da29e6ca84ab04323a2f79130f930572785b4399634e06a42834ed4087ae", - "source/simulator/utils/rotations.py": "8e814f79938bdb9e85f1c024825617cc08d281b61728c6410b23ef1bd852c340", - "source/simulator/utils/save_file.py": "6cff5950f73bf7a1ed404f804d6f08af712974f22c3955de4cdf142f211aaf00", - "source/simulator/utils/transformer.py": "73de4f5e1e0ff60d4f2e1aaf6104368e8f919269facb68b4fa0344d35bc08cbe", - "source/simulator/utils/usd_schema.py": "260d30b0ada2976136cad3e49e810b4409304eb4a2bc60bd9ed710864d3953ac", - "source/transport_deps/annotated_types-0.8.0.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/annotated_types-0.8.0.dist-info/METADATA": "614985b278f601b8ef863f82783b991cc3ada4b89f592eb71c7c48c5f2ef2298", - "source/transport_deps/annotated_types-0.8.0.dist-info/RECORD": "c7660eb223c8080f75c49690eaf0a9c9c00b6195511791b33b15e6b24e42edd7", - "source/transport_deps/annotated_types-0.8.0.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/annotated_types-0.8.0.dist-info/WHEEL": "942926c567d0b1273d09f20295879abd37507845f6b683eab9f87d808df91100", - "source/transport_deps/annotated_types-0.8.0.dist-info/licenses/LICENSE": "fe1049884b1a0d9342901e88e07f32925d24b3121d9972b6a6805fb9824b095d", - "source/transport_deps/annotated_types/__init__.py": "a7104a4d439b27a9f74fc0be236b9ba1b7831e6044026802a205abc1298a9bc8", - "source/transport_deps/annotated_types/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/annotated_types/test_cases.py": "d867472acb57b81ce97f78972828e6bc5669ca4db33fd1e6f645c6183846068e", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/AUTHORS.md": "5fe0446ddd6d1c70fa298747368582dc1d91c23d62c8fb7228595bc87fd53232", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/LICENSE.md": "509aa7af19ae2b5b1681b22b969627ee9e1fd15ff7ea5bf9f6e301fc44d5a6c2", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/METADATA": "b7ee8fa1bf018747082cd6d2fcaa14e5d0f5956b5477ab5810eb61ac4cc7bcf9", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/RECORD": "51331727bf8d9ff60510de5e7756c5dd72aba7663f3673e2827bf1ca5c09c7e3", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/WHEEL": "1d7faff7e9e8524c94a31c99d4f312b92edab94c43011e1505da182ea0f4c70b", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/top_level.txt": "19da698ad1490bdde1c7f18fabaceb2625aaf48b364d4dd7ad404c7e5eed75b9", - "source/transport_deps/msgpack_numpy.py": "0a45a7430e2cefa2e74235c4c6a34a22ead2fb57a7de8b2631f45df977701d63", - "source/transport_deps/pydantic-2.12.3.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/pydantic-2.12.3.dist-info/METADATA": "348336c208743aafeabfa5537c29f429035a3107b7a78bbb6a3bf7b3a42fe4aa", - "source/transport_deps/pydantic-2.12.3.dist-info/RECORD": "089c7ceb033486c4e6106749bb1a38c80b63905da74d842d067735e8b9c86e4d", - "source/transport_deps/pydantic-2.12.3.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic-2.12.3.dist-info/WHEEL": "aad0b0a12256807936d52d4a6f88a1773236ae527564a688bab4e3fe780e8724", - "source/transport_deps/pydantic-2.12.3.dist-info/licenses/LICENSE": "a9e186f3ca16b5eef84318e7a701721351a00cb7b8ae3a4394b67b49e3529ef3", - "source/transport_deps/pydantic/__init__.py": "e62127278c07bf5384cdd2903f368a69929f3b8a524000bae4e0eb608ebf4bc6", - "source/transport_deps/pydantic/_internal/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/_internal/_config.py": "4d66708377346d91e24f76e8479f9862a928b877308d175e9e6c861e87d5ec4d", - "source/transport_deps/pydantic/_internal/_core_metadata.py": "63f836b778bbba5b8afb05c266fcc97d114c3d4336dda0582df69ee05cc13f2d", - "source/transport_deps/pydantic/_internal/_core_utils.py": "d63aeee156c9d31eb747a76d55cb8e23e74a4130bf77f9529c9584050cc63444", - "source/transport_deps/pydantic/_internal/_dataclasses.py": "4e4d6611a7e169dd6457b2b9b4f5f9070c5649763b0be30ac1fd0e2c58089440", - "source/transport_deps/pydantic/_internal/_decorators.py": "3e7c80a0a4a0dc135b0954999f0ab0f67684835503b58bc34fd2e5ba280f88ef", - "source/transport_deps/pydantic/_internal/_decorators_v1.py": "b5f75f76940a6384765c23b0a876d97a840cbabe95362811adf86e757047c77f", - "source/transport_deps/pydantic/_internal/_discriminated_union.py": "68c9744914b24321df5b8fa49673131cdbf0491a2a1371f73d157fd39bd1b138", - "source/transport_deps/pydantic/_internal/_docs_extraction.py": "7f2ce74801e1e40ce88675d94ad5741ef1fe9d16dabcd1cfca0fa49f1f92fc41", - "source/transport_deps/pydantic/_internal/_fields.py": "6127c42aadb51608cb27a62a6172a1d1e104b399f130fbd0ea1a7da40f0dcdfc", - "source/transport_deps/pydantic/_internal/_forward_ref.py": "e67dd8efedc028b9fcfc54b761cecabad2e23d48725e602d90464e6859e89f03", - "source/transport_deps/pydantic/_internal/_generate_schema.py": "4d3e3dbf3633a87f74ad6aefe69b4da19823cceb11d0a3e54a4a8f545ae7ac1c", - "source/transport_deps/pydantic/_internal/_generics.py": "10baa34fa2cccd0cd600ad04079ffdaa47bf8806b3cf4390e20ba7a7fb8ab986", - "source/transport_deps/pydantic/_internal/_git.py": "2303e1dc33df6b65eadeb06e07d371f25b91d80d62ebd41d7937d659722e0958", - "source/transport_deps/pydantic/_internal/_import_utils.py": "4d18710f93ae63a094a2c8a805d05c254b34a26ec820e36265d60057bcd0f233", - "source/transport_deps/pydantic/_internal/_internal_dataclass.py": "fdb79d7355dbbaeca044688b66a914930c05a506a847584a2e5479d359f2c926", - "source/transport_deps/pydantic/_internal/_known_annotated_metadata.py": "25ceca4cd159a01ddffb489b3ff36024834e795bd8137ab73930500e354c9375", - "source/transport_deps/pydantic/_internal/_mock_val_ser.py": "c2645115206fa9f70b6c8e353ec165881e2ed80677989a597a21116c3df1293a", - "source/transport_deps/pydantic/_internal/_model_construction.py": "c24f9b3460c026f76e686be7d14d3ff33125d06111bb4b2126f37cfd97e461ac", - "source/transport_deps/pydantic/_internal/_namespace_utils.py": "865dfe4d102bf365368d3c8f3f7b7e42ab2f28b8abc6d90b7cd7eb37e7e9d31f", - "source/transport_deps/pydantic/_internal/_repr.py": "8d07e726ec83c50a5244d846dbd208f4f5fc7b836fdaa599ac4c3696a8a1dd41", - "source/transport_deps/pydantic/_internal/_schema_gather.py": "54b12fe754d811e78d0f6733b32ae626ad4c56726a4ce9a72da9fb546e3873c0", - "source/transport_deps/pydantic/_internal/_schema_generation_shared.py": "17fadb41bae4a289a0c6cb24747a4fd23509ed309f7b40400c0124aba089e273", - "source/transport_deps/pydantic/_internal/_serializers.py": "6085af4a6011e5f9db19258239076e5add72078650638d9e02bb9cf9e9eb6fa7", - "source/transport_deps/pydantic/_internal/_signature.py": "f049633c97b8a529daa6e8ab1b90e4040803d618201f1100cb314f1fef47d331", - "source/transport_deps/pydantic/_internal/_typing_extra.py": "755c481a1b0be37cda79b3423108752b94235fa2386bd3959cd01c2f6a486bfc", - "source/transport_deps/pydantic/_internal/_utils.py": "0878c7fb4ce75235fd479b144a33d3f23f3efbb3f37bcca36a27ac7130152e24", - "source/transport_deps/pydantic/_internal/_validate_call.py": "3df7559d2ce15ceac436d683a03c373c558f5580f95bf80d60f7bca77520e8b8", - "source/transport_deps/pydantic/_internal/_validators.py": "76fd1ad8d91ce33718aafdf51a1fd021dda571ff96d24429574a1237380475f8", - "source/transport_deps/pydantic/_migration.py": "545ef72d1094cf722b6f9c55b75de36f7340717567105e93d7e27438b7de6790", - "source/transport_deps/pydantic/alias_generators.py": "28cd67deee097cb48197552e620de1a181f35c90fecaf82b9eaf2ed5c73087f0", - "source/transport_deps/pydantic/aliases.py": "be1087ca84969d7f8427ec166f9aa3e31c91b2c8065a74d07f3429e06499f6e8", - "source/transport_deps/pydantic/annotated_handlers.py": "59fc854aac28108157061ed3ef73f270a9682350e25f8e465a2d3e24eb024786", - "source/transport_deps/pydantic/class_validators.py": "8bf5778fe3d87462d22e68ff20965e913463ba73bc488573f0b325aae3f23fb1", - "source/transport_deps/pydantic/color.py": "033a867d540717ddbf65cb4372e7b40cce324e9d8fead7a49304483535ab2c8a", - "source/transport_deps/pydantic/config.py": "b83676c4df89ec255035e9c269529c62c244cc83a92aa9607d0bc3774d35c229", - "source/transport_deps/pydantic/dataclasses.py": "dbf8cdfb9d595abbb222c7a78cb235f9585de2a206345ddeb9ef6319c769a872", - "source/transport_deps/pydantic/datetime_parse.py": "402f9680cc4caffc10fe6357512ec055ffb684b121befb0f6353d0ca148639d9", - "source/transport_deps/pydantic/decorator.py": "617fa3500a6ee4029a55628fa1a57e9fee25ed46d2ebd184b7d45ade1b3398a2", - "source/transport_deps/pydantic/deprecated/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/deprecated/class_validators.py": "10071a550339ce9db0066974c9b37ad827d07f226f0cbc7941df4f938fed6f85", - "source/transport_deps/pydantic/deprecated/config.py": "93f96c564e7ba5ac4b24e701b9e1f4edcbb53a012059d541c66ea57da0b70825", - "source/transport_deps/pydantic/deprecated/copy_internals.py": "1a177ebe431de446020a0c821ad3ca3b9f27a7d704281402eaa9017881052368", - "source/transport_deps/pydantic/deprecated/decorator.py": "4c19ba6c9ef026c36287ff16ab92330dcc0fdf69bdfef7f1b3de9d7ac2ee934d", - "source/transport_deps/pydantic/deprecated/json.py": "1e55821b7e5146bc72cee4d2e8b4d089907046198365699ea901fcacb5bac00f", - "source/transport_deps/pydantic/deprecated/parse.py": "1b377a6ff83ccc95dcb84ed046ae5a761c7f10c25a8577dca57085d1182baaa2", - "source/transport_deps/pydantic/deprecated/tools.py": "36b9bda054595a9f3e8e57ef3e02482c4b32c29e18cd90f9d972063c32f11dc2", - "source/transport_deps/pydantic/env_settings.py": "e881de79612a9543d152fdd5f805e217f5bdd5f836270fccdced25df827f7b20", - "source/transport_deps/pydantic/error_wrappers.py": "44aea6a804dcf72303f8a043f48252f47a4a0a9ad61ddf30a3ce019e6fb77d1f", - "source/transport_deps/pydantic/errors.py": "edcb41342b6de7b919171ef52ecd87f3a22e7d0011bf8c0f29ff0385db159f9c", - "source/transport_deps/pydantic/experimental/__init__.py": "413eeb298743b0289327d1848e6b107561d2730a4aaeb3641aaeafa8e34fe914", - "source/transport_deps/pydantic/experimental/arguments_schema.py": "1059e35ffba5a7eb4fc948d05f9a6642dba0d4e14bfc071cf1b70c6cb77e7d56", - "source/transport_deps/pydantic/experimental/missing_sentinel.py": "8507a382d174d3052e40c9e2f78dbd7af83e797c88c292af8ec0fca1fa9f8fec", - "source/transport_deps/pydantic/experimental/pipeline.py": "2affddbdc7b12ae99acdf44bd32ebd01ac9e03a1f7ed2ae6b19dd2525fe7d2a6", - "source/transport_deps/pydantic/fields.py": "5ae0c63af076d8a5aeb96ddf5e74b85af838a97fed769f17ec1ac09736b8b30f", - "source/transport_deps/pydantic/functional_serializers.py": "ac4cc7dfdd73ab2de8fdb5a4d9012ebf24a67103599b05e62502c2dd9185ed00", - "source/transport_deps/pydantic/functional_validators.py": "73ffbbc1e5a918d70e61f45f55416ed758ebc4c54c75f63f73ee22b2dc24f796", - "source/transport_deps/pydantic/generics.py": "d19a99f4ef5a9e7223ff7986051aa9b3886d7b2ddbe65575f9ddad5313cc3270", - "source/transport_deps/pydantic/json.py": "647f11908ee1e01cfece9f0e7530316c952856f72853e8e131d459d01fa4d317", - "source/transport_deps/pydantic/json_schema.py": "677786d509be226f8c417ebac28c963fd5b2c055272d116d68e0cbced559f937", - "source/transport_deps/pydantic/main.py": "efb414c13b5041d51a7e8af78abe70d820b5b34be2805b460747d2953bc5dbb2", - "source/transport_deps/pydantic/mypy.py": "a7a294d46c0f1dacc5ec4e6f26ad6e2dde2d1dde8313a6eb7b8fa6e4b9f6de6b", - "source/transport_deps/pydantic/networks.py": "2c995c70c79df7b1007a9293e8e98f23d73a8e1e62c1b063935fe35f5449c37d", - "source/transport_deps/pydantic/parse.py": "c2477cd9d82dbd6b43f3de54fc8e84d61b6a3251a1052604577f5cb8149ea370", - "source/transport_deps/pydantic/plugin/__init__.py": "6bb4f0dfae94e8ade496d08235963bea773db2cfbbb86190e344d769df4eca94", - "source/transport_deps/pydantic/plugin/_loader.py": "f502d79de2c49afca15e46bff63e0bae46e67b8a8fbfaa98a6196c8c5d8c1ac0", - "source/transport_deps/pydantic/plugin/_schema_validator.py": "41b9aab06df730199fb4d4369cd8ae376d8b85badec5403b8a90d5bf7274d815", - "source/transport_deps/pydantic/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/root_model.py": "06f98bb56e22d7574993e74b38cdeb97e8e725d40679e41314172610eabaa4c8", - "source/transport_deps/pydantic/schema.py": "56aaa3beafcb9daa5592779b51ddc1a7f275a768176599d94602f8f1b5441bba", - "source/transport_deps/pydantic/tools.py": "88742977c489e43093b4f5796ad015d3a4fcf5b8d268c15e659d8b5fd95ab196", - "source/transport_deps/pydantic/type_adapter.py": "553fbeca0e1adbbb21481cd61c13cacf8f777f7890f686dd9049218d92a513b4", - "source/transport_deps/pydantic/types.py": "9ea752f89d995ea4e1daa7b224ecc14c1b475b267961115ef2068c579f5df471", - "source/transport_deps/pydantic/typing.py": "3fb7de037e4cc1370bb11d6e2fb75bd12fa8c9d071a1b9976b9e580e80606a34", - "source/transport_deps/pydantic/utils.py": "d799d1d90a6a4c1165415e1336d4c8b4cc93271fdf6f257e80f988118d46a287", - "source/transport_deps/pydantic/v1/__init__.py": "14b43c212a7a3156517e39d2edf4389b51714311421764158a41380cafb83e11", - "source/transport_deps/pydantic/v1/_hypothesis_plugin.py": "e444b9c56bb0d45400b3298b7b3cbc4209d5cf466955f5378e4993ef81f6ed54", - "source/transport_deps/pydantic/v1/annotated_types.py": "ba4d8d000c6a88d10b2a388787287129a20e87c1759585bf2f3ad6dd7ee86417", - "source/transport_deps/pydantic/v1/class_validators.py": "50b39a21481850306c1cbec411511aadc33e52e6ca52082837c8526c3a27b051", - "source/transport_deps/pydantic/v1/color.py": "8990012d8a7a395a28d801643fd229ae2ff049cebe2a496ef18ba149aaed7798", - "source/transport_deps/pydantic/v1/config.py": "6ba3f459eafdc7871bc0a5bb5eff29a1252a33858ff912d6c17e9832962af400", - "source/transport_deps/pydantic/v1/dataclasses.py": "efce1caaf2276f020f5abf6eb1fa57ddc87bcf8b77276b532ba374ebbff0935a", - "source/transport_deps/pydantic/v1/datetime_parse.py": "e10cb5910a6adeb3556497881de48f0e9b92d81be1a7528fb73246d71bbe1f4d", - "source/transport_deps/pydantic/v1/decorator.py": "cda6b1c71a163c29bcd7c0f56ecd3285aa518d79b7d95f06d191d609d335b970", - "source/transport_deps/pydantic/v1/env_settings.py": "03d557c2d465d36018fa31f40b4a2ecb954dc377e2e85fe9933b870e380000e3", - "source/transport_deps/pydantic/v1/error_wrappers.py": "ebadb931fc3daa40b63708ad07f2450167bc07e5efeb3054eeb2fd936f2d7f2a", - "source/transport_deps/pydantic/v1/errors.py": "988c0f103e6f18ce50e6fe02e19d493e5753447fa89af132947ea4b0c84e98fc", - "source/transport_deps/pydantic/v1/fields.py": "56a5890ab894362132a6d5eba03549e74d49a550347a7d9500d724b2a5cbd9bf", - "source/transport_deps/pydantic/v1/generics.py": "5730bd61457e11b3e94376807e4d5c3457a3efdfc8cf39e443b5ab9934d94bd1", - "source/transport_deps/pydantic/v1/json.py": "590e47cbf848a5f751dd84bc93a37613a28c273b1d6c18bf95d58e3c9695f353", - "source/transport_deps/pydantic/v1/main.py": "cee36974de50d15d301b65144cab741d4cb75c9e0e02f3d26437625d8f85233b", - "source/transport_deps/pydantic/v1/mypy.py": "0a5f1745f0a621c544de3e40114e760bc88387c95c5fffc3de1cf68c85b1300b", - "source/transport_deps/pydantic/v1/networks.py": "1d836d2807ce98e9ca269b0383583a488923f563e153ffa2f25e5ed89281a46e", - "source/transport_deps/pydantic/v1/parse.py": "049b5daa2651b5abfd55114298ec6863e2889909a33f2f80fcda288e21546716", - "source/transport_deps/pydantic/v1/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/v1/schema.py": "6aa06e03ef9cabc8005648a6e4124f140487cce67c745b66157fdf346afa8a9e", - "source/transport_deps/pydantic/v1/tools.py": "d650dd5c79348cbe6e3f7bb9442600bd402518296000efb8e6592af63edfc810", - "source/transport_deps/pydantic/v1/types.py": "07397e45c9e2b4f0479eac308fd8afec98c7b8dd46a67587db874a905de5f5ef", - "source/transport_deps/pydantic/v1/typing.py": "ec67418356131d42d4f35b6107ff5c8d13437d97e7e248685fb9c6b70fe47821", - "source/transport_deps/pydantic/v1/utils.py": "339151c9f3546f50369a4f6568680255d7c71dbdc0b5082b8cee6a7f205fe310", - "source/transport_deps/pydantic/v1/validators.py": "9725249f5316847c65097e597c48058ff0801e88e888f71a41e31d10cf57be25", - "source/transport_deps/pydantic/v1/version.py": "1d79d75bed5b316e6a2a196be5180e10fa21ad90c20d2bb2cbcfa08bc182819a", - "source/transport_deps/pydantic/validate_call_decorator.py": "f23a8b9605d38d6123e1d5c3834c08dc41902a46f42670ac2ff2525236d4e528", - "source/transport_deps/pydantic/validators.py": "a706c825755bd42576980138c3f1067cd8fb0f0cec29a5b0fed4cbe9cbe24eeb", - "source/transport_deps/pydantic/version.py": "4e6124eaa03e540d4f56c737f5b66584f010032bda71de812b3c57007c96d395", - "source/transport_deps/pydantic/warnings.py": "5aed551b3aef159c384fac8220a1e31fb2d263ae878dbb720856e7e6e5a8309e", - "source/transport_deps/pydantic_core-2.41.4.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/pydantic_core-2.41.4.dist-info/METADATA": "3434fb886fe254ed414541f305a86e43ff575093f8f6d15c89bd11144ed8e131", - "source/transport_deps/pydantic_core-2.41.4.dist-info/RECORD": "7f3a82de0054511dbd2f7309c5e5b6ddb3d96c6230bfa83fd73bbdffc51cd0f1", - "source/transport_deps/pydantic_core-2.41.4.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic_core-2.41.4.dist-info/WHEEL": "7f32b0ec3e21425972f904759f2efc26a495ce223c174ce187bb87ac82f5240a", - "source/transport_deps/pydantic_core-2.41.4.dist-info/licenses/LICENSE": "2afdd30d54b4d62b6f488a6bcc1546e84ec5061f13f4209c03d012348783795a", - "source/transport_deps/pydantic_core/__init__.py": "9cad6292b75254af606a970aae9bff6e5ae9f0b08089cd63acafa391b60794d2", - "source/transport_deps/pydantic_core/_pydantic_core.cpython-310-x86_64-linux-gnu.so": "cd9bb47485cdffc363010507a214155966ca860b0b93bda39583492c6764e631", - "source/transport_deps/pydantic_core/_pydantic_core.pyi": "3ea1dbd4182f08cf9341f24b3c5cf7db77a05b3535ffe9e23525127a3617a11f", - "source/transport_deps/pydantic_core/core_schema.py": "bbdc850b72d685133a0e250fed263b33691dcdf3813492f3c0e31001e3d46005", - "source/transport_deps/pydantic_core/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection-0.4.4.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/typing_inspection-0.4.4.dist-info/METADATA": "bad3d9e6342ef6750cf5128ec942327b8bebdce0b6e4d6f67cb15b27ae5118da", - "source/transport_deps/typing_inspection-0.4.4.dist-info/RECORD": "cf5e3948866214f2e9ab0c1d43c157e9f9c14f59cf8442936c6cb97d5f2b6a5d", - "source/transport_deps/typing_inspection-0.4.4.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection-0.4.4.dist-info/WHEEL": "ccec20e2307acd7da453dd7437e70c6b08e2bc3ead3bc3445af135da37b56d59", - "source/transport_deps/typing_inspection-0.4.4.dist-info/licenses/LICENSE": "804b59b25f2c31bd278f9202a19ae49a3945aa2664387e2d0a128c7cacc61ec3", - "source/transport_deps/typing_inspection/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection/introspection.py": "5888c45bd627da692d9527699e3f549adf35651596b1656772310e12181b4396", - "source/transport_deps/typing_inspection/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection/typing_objects.py": "a778d6290d51581c9c9a23e0263af2a4604c76def5c4d40a7cd1a375b0046ff6", - "source/transport_deps/typing_inspection/typing_objects.pyi": "3bd24dd92d0270d31d64fd40abc1ef8693f5322aab9a78aeb3c5b62f992f84be", - "source/vpp2/src/vpp2/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/adaptive_mask/__init__.py": "a73f5515ffb77d323f9c324776e9c166d13817c470506cfd5db4ef0546cbbdda", - "source/vpp2/src/vpp2/adaptive_mask/audit.py": "c949909a2e60c3c4389c0221c79459961f2c4925baa07f7985774a52257a1d17", - "source/vpp2/src/vpp2/adaptive_mask/budget.py": "74e32285903dbf673ecadb6a60d917a990b9c6619beac9f926c1b3cbdae3887c", - "source/vpp2/src/vpp2/adaptive_mask/controller.py": "328f636201a845ebdc211340a9014a5076fa895e10cf9c2e1f91b96761a2514b", - "source/vpp2/src/vpp2/adaptive_mask/data.py": "e3b633fedaa503b101c80610cbed0933e9e245acf56a6c0692c4d99620faf84c", - "source/vpp2/src/vpp2/adaptive_mask/equivalence.py": "8658cb69d549fa0575570364fe3aa1e0b121fcf8b9965b17cd174d459dddf5ab", - "source/vpp2/src/vpp2/adaptive_mask/execution.py": "efec52c9b2eabf0300c72edea18f9cd4cc16a0889496793abb6a50161f2328ef", - "source/vpp2/src/vpp2/adaptive_mask/export.py": "0ce51e74787d28bbe9f4e73a3774297b424aa131fa78968d24154ff56db98b0f", - "source/vpp2/src/vpp2/adaptive_mask/feedback.py": "519fa4e6416723fc000754815a2f05d3415299ae35724f37bb806ebc22393d38", - "source/vpp2/src/vpp2/adaptive_mask/geometry.py": "f1ce4110c3a3a893f4f240c49e2ccc4e93215ac4ba9e447de8042f9b19afab98", - "source/vpp2/src/vpp2/adaptive_mask/hidden.py": "968560bd6dae0fce59bd28084091b10d559cf165c81764f6ad24b7492101810d", - "source/vpp2/src/vpp2/adaptive_mask/losses.py": "4a7dea6f87ef0fa38a7202d85d98d37460f8f4dc13ca5336f32b1da8b84a4322", - "source/vpp2/src/vpp2/adaptive_mask/masking.py": "31b595916410c60f772fff1ab63e92c854c8fd0d2261e6b865fd05ce2c61b9c6", - "source/vpp2/src/vpp2/adaptive_mask/monitor.py": "48b71f499dd5a0a79557eeb918f5fb1a641dc8654e5d412aa628ca9c57b5dcf8", - "source/vpp2/src/vpp2/adaptive_mask/physical.py": "f54e8b4fae8026cc89f296d74bf4cbea06fa4e126905b572a22c7d8226f0238c", - "source/vpp2/src/vpp2/adaptive_mask/preflight.py": "b646e7ca785afc87356e3e1184e48f535792ebafc84936450fc83bfd3f9f5ea8", - "source/vpp2/src/vpp2/adaptive_mask/priority.py": "68ccff1a384081f0c9a82e8f54ad2c720293f8500e7440a469b5e8fac1ee608a", - "source/vpp2/src/vpp2/adaptive_mask/quality.py": "c3b3a2264ca0b4773805f4485ebfe91bb4ab861e226ff4bd27bd667ab372b59b", - "source/vpp2/src/vpp2/adaptive_mask/quality_policy.py": "f100b7d4a412592777d936a6cf3c73a9f787cc4a62d5f1b8a369fed74acf897f", - "source/vpp2/src/vpp2/adaptive_mask/reliability.py": "306b41720154810bd972fe4d9c4c388e6967539d076ddbedd3a432ac62d13104", - "source/vpp2/src/vpp2/adaptive_mask/report.py": "f71401e09297daed8bbb72cb3af3b887e5fdf5ec282f47637fbb01392d280171", - "source/vpp2/src/vpp2/adaptive_mask/runtime.py": "ed74bfedd147389ea01f3be8c2979fa06c7152326ccc29ee347175690cb9c6cc", - "source/vpp2/src/vpp2/adaptive_mask/state.py": "5e8f95021eeb35511f5481e4e91ae687fe605f9e88d17b3b98d377cc967c17e1", - "source/vpp2/src/vpp2/adaptive_mask/train.py": "ad95349bfb242bcecd7ddf82fc58b31d63f2938a2101f9560bbc9e305f5f5b20", - "source/vpp2/src/vpp2/benchmark/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/benchmark/audit.py": "8587be371653c38b9926aa0ace006a244f270e0ef0020147a7bf5b0fc85d4538", - "source/vpp2/src/vpp2/benchmark/packed.py": "5047fd02f3fcc68e41f543fe83bc9202769a05794d898524d6d25e308f2b5125", - "source/vpp2/src/vpp2/benchmark/scheduler_io.py": "d6df06259549faed2da9f2888b540eac8e1ff2895c339eea58b4ea6a7e3b3cb0", - "source/vpp2/src/vpp2/checkpoint_compat.py": "462c5f93812483b5871633b200bc2ffecb9c201a2caf6b14f8f36dbe95fba50a", - "source/vpp2/src/vpp2/cli.py": "54c19a0f7e25b53bbf56ec13b0f537c9d7b81282e1e80575bddfb470172164e3", - "source/vpp2/src/vpp2/compact_kv/__init__.py": "f34f2f77f68399f45f6656b562a5c331f2504672dc145df368e086532191f766", - "source/vpp2/src/vpp2/compact_kv/blocks.py": "662c1f35055c2be2e2a14f2d92615d046f5e454879e34af39e3c7aec3af34098", - "source/vpp2/src/vpp2/compact_kv/checkpointing.py": "3c33c156e96f26ceb22eee61cfb8b18c3cb9560db0ab405cfd4c46efe5aba353", - "source/vpp2/src/vpp2/compact_kv/eval_prepare.py": "bdb33444056245e3cc773b0849b4db608b454cd24a7ac5b752f1ba26ff978865", - "source/vpp2/src/vpp2/compact_kv/export_check.py": "e6cba70b47027882a34d587aba0da5f9371128ec2db2282b91ad2d49e40065b9", - "source/vpp2/src/vpp2/compact_kv/gpu_check.py": "fedb6a9ab69b51080161ff2a4feae3f85262cc50f932f48e8decf04c1d147a20", - "source/vpp2/src/vpp2/compact_kv/losses.py": "914437ebf3ad91fd2cffa893a65ecb04ab01f2b337658a781a472feeb50c0a06", - "source/vpp2/src/vpp2/compact_kv/model.py": "332ebaebf543d40a34d188ebbe81055ec3e4bcff164bfe90d15aa6cef0748b8d", - "source/vpp2/src/vpp2/compact_kv/prepare.py": "7b01764cad0fafc0cc9441952b2e928048b0a43a6105dbd0eb64c349f4b9bf1f", - "source/vpp2/src/vpp2/compact_kv/provenance.py": "103e0f7100be56233aa86041ba9bc427ccb0db4fe045c4e6b8d3481ab6bb42da", - "source/vpp2/src/vpp2/compact_kv/reporting.py": "0b9ff602fc3425d1b9c122a77da3a426814e11c9cbdcb6b9a75a2a48130087a7", - "source/vpp2/src/vpp2/compact_kv/sampling.py": "2e8d82704f07853a7b487d5aaedef1b2f1fcfc5247e9100a56ed21d69262eae2", - "source/vpp2/src/vpp2/compact_kv/spec.py": "9bc920fc7d4398e424a0bde38ce97f87473aa417cf68b48e2c292a59491bc7d7", - "source/vpp2/src/vpp2/compact_kv/train.py": "a9e4410c5cde5df002d9808554538c29b77ed9e2d2bedc9ac5f8465eed70cc3b", - "source/vpp2/src/vpp2/compact_kv/validation.py": "73b62d02ce1d518cba7b9462e85c3c8d272ae9974e1161b1b6adea6f0040e2b5", - "source/vpp2/src/vpp2/convert_robodojo.py": "7ec2d6bfffbb4f5891ee33a4bf630cf27b17628506aa3cee1c46b3050027b290", - "source/vpp2/src/vpp2/critical_windows/__init__.py": "22721b77e25ec4874c4853d2f2991a14dff6aaa665da500f2830826b06545478", - "source/vpp2/src/vpp2/critical_windows/contracts.py": "ded4a239f7599785d74ff57ff892c5aa74f0280d6759460c93942e91f505d47a", - "source/vpp2/src/vpp2/critical_windows/coverage.py": "6c18bf995aacf413bbe4536eaeed92ab4b2f15f9eaaaa03a2730256ea7922ce4", - "source/vpp2/src/vpp2/critical_windows/inference.py": "df301bd187b27d20b6623febcb5e85815e1b7d4a1e9524a8a65bdf5904bf7232", - "source/vpp2/src/vpp2/critical_windows/metrics.py": "ae2bab145555d55696ef479758a5bae6780527fd3085a4f46d035b667ff32736", - "source/vpp2/src/vpp2/critical_windows/packets.py": "8f7d2c411407d95b1ff4d0e5b9055589f6114b1bb1020eeb7e1b106f330b853a", - "source/vpp2/src/vpp2/critical_windows/prepare_staged.py": "694cb5699de2d9f5ce1bc4667627b47d6bf0698715b4aad86907139859caffe5", - "source/vpp2/src/vpp2/critical_windows/reselect.py": "8d0e31ca1c17906d74de6439276e49ff7ea78abfc66fa556d8a306070b3dbf4c", - "source/vpp2/src/vpp2/critical_windows/score.py": "32daceb9a3fd957d9be75823b4d519629bc60a64d1da62f465e172cb1ec98d55", - "source/vpp2/src/vpp2/critical_windows/selection.py": "a7c35f6719d3308bfb738965d17544a15985c6d684bb47eac7272d6155d96786", - "source/vpp2/src/vpp2/critical_windows/staged_review.py": "d5cfb3f49ec5acc6914da98f5413d1549b2695e7c85c9aed9c0db83dee6be754", - "source/vpp2/src/vpp2/data.py": "8574e1ae3c6ca6e4b84633ee1815f2b3f2ea17c1e55f12fda0b00c5c5a6a7b53", - "source/vpp2/src/vpp2/datasets/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/dataset_utils.py": "e1a1471b0aa70917eaf699f85a9acf3ac70d9fb6eb9ebaf02d2bf2f218d6ab2f", - "source/vpp2/src/vpp2/datasets/lerobot/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/base_lerobot_dataset.py": "729fb3fd4ca531212eadb4a4e9c7e9f97ad34cca091d66380acd6b179f0c29c6", - "source/vpp2/src/vpp2/datasets/lerobot/constants.py": "11ac9260341e1560c5eb0dd7acb79ed63c74180b8ab4113c27622ff213db417f", - "source/vpp2/src/vpp2/datasets/lerobot/critical_phase_dataset.py": "bfe75bb9593ec646236777d90d9fa309fa0e1188db07e07a3be0810edbe3da56", - "source/vpp2/src/vpp2/datasets/lerobot/critical_phase_sampling.py": "266b0b7b023f014f4ccd935b6015b0a05b4659f372264fdefd997ea9692b244a", - "source/vpp2/src/vpp2/datasets/lerobot/episode_instruction.py": "74767839a813c7902861f4561101541c282b72e261df1fd28fe8d06c91231b69", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/__init__.py": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/__init__.py": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/compute_stats.py": "7d7daab219332b5abdfd5ec67ccaf3502e8eb583a17a4e482c3f3d4f7a691e89", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/utils.py": "4fdb4ac0653201e6743f2161c485213429948c1e1d5b068d03b4d97803254006", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/video_utils.py": "4f66c410ae6aa5a98acfc3320f3dd7b017d0285117054f14226f9e5d82395087", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/lerobot_dataset.py": "5659e992010bb6674ec50ab0d33b28a8e9dab0ecc895c199662af4c40fe56629", - "source/vpp2/src/vpp2/datasets/lerobot/processors/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/processors/base_processor.py": "d3327cbe398d77761df960014d41e70d349bb0fa42bca874333b9ee970222447", - "source/vpp2/src/vpp2/datasets/lerobot/processors/vpp2_processor.py": "43c5604cbfc315b7377316cb97c9a6f3322124404397abfd01c6c3d0090cd414", - "source/vpp2/src/vpp2/datasets/lerobot/robot_video_dataset.py": "8eabfbd649116b0b4d6c9704c0df34febbf8875f6ab863dd75f4107dbbcdef73", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/action_state_merger.py": "39fd44f254bd7fb71b9269d75d8f9b5a5bbbe167ea438dda92d40eda1d256734", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/image.py": "f494d262ce29770e959bdff60b997f7a07e5f00d10ef515eee7be813d1db038f", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/rotation.py": "feb59d26539be6cfdb86488f0c10c11488ed73901658bc657e67a755ddb9e67e", - "source/vpp2/src/vpp2/datasets/lerobot/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/utils/normalizer.py": "8207d813b698a91dfdbe6910a4aa1fe0e775a2a8edf5c05b2d7a42591e9f8adb", - "source/vpp2/src/vpp2/datasets/lerobot/utils/rotation.py": "8ea2c72565707f5979967a1abeb5edf1eaa2c3fec55a7b50e640de869fc9fbcf", - "source/vpp2/src/vpp2/datasets/lerobot/video_event_dataset.py": "c20d3f5e2bc05e1b7ed94ae38872883a976a179e09b7fa051e94f94e2836c02d", - "source/vpp2/src/vpp2/enhance_prompt.py": "f31b3190c24bad073c5e3121ded4f564232729566e8c1fcc3e76fe75b28faf45", - "source/vpp2/src/vpp2/evaluation.py": "9b76882149e3c3a8c417a0e23514af1bb305c01bf0b6d21fff1f70bc9843f55a", - "source/vpp2/src/vpp2/flexible_mask/__init__.py": "64bed1808976d1f3c708154c36a97288a75abc6463d49d7f0065cb8360a2fb16", - "source/vpp2/src/vpp2/flexible_mask/calibration_batch.py": "dc5d83fc9e2bb595b9e3aeb1923115ebb9345283290a7c3f95c79fdeef7d3e76", - "source/vpp2/src/vpp2/flexible_mask/checkpoint.py": "c8531727e2388ec3d7a9770a504ceda119afcf03d64b2462befcd45a48949f9d", - "source/vpp2/src/vpp2/flexible_mask/coefficient.py": "07a3cc8d8e6c8b60119b9f94ae85074da017b08158fa0a0912cc9051b6df8ef7", - "source/vpp2/src/vpp2/flexible_mask/config.py": "4e1e9b289e293145b4e895c8ef7347bc837d01c929e05fd5cbf65bdb3c20be5b", - "source/vpp2/src/vpp2/flexible_mask/continuation.py": "2016463b4efe01b5d0a9ee84f03c3d95ee16f8e24f230faa465598cc978da29b", - "source/vpp2/src/vpp2/flexible_mask/controller.py": "263f1c9091e0c4318aeefb61e91549ba905ff046a625e35e1b18c94da4b4668d", - "source/vpp2/src/vpp2/flexible_mask/data.py": "d245bafd6f04f33ae7cef7c01d5db876a1a2a1a138c4de8a139d3ea78095521c", - "source/vpp2/src/vpp2/flexible_mask/diagnose.py": "faa29a0fa57c66af3b2e817640fdedfddc998bf878357f484415b244555ae4a5", - "source/vpp2/src/vpp2/flexible_mask/export.py": "3064dfd82bb55a145c16c77bbe17244970d07d18e944b793f4b7368dbcede764", - "source/vpp2/src/vpp2/flexible_mask/gradient_probe.py": "6fe3f13540cb9d8dd20c0b6429268ca74625dfad1e41806412c0f980fac76509", - "source/vpp2/src/vpp2/flexible_mask/losses.py": "df264b71365885ea90329c0b0facc92db3d2eb6e04324ea90a4701a1cd457abf", - "source/vpp2/src/vpp2/flexible_mask/metrics.py": "e976dd066e4b5e7e7ae79db77b9d1be64d17c212c61d0bc113b87a048e8f2b6f", - "source/vpp2/src/vpp2/flexible_mask/performance.py": "95b3977fd739cc98f7de94b14fb490a7c132021e742e7179dc5b5dddd6557c68", - "source/vpp2/src/vpp2/flexible_mask/preflight.py": "f794b997a492911c4d77656310c89d3b85e54983b3b889ba9904be64fb961e43", - "source/vpp2/src/vpp2/flexible_mask/prepare.py": "d6cf82e27555ecc13973727f4b71ce7e40558fef7d95805665fc7e458a42fad4", - "source/vpp2/src/vpp2/flexible_mask/pressure.py": "6cf74edcf3625fce9eec689d70841c6c1481f7c1abd87e5bf70bb38eb34632a2", - "source/vpp2/src/vpp2/flexible_mask/recover.py": "418b2d5ecdd08b08686b2a07bbeb0f969471eb73c04ac6952dcfbcda3b123f30", - "source/vpp2/src/vpp2/flexible_mask/recovery_best.py": "917d924c5708584a0192050a6d8210809e905938aaf877dd81cff3be287ea289", - "source/vpp2/src/vpp2/flexible_mask/recovery_checkpointing.py": "6f6a61c2ee7076c6b0977d1acb489fee7df04322d7f6b13bee9bb8229be319df", - "source/vpp2/src/vpp2/flexible_mask/recovery_export.py": "c50433aa1b7e528fb23c514dddb5b9197f44c662829838ecda106980ab0dd54d", - "source/vpp2/src/vpp2/flexible_mask/recovery_handoff.py": "aa590f707738e4b7c7250f901e29795c7441430f961bfa764437cf34bdc514b1", - "source/vpp2/src/vpp2/flexible_mask/recovery_kv_decay.py": "bf83761798deea4f89c32d14f43bbfb0f16f751b3230962456c073b843dcd08a", - "source/vpp2/src/vpp2/flexible_mask/recovery_subset.py": "7f7154cab6d910b747a0189742ee625983d08f13de50ca60bd4154f61df2b0d3", - "source/vpp2/src/vpp2/flexible_mask/report.py": "5b49283d472bace3a6ad56ce568af04f2c3d04add1a3920ad5006fe98374bce6", - "source/vpp2/src/vpp2/flexible_mask/rng.py": "01680b5b7e8a29ce92e96d756e12ceb80bb0e0ce1ebb642a14fa2a3a34776daf", - "source/vpp2/src/vpp2/flexible_mask/runtime.py": "373a3ecbc2ab6592a359daf6adfd8c958cb657f393e698ca2cb834f06750be4e", - "source/vpp2/src/vpp2/flexible_mask/select.py": "b547857bad61ae7ebd25b888fba73c2ca8f50a8eb31551ca54a909c75c8984be", - "source/vpp2/src/vpp2/flexible_mask/selection.py": "b9453c8735051b54ae7dc8610d2ca332eae8ca1a3e099aaadaf5ab75bfb0f8b0", - "source/vpp2/src/vpp2/flexible_mask/speed_review.py": "9d7099d1e173026274eb439169df2ad4812ec1d56a5f0b21242f972cd835ffd2", - "source/vpp2/src/vpp2/flexible_mask/throughput.py": "ce21bdfda51ae10d1470ac537d910d9f46f60a38910888808ffb3f5a80174d58", - "source/vpp2/src/vpp2/flexible_mask/train.py": "86625613bbc692722c6d2d24278a586f88ce0d76263a9daf92562a9002a8e037", - "source/vpp2/src/vpp2/flexible_mask/verify_export.py": "fb68e62b0da98e6f96cfa694bd061162bbeec1763e5787e057a1cbac5b2ce8f6", - "source/vpp2/src/vpp2/full_mask/__init__.py": "27c9ede277380e8d64586371f2a03334e68ab2d3bfe516d95e8cb96099827929", - "source/vpp2/src/vpp2/full_mask/calibration.py": "5d97e0385eba82252e12cc1562d1a77da2f2bce29332d758c1b5b6b84c5bb47a", - "source/vpp2/src/vpp2/full_mask/conditioning_cache.py": "07adf95165db4c3c1c469695d6b7b6fe4cf4fa9aff0a3d360f4229bffe9be17e", - "source/vpp2/src/vpp2/full_mask/controller.py": "0e6a969b89a4275352cc5a1e00bdfe8e3f8754a6ebd7f9266b92179cbe6bdd10", - "source/vpp2/src/vpp2/full_mask/cpu_contracts.py": "1a46a53a68d2d8a202c5f98d9a78f6d5f5041dada0c2239ed81e7916a28f0758", - "source/vpp2/src/vpp2/full_mask/curation.py": "4ffd7b0212bdbca1daf73ba7c24423523437012150fc044a43bbb33cce747545", - "source/vpp2/src/vpp2/full_mask/curation_v3.py": "9dba386d66869de0fba321ade79b2692d47f111ccfebc7f367194cef7a4b4e8c", - "source/vpp2/src/vpp2/full_mask/curation_v3_checks.py": "688ea4e7e44c4ecc1a3cd81cf682e2cbf611d9ad2d52744ba1308324da70febc", - "source/vpp2/src/vpp2/full_mask/curation_v3_features.py": "11011a089f1586045e2972cf267773aaf4602cf08c8b0e755bbf017ede1e6e43", - "source/vpp2/src/vpp2/full_mask/curation_v3_finalize.py": "a2a7812eb6c670686a7a4f4adff0a2c6363dbc078c71d948537f1c5fd546254f", - "source/vpp2/src/vpp2/full_mask/curation_v3_probe.py": "2755e9cabd0fe02e70cb8330c083af881a5e4696697d58cf7aa01bd00ef57f6d", - "source/vpp2/src/vpp2/full_mask/curation_v3_quality.py": "b9170398762112a23bb133dde53c6a49193c671c767647239c8b0ff15159530c", - "source/vpp2/src/vpp2/full_mask/data.py": "668a7c5f88a3ab17854eb0df240c974082f4aa64604cf11d3143b18337f73181", - "source/vpp2/src/vpp2/full_mask/distributed_smoke.py": "f699d4f330309f29a537fbabb61c60f61eb3322d7304605351dba3d2acb48e8e", - "source/vpp2/src/vpp2/full_mask/gpu_prepare.py": "92ce96dc4c1b6d6ebc22d99935472c15d86ba2a7c050e31640d2c32e08748ec5", - "source/vpp2/src/vpp2/full_mask/monitor.py": "2724a934d1f96444227c854f75ef84df6025c02485aa68eca34f3b28d509fe19", - "source/vpp2/src/vpp2/full_mask/native_monitor.py": "5572712a340f17692a669d2a4c41d1d691164925eb7bd06a56fff1dc2afd69fa", - "source/vpp2/src/vpp2/full_mask/panel.py": "2844b663340cbfb54f7622f3447a7831e2809050739a52dc076fd6ae32ed9e46", - "source/vpp2/src/vpp2/full_mask/review_decisions.py": "ed1184bcda7b5bb3fb11bb4262c4461c408e3d3ac0d23e80d2f8cafcf39c7e18", - "source/vpp2/src/vpp2/full_mask/review_report.py": "752ba9e8a3caf5b8cefa2d18e6fe14860e6f998f57c03af0940af0943b09a9b1", - "source/vpp2/src/vpp2/full_mask/runtime.py": "ae30b4d3fd3c888bef17672376dc3b34491cb296a1883959674ad465579efe7b", - "source/vpp2/src/vpp2/full_mask/search_quality.py": "ee3238d3366799e97d3f9a90c11f579ff8f51d5bd0642f52c37d9dcdbcf02e6e", - "source/vpp2/src/vpp2/full_mask/train.py": "f4127e6580522d4d9e5a50db10d201526e948d4d3479ddfbbc12e60ec61c7501", - "source/vpp2/src/vpp2/full_mask/verify_data.py": "72ee60ba2016d5f73eb2ccb01b666a5dac37138620efc4a79a20607df3658fb3", - "source/vpp2/src/vpp2/inference.py": "42b3057a85aaacbb87440bc740f13b09b9c82cd51d8c5af4e080716aabdcf38e", - "source/vpp2/src/vpp2/learned_width_kv/__init__.py": "0c59cb8424b6cd64508a005625e9edf63c84d24618a5d2caf6e6fa5d63cc859e", - "source/vpp2/src/vpp2/learned_width_kv/calibrate.py": "b89bbf103b49fd85f85f8c300a7868bb42ae7a13f29bd9878dbd5a11061ae51d", - "source/vpp2/src/vpp2/learned_width_kv/checkpointing.py": "7d30e46b95d91df8aff088346ae75809958622b3a8e8d953db4f30adfbaebadd", - "source/vpp2/src/vpp2/learned_width_kv/common.py": "52dff98c6317b34df2a13313a641998acf4f9e18ac31ea4e8e25227afa14620d", - "source/vpp2/src/vpp2/learned_width_kv/controller.py": "7b5a8793a540e1e7464185229189f4f1f1acadcd7cf3c2bf477bda5de7d18787", - "source/vpp2/src/vpp2/learned_width_kv/data_scope.py": "0ddde6805f646afbf5f5966c53530f829becd083802f0e0a8697dc1004e2003e", - "source/vpp2/src/vpp2/learned_width_kv/distributed_check.py": "f89f153a20730a6bc3c70133479f34918d30c5a48775bb3f6c14bb25701801ce", - "source/vpp2/src/vpp2/learned_width_kv/gradient_probe.py": "3bed964f6488e95b386cc58058e7f28aff50c9a98dd526f3365891a9049a6fab", - "source/vpp2/src/vpp2/learned_width_kv/lifecycle.py": "798afa47ec5dcc8749982da2d7853eff184e450a32d51bcf70eb4578f2bb0b09", - "source/vpp2/src/vpp2/learned_width_kv/masking.py": "3272ea09271130dcb3cab6935f6bb7d61bda66b9982c3baabcd61ee0efd914a0", - "source/vpp2/src/vpp2/learned_width_kv/performance.py": "a2fd9597c51bf0cf5c435b48e8f57792df24d2723a6d7b6b841d6fa24f17ab2f", - "source/vpp2/src/vpp2/learned_width_kv/reliability.py": "f74399fb67427093b3e4c7df9749379f9291b7ac58bd6632db226b6e78fdbfd0", - "source/vpp2/src/vpp2/learned_width_kv/reporting.py": "f22c1d8806a5b7757bb6dd99b15153d0305b2eeb0790bb37763337690d642036", - "source/vpp2/src/vpp2/learned_width_kv/runtime.py": "513da1e06ba9509164f017e0b8dbf6b219d7e1cff82edb2d2fd8d2d7839e666f", - "source/vpp2/src/vpp2/learned_width_kv/train.py": "5813ebd4fefec6d3a8cead9e0c645d10734f5ec88c4d74a5742587f2eb4de6c3", - "source/vpp2/src/vpp2/learned_width_kv/validation.py": "d5594ce875c8011bff12d3c77083dca68878178ed022b8079761267d04a82386", - "source/vpp2/src/vpp2/learned_width_kv/verification.py": "1bc43d48ef0ec3056af614adf43ca0744d94b1e77fe970168fef87c7cf2e6fe8", - "source/vpp2/src/vpp2/libero/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/libero/action_model.py": "178fbe4cf02b9a2e133ef31389b6bb2f9baf0504bd0818a265b6bff32ebc3914", - "source/vpp2/src/vpp2/libero/cli.py": "fcf68a88e2db0a9b786c6199d9b719802fe4b84514741658b49e2b06e2473e45", - "source/vpp2/src/vpp2/libero/data.py": "19b699381e7d6fa769b5090c7125ae01b7584576e969468660ee65b1585ef5f1", - "source/vpp2/src/vpp2/libero/diagnostics.py": "9540e31dfd2def06bec942ffe73262278700a17a340e14cb5bd41a295706e147", - "source/vpp2/src/vpp2/libero/eval_helpers.py": "ac338d4ade195ceb3a87620d162befa9679e2d7ed3d91b09927e5d59d86d97f4", - "source/vpp2/src/vpp2/libero/eval_libero_single.py": "87e6b457dc412ef4fe5d01aa48b1a6d20a28dbce3152848042e2103769e4efef", - "source/vpp2/src/vpp2/libero/eval_libero_task_manifest.py": "f0c721a7ddc768edddc8b0e065a4d8aeec35e1a546c88deebd9097ad93f6227b", - "source/vpp2/src/vpp2/libero/evaluate.py": "24216f9814f8304e077d72ff8d8c778fd588239313b34cd7d23b960c8f924c67", - "source/vpp2/src/vpp2/libero/libero_utils.py": "c7cc23976c86eabcada4846d46345d3605fc2ce03929761646486be3901697d4", - "source/vpp2/src/vpp2/libero/prepare_pro.py": "0999050352d924c11d29b22f63e902162d8cfb23f94815c93c01295c11ed81ae", - "source/vpp2/src/vpp2/libero/pro_alias.py": "90b5c8c8061bc727a6e413a8746fcc98cbd06e1c7c4175fd223b45af4f10b700", - "source/vpp2/src/vpp2/libero/pro_runtime.py": "adf94ed64b032aaeb0d88391e7b653f88f67e76b9411419ece25faa31ccc1340", - "source/vpp2/src/vpp2/libero/protocols.py": "68225c95eeeee25032966a7f90c1ba18067c53225397f59a463d764030fd0d93", - "source/vpp2/src/vpp2/libero/runtime.py": "1e2e2900a604d33cbdf8774cfa33dcee1065f21dc0b59fcf30799b5098c1662a", - "source/vpp2/src/vpp2/libero/trainer.py": "ea29b4e000047a6b0c8aee3cb6f32df9187987a657924085dbafd9628315107b", - "source/vpp2/src/vpp2/libero/worker.py": "9df6350c4ab92dea70863c08f1bdcebd0d77574a3a2d8d7ac9899a5a825be6b0", - "source/vpp2/src/vpp2/models/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/action_dit.py": "9a654edd860ce77c1308923bd338c7f14d09f68686642531d7143c16b9f6f331", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/compact_channels.py": "6f7ad787624844970985117002ab809bd777f7474969daca121e7101381c6d0c", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/gradient.py": "594249b6eb931048e352fd3ffef9b1ac1db9e4fc74659e04216d6b823dd174f3", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/io.py": "1b68cf2f2fd674c7a59140f8632d4464044bffc2e9277ef5f9a975e7c699966a", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/loader.py": "b9180b9c9177af192e5cb92387b4a09bd0dbc08fb75a94e843b67d315c94e339", - "source/vpp2/src/vpp2/models/wan21_14b/mot.py": "cc14a909bfb181a441bc9d8d6de12f3c31d89f3dc3415031e34a5f8c21410019", - "source/vpp2/src/vpp2/models/wan21_14b/schedulers/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/schedulers/scheduler_continuous.py": "15de04574c1d8ccb794ca6560b1e501e5c83cc86104bb80f1eb3cc3b0324ffe0", - "source/vpp2/src/vpp2/models/wan21_14b/vpp2.py": "8c419af905a8ffa93d77c827a283b7aeff744f3a461c390783eef8a333c31756", - "source/vpp2/src/vpp2/models/wan21_14b/wan21.py": "01b45cc71f69a6914f7b286559317c8e8485d0b0fec93bb28ebc37c183c295f4", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_clip.py": "f65e44c9d1b7811d2996b3fa22e6fe4c2ac5e6edf1fc2c14251cf582bf8d1f05", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_dit.py": "0d1b5837ea923508c05394d56aaa465813e7b4f5aea3b31ceceae39b2de9b0f9", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_text_encoder.py": "902a1e46b21b5c48e166fe03defabb94b3773c6bbe836fc09b9a0d0894eb1f6e", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_vae.py": "33f7d804677b44a6f3ab334684017dcdb1e9dfb748279de76ad94a5bb71a7e51", - "source/vpp2/src/vpp2/policy.py": "2a7696cd73ccb99575bf901185cf578c3775945f61f6e67aeb2b4ec6bfc4e30b", - "source/vpp2/src/vpp2/preflight.py": "7a91e486675a4cdf38565e0f4b58e60a68bba7de5654cfff736b5df58f5c53a6", - "source/vpp2/src/vpp2/robodojo.py": "183db869a622ef17ee92c487949db2e22a7d1365558fe703bfb8dd8fef83e9c6", - "source/vpp2/src/vpp2/runtime.py": "e26885a3732f5fdac3d8381da870a1673d0c03354f02f9deee7fe779d645f8a7", - "source/vpp2/src/vpp2/trainer.py": "feaa0ac4ed94a376836eb60cfe6f52460392b11f7cafafec9c6d9f151f5b61f1", - "source/vpp2/src/vpp2/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/utils/conditioning.py": "43d43f0f3ca0add64498c3d64a3791513a53e3fce0ea53f77ef09580a86b7b2d", - "source/vpp2/src/vpp2/utils/fs.py": "69e6df236b43360428a613686c8f37c531c0d16a3a2c5b06a725c46b49d657c5", - "source/vpp2/src/vpp2/utils/logging_config.py": "1de4abf66d9d201b49e7bff48291643b9dc5ec9b6e7918ca73e1bd18887b1c43", - "source/vpp2/src/vpp2/utils/lr_continuation.py": "72ea9f2af52041db19aab681d7a99fdf6d87d5ed5486f2499383a211c6c1ab76", - "source/vpp2/src/vpp2/utils/misc.py": "7e42c330c24604e118f1878473dc804aa8a272944df502ef1414c05be4d5bba2", - "source/vpp2/src/vpp2/utils/pytorch_utils.py": "9b0ba19de9a64458b12a0fb24f0811f49d9e9fca5d8b815f5f5ecd3b7886fd63", - "source/vpp2/src/vpp2/utils/samplers.py": "4d3bd9b2d498f4ad8f2cf9765d60c4bf5368fa6fa2a7d42d0db6210f66899652", - "source/vpp2/src/vpp2/utils/training_profiler.py": "91f6d98577e63d85e474c738a9bc1901edc194bdf318b5387d527c31b6708832", - "source/vpp2/src/vpp2/utils/video_caption.py": "d9572deb3690aecb0f16c052016cedc5f94da8ce8f016b4dff1a4e358e18d5e5", - "source/vpp2/src/vpp2/utils/video_io.py": "9e9898b021a44e87aa1b4e6d13e3755a9869a2e27a7eb53c72a6802808d5bd80", - "source/vpp2/src/vpp2/utils/video_metrics.py": "1840a37685d686336c7326a2a3d4fbe048d1e8e7e431fb14519d360a8b7aaae8", - "source/vpp2/src/vpp2/video_training.py": "20f55bf8b0a7dba6422a1115be1c8adf31a0db6a9f53a8f6f53f5d970188bfb2", - "source/vpp2/src/vpp2/weight_resize.py": "269edd4b9d32a1c7f363ee082dde7ce57f2176190daab6d5bf4a1c98ab43f0b4", - "source/vpp2/src/vpp2/weights.py": "5dbdff347de1b57e30433efca6da28334d0263d27aaa9b2278d95614db1b8641", - "source/vpp2/src/vpp2/width_kv/__init__.py": "0183a7106da7e45223550a552db2905d6b59c2a4259f8c86cb98629b03e66b43", - "source/vpp2/src/vpp2/width_kv/calibrate.py": "93a06910cb23a9e1dbd961ee9ef9794d70aaaa6186b08483260c8215109598f5", - "source/vpp2/src/vpp2/width_kv/common.py": "45f5f7087f5f3dc067358838e3fc738698b796defecb2ea721545d275f767766", - "source/vpp2/src/vpp2/width_kv/diagnostics.py": "cf184ae58f5e1c5f4453774eee1e10c85931e618bbbf768ab42f649cf301f5f1", - "source/vpp2/src/vpp2/width_kv/reproducibility.py": "89c5377e1314dd6e8de7f67c4385d30f5bd91fa4a5742449f1c1ff8dd578f451", - "source/vpp2/src/vpp2/width_kv/scoring.py": "7644358d0b2d29d3b91515fcea56090dbd2a7a0dad2d5e5c88e8d585bff15533", - "source/vpp2/src/vpp2/width_kv/slicing.py": "856203c14e0b06d19585a96392d00a00703779ebdb9dbdc9ab1323d50daf8ba4" - }, - "suite": "open", - "update": 1000, - "validation_gt_action_mse": 0.0005726480308242441, - "video_parameters": 12468409664 -} diff --git a/evaluation/precision-completion.json b/evaluation/precision-completion.json deleted file mode 100644 index 29d30f84d6a2f9ad4dbf394d530436df5146ce09..0000000000000000000000000000000000000000 --- a/evaluation/precision-completion.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "checkpoint": 1000, - "manifest": "c62f853a713ce9200730a1b937a619358a9c146f2d914ddddfe8988b27ae47d6", - "mean_partial_score": 0.40425, - "partial_sum": 161.7, - "performance_condition": "none", - "precision_complete": true, - "precision_summary_sha256": "099fa38f19d9f5ff428695ca9999fa5c291081f1519c8320f2101a86c03ff6ef", - "rule": "Finish all400 checkpoint1000 Precision episodes, then Memory, Generalization, Long Horizon and Open regardless of success rate or partial score; checkpoint950 cancelled by user.", - "scored": 400, - "success_rate": 0.315, - "successes": 126, - "switch": true -} diff --git a/evaluation/precision-protocol.json b/evaluation/precision-protocol.json deleted file mode 100644 index c2b588b2938c7ab0f644c50a8c3038a0dc0cdd3c..0000000000000000000000000000000000000000 --- a/evaluation/precision-protocol.json +++ /dev/null @@ -1,699 +0,0 @@ -{ - "active_policies": [ - "vpp2" - ], - "caveat": "Same checkpoint55 policy/simulator code, benchmark layouts, seeds, r16 and new90/old10. Simulator physics are not claimed bitwise deterministic. Offline ranking used replan24 without ensemble.", - "checkpoint_files": { - "COMPLETE.json": { - "mtime_ns": 1793716093276368990, - "sha256": "eee062fbcb8c92a881117aa7f06b5cd039dfb9912d85571b59a20aa30837b0e1", - "size": 2491 - }, - "action.pt": { - "mtime_ns": 1793716074808787383, - "sha256": "9b04836abe5a30972e69ee84e5f5e39c09bf53dd45865551e1d04b42ead90ec3", - "size": 4057916577 - }, - "compact_architecture.json": { - "mtime_ns": 1793716074811787315, - "sha256": "a7f6696ab9a9beca785531c2402b81ccd1550745cb6e9ccaad67f658630f6b32", - "size": 6563270 - }, - "dataset_stats.json": { - "mtime_ns": 1793716074808787383, - "sha256": "2649d4e3ff3d6d400c9953b7c20c79541474f9c38a8a9916b9caacecd8578f16", - "size": 100256 - }, - "validation.json": { - "mtime_ns": 1793716074812787292, - "sha256": "9806ad2b0b58f879351da58eede46507a79433ec9e4eb8f37f415cf58f2ef70e", - "size": 88781 - }, - "video.pt": { - "mtime_ns": 1793716059522133613, - "sha256": "fb62db0b3a74a53aeab60f4b1acc8a5be47274f5c9db166684043521fe2a40bb", - "size": 24937214042 - } - }, - "checkpoint_receipt_sha256": "eee062fbcb8c92a881117aa7f06b5cd039dfb9912d85571b59a20aa30837b0e1", - "fresh_policy_per_episode": true, - "fresh_simulator_per_episode": true, - "gpu_sharing": { - "minimum_free_gpu_mib": 61440, - "mode": "shared-shard", - "one_worker_per_assigned_gpu": true - }, - "id": "266df4b5d9b8eac16145600a8c4f9223d15e03285d61473c3bbd8c43b694f211", - "input_hashes": { - "inputs/episodes.json": "d33bd02b965fcc9179b4d4a654e82cc4dda85079bb5d560758350d3efb8c98e0", - "inputs/master-episodes.json": "336b784b0846bd12ff905bc31c0c204bd0659c7f4e74cee4a85bf24d6a3c1069", - "inputs/vpp2-policy.json": "48949df719d515d6d68fe1c657b96129745cdc32a3e9f9542b1adae7c80b2447" - }, - "native_inference": { - "horizon": 32, - "replan": 16, - "seed": 1, - "shift": 1, - "steps": 10, - "temporal_ensemble": { - "enabled": true, - "new_weight": 0.9, - "old_weight": 0.1 - } - }, - "native_scoring": true, - "order": [ - "vpp2" - ], - "parent_evaluation": "/data/praveen/vpp2-recovery-best2-insert-tubes-20261102/update_000055", - "parent_protocol": "6d165d60796bc93532ded29dfe114a2551f0ee3e2af2adc8b1ddabccb6073f6a", - "primary_episodes": 400, - "repetitions": 1, - "schema": "recovery-precision-sequential-1000-950-v1", - "scope": true, - "selection_metric": "task_macro_ground_truth_native_action_mse", - "source_hashes": { - "control/simulator_recovery.py": "fcee066ec9e75ec081b0a955b136e2ab898cd1ee529a2c1e74a453c350c05367", - "native_eval/__init__.py": "2deca42c85edcf3d80dba72439ad95641937396e27e1149d77182cfc082267cd", - "native_eval/body_coverage.py": "50ce610f86584965281893ff2f98a78643c7e3207014212aad4c13fce4c8a782", - "native_eval/camera_group_cleanup.py": "8df69fdba913ec41ff7b1256ab1b43921a0b6fbef7ffbb6dacbf2adaba0f7843", - "native_eval/camera_lifecycle.py": "b0952d95d1da8a1bd3e9f544a2eb1eb0f516159b3442666c7acd9bbaee71687a", - "native_eval/check.py": "9587d7b200969ccb78ddf750dd3d8616d5e2245e29baa3a0d798e27a55bdaa5e", - "native_eval/compact_worker.py": "129a2e26a85e021f7a0282201dec976104a8e1ea1f0a67e6b75ce760257ee46e", - "native_eval/completion_integrity.py": "3b737f6dcf9ae9908b1a3602f66fda46c3b8399ee47b1c61f5c0fb9741031029", - "native_eval/criteria.py": "97ebc94d91c62d793e614f178d2d120df989faafb54881dd1d3f5d703df8bb76", - "native_eval/diagnostics.py": "53b0deb571984fd02ff65c400d5f3b9bc2754b8207ea8edf4e5017c3588ed3cd", - "native_eval/ensemble_check.py": "0bef52411b2ec2dd7e1ad21b8690b1f88ed229107b6e46b8dc43c34ca92a3572", - "native_eval/evidence.py": "cf7f769cfd838227b26101d7656ebcaede1b1d45a80785a32efb26c9befef0e9", - "native_eval/frame_epoch.py": "7b1d3b10f46d5acf82f6e983ecd5f8995310b2fef9fee04bfae168fda02e3efc", - "native_eval/hardware.py": "e30ed3359d91595d3053e24124445498a3f1be9d5c0d52f97e1e7d7d88268a5f", - "native_eval/hydra_frame.py": "c1aefee86396025b405e050597af7b67bb07c0dd1e65ea4a9be1ed78f8d99072", - "native_eval/particle_evidence.py": "378d667b2ab80176045e0bdcdbe3cb39adb612a356b8f6b81d13ae531bde711f", - "native_eval/policy.py": "e1cebbfb03c137bd4bf9f054c69be74f9a7f1df5f7ca13c250e606c2346b55b0", - "native_eval/prepare.py": "486df6d062098ea07ac63c4d3be51b5f27baf524d0d004411275243783d02ac3", - "native_eval/process_lifetime.py": "7dd20bee91c51546b6da067b96012dc5d5a013e8389dafd567b72c1f742cf97d", - "native_eval/provenance.py": "8fc2da1678832be9e9b8b778ff0dd1604db5d464cf1a19ff6137acf6b83d3e11", - "native_eval/receipts.py": "9ba5800e6e7e796937992117569efe1b3d625900a8e2ebf7955940a4e8cc81e0", - "native_eval/replay_receipts.py": "1c60f9bddccf7245e32df97b9e90749bc3ddbe5d65f37ed2d40ba339b458017e", - "native_eval/replay_server.py": "1c2c19bae8d1cd3ff564f1775540718c33293663d30161ea7bd293b8f322cab3", - "native_eval/report.py": "9d9f0ddc794d2af2ad6e349f991450592a6fe98db292e1ac3ae4fcadea961fc4", - "native_eval/repro.py": "f0e4ecd0ba009774105cebeba31f49a70f34c4f88f11855c939368027789a928", - "native_eval/reset_coverage.py": "3c6a414878c4cc2ef4114170356db0a6b2193b03ce5c3b4f6293c10c7d3138b0", - "native_eval/run.py": "23d2d58fe1160a03bdcf9591b5d5fae671d21832008cc4958ac58e060b88caa1", - "native_eval/run_one.py": "dddeea1abb269293bd08c3f5a69ea0a668620b18d07154ca1c0740a0bb213b99", - "native_eval/scope.py": "5787bb7f0760bde49bfb54f09d89e5718471286cbce3d768bcca964a487bf594", - "native_eval/simulator.py": "d40972be52b7544f62653114217e213d19d4b386bf2991abfbbbc618ab09cf83", - "native_eval/status.py": "b49d03681dbc28b80f39f4d6163c3a6e7c5a1ca62f1f0ef502c77dfbf149ca02", - "native_eval/topology.py": "062e9246890ad1f2e8bb8b64b3bbe6598f9dce6fcc33ec3eaa106f3cbc0f0ae5", - "native_eval/transport.py": "eb6cc295d064a142372dd51859e91233f61f1ad2c8ac8bf3880739f3fe4abec4", - "native_eval/vpp2_pilot.py": "571ca3eeba11fbf2afd4a4058629a280bc0ad4bd3eecca178ddde4aa543bd8de", - "source/simulator/LICENSE": "7794bb06af8fe5485ca912454ad1665ccd7846c45f9c2b1258658e480948cdbe", - "source/simulator/XPolicyLab/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", - "source/simulator/XPolicyLab/XPolicyLab.py": "a3909558697b73479f8baee03e15b4d74060a7c9ac2f31fcbc6cd659e7364862", - "source/simulator/XPolicyLab/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/client_server/__init__.py": "093e47e707f4a5598b0159b5ee371cd9a918b802c70a6e66154a18e9ef8fc5db", - "source/simulator/XPolicyLab/client_server/ws/__init__.py": "79905987a12ebf318dc0b2b9ec6f375d9b4561bac29d6c27d04e318d8f6e00b3", - "source/simulator/XPolicyLab/client_server/ws/__main__.py": "ee1c5807dcdf1c8f6721c5447463eb51babdb0f9ffbd91d1e7343834ca4aa19a", - "source/simulator/XPolicyLab/client_server/ws/model_client.py": "4d6e225ae5f577d862366350dca8742e91dd9527d6e76b8b2a6d48c991212d67", - "source/simulator/XPolicyLab/client_server/ws/model_server.py": "4988823b436cd05e6a4d8b13012cc30c7ffd57711b72497b1223a6b10dc0c043", - "source/simulator/XPolicyLab/client_server/ws/protocol/__init__.py": "19aeae375e94e58d437d789d0aff07b232c13f375235384d784984631d25d5d9", - "source/simulator/XPolicyLab/client_server/ws/protocol/client.py": "b309f58b1bddd99e56578026b61a15e6cfdc07e843e8a082bfd291d0e853ce5a", - "source/simulator/XPolicyLab/client_server/ws/protocol/codec.py": "8a97ef7e102fd954c266352d81eaceef0f1b0f5504571c03037683efe387865a", - "source/simulator/XPolicyLab/client_server/ws/protocol/exceptions.py": "73161f4cdcc7ffc8a87cec94f5459bfcb9113076be272d6cb2a3ff8d69e0c6ce", - "source/simulator/XPolicyLab/client_server/ws/protocol/keepalive.py": "7f6b9e636eefcd6c80a4b62e404a6f89e2f7e1a3b6008500312a972d6990a21d", - "source/simulator/XPolicyLab/client_server/ws/protocol/messages.py": "d05c8cbc20e0cbe1502551864907f25897035993f920748c9290c944c959eab7", - "source/simulator/XPolicyLab/client_server/ws/protocol/schemas.py": "f1ca82eafa8dcad6d968508adb51c25342b291f7b1c553fff305c381a6098bd0", - "source/simulator/XPolicyLab/model_template.py": "4f8d1eeb8073aa7ae6093abf0f395cd5fef70ff4a4bd1fa6b2d83b356a90754a", - "source/simulator/XPolicyLab/policy/VPP2/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/policy/VPP2/deploy.py": "ab94a8569e6168ab7cde6660890035e11b34961ff2648854a7b61d188c555b6e", - "source/simulator/XPolicyLab/policy/VPP2/deploy.yml": "d2c3f06eb2ffa2d1866767dc20db8d60e542fc2418dbc4cf86d4a0f86f944c5e", - "source/simulator/XPolicyLab/policy/VPP2/model.py": "699acc0c459c5997db4e3155e2b1b7eb64bf750552436074a369c4eb6e9ffef9", - "source/simulator/XPolicyLab/policy/VPP2/temporal_ensemble.py": "42be4b09c56377f4686b2e722de760fa3bafd1c6b92605ada269d94e19efc95e", - "source/simulator/XPolicyLab/policy/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/policy/internw0/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/XPolicyLab/policy/internw0/deploy.py": "42dc75140935046dfe83f19b3834bd7cf8372e1bdbe51f598b1f91b8d557b7fb", - "source/simulator/XPolicyLab/policy/internw0/deploy.yml": "e59de6edeee891d2aa24902ae9034e9c10889fb20116bc9263f30d773a4b0d10", - "source/simulator/XPolicyLab/utils/get_free_port.sh": "f45bcb327b45c91367e3e5cdff72d3a42bfb7a09f50e4774701637c4c23fc1a4", - "source/simulator/XPolicyLab/utils/load_file.py": "488590d76084f419a36c2fb3e658eeb240ae554678899e9f2ce0cc10da5c4b57", - "source/simulator/XPolicyLab/utils/process_data.py": "e044e627eb2677907e9227eda8458c857208913bd484c5e922b53025010eef0b", - "source/simulator/XPolicyLab/utils/robot/_robot_info.json": "8a5df36e750971003b484ad770a7a243e523e986d2977a4ecdbeecd4a07946bf", - "source/simulator/XPolicyLab/utils/wait_for_policy_server.sh": "f75a8360d83f2960f365dae77804c94a28aca332c2fbc62cdb4a39ae220374ad", - "source/simulator/env/camera_manager/camera_manager.py": "1a4250cb3bdc7305fe362a7c6b113f57e6f3e9e4983b69bd61e2c84e8e995471", - "source/simulator/env/camera_manager/capture/camera_view.py": "be9ec0d4df8a532c35adc7090fbd7d6a76c163f90e8dac30496ee4f875929869", - "source/simulator/env/camera_manager/capture/render_sync.py": "48d70e9a95f3445ae464ab7ea00a00c0d4829752eb55c4ce52ef73ab1f453cae", - "source/simulator/env/camera_manager/capture/tiled_capture_manager.py": "959b4d87d96e676bc279d01e7755557bb8c6e73920a75944259f72b7ac385f8b", - "source/simulator/env/description_manager/desc_manager.py": "bb566028b523a4cc27363cee2e526c2d3e008e671c9773d4f0b8401f58f0388e", - "source/simulator/env/environment/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/simulator/env/environment/base_env.py": "ade58ebc19c79bdbf720def30786a0c397b1c7d2141fb6a1bfd63c80f8a3db8e", - "source/simulator/env/environment/isaac/__init__.py": "123023ddc75a0f9b1139c7322bee64a27f0e756b6e84242f43a1481428596126", - "source/simulator/env/environment/isaac/direct_rl_env.py": "77958f14c465932697efed302c8ef13054f2ec61ee3a4bc5ad66d0390b71df77", - "source/simulator/env/environment/isaac/isaac_rl_env.py": "144af40adc2113751bc1bd72caadab145e918b316de53ef3e4e42358c01a1fbb", - "source/simulator/env/environment/task_env.py": "ac816cf26efabbb8ac4276d2a2a09fbd557e3db805514db0c3dd7ac22b58e931", - "source/simulator/env/global_configs.py": "e96f6141b42e635d69bba5b4727fb1fec54f8965431b3a70d95fe5dcd3d0ee45", - "source/simulator/env/observation_manager/obs_manager.py": "771d6cda443b591f3e7850b901a06b4e653a2feefcbabd23608042377fe9be4b", - "source/simulator/env/planner_manager/.gitignore": "bdcb46018aafd15f5c2d40adbbccbb06f2dec5b9ec4311cbf776075bdffd4156", - "source/simulator/env/planner_manager/curobo_planner.py": "3cd830c002901959409ef6f64d54106d8106b48471b266409abc2199f3cb33e1", - "source/simulator/env/reward_manager/func_parser.py": "eb928a05c3eb6bae429a922c59e64272c2c3851c22d779143d45627e47b3a504", - "source/simulator/env/reward_manager/reward_manager.py": "bc56efd3aaa861b4b38960dc4fb7778a9b4da9cf131f815ac3170300dd233a41", - "source/simulator/env/robot_manager/.gitignore": "fd94daa58076711ae84376170199a63f66177471e587a76252399fe79eb231e2", - "source/simulator/env/robot_manager/control_manager.py": "81b7ecc3bed8248c16aa1517e686682d8e28ccfa9e550d45011b579a9219caab", - "source/simulator/env/robot_manager/frozen_robot_configs/franka.yml": "a3c944f8cdd07fc1a4eb54cb915f565763292acb24f9c4f725534271449f138c", - "source/simulator/env/robot_manager/frozen_robot_configs/x5.yml": "4df90d234656c34132ca573e69a55de5984270e103aac2ea8ab9956a913685b5", - "source/simulator/env/robot_manager/robot_class/franka.py": "dc49eb7738a8b58fb731595340c60a1ce32f52ef0dc63a3da84f9c25879af140", - "source/simulator/env/robot_manager/robot_class/x5.py": "4748cbe4d273449a48d09817767dec361f53f8e5cdc6e43368fbb8724141b654", - "source/simulator/env/robot_manager/robot_config/franka.py": "8bf57a07913573e74dad97aec6c50e58b67746fa90875915d74ce213856ce35a", - "source/simulator/env/robot_manager/robot_config/x5.py": "13d35630f833d1b0a1e3df0bea05f843e88aae1248b59af8aadfefa9cad29bbb", - "source/simulator/env/robot_manager/robot_manager.py": "19636ff932a0e2192341b57d8695d4102b870bd10c69c9343d712682fcc15082", - "source/simulator/env/scene_manager/layout_manager.py": "1b4c940200dd94a1d0300e103d168b9a823e0dc00ce7c921afe16e81d4e01ddc", - "source/simulator/env/scene_manager/objects/articulation.py": "0c542a1fc8ba7a61bf71b343745c71949c863291c1b167d4d7048fe2ef9ca4c4", - "source/simulator/env/scene_manager/objects/background.py": "04afea9b5c4e21a105ba3b08ce0e5b6692c082cf17ec1053fdffd5dba1c9511b", - "source/simulator/env/scene_manager/objects/dynamic.py": "7a4652c649f503681914e37c50c959c7ca8457918bb00628413f4288993f8ea7", - "source/simulator/env/scene_manager/objects/fluid.py": "12b183d4d798d6b7188fd42747ee1927747318c386a91135551d1fa0561c41b5", - "source/simulator/env/scene_manager/objects/garment.py": "85f38bd85b52da8dd2ce34ce3692d45848016a9f0f14ecf13114705d4a1ff46a", - "source/simulator/env/scene_manager/objects/geometry.py": "3100d61b152b894b3b59be0b3be1d2708f2d8f363ddb8311dabfb5411c731f3d", - "source/simulator/env/scene_manager/objects/ground.py": "12dd51addae6f5b7c6ad410b4ae7248231d216cf63513c564057d577a09a2972", - "source/simulator/env/scene_manager/objects/light.py": "ba8c8529c6608592d4d0eb9638820b70ae6b3c0cd616631bc6dabdb1c20e421a", - "source/simulator/env/scene_manager/objects/physics_material.py": "a1ac0dc9928e9253e644ceb9a604aed262514aaad0473aff303bfae448e76c29", - "source/simulator/env/scene_manager/objects/primitives.py": "848f4ab08d86307812ebaea18cc86a51638395f0e6ea194b412d45a699ced926", - "source/simulator/env/scene_manager/objects/rigid.py": "8260fd2d8350d6a354c8281685bc7e25531923327078752efe0538d9cd78450b", - "source/simulator/env/scene_manager/objects/room.py": "946aa1afc23ab9b8fd17394517a5f54605bbbc609582d0854fed2078b3b2d8ee", - "source/simulator/env/scene_manager/objects/table.py": "c0e71396b0d53a250f74c75490e91086d67962237400a49f886a13ec07875308", - "source/simulator/env/scene_manager/scene_manager.py": "37911b12601038c9ee9bd180cae7a4751ea649bcdaf1ba2628f22c65cfd7dc72", - "source/simulator/env/seed_manager/seed_manager.py": "99bcf5a90392c8927aa0dbd799c07e06b9b03befe8b8eabaa8744a3dc9605ba4", - "source/simulator/env/seeding.py": "3f88d2a635c528253439cb31a29e5b9d0f47f6aaef0e975d86d9a8cf174be26b", - "source/simulator/env_cfg/arx_x5.yml": "7691350159fdeca92fd1b0b2da36913464ccdea3f3251eefb0176aa51db0807f", - "source/simulator/env_cfg/camera/camera_config.yml": "c1752170da855e735beba27fddbf78dad16f2395e4ef8b24e9827a768e616a62", - "source/simulator/env_cfg/camera/template.py": "68287ed1daec3b8ed7f053bf97a4d48bbddeb8b5757b53e438ac3c4240a9e61b", - "source/simulator/env_cfg/robot/_robot_info.json": "4c9de628bc1572502fc48d876c023fc63e02760e1a11a2a5258dea30ffa330e8", - "source/simulator/env_cfg/robot/dual_x5.yml": "4eefaccc75c5f83443b7bb85ef1de68ee7a3772e27af2b04a5e8d8769ab9baa1", - "source/simulator/env_cfg/robot/dual_x5_and_franka_competition.yml": "ec893f9fde577d0d1209e7dcb85ec2dd74288b636d0c68316cb07bc817b743ab", - "source/simulator/env_cfg/scene/conveyor.yml": "c1dfd27faf978f90dfc4825cd83bd203823547c46793f4f9201ce9f4b43beee7", - "source/simulator/env_cfg/scene/default.yml": "729df024b9707a55449da94f980c1ca116035e09a1284e2fe071f1b38efd061a", - "source/simulator/env_cfg/sim/sim_config.yml": "e442ede1c3d90fcfb50b9461c854d31b22dad9bfbb23397db228b27a6a486963", - "source/simulator/scripts/eval_policy.sh": "786966648496b7b68aad81e000a3f92910302eb391dbd07fec0a2dc91107956e", - "source/simulator/scripts/internal/summarize_result.py": "9ec361af587e1788d83d3cf8670e05b817ff252d33c33829a6337dc16ae370d2", - "source/simulator/scripts/internal/task_inventory.py": "ec82252b0f87fa5a3dbec2f682c170b25cbe47fe181e431a81df2c4b0675084d", - "source/simulator/src/__init__.py": "75bfbedb80f2e1421ad787992d78c23349bc8738b9edef7a76a3af83c9586fd6", - "source/simulator/src/eval_client/eval_env.py": "c577b27dab3c87588940670da81bcff007cd64b687eee8e0cc6684e5e24966b1", - "source/simulator/src/eval_client/main.py": "de2216bb5df707e505f7e2f3d31702907a4c1ab65205c5ea35494021f168c80e", - "source/simulator/src/eval_client/physx_warning_monitor.py": "6a9f8e8d75b1031d2cf2feb6dd72d37370d85d5bd80c4bea798622e23ce8dae6", - "source/simulator/task/RoboDojo/config/_task.yml": "655a87cd59fa6272bf352d32deb8ade162737b49a9824e16d428fecf0803380b", - "source/simulator/task/RoboDojo/config/align_blocks.yml": "082c9d7a32968052b8ce954bee212c7ec0a96b756150701d4b531abdea59be2b", - "source/simulator/task/RoboDojo/config/arrange_largest_number.yml": "3bf6b7e286ea328fb1e4a994a8d30af9afb4b0b4dcd7ceafed43cc6160c9978f", - "source/simulator/task/RoboDojo/config/arrange_largest_number_random.yml": "145b26eb5c8ed7d084a4ddc6e21694c542f4a86150756188ea38dcf66e565603", - "source/simulator/task/RoboDojo/config/build_tower.yml": "e1bab8756bbc5664e3171e2389c060a79a3fbbf92a6af4ef555dcaf59fce275c", - "source/simulator/task/RoboDojo/config/classify_objects.yml": "80a754d2aedd6a89f58185eae36f5b2eb1a28250f40a67325f576fde34650384", - "source/simulator/task/RoboDojo/config/classify_objects_by_language.yml": "ac6c739ca82a64b53c799af79b44363db1a88246f76d867f8830729e5613507b", - "source/simulator/task/RoboDojo/config/cover_blocks.yml": "68f90c85fad2b152cf7853cf48888d09ce74bb27a692ff2feacd11160771c5a7", - "source/simulator/task/RoboDojo/config/deposit_coin.yml": "f547b12216fb9a5dfe2e7d7e882d89e1e53ee1a805c943ba09a3c2cdea8c17a3", - "source/simulator/task/RoboDojo/config/fasten_screws.yml": "5fbe4cf5b3ee2eafc2771137b13176f01617f8b2131f02503e676a7b62e2eabf", - "source/simulator/task/RoboDojo/config/fill_egg_holder.yml": "d79129278c9a5488d63bb1d3865f2c6b39f21f85957ec94ace091af9ae29e31f", - "source/simulator/task/RoboDojo/config/fill_pen_holder.yml": "ac72e5582495e8757c547997b317e2fe990370009527b1faa6bfbf4e1275537c", - "source/simulator/task/RoboDojo/config/fold_clothes.yml": "56447e3f592e0db388ebb7482ec758ecd5485ec81b9227c2dffe5390bd7d8c8e", - "source/simulator/task/RoboDojo/config/fold_clothes_random.yml": "eafe52c0abcc1889069383b008cbe95c6af2d18ceafb1aecc78f0fae3b491b04", - "source/simulator/task/RoboDojo/config/general_pickup.yml": "35de68117cb0ed596b30db1c62f1f9090f2cd1237242a03d5aaeb7186e791d93", - "source/simulator/task/RoboDojo/config/hang_mugs.yml": "0086d374d3f7e82abb85e43a17cdfa437e1ac645a0171fb47496c2b81427dce9", - "source/simulator/task/RoboDojo/config/hang_mugs_random.yml": "847dfd39059275a671b5beff0243bf7bbaeebd9e5c0612a1877cdf12b9007dc6", - "source/simulator/task/RoboDojo/config/imitate_sorting_sequence.yml": "d9e194d8c742288601c641ccb75052a67da46e536c0b06c7fb7311d9e2c61a42", - "source/simulator/task/RoboDojo/config/insert_key.yml": "c0b409d5c020e0ad706c378b6f63b39dfe7bed4682d978907c40e1cfa7623335", - "source/simulator/task/RoboDojo/config/insert_tubes.yml": "5c070e5c764a2ea93f8de0b52e6a664a23c717963fe09fe3af17918a4a1ee9ef", - "source/simulator/task/RoboDojo/config/make_kong.yml": "8a33c9e57b6e6c719c4800911c37272ba055ad0f4cda2f1de9d531ee2910351a", - "source/simulator/task/RoboDojo/config/make_toast.yml": "d190a26233db174538ff0052b4c2958a3b107f0ccc63d0fdfe28da4c7f5dc57b", - "source/simulator/task/RoboDojo/config/make_toast_random.yml": "ca2c1e55a0975c8b019523710e90131504d8d2afeb829be362e4d7927fe97b48", - "source/simulator/task/RoboDojo/config/match_and_pick_from_conveyor.yml": "0ae1c2537d9b1880748316928cfd7ba4c6421ecccfedb85c4c5395a7a86c5361", - "source/simulator/task/RoboDojo/config/organize_table.yml": "9ffa15dd279060d4f042285a2c53a341c7208e2f89a2f3dd36ee08b22aa453fa", - "source/simulator/task/RoboDojo/config/pack_objects_into_box.yml": "e232962b8394d08c04c5da14deb88d7b233afa00ab99af8001c084218951d7ca", - "source/simulator/task/RoboDojo/config/pack_objects_into_box_random.yml": "7ac7f034fcb169e33a7f0a03b2b77e54d0206ed715409359b579055a701196ef", - "source/simulator/task/RoboDojo/config/pick_from_conveyor_by_image.yml": "6b310b70a0ead9d09e7c221c6bbc952140a44b1d43034613bf02e954eebcf9dd", - "source/simulator/task/RoboDojo/config/play_Xylophone.yml": "28adedb0f03c49693af32cea37855f3f95ec3f76f031bfd571fb8bfffb2ec59c", - "source/simulator/task/RoboDojo/config/play_stacking_toy.yml": "a09afc106161064a2ea6a40882d717f7872bd4875309a97431d6863a9b7ffa1c", - "source/simulator/task/RoboDojo/config/play_tic_tac_toe.yml": "63f863a7fb81a040f65803c64f97c4e9577d4fe32cd0f92563bdc72d1aa336d2", - "source/simulator/task/RoboDojo/config/plug_in_charger.yml": "2046b47112049e038ecfa24a8c8044fb1db84f629a4a32eeb24822157d2d4dcb", - "source/simulator/task/RoboDojo/config/pour_balls_into_vase.yml": "084a707af61d24123912777b417fe0c0b230eb9653e686af42570791e924ff8b", - "source/simulator/task/RoboDojo/config/pour_by_language.yml": "efb2e3c3cb08dd6d2d2ae011b3e9a218b5f1f0a92f025b8e3b9e8abd7011c250", - "source/simulator/task/RoboDojo/config/pour_liquid_into_cup.yml": "32092b11667b3306579b04225303610c061585ace28531fa9996afc339c5a2ba", - "source/simulator/task/RoboDojo/config/pour_liquid_into_cup_random.yml": "1603feeab6f0f7dc9c4897e7f40f322b86112b6ab987dad0598f42ac1b35db69", - "source/simulator/task/RoboDojo/config/press_by_number.yml": "b784643495bcbca933f5a5fbc91b7dad3465fe888239b358d516977c78c38f63", - "source/simulator/task/RoboDojo/config/push_T.yml": "b55ea11002ff3e5dc63982ca8c1247fd7bee4f4a607f4d674e220b86cf120a25", - "source/simulator/task/RoboDojo/config/push_T_random.yml": "07609ec20cea40afa1d5720e895fb1b445411f261b2e5b6850e75d0f1930d32d", - "source/simulator/task/RoboDojo/config/put_bottles_into_dustbin.yml": "7eddf43e287b6e8aea686c6d686fb87e13ac1be1cb5aac16a8a2b0d2e9eb976e", - "source/simulator/task/RoboDojo/config/solve_equation.yml": "bdaad2ff1cc8b7ec6413a3715d49ea9cefd664e7e204544977832e18785f1e75", - "source/simulator/task/RoboDojo/config/sort_nesting_dolls_by_size.yml": "8927cb2ebb18449554d851e629bd7d568e12e46c5c3c636c8e7122f4fab1ed1f", - "source/simulator/task/RoboDojo/config/sort_nesting_dolls_by_size_random.yml": "f895d3ce7eaae99454706afccd09011f56d077998bcc1e95840116658b78f139", - "source/simulator/task/RoboDojo/config/stack_blocks.yml": "2802e88ebc3e2d3d05ce345d75e9ad6151a6690e4ef1e0021a5223d291a402d2", - "source/simulator/task/RoboDojo/config/stack_blocks_by_language.yml": "4fbfed4f7fc49120831087e709a8dbdfdb4504eb143196000d5790b54eb3bc40", - "source/simulator/task/RoboDojo/config/stack_blocks_random.yml": "e25d2a096601da30abdcfe1256a464eaf48c0c8f844eb2c737232626d49639d5", - "source/simulator/task/RoboDojo/config/stack_bowls.yml": "4e2aaa12b8b0f58ca801f1a93638c46d3b49ebad809c5a8011382ccda846dcb1", - "source/simulator/task/RoboDojo/config/stack_bowls_random.yml": "5c08af1bcc925d958d53de51e8ebd336006203f1bc81e4ef68f3719eadfabb49", - "source/simulator/task/RoboDojo/config/store_laptop_and_headphones.yml": "0fdaab803a9370a9e2d1fc8d86a5788daa3940c08fd6f767334f625642fca3e2", - "source/simulator/task/RoboDojo/config/store_laptop_and_headphones_random.yml": "93f0ca39bc8bb32df94e84a02f22ed4d7860f37cdc0b9dd17e44721445849576", - "source/simulator/task/RoboDojo/config/store_tools_in_toolbox.yml": "641c8ef92393bd986e408d26a84b1cfcdac27466a5ac5f0b3ebe4bb84430c527", - "source/simulator/task/RoboDojo/config/swap_T.yml": "1daf769911e13714b4aeabd208292931e32f4dd39968893152bb7bb477c46c9b", - "source/simulator/task/RoboDojo/config/swap_blocks.yml": "b6bb2a9df494719f26c6b1aab2e7576107ae76e2fbac8b63a5770f21e0e9f05f", - "source/simulator/task/RoboDojo/config/sweep_blocks.yml": "98aa25ac39be9d335c71b2b586bbba372789e9d61e652e1147152c87febbf1f5", - "source/simulator/task/RoboDojo/config/sweep_blocks_random.yml": "4ebff5e2cad07f958dc4b2793b86b1aa803c0809394818ee3752d300e58b6187", - "source/simulator/task/RoboDojo/task_registry.py": "11218028f772d9253ee709a7d85aa72d1e1fd87e4f8d33ee3787d6064438f9ab", - "source/simulator/task/RoboDojo/tasks/align_blocks.py": "c8597e96132cd7c9d30f3ae101f7bbe8ac28597b629599d75d442bbea4c6e74c", - "source/simulator/task/RoboDojo/tasks/arrange_largest_number.py": "277acd20ae4345dc71267762e588b7b0343387c71685183890f044a4808b7a20", - "source/simulator/task/RoboDojo/tasks/arrange_largest_number_random.py": "01757509978663bf7c0c95059e8ae18d45b8fe0953f6b54540e2bd6bf141182e", - "source/simulator/task/RoboDojo/tasks/build_tower.py": "814cf6ffb459871e5cf49f4e127903dbfbc30926f33db71de0b84a71ab235d6e", - "source/simulator/task/RoboDojo/tasks/classify_objects.py": "aef4333c088766375e21a928d53a9a93aaee285fecae41e22385acdc74dd11ac", - "source/simulator/task/RoboDojo/tasks/classify_objects_by_language.py": "242a8f048f487eb174ef246be78613bbb5f153549ee11a2650412718cf3b36c9", - "source/simulator/task/RoboDojo/tasks/cover_blocks.py": "9d14931b16842b93bea8abf9a07991a93a7e663b93c5fd1695108c8b922ab862", - "source/simulator/task/RoboDojo/tasks/deposit_coin.py": "f9868ef827ec17b8db6c4650cc5d9a9e593d20d00ee822e2212ce229ec01fb61", - "source/simulator/task/RoboDojo/tasks/fasten_screws.py": "2e187a28e33e44efb87baae6463b3ec35264ccd41e35c21a1be44f6361675185", - "source/simulator/task/RoboDojo/tasks/fill_egg_holder.py": "506dfb772f8882ae53966e3580affde19c3c0f11591c78cc5f5b1d997ba04f7e", - "source/simulator/task/RoboDojo/tasks/fill_pen_holder.py": "8706dce239487e078b21af0b95bcc5cd4eabdcdadcdcbc6400d6b138d982f1e6", - "source/simulator/task/RoboDojo/tasks/fold_clothes.py": "ecea9c287d0579605330168e6f36734704fb14a6b1e5dec82b6f2ee3a56ec20a", - "source/simulator/task/RoboDojo/tasks/fold_clothes_random.py": "9e40abe3f7201a8c13961edc1ca8075260c315584d3d6b93fa1df966d13d1e88", - "source/simulator/task/RoboDojo/tasks/general_pickup.py": "1a9eef7fe518f9d2c6805ad1a8f97c1045fa83726f84b9c63f67ffdfabbc40a7", - "source/simulator/task/RoboDojo/tasks/hang_mugs.py": "4bc6586bd87de030b9c580fea2a45e7977c3b6a4d75cf3c43b546d349d42e906", - "source/simulator/task/RoboDojo/tasks/hang_mugs_random.py": "ebfa4a95deb954aa7a9063a07fe366cb5ea1835d3f52342b10d531225dfeee92", - "source/simulator/task/RoboDojo/tasks/imitate_sorting_sequence.py": "18400cb3c5f5103492819df2dcdf05a77916106e8a503cb62b4ee6cdbaa9305b", - "source/simulator/task/RoboDojo/tasks/insert_key.py": "180978a2915744f0596fbca4ea0ad6dcb47dce005d43f06807249bc8b4d1a828", - "source/simulator/task/RoboDojo/tasks/insert_tubes.py": "9a68795ddbd0b816ffd7627e673390ecd83594c0e9d374d4e3abf3435ad439e1", - "source/simulator/task/RoboDojo/tasks/make_kong.py": "b9266689d65f9213b05219ad952344f9fd63be8892097ec0103af99791b245d5", - "source/simulator/task/RoboDojo/tasks/make_toast.py": "1047f484a73d1f92304393879b51f87e33d661b6ad7937198352fe37a0d3233d", - "source/simulator/task/RoboDojo/tasks/make_toast_random.py": "69fb879b89e98f7369971834eb6d1b95c5a65f5ffe978b2cffae0b12c6b756ca", - "source/simulator/task/RoboDojo/tasks/match_and_pick_from_conveyor.py": "53110b8a0c971bd3ae8878bfb7d0dcd9626bd9b610d4e7fc91772313b435a5c0", - "source/simulator/task/RoboDojo/tasks/organize_table.py": "aceb298e78f3f39e4cf9a9f4c5a4f747b2c55f1a6006de2065e110a05f4295d6", - "source/simulator/task/RoboDojo/tasks/pack_objects_into_box.py": "84a1cf1dd5e166f36291130f9d8cb5dfe4b3f4732a46674bef6374a7ea2d66be", - "source/simulator/task/RoboDojo/tasks/pack_objects_into_box_random.py": "4db259a1b97cdcc39ebc9794244fadc79d31c4ae64069c9b11a233356fcb655c", - "source/simulator/task/RoboDojo/tasks/pick_from_conveyor_by_image.py": "a0d29576d0aab8232d2fd3ebcc8c510e81c70b4cc04602a5be3e99ee2275e01d", - "source/simulator/task/RoboDojo/tasks/play_Xylophone.py": "b7a4b0bc0457bcf55d714ca1867476fc4aabc53084adfc78d3ff5d1437bf7847", - "source/simulator/task/RoboDojo/tasks/play_stacking_toy.py": "23361329ee7efe330da1f1c241415205bafed2b6c082a913659d868a80d338c3", - "source/simulator/task/RoboDojo/tasks/play_tic_tac_toe.py": "8f75ebfe55c997ad9bd3b342db46e843e87397db94356f31cadcbe0cb483bca7", - "source/simulator/task/RoboDojo/tasks/plug_in_charger.py": "aaa59ade46dc54f430e1148e3f6fae487970cd29eb2c07b5ff7b4045edb831b6", - "source/simulator/task/RoboDojo/tasks/pour_balls_into_vase.py": "eae388b93ec196c401f76bbab3b0119cb2164f90bece0225d4fb925d3f2b73ab", - "source/simulator/task/RoboDojo/tasks/pour_by_language.py": "f7a15a7fca2c649a7918d68960ede27e667f409a339b668dd9876db890724cfb", - "source/simulator/task/RoboDojo/tasks/pour_liquid_into_cup.py": "73f8c91b57c352fdc1e7ba3fe5354b3c10e4156d8e5ba777762ad0fa1aff5663", - "source/simulator/task/RoboDojo/tasks/pour_liquid_into_cup_random.py": "a1c4097b6e34b2c62885b3a9c7d2584a93d9e296dc41d311a80c2e6d541d53af", - "source/simulator/task/RoboDojo/tasks/press_by_number.py": "006f969087c00c417a63875a9de153f698c52d1f1ca0caf0aa16076aa15059c5", - "source/simulator/task/RoboDojo/tasks/push_T.py": "a01d753bc320ffbf492ccc29e5f7ab3b39e6c7d255cd25804db1934a30fa5b41", - "source/simulator/task/RoboDojo/tasks/push_T_random.py": "dc8d9c8e0d2e8dfffa2b7d433a8278c0eaf707cc4861b15035364c2e70061dab", - "source/simulator/task/RoboDojo/tasks/put_bottles_into_dustbin.py": "3ba6e19df0c5ff19ba961092f031ce14e91e72a9a4a5934eece6000a1ffa1c48", - "source/simulator/task/RoboDojo/tasks/solve_equation.py": "e287a2f36b82b28e8ca7824f63b1b723b02972ea6dfc115ff32b2882729751f7", - "source/simulator/task/RoboDojo/tasks/sort_nesting_dolls_by_size.py": "1838fa6b515bad3796895cb5c1883c6a42789b7dada5434765764600e70beb49", - "source/simulator/task/RoboDojo/tasks/sort_nesting_dolls_by_size_random.py": "b793ab5bd32bd2c10bd46874440904837f9c4e290e7508b06426e2e96425709a", - "source/simulator/task/RoboDojo/tasks/stack_blocks.py": "50bd388f9e47002966fbb0146742467a820295b8686e0f86379f0efbcfffcc1b", - "source/simulator/task/RoboDojo/tasks/stack_blocks_by_language.py": "36a83925f35c7a4caac5add328dd35cb1d346bad833d3064f455d88221e7a41e", - "source/simulator/task/RoboDojo/tasks/stack_blocks_random.py": "19d4e5cd693e068ad64de75cbcd24977ab8d39e22fa17362a391dcd733bc9bb5", - "source/simulator/task/RoboDojo/tasks/stack_bowls.py": "022c129ec3493183b1a26688a0402f5a00a1546ae011999e9c19f4c0029e2b7d", - "source/simulator/task/RoboDojo/tasks/stack_bowls_random.py": "a0e20469eb44a9ee98650d09386814c1df5264c68ec139f06aabf0c86f092514", - "source/simulator/task/RoboDojo/tasks/store_laptop_and_headphones.py": "2bee4e31f0594900629fe7f43266e16fecb310b152930ce51524507136809a92", - "source/simulator/task/RoboDojo/tasks/store_laptop_and_headphones_random.py": "58c3c5113054a379214d64ae406ed8dde99603cf684ce9cd8c7bcb72ed334382", - "source/simulator/task/RoboDojo/tasks/store_tools_in_toolbox.py": "2969fc3eb171560b3c0bcea62b9f38b8b35f3aecc9bcc7085c3b1cec365b48fc", - "source/simulator/task/RoboDojo/tasks/swap_T.py": "57fc289b3957caa454e1d8e005e3a57c973d6ab40121845c94799e61e4bfafdf", - "source/simulator/task/RoboDojo/tasks/swap_blocks.py": "08ed24ae9dff27f4e5c850161a02f62ce237859c096d9b06a853a7890e0ad4ed", - "source/simulator/task/RoboDojo/tasks/sweep_blocks.py": "65786217e199c1e2b26ec8e2c232bf98ecb304a20939d0908fe12bc41e990614", - "source/simulator/task/RoboDojo/tasks/sweep_blocks_random.py": "68b6127038322cf001d5f614060b8a1d96e64a49efddfcdcae91127d5c206bc5", - "source/simulator/utils/cluttered_generator.py": "f59cfcfed2b4cce5ae9aeaf3339c86d17e237874e3526bded3cb05136dbcbd50", - "source/simulator/utils/ensure_usd_path.py": "7c8e71cf91636e630b1b174098fe0b38740857daeaf207e2fae772c4727b11bf", - "source/simulator/utils/load_file.py": "ef3a6dc96aa1a7442cfd24f7be9671052a98d2f20783c3e71032332704132943", - "source/simulator/utils/path.py": "1d427c7cf33e748e01d0d083c9432d8be8b5c3a1f35c5fb0f6ebb0714098f1d1", - "source/simulator/utils/pipeline_utils.py": "d5d8da29e6ca84ab04323a2f79130f930572785b4399634e06a42834ed4087ae", - "source/simulator/utils/rotations.py": "8e814f79938bdb9e85f1c024825617cc08d281b61728c6410b23ef1bd852c340", - "source/simulator/utils/save_file.py": "6cff5950f73bf7a1ed404f804d6f08af712974f22c3955de4cdf142f211aaf00", - "source/simulator/utils/transformer.py": "73de4f5e1e0ff60d4f2e1aaf6104368e8f919269facb68b4fa0344d35bc08cbe", - "source/simulator/utils/usd_schema.py": "260d30b0ada2976136cad3e49e810b4409304eb4a2bc60bd9ed710864d3953ac", - "source/transport_deps/annotated_types-0.8.0.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/annotated_types-0.8.0.dist-info/METADATA": "614985b278f601b8ef863f82783b991cc3ada4b89f592eb71c7c48c5f2ef2298", - "source/transport_deps/annotated_types-0.8.0.dist-info/RECORD": "c7660eb223c8080f75c49690eaf0a9c9c00b6195511791b33b15e6b24e42edd7", - "source/transport_deps/annotated_types-0.8.0.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/annotated_types-0.8.0.dist-info/WHEEL": "942926c567d0b1273d09f20295879abd37507845f6b683eab9f87d808df91100", - "source/transport_deps/annotated_types-0.8.0.dist-info/licenses/LICENSE": "fe1049884b1a0d9342901e88e07f32925d24b3121d9972b6a6805fb9824b095d", - "source/transport_deps/annotated_types/__init__.py": "a7104a4d439b27a9f74fc0be236b9ba1b7831e6044026802a205abc1298a9bc8", - "source/transport_deps/annotated_types/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/annotated_types/test_cases.py": "d867472acb57b81ce97f78972828e6bc5669ca4db33fd1e6f645c6183846068e", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/AUTHORS.md": "5fe0446ddd6d1c70fa298747368582dc1d91c23d62c8fb7228595bc87fd53232", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/LICENSE.md": "509aa7af19ae2b5b1681b22b969627ee9e1fd15ff7ea5bf9f6e301fc44d5a6c2", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/METADATA": "b7ee8fa1bf018747082cd6d2fcaa14e5d0f5956b5477ab5810eb61ac4cc7bcf9", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/RECORD": "51331727bf8d9ff60510de5e7756c5dd72aba7663f3673e2827bf1ca5c09c7e3", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/WHEEL": "1d7faff7e9e8524c94a31c99d4f312b92edab94c43011e1505da182ea0f4c70b", - "source/transport_deps/msgpack_numpy-0.4.8.dist-info/top_level.txt": "19da698ad1490bdde1c7f18fabaceb2625aaf48b364d4dd7ad404c7e5eed75b9", - "source/transport_deps/msgpack_numpy.py": "0a45a7430e2cefa2e74235c4c6a34a22ead2fb57a7de8b2631f45df977701d63", - "source/transport_deps/pydantic-2.12.3.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/pydantic-2.12.3.dist-info/METADATA": "348336c208743aafeabfa5537c29f429035a3107b7a78bbb6a3bf7b3a42fe4aa", - "source/transport_deps/pydantic-2.12.3.dist-info/RECORD": "089c7ceb033486c4e6106749bb1a38c80b63905da74d842d067735e8b9c86e4d", - "source/transport_deps/pydantic-2.12.3.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic-2.12.3.dist-info/WHEEL": "aad0b0a12256807936d52d4a6f88a1773236ae527564a688bab4e3fe780e8724", - "source/transport_deps/pydantic-2.12.3.dist-info/licenses/LICENSE": "a9e186f3ca16b5eef84318e7a701721351a00cb7b8ae3a4394b67b49e3529ef3", - "source/transport_deps/pydantic/__init__.py": "e62127278c07bf5384cdd2903f368a69929f3b8a524000bae4e0eb608ebf4bc6", - "source/transport_deps/pydantic/_internal/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/_internal/_config.py": "4d66708377346d91e24f76e8479f9862a928b877308d175e9e6c861e87d5ec4d", - "source/transport_deps/pydantic/_internal/_core_metadata.py": "63f836b778bbba5b8afb05c266fcc97d114c3d4336dda0582df69ee05cc13f2d", - "source/transport_deps/pydantic/_internal/_core_utils.py": "d63aeee156c9d31eb747a76d55cb8e23e74a4130bf77f9529c9584050cc63444", - "source/transport_deps/pydantic/_internal/_dataclasses.py": "4e4d6611a7e169dd6457b2b9b4f5f9070c5649763b0be30ac1fd0e2c58089440", - "source/transport_deps/pydantic/_internal/_decorators.py": "3e7c80a0a4a0dc135b0954999f0ab0f67684835503b58bc34fd2e5ba280f88ef", - "source/transport_deps/pydantic/_internal/_decorators_v1.py": "b5f75f76940a6384765c23b0a876d97a840cbabe95362811adf86e757047c77f", - "source/transport_deps/pydantic/_internal/_discriminated_union.py": "68c9744914b24321df5b8fa49673131cdbf0491a2a1371f73d157fd39bd1b138", - "source/transport_deps/pydantic/_internal/_docs_extraction.py": "7f2ce74801e1e40ce88675d94ad5741ef1fe9d16dabcd1cfca0fa49f1f92fc41", - "source/transport_deps/pydantic/_internal/_fields.py": "6127c42aadb51608cb27a62a6172a1d1e104b399f130fbd0ea1a7da40f0dcdfc", - "source/transport_deps/pydantic/_internal/_forward_ref.py": "e67dd8efedc028b9fcfc54b761cecabad2e23d48725e602d90464e6859e89f03", - "source/transport_deps/pydantic/_internal/_generate_schema.py": "4d3e3dbf3633a87f74ad6aefe69b4da19823cceb11d0a3e54a4a8f545ae7ac1c", - "source/transport_deps/pydantic/_internal/_generics.py": "10baa34fa2cccd0cd600ad04079ffdaa47bf8806b3cf4390e20ba7a7fb8ab986", - "source/transport_deps/pydantic/_internal/_git.py": "2303e1dc33df6b65eadeb06e07d371f25b91d80d62ebd41d7937d659722e0958", - "source/transport_deps/pydantic/_internal/_import_utils.py": "4d18710f93ae63a094a2c8a805d05c254b34a26ec820e36265d60057bcd0f233", - "source/transport_deps/pydantic/_internal/_internal_dataclass.py": "fdb79d7355dbbaeca044688b66a914930c05a506a847584a2e5479d359f2c926", - "source/transport_deps/pydantic/_internal/_known_annotated_metadata.py": "25ceca4cd159a01ddffb489b3ff36024834e795bd8137ab73930500e354c9375", - "source/transport_deps/pydantic/_internal/_mock_val_ser.py": "c2645115206fa9f70b6c8e353ec165881e2ed80677989a597a21116c3df1293a", - "source/transport_deps/pydantic/_internal/_model_construction.py": "c24f9b3460c026f76e686be7d14d3ff33125d06111bb4b2126f37cfd97e461ac", - "source/transport_deps/pydantic/_internal/_namespace_utils.py": "865dfe4d102bf365368d3c8f3f7b7e42ab2f28b8abc6d90b7cd7eb37e7e9d31f", - "source/transport_deps/pydantic/_internal/_repr.py": "8d07e726ec83c50a5244d846dbd208f4f5fc7b836fdaa599ac4c3696a8a1dd41", - "source/transport_deps/pydantic/_internal/_schema_gather.py": "54b12fe754d811e78d0f6733b32ae626ad4c56726a4ce9a72da9fb546e3873c0", - "source/transport_deps/pydantic/_internal/_schema_generation_shared.py": "17fadb41bae4a289a0c6cb24747a4fd23509ed309f7b40400c0124aba089e273", - "source/transport_deps/pydantic/_internal/_serializers.py": "6085af4a6011e5f9db19258239076e5add72078650638d9e02bb9cf9e9eb6fa7", - "source/transport_deps/pydantic/_internal/_signature.py": "f049633c97b8a529daa6e8ab1b90e4040803d618201f1100cb314f1fef47d331", - "source/transport_deps/pydantic/_internal/_typing_extra.py": "755c481a1b0be37cda79b3423108752b94235fa2386bd3959cd01c2f6a486bfc", - "source/transport_deps/pydantic/_internal/_utils.py": "0878c7fb4ce75235fd479b144a33d3f23f3efbb3f37bcca36a27ac7130152e24", - "source/transport_deps/pydantic/_internal/_validate_call.py": "3df7559d2ce15ceac436d683a03c373c558f5580f95bf80d60f7bca77520e8b8", - "source/transport_deps/pydantic/_internal/_validators.py": "76fd1ad8d91ce33718aafdf51a1fd021dda571ff96d24429574a1237380475f8", - "source/transport_deps/pydantic/_migration.py": "545ef72d1094cf722b6f9c55b75de36f7340717567105e93d7e27438b7de6790", - "source/transport_deps/pydantic/alias_generators.py": "28cd67deee097cb48197552e620de1a181f35c90fecaf82b9eaf2ed5c73087f0", - "source/transport_deps/pydantic/aliases.py": "be1087ca84969d7f8427ec166f9aa3e31c91b2c8065a74d07f3429e06499f6e8", - "source/transport_deps/pydantic/annotated_handlers.py": "59fc854aac28108157061ed3ef73f270a9682350e25f8e465a2d3e24eb024786", - "source/transport_deps/pydantic/class_validators.py": "8bf5778fe3d87462d22e68ff20965e913463ba73bc488573f0b325aae3f23fb1", - "source/transport_deps/pydantic/color.py": "033a867d540717ddbf65cb4372e7b40cce324e9d8fead7a49304483535ab2c8a", - "source/transport_deps/pydantic/config.py": "b83676c4df89ec255035e9c269529c62c244cc83a92aa9607d0bc3774d35c229", - "source/transport_deps/pydantic/dataclasses.py": "dbf8cdfb9d595abbb222c7a78cb235f9585de2a206345ddeb9ef6319c769a872", - "source/transport_deps/pydantic/datetime_parse.py": "402f9680cc4caffc10fe6357512ec055ffb684b121befb0f6353d0ca148639d9", - "source/transport_deps/pydantic/decorator.py": "617fa3500a6ee4029a55628fa1a57e9fee25ed46d2ebd184b7d45ade1b3398a2", - "source/transport_deps/pydantic/deprecated/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/deprecated/class_validators.py": "10071a550339ce9db0066974c9b37ad827d07f226f0cbc7941df4f938fed6f85", - "source/transport_deps/pydantic/deprecated/config.py": "93f96c564e7ba5ac4b24e701b9e1f4edcbb53a012059d541c66ea57da0b70825", - "source/transport_deps/pydantic/deprecated/copy_internals.py": "1a177ebe431de446020a0c821ad3ca3b9f27a7d704281402eaa9017881052368", - "source/transport_deps/pydantic/deprecated/decorator.py": "4c19ba6c9ef026c36287ff16ab92330dcc0fdf69bdfef7f1b3de9d7ac2ee934d", - "source/transport_deps/pydantic/deprecated/json.py": "1e55821b7e5146bc72cee4d2e8b4d089907046198365699ea901fcacb5bac00f", - "source/transport_deps/pydantic/deprecated/parse.py": "1b377a6ff83ccc95dcb84ed046ae5a761c7f10c25a8577dca57085d1182baaa2", - "source/transport_deps/pydantic/deprecated/tools.py": "36b9bda054595a9f3e8e57ef3e02482c4b32c29e18cd90f9d972063c32f11dc2", - "source/transport_deps/pydantic/env_settings.py": "e881de79612a9543d152fdd5f805e217f5bdd5f836270fccdced25df827f7b20", - "source/transport_deps/pydantic/error_wrappers.py": "44aea6a804dcf72303f8a043f48252f47a4a0a9ad61ddf30a3ce019e6fb77d1f", - "source/transport_deps/pydantic/errors.py": "edcb41342b6de7b919171ef52ecd87f3a22e7d0011bf8c0f29ff0385db159f9c", - "source/transport_deps/pydantic/experimental/__init__.py": "413eeb298743b0289327d1848e6b107561d2730a4aaeb3641aaeafa8e34fe914", - "source/transport_deps/pydantic/experimental/arguments_schema.py": "1059e35ffba5a7eb4fc948d05f9a6642dba0d4e14bfc071cf1b70c6cb77e7d56", - "source/transport_deps/pydantic/experimental/missing_sentinel.py": "8507a382d174d3052e40c9e2f78dbd7af83e797c88c292af8ec0fca1fa9f8fec", - "source/transport_deps/pydantic/experimental/pipeline.py": "2affddbdc7b12ae99acdf44bd32ebd01ac9e03a1f7ed2ae6b19dd2525fe7d2a6", - "source/transport_deps/pydantic/fields.py": "5ae0c63af076d8a5aeb96ddf5e74b85af838a97fed769f17ec1ac09736b8b30f", - "source/transport_deps/pydantic/functional_serializers.py": "ac4cc7dfdd73ab2de8fdb5a4d9012ebf24a67103599b05e62502c2dd9185ed00", - "source/transport_deps/pydantic/functional_validators.py": "73ffbbc1e5a918d70e61f45f55416ed758ebc4c54c75f63f73ee22b2dc24f796", - "source/transport_deps/pydantic/generics.py": "d19a99f4ef5a9e7223ff7986051aa9b3886d7b2ddbe65575f9ddad5313cc3270", - "source/transport_deps/pydantic/json.py": "647f11908ee1e01cfece9f0e7530316c952856f72853e8e131d459d01fa4d317", - "source/transport_deps/pydantic/json_schema.py": "677786d509be226f8c417ebac28c963fd5b2c055272d116d68e0cbced559f937", - "source/transport_deps/pydantic/main.py": "efb414c13b5041d51a7e8af78abe70d820b5b34be2805b460747d2953bc5dbb2", - "source/transport_deps/pydantic/mypy.py": "a7a294d46c0f1dacc5ec4e6f26ad6e2dde2d1dde8313a6eb7b8fa6e4b9f6de6b", - "source/transport_deps/pydantic/networks.py": "2c995c70c79df7b1007a9293e8e98f23d73a8e1e62c1b063935fe35f5449c37d", - "source/transport_deps/pydantic/parse.py": "c2477cd9d82dbd6b43f3de54fc8e84d61b6a3251a1052604577f5cb8149ea370", - "source/transport_deps/pydantic/plugin/__init__.py": "6bb4f0dfae94e8ade496d08235963bea773db2cfbbb86190e344d769df4eca94", - "source/transport_deps/pydantic/plugin/_loader.py": "f502d79de2c49afca15e46bff63e0bae46e67b8a8fbfaa98a6196c8c5d8c1ac0", - "source/transport_deps/pydantic/plugin/_schema_validator.py": "41b9aab06df730199fb4d4369cd8ae376d8b85badec5403b8a90d5bf7274d815", - "source/transport_deps/pydantic/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/root_model.py": "06f98bb56e22d7574993e74b38cdeb97e8e725d40679e41314172610eabaa4c8", - "source/transport_deps/pydantic/schema.py": "56aaa3beafcb9daa5592779b51ddc1a7f275a768176599d94602f8f1b5441bba", - "source/transport_deps/pydantic/tools.py": "88742977c489e43093b4f5796ad015d3a4fcf5b8d268c15e659d8b5fd95ab196", - "source/transport_deps/pydantic/type_adapter.py": "553fbeca0e1adbbb21481cd61c13cacf8f777f7890f686dd9049218d92a513b4", - "source/transport_deps/pydantic/types.py": "9ea752f89d995ea4e1daa7b224ecc14c1b475b267961115ef2068c579f5df471", - "source/transport_deps/pydantic/typing.py": "3fb7de037e4cc1370bb11d6e2fb75bd12fa8c9d071a1b9976b9e580e80606a34", - "source/transport_deps/pydantic/utils.py": "d799d1d90a6a4c1165415e1336d4c8b4cc93271fdf6f257e80f988118d46a287", - "source/transport_deps/pydantic/v1/__init__.py": "14b43c212a7a3156517e39d2edf4389b51714311421764158a41380cafb83e11", - "source/transport_deps/pydantic/v1/_hypothesis_plugin.py": "e444b9c56bb0d45400b3298b7b3cbc4209d5cf466955f5378e4993ef81f6ed54", - "source/transport_deps/pydantic/v1/annotated_types.py": "ba4d8d000c6a88d10b2a388787287129a20e87c1759585bf2f3ad6dd7ee86417", - "source/transport_deps/pydantic/v1/class_validators.py": "50b39a21481850306c1cbec411511aadc33e52e6ca52082837c8526c3a27b051", - "source/transport_deps/pydantic/v1/color.py": "8990012d8a7a395a28d801643fd229ae2ff049cebe2a496ef18ba149aaed7798", - "source/transport_deps/pydantic/v1/config.py": "6ba3f459eafdc7871bc0a5bb5eff29a1252a33858ff912d6c17e9832962af400", - "source/transport_deps/pydantic/v1/dataclasses.py": "efce1caaf2276f020f5abf6eb1fa57ddc87bcf8b77276b532ba374ebbff0935a", - "source/transport_deps/pydantic/v1/datetime_parse.py": "e10cb5910a6adeb3556497881de48f0e9b92d81be1a7528fb73246d71bbe1f4d", - "source/transport_deps/pydantic/v1/decorator.py": "cda6b1c71a163c29bcd7c0f56ecd3285aa518d79b7d95f06d191d609d335b970", - "source/transport_deps/pydantic/v1/env_settings.py": "03d557c2d465d36018fa31f40b4a2ecb954dc377e2e85fe9933b870e380000e3", - "source/transport_deps/pydantic/v1/error_wrappers.py": "ebadb931fc3daa40b63708ad07f2450167bc07e5efeb3054eeb2fd936f2d7f2a", - "source/transport_deps/pydantic/v1/errors.py": "988c0f103e6f18ce50e6fe02e19d493e5753447fa89af132947ea4b0c84e98fc", - "source/transport_deps/pydantic/v1/fields.py": "56a5890ab894362132a6d5eba03549e74d49a550347a7d9500d724b2a5cbd9bf", - "source/transport_deps/pydantic/v1/generics.py": "5730bd61457e11b3e94376807e4d5c3457a3efdfc8cf39e443b5ab9934d94bd1", - "source/transport_deps/pydantic/v1/json.py": "590e47cbf848a5f751dd84bc93a37613a28c273b1d6c18bf95d58e3c9695f353", - "source/transport_deps/pydantic/v1/main.py": "cee36974de50d15d301b65144cab741d4cb75c9e0e02f3d26437625d8f85233b", - "source/transport_deps/pydantic/v1/mypy.py": "0a5f1745f0a621c544de3e40114e760bc88387c95c5fffc3de1cf68c85b1300b", - "source/transport_deps/pydantic/v1/networks.py": "1d836d2807ce98e9ca269b0383583a488923f563e153ffa2f25e5ed89281a46e", - "source/transport_deps/pydantic/v1/parse.py": "049b5daa2651b5abfd55114298ec6863e2889909a33f2f80fcda288e21546716", - "source/transport_deps/pydantic/v1/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic/v1/schema.py": "6aa06e03ef9cabc8005648a6e4124f140487cce67c745b66157fdf346afa8a9e", - "source/transport_deps/pydantic/v1/tools.py": "d650dd5c79348cbe6e3f7bb9442600bd402518296000efb8e6592af63edfc810", - "source/transport_deps/pydantic/v1/types.py": "07397e45c9e2b4f0479eac308fd8afec98c7b8dd46a67587db874a905de5f5ef", - "source/transport_deps/pydantic/v1/typing.py": "ec67418356131d42d4f35b6107ff5c8d13437d97e7e248685fb9c6b70fe47821", - "source/transport_deps/pydantic/v1/utils.py": "339151c9f3546f50369a4f6568680255d7c71dbdc0b5082b8cee6a7f205fe310", - "source/transport_deps/pydantic/v1/validators.py": "9725249f5316847c65097e597c48058ff0801e88e888f71a41e31d10cf57be25", - "source/transport_deps/pydantic/v1/version.py": "1d79d75bed5b316e6a2a196be5180e10fa21ad90c20d2bb2cbcfa08bc182819a", - "source/transport_deps/pydantic/validate_call_decorator.py": "f23a8b9605d38d6123e1d5c3834c08dc41902a46f42670ac2ff2525236d4e528", - "source/transport_deps/pydantic/validators.py": "a706c825755bd42576980138c3f1067cd8fb0f0cec29a5b0fed4cbe9cbe24eeb", - "source/transport_deps/pydantic/version.py": "4e6124eaa03e540d4f56c737f5b66584f010032bda71de812b3c57007c96d395", - "source/transport_deps/pydantic/warnings.py": "5aed551b3aef159c384fac8220a1e31fb2d263ae878dbb720856e7e6e5a8309e", - "source/transport_deps/pydantic_core-2.41.4.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/pydantic_core-2.41.4.dist-info/METADATA": "3434fb886fe254ed414541f305a86e43ff575093f8f6d15c89bd11144ed8e131", - "source/transport_deps/pydantic_core-2.41.4.dist-info/RECORD": "7f3a82de0054511dbd2f7309c5e5b6ddb3d96c6230bfa83fd73bbdffc51cd0f1", - "source/transport_deps/pydantic_core-2.41.4.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/pydantic_core-2.41.4.dist-info/WHEEL": "7f32b0ec3e21425972f904759f2efc26a495ce223c174ce187bb87ac82f5240a", - "source/transport_deps/pydantic_core-2.41.4.dist-info/licenses/LICENSE": "2afdd30d54b4d62b6f488a6bcc1546e84ec5061f13f4209c03d012348783795a", - "source/transport_deps/pydantic_core/__init__.py": "9cad6292b75254af606a970aae9bff6e5ae9f0b08089cd63acafa391b60794d2", - "source/transport_deps/pydantic_core/_pydantic_core.cpython-310-x86_64-linux-gnu.so": "cd9bb47485cdffc363010507a214155966ca860b0b93bda39583492c6764e631", - "source/transport_deps/pydantic_core/_pydantic_core.pyi": "3ea1dbd4182f08cf9341f24b3c5cf7db77a05b3535ffe9e23525127a3617a11f", - "source/transport_deps/pydantic_core/core_schema.py": "bbdc850b72d685133a0e250fed263b33691dcdf3813492f3c0e31001e3d46005", - "source/transport_deps/pydantic_core/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection-0.4.4.dist-info/INSTALLER": "ceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f1508", - "source/transport_deps/typing_inspection-0.4.4.dist-info/METADATA": "bad3d9e6342ef6750cf5128ec942327b8bebdce0b6e4d6f67cb15b27ae5118da", - "source/transport_deps/typing_inspection-0.4.4.dist-info/RECORD": "cf5e3948866214f2e9ab0c1d43c157e9f9c14f59cf8442936c6cb97d5f2b6a5d", - "source/transport_deps/typing_inspection-0.4.4.dist-info/REQUESTED": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection-0.4.4.dist-info/WHEEL": "ccec20e2307acd7da453dd7437e70c6b08e2bc3ead3bc3445af135da37b56d59", - "source/transport_deps/typing_inspection-0.4.4.dist-info/licenses/LICENSE": "804b59b25f2c31bd278f9202a19ae49a3945aa2664387e2d0a128c7cacc61ec3", - "source/transport_deps/typing_inspection/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection/introspection.py": "5888c45bd627da692d9527699e3f549adf35651596b1656772310e12181b4396", - "source/transport_deps/typing_inspection/py.typed": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/transport_deps/typing_inspection/typing_objects.py": "a778d6290d51581c9c9a23e0263af2a4604c76def5c4d40a7cd1a375b0046ff6", - "source/transport_deps/typing_inspection/typing_objects.pyi": "3bd24dd92d0270d31d64fd40abc1ef8693f5322aab9a78aeb3c5b62f992f84be", - "source/vpp2/src/vpp2/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/adaptive_mask/__init__.py": "a73f5515ffb77d323f9c324776e9c166d13817c470506cfd5db4ef0546cbbdda", - "source/vpp2/src/vpp2/adaptive_mask/audit.py": "c949909a2e60c3c4389c0221c79459961f2c4925baa07f7985774a52257a1d17", - "source/vpp2/src/vpp2/adaptive_mask/budget.py": "74e32285903dbf673ecadb6a60d917a990b9c6619beac9f926c1b3cbdae3887c", - "source/vpp2/src/vpp2/adaptive_mask/controller.py": "328f636201a845ebdc211340a9014a5076fa895e10cf9c2e1f91b96761a2514b", - "source/vpp2/src/vpp2/adaptive_mask/data.py": "e3b633fedaa503b101c80610cbed0933e9e245acf56a6c0692c4d99620faf84c", - "source/vpp2/src/vpp2/adaptive_mask/equivalence.py": "8658cb69d549fa0575570364fe3aa1e0b121fcf8b9965b17cd174d459dddf5ab", - "source/vpp2/src/vpp2/adaptive_mask/execution.py": "efec52c9b2eabf0300c72edea18f9cd4cc16a0889496793abb6a50161f2328ef", - "source/vpp2/src/vpp2/adaptive_mask/export.py": "0ce51e74787d28bbe9f4e73a3774297b424aa131fa78968d24154ff56db98b0f", - "source/vpp2/src/vpp2/adaptive_mask/feedback.py": "519fa4e6416723fc000754815a2f05d3415299ae35724f37bb806ebc22393d38", - "source/vpp2/src/vpp2/adaptive_mask/geometry.py": "f1ce4110c3a3a893f4f240c49e2ccc4e93215ac4ba9e447de8042f9b19afab98", - "source/vpp2/src/vpp2/adaptive_mask/hidden.py": "968560bd6dae0fce59bd28084091b10d559cf165c81764f6ad24b7492101810d", - "source/vpp2/src/vpp2/adaptive_mask/losses.py": "4a7dea6f87ef0fa38a7202d85d98d37460f8f4dc13ca5336f32b1da8b84a4322", - "source/vpp2/src/vpp2/adaptive_mask/masking.py": "31b595916410c60f772fff1ab63e92c854c8fd0d2261e6b865fd05ce2c61b9c6", - "source/vpp2/src/vpp2/adaptive_mask/monitor.py": "48b71f499dd5a0a79557eeb918f5fb1a641dc8654e5d412aa628ca9c57b5dcf8", - "source/vpp2/src/vpp2/adaptive_mask/physical.py": "f54e8b4fae8026cc89f296d74bf4cbea06fa4e126905b572a22c7d8226f0238c", - "source/vpp2/src/vpp2/adaptive_mask/preflight.py": "b646e7ca785afc87356e3e1184e48f535792ebafc84936450fc83bfd3f9f5ea8", - "source/vpp2/src/vpp2/adaptive_mask/priority.py": "68ccff1a384081f0c9a82e8f54ad2c720293f8500e7440a469b5e8fac1ee608a", - "source/vpp2/src/vpp2/adaptive_mask/quality.py": "c3b3a2264ca0b4773805f4485ebfe91bb4ab861e226ff4bd27bd667ab372b59b", - "source/vpp2/src/vpp2/adaptive_mask/quality_policy.py": "f100b7d4a412592777d936a6cf3c73a9f787cc4a62d5f1b8a369fed74acf897f", - "source/vpp2/src/vpp2/adaptive_mask/reliability.py": "306b41720154810bd972fe4d9c4c388e6967539d076ddbedd3a432ac62d13104", - "source/vpp2/src/vpp2/adaptive_mask/report.py": "f71401e09297daed8bbb72cb3af3b887e5fdf5ec282f47637fbb01392d280171", - "source/vpp2/src/vpp2/adaptive_mask/runtime.py": "ed74bfedd147389ea01f3be8c2979fa06c7152326ccc29ee347175690cb9c6cc", - "source/vpp2/src/vpp2/adaptive_mask/state.py": "5e8f95021eeb35511f5481e4e91ae687fe605f9e88d17b3b98d377cc967c17e1", - "source/vpp2/src/vpp2/adaptive_mask/train.py": "ad95349bfb242bcecd7ddf82fc58b31d63f2938a2101f9560bbc9e305f5f5b20", - "source/vpp2/src/vpp2/benchmark/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/benchmark/audit.py": "8587be371653c38b9926aa0ace006a244f270e0ef0020147a7bf5b0fc85d4538", - "source/vpp2/src/vpp2/benchmark/packed.py": "5047fd02f3fcc68e41f543fe83bc9202769a05794d898524d6d25e308f2b5125", - "source/vpp2/src/vpp2/benchmark/scheduler_io.py": "d6df06259549faed2da9f2888b540eac8e1ff2895c339eea58b4ea6a7e3b3cb0", - "source/vpp2/src/vpp2/checkpoint_compat.py": "462c5f93812483b5871633b200bc2ffecb9c201a2caf6b14f8f36dbe95fba50a", - "source/vpp2/src/vpp2/cli.py": "54c19a0f7e25b53bbf56ec13b0f537c9d7b81282e1e80575bddfb470172164e3", - "source/vpp2/src/vpp2/compact_kv/__init__.py": "f34f2f77f68399f45f6656b562a5c331f2504672dc145df368e086532191f766", - "source/vpp2/src/vpp2/compact_kv/blocks.py": "662c1f35055c2be2e2a14f2d92615d046f5e454879e34af39e3c7aec3af34098", - "source/vpp2/src/vpp2/compact_kv/checkpointing.py": "3c33c156e96f26ceb22eee61cfb8b18c3cb9560db0ab405cfd4c46efe5aba353", - "source/vpp2/src/vpp2/compact_kv/eval_prepare.py": "bdb33444056245e3cc773b0849b4db608b454cd24a7ac5b752f1ba26ff978865", - "source/vpp2/src/vpp2/compact_kv/export_check.py": "e6cba70b47027882a34d587aba0da5f9371128ec2db2282b91ad2d49e40065b9", - "source/vpp2/src/vpp2/compact_kv/gpu_check.py": "fedb6a9ab69b51080161ff2a4feae3f85262cc50f932f48e8decf04c1d147a20", - "source/vpp2/src/vpp2/compact_kv/losses.py": "914437ebf3ad91fd2cffa893a65ecb04ab01f2b337658a781a472feeb50c0a06", - "source/vpp2/src/vpp2/compact_kv/model.py": "332ebaebf543d40a34d188ebbe81055ec3e4bcff164bfe90d15aa6cef0748b8d", - "source/vpp2/src/vpp2/compact_kv/prepare.py": "7b01764cad0fafc0cc9441952b2e928048b0a43a6105dbd0eb64c349f4b9bf1f", - "source/vpp2/src/vpp2/compact_kv/provenance.py": "103e0f7100be56233aa86041ba9bc427ccb0db4fe045c4e6b8d3481ab6bb42da", - "source/vpp2/src/vpp2/compact_kv/reporting.py": "0b9ff602fc3425d1b9c122a77da3a426814e11c9cbdcb6b9a75a2a48130087a7", - "source/vpp2/src/vpp2/compact_kv/sampling.py": "2e8d82704f07853a7b487d5aaedef1b2f1fcfc5247e9100a56ed21d69262eae2", - "source/vpp2/src/vpp2/compact_kv/spec.py": "9bc920fc7d4398e424a0bde38ce97f87473aa417cf68b48e2c292a59491bc7d7", - "source/vpp2/src/vpp2/compact_kv/train.py": "a9e4410c5cde5df002d9808554538c29b77ed9e2d2bedc9ac5f8465eed70cc3b", - "source/vpp2/src/vpp2/compact_kv/validation.py": "73b62d02ce1d518cba7b9462e85c3c8d272ae9974e1161b1b6adea6f0040e2b5", - "source/vpp2/src/vpp2/convert_robodojo.py": "7ec2d6bfffbb4f5891ee33a4bf630cf27b17628506aa3cee1c46b3050027b290", - "source/vpp2/src/vpp2/critical_windows/__init__.py": "22721b77e25ec4874c4853d2f2991a14dff6aaa665da500f2830826b06545478", - "source/vpp2/src/vpp2/critical_windows/contracts.py": "ded4a239f7599785d74ff57ff892c5aa74f0280d6759460c93942e91f505d47a", - "source/vpp2/src/vpp2/critical_windows/coverage.py": "6c18bf995aacf413bbe4536eaeed92ab4b2f15f9eaaaa03a2730256ea7922ce4", - "source/vpp2/src/vpp2/critical_windows/inference.py": "df301bd187b27d20b6623febcb5e85815e1b7d4a1e9524a8a65bdf5904bf7232", - "source/vpp2/src/vpp2/critical_windows/metrics.py": "ae2bab145555d55696ef479758a5bae6780527fd3085a4f46d035b667ff32736", - "source/vpp2/src/vpp2/critical_windows/packets.py": "8f7d2c411407d95b1ff4d0e5b9055589f6114b1bb1020eeb7e1b106f330b853a", - "source/vpp2/src/vpp2/critical_windows/prepare_staged.py": "694cb5699de2d9f5ce1bc4667627b47d6bf0698715b4aad86907139859caffe5", - "source/vpp2/src/vpp2/critical_windows/reselect.py": "8d0e31ca1c17906d74de6439276e49ff7ea78abfc66fa556d8a306070b3dbf4c", - "source/vpp2/src/vpp2/critical_windows/score.py": "32daceb9a3fd957d9be75823b4d519629bc60a64d1da62f465e172cb1ec98d55", - "source/vpp2/src/vpp2/critical_windows/selection.py": "a7c35f6719d3308bfb738965d17544a15985c6d684bb47eac7272d6155d96786", - "source/vpp2/src/vpp2/critical_windows/staged_review.py": "d5cfb3f49ec5acc6914da98f5413d1549b2695e7c85c9aed9c0db83dee6be754", - "source/vpp2/src/vpp2/data.py": "8574e1ae3c6ca6e4b84633ee1815f2b3f2ea17c1e55f12fda0b00c5c5a6a7b53", - "source/vpp2/src/vpp2/datasets/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/dataset_utils.py": "e1a1471b0aa70917eaf699f85a9acf3ac70d9fb6eb9ebaf02d2bf2f218d6ab2f", - "source/vpp2/src/vpp2/datasets/lerobot/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/base_lerobot_dataset.py": "729fb3fd4ca531212eadb4a4e9c7e9f97ad34cca091d66380acd6b179f0c29c6", - "source/vpp2/src/vpp2/datasets/lerobot/constants.py": "11ac9260341e1560c5eb0dd7acb79ed63c74180b8ab4113c27622ff213db417f", - "source/vpp2/src/vpp2/datasets/lerobot/critical_phase_dataset.py": "bfe75bb9593ec646236777d90d9fa309fa0e1188db07e07a3be0810edbe3da56", - "source/vpp2/src/vpp2/datasets/lerobot/critical_phase_sampling.py": "266b0b7b023f014f4ccd935b6015b0a05b4659f372264fdefd997ea9692b244a", - "source/vpp2/src/vpp2/datasets/lerobot/episode_instruction.py": "74767839a813c7902861f4561101541c282b72e261df1fd28fe8d06c91231b69", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/__init__.py": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/__init__.py": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/compute_stats.py": "7d7daab219332b5abdfd5ec67ccaf3502e8eb583a17a4e482c3f3d4f7a691e89", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/utils.py": "4fdb4ac0653201e6743f2161c485213429948c1e1d5b068d03b4d97803254006", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/datasets/video_utils.py": "4f66c410ae6aa5a98acfc3320f3dd7b017d0285117054f14226f9e5d82395087", - "source/vpp2/src/vpp2/datasets/lerobot/lerobot/lerobot_dataset.py": "5659e992010bb6674ec50ab0d33b28a8e9dab0ecc895c199662af4c40fe56629", - "source/vpp2/src/vpp2/datasets/lerobot/processors/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/processors/base_processor.py": "d3327cbe398d77761df960014d41e70d349bb0fa42bca874333b9ee970222447", - "source/vpp2/src/vpp2/datasets/lerobot/processors/vpp2_processor.py": "43c5604cbfc315b7377316cb97c9a6f3322124404397abfd01c6c3d0090cd414", - "source/vpp2/src/vpp2/datasets/lerobot/robot_video_dataset.py": "8eabfbd649116b0b4d6c9704c0df34febbf8875f6ab863dd75f4107dbbcdef73", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/action_state_merger.py": "39fd44f254bd7fb71b9269d75d8f9b5a5bbbe167ea438dda92d40eda1d256734", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/image.py": "f494d262ce29770e959bdff60b997f7a07e5f00d10ef515eee7be813d1db038f", - "source/vpp2/src/vpp2/datasets/lerobot/transforms/rotation.py": "feb59d26539be6cfdb86488f0c10c11488ed73901658bc657e67a755ddb9e67e", - "source/vpp2/src/vpp2/datasets/lerobot/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/datasets/lerobot/utils/normalizer.py": "8207d813b698a91dfdbe6910a4aa1fe0e775a2a8edf5c05b2d7a42591e9f8adb", - "source/vpp2/src/vpp2/datasets/lerobot/utils/rotation.py": "8ea2c72565707f5979967a1abeb5edf1eaa2c3fec55a7b50e640de869fc9fbcf", - "source/vpp2/src/vpp2/datasets/lerobot/video_event_dataset.py": "c20d3f5e2bc05e1b7ed94ae38872883a976a179e09b7fa051e94f94e2836c02d", - "source/vpp2/src/vpp2/enhance_prompt.py": "f31b3190c24bad073c5e3121ded4f564232729566e8c1fcc3e76fe75b28faf45", - "source/vpp2/src/vpp2/evaluation.py": "9b76882149e3c3a8c417a0e23514af1bb305c01bf0b6d21fff1f70bc9843f55a", - "source/vpp2/src/vpp2/flexible_mask/__init__.py": "64bed1808976d1f3c708154c36a97288a75abc6463d49d7f0065cb8360a2fb16", - "source/vpp2/src/vpp2/flexible_mask/calibration_batch.py": "dc5d83fc9e2bb595b9e3aeb1923115ebb9345283290a7c3f95c79fdeef7d3e76", - "source/vpp2/src/vpp2/flexible_mask/checkpoint.py": "c8531727e2388ec3d7a9770a504ceda119afcf03d64b2462befcd45a48949f9d", - "source/vpp2/src/vpp2/flexible_mask/coefficient.py": "07a3cc8d8e6c8b60119b9f94ae85074da017b08158fa0a0912cc9051b6df8ef7", - "source/vpp2/src/vpp2/flexible_mask/config.py": "4e1e9b289e293145b4e895c8ef7347bc837d01c929e05fd5cbf65bdb3c20be5b", - "source/vpp2/src/vpp2/flexible_mask/continuation.py": "2016463b4efe01b5d0a9ee84f03c3d95ee16f8e24f230faa465598cc978da29b", - "source/vpp2/src/vpp2/flexible_mask/controller.py": "263f1c9091e0c4318aeefb61e91549ba905ff046a625e35e1b18c94da4b4668d", - "source/vpp2/src/vpp2/flexible_mask/data.py": "d245bafd6f04f33ae7cef7c01d5db876a1a2a1a138c4de8a139d3ea78095521c", - "source/vpp2/src/vpp2/flexible_mask/diagnose.py": "faa29a0fa57c66af3b2e817640fdedfddc998bf878357f484415b244555ae4a5", - "source/vpp2/src/vpp2/flexible_mask/export.py": "3064dfd82bb55a145c16c77bbe17244970d07d18e944b793f4b7368dbcede764", - "source/vpp2/src/vpp2/flexible_mask/gradient_probe.py": "6fe3f13540cb9d8dd20c0b6429268ca74625dfad1e41806412c0f980fac76509", - "source/vpp2/src/vpp2/flexible_mask/losses.py": "df264b71365885ea90329c0b0facc92db3d2eb6e04324ea90a4701a1cd457abf", - "source/vpp2/src/vpp2/flexible_mask/metrics.py": "e976dd066e4b5e7e7ae79db77b9d1be64d17c212c61d0bc113b87a048e8f2b6f", - "source/vpp2/src/vpp2/flexible_mask/performance.py": "95b3977fd739cc98f7de94b14fb490a7c132021e742e7179dc5b5dddd6557c68", - "source/vpp2/src/vpp2/flexible_mask/preflight.py": "f794b997a492911c4d77656310c89d3b85e54983b3b889ba9904be64fb961e43", - "source/vpp2/src/vpp2/flexible_mask/prepare.py": "d6cf82e27555ecc13973727f4b71ce7e40558fef7d95805665fc7e458a42fad4", - "source/vpp2/src/vpp2/flexible_mask/pressure.py": "6cf74edcf3625fce9eec689d70841c6c1481f7c1abd87e5bf70bb38eb34632a2", - "source/vpp2/src/vpp2/flexible_mask/recover.py": "418b2d5ecdd08b08686b2a07bbeb0f969471eb73c04ac6952dcfbcda3b123f30", - "source/vpp2/src/vpp2/flexible_mask/recovery_best.py": "917d924c5708584a0192050a6d8210809e905938aaf877dd81cff3be287ea289", - "source/vpp2/src/vpp2/flexible_mask/recovery_checkpointing.py": "6f6a61c2ee7076c6b0977d1acb489fee7df04322d7f6b13bee9bb8229be319df", - "source/vpp2/src/vpp2/flexible_mask/recovery_export.py": "c50433aa1b7e528fb23c514dddb5b9197f44c662829838ecda106980ab0dd54d", - "source/vpp2/src/vpp2/flexible_mask/recovery_handoff.py": "aa590f707738e4b7c7250f901e29795c7441430f961bfa764437cf34bdc514b1", - "source/vpp2/src/vpp2/flexible_mask/recovery_kv_decay.py": "bf83761798deea4f89c32d14f43bbfb0f16f751b3230962456c073b843dcd08a", - "source/vpp2/src/vpp2/flexible_mask/recovery_subset.py": "7f7154cab6d910b747a0189742ee625983d08f13de50ca60bd4154f61df2b0d3", - "source/vpp2/src/vpp2/flexible_mask/report.py": "5b49283d472bace3a6ad56ce568af04f2c3d04add1a3920ad5006fe98374bce6", - "source/vpp2/src/vpp2/flexible_mask/rng.py": "01680b5b7e8a29ce92e96d756e12ceb80bb0e0ce1ebb642a14fa2a3a34776daf", - "source/vpp2/src/vpp2/flexible_mask/runtime.py": "373a3ecbc2ab6592a359daf6adfd8c958cb657f393e698ca2cb834f06750be4e", - "source/vpp2/src/vpp2/flexible_mask/select.py": "b547857bad61ae7ebd25b888fba73c2ca8f50a8eb31551ca54a909c75c8984be", - "source/vpp2/src/vpp2/flexible_mask/selection.py": "b9453c8735051b54ae7dc8610d2ca332eae8ca1a3e099aaadaf5ab75bfb0f8b0", - "source/vpp2/src/vpp2/flexible_mask/speed_review.py": "9d7099d1e173026274eb439169df2ad4812ec1d56a5f0b21242f972cd835ffd2", - "source/vpp2/src/vpp2/flexible_mask/throughput.py": "ce21bdfda51ae10d1470ac537d910d9f46f60a38910888808ffb3f5a80174d58", - "source/vpp2/src/vpp2/flexible_mask/train.py": "86625613bbc692722c6d2d24278a586f88ce0d76263a9daf92562a9002a8e037", - "source/vpp2/src/vpp2/flexible_mask/verify_export.py": "fb68e62b0da98e6f96cfa694bd061162bbeec1763e5787e057a1cbac5b2ce8f6", - "source/vpp2/src/vpp2/full_mask/__init__.py": "27c9ede277380e8d64586371f2a03334e68ab2d3bfe516d95e8cb96099827929", - "source/vpp2/src/vpp2/full_mask/calibration.py": "5d97e0385eba82252e12cc1562d1a77da2f2bce29332d758c1b5b6b84c5bb47a", - "source/vpp2/src/vpp2/full_mask/conditioning_cache.py": "07adf95165db4c3c1c469695d6b7b6fe4cf4fa9aff0a3d360f4229bffe9be17e", - "source/vpp2/src/vpp2/full_mask/controller.py": "0e6a969b89a4275352cc5a1e00bdfe8e3f8754a6ebd7f9266b92179cbe6bdd10", - "source/vpp2/src/vpp2/full_mask/cpu_contracts.py": "1a46a53a68d2d8a202c5f98d9a78f6d5f5041dada0c2239ed81e7916a28f0758", - "source/vpp2/src/vpp2/full_mask/curation.py": "4ffd7b0212bdbca1daf73ba7c24423523437012150fc044a43bbb33cce747545", - "source/vpp2/src/vpp2/full_mask/curation_v3.py": "9dba386d66869de0fba321ade79b2692d47f111ccfebc7f367194cef7a4b4e8c", - "source/vpp2/src/vpp2/full_mask/curation_v3_checks.py": "688ea4e7e44c4ecc1a3cd81cf682e2cbf611d9ad2d52744ba1308324da70febc", - "source/vpp2/src/vpp2/full_mask/curation_v3_features.py": "11011a089f1586045e2972cf267773aaf4602cf08c8b0e755bbf017ede1e6e43", - "source/vpp2/src/vpp2/full_mask/curation_v3_finalize.py": "a2a7812eb6c670686a7a4f4adff0a2c6363dbc078c71d948537f1c5fd546254f", - "source/vpp2/src/vpp2/full_mask/curation_v3_probe.py": "2755e9cabd0fe02e70cb8330c083af881a5e4696697d58cf7aa01bd00ef57f6d", - "source/vpp2/src/vpp2/full_mask/curation_v3_quality.py": "b9170398762112a23bb133dde53c6a49193c671c767647239c8b0ff15159530c", - "source/vpp2/src/vpp2/full_mask/data.py": "668a7c5f88a3ab17854eb0df240c974082f4aa64604cf11d3143b18337f73181", - "source/vpp2/src/vpp2/full_mask/distributed_smoke.py": "f699d4f330309f29a537fbabb61c60f61eb3322d7304605351dba3d2acb48e8e", - "source/vpp2/src/vpp2/full_mask/gpu_prepare.py": "92ce96dc4c1b6d6ebc22d99935472c15d86ba2a7c050e31640d2c32e08748ec5", - "source/vpp2/src/vpp2/full_mask/monitor.py": "2724a934d1f96444227c854f75ef84df6025c02485aa68eca34f3b28d509fe19", - "source/vpp2/src/vpp2/full_mask/native_monitor.py": "5572712a340f17692a669d2a4c41d1d691164925eb7bd06a56fff1dc2afd69fa", - "source/vpp2/src/vpp2/full_mask/panel.py": "2844b663340cbfb54f7622f3447a7831e2809050739a52dc076fd6ae32ed9e46", - "source/vpp2/src/vpp2/full_mask/review_decisions.py": "ed1184bcda7b5bb3fb11bb4262c4461c408e3d3ac0d23e80d2f8cafcf39c7e18", - "source/vpp2/src/vpp2/full_mask/review_report.py": "752ba9e8a3caf5b8cefa2d18e6fe14860e6f998f57c03af0940af0943b09a9b1", - "source/vpp2/src/vpp2/full_mask/runtime.py": "ae30b4d3fd3c888bef17672376dc3b34491cb296a1883959674ad465579efe7b", - "source/vpp2/src/vpp2/full_mask/search_quality.py": "ee3238d3366799e97d3f9a90c11f579ff8f51d5bd0642f52c37d9dcdbcf02e6e", - "source/vpp2/src/vpp2/full_mask/train.py": "f4127e6580522d4d9e5a50db10d201526e948d4d3479ddfbbc12e60ec61c7501", - "source/vpp2/src/vpp2/full_mask/verify_data.py": "72ee60ba2016d5f73eb2ccb01b666a5dac37138620efc4a79a20607df3658fb3", - "source/vpp2/src/vpp2/inference.py": "42b3057a85aaacbb87440bc740f13b09b9c82cd51d8c5af4e080716aabdcf38e", - "source/vpp2/src/vpp2/learned_width_kv/__init__.py": "0c59cb8424b6cd64508a005625e9edf63c84d24618a5d2caf6e6fa5d63cc859e", - "source/vpp2/src/vpp2/learned_width_kv/calibrate.py": "b89bbf103b49fd85f85f8c300a7868bb42ae7a13f29bd9878dbd5a11061ae51d", - "source/vpp2/src/vpp2/learned_width_kv/checkpointing.py": "7d30e46b95d91df8aff088346ae75809958622b3a8e8d953db4f30adfbaebadd", - "source/vpp2/src/vpp2/learned_width_kv/common.py": "52dff98c6317b34df2a13313a641998acf4f9e18ac31ea4e8e25227afa14620d", - "source/vpp2/src/vpp2/learned_width_kv/controller.py": "7b5a8793a540e1e7464185229189f4f1f1acadcd7cf3c2bf477bda5de7d18787", - "source/vpp2/src/vpp2/learned_width_kv/data_scope.py": "0ddde6805f646afbf5f5966c53530f829becd083802f0e0a8697dc1004e2003e", - "source/vpp2/src/vpp2/learned_width_kv/distributed_check.py": "f89f153a20730a6bc3c70133479f34918d30c5a48775bb3f6c14bb25701801ce", - "source/vpp2/src/vpp2/learned_width_kv/gradient_probe.py": "3bed964f6488e95b386cc58058e7f28aff50c9a98dd526f3365891a9049a6fab", - "source/vpp2/src/vpp2/learned_width_kv/lifecycle.py": "798afa47ec5dcc8749982da2d7853eff184e450a32d51bcf70eb4578f2bb0b09", - "source/vpp2/src/vpp2/learned_width_kv/masking.py": "3272ea09271130dcb3cab6935f6bb7d61bda66b9982c3baabcd61ee0efd914a0", - "source/vpp2/src/vpp2/learned_width_kv/performance.py": "a2fd9597c51bf0cf5c435b48e8f57792df24d2723a6d7b6b841d6fa24f17ab2f", - "source/vpp2/src/vpp2/learned_width_kv/reliability.py": "f74399fb67427093b3e4c7df9749379f9291b7ac58bd6632db226b6e78fdbfd0", - "source/vpp2/src/vpp2/learned_width_kv/reporting.py": "f22c1d8806a5b7757bb6dd99b15153d0305b2eeb0790bb37763337690d642036", - "source/vpp2/src/vpp2/learned_width_kv/runtime.py": "513da1e06ba9509164f017e0b8dbf6b219d7e1cff82edb2d2fd8d2d7839e666f", - "source/vpp2/src/vpp2/learned_width_kv/train.py": "5813ebd4fefec6d3a8cead9e0c645d10734f5ec88c4d74a5742587f2eb4de6c3", - "source/vpp2/src/vpp2/learned_width_kv/validation.py": "d5594ce875c8011bff12d3c77083dca68878178ed022b8079761267d04a82386", - "source/vpp2/src/vpp2/learned_width_kv/verification.py": "1bc43d48ef0ec3056af614adf43ca0744d94b1e77fe970168fef87c7cf2e6fe8", - "source/vpp2/src/vpp2/libero/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/libero/action_model.py": "178fbe4cf02b9a2e133ef31389b6bb2f9baf0504bd0818a265b6bff32ebc3914", - "source/vpp2/src/vpp2/libero/cli.py": "fcf68a88e2db0a9b786c6199d9b719802fe4b84514741658b49e2b06e2473e45", - "source/vpp2/src/vpp2/libero/data.py": "19b699381e7d6fa769b5090c7125ae01b7584576e969468660ee65b1585ef5f1", - "source/vpp2/src/vpp2/libero/diagnostics.py": "9540e31dfd2def06bec942ffe73262278700a17a340e14cb5bd41a295706e147", - "source/vpp2/src/vpp2/libero/eval_helpers.py": "ac338d4ade195ceb3a87620d162befa9679e2d7ed3d91b09927e5d59d86d97f4", - "source/vpp2/src/vpp2/libero/eval_libero_single.py": "87e6b457dc412ef4fe5d01aa48b1a6d20a28dbce3152848042e2103769e4efef", - "source/vpp2/src/vpp2/libero/eval_libero_task_manifest.py": "f0c721a7ddc768edddc8b0e065a4d8aeec35e1a546c88deebd9097ad93f6227b", - "source/vpp2/src/vpp2/libero/evaluate.py": "24216f9814f8304e077d72ff8d8c778fd588239313b34cd7d23b960c8f924c67", - "source/vpp2/src/vpp2/libero/libero_utils.py": "c7cc23976c86eabcada4846d46345d3605fc2ce03929761646486be3901697d4", - "source/vpp2/src/vpp2/libero/prepare_pro.py": "0999050352d924c11d29b22f63e902162d8cfb23f94815c93c01295c11ed81ae", - "source/vpp2/src/vpp2/libero/pro_alias.py": "90b5c8c8061bc727a6e413a8746fcc98cbd06e1c7c4175fd223b45af4f10b700", - "source/vpp2/src/vpp2/libero/pro_runtime.py": "adf94ed64b032aaeb0d88391e7b653f88f67e76b9411419ece25faa31ccc1340", - "source/vpp2/src/vpp2/libero/protocols.py": "68225c95eeeee25032966a7f90c1ba18067c53225397f59a463d764030fd0d93", - "source/vpp2/src/vpp2/libero/runtime.py": "1e2e2900a604d33cbdf8774cfa33dcee1065f21dc0b59fcf30799b5098c1662a", - "source/vpp2/src/vpp2/libero/trainer.py": "ea29b4e000047a6b0c8aee3cb6f32df9187987a657924085dbafd9628315107b", - "source/vpp2/src/vpp2/libero/worker.py": "9df6350c4ab92dea70863c08f1bdcebd0d77574a3a2d8d7ac9899a5a825be6b0", - "source/vpp2/src/vpp2/models/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/action_dit.py": "9a654edd860ce77c1308923bd338c7f14d09f68686642531d7143c16b9f6f331", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/compact_channels.py": "6f7ad787624844970985117002ab809bd777f7474969daca121e7101381c6d0c", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/gradient.py": "594249b6eb931048e352fd3ffef9b1ac1db9e4fc74659e04216d6b823dd174f3", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/io.py": "1b68cf2f2fd674c7a59140f8632d4464044bffc2e9277ef5f9a975e7c699966a", - "source/vpp2/src/vpp2/models/wan21_14b/helpers/loader.py": "b9180b9c9177af192e5cb92387b4a09bd0dbc08fb75a94e843b67d315c94e339", - "source/vpp2/src/vpp2/models/wan21_14b/mot.py": "cc14a909bfb181a441bc9d8d6de12f3c31d89f3dc3415031e34a5f8c21410019", - "source/vpp2/src/vpp2/models/wan21_14b/schedulers/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/models/wan21_14b/schedulers/scheduler_continuous.py": "15de04574c1d8ccb794ca6560b1e501e5c83cc86104bb80f1eb3cc3b0324ffe0", - "source/vpp2/src/vpp2/models/wan21_14b/vpp2.py": "8c419af905a8ffa93d77c827a283b7aeff744f3a461c390783eef8a333c31756", - "source/vpp2/src/vpp2/models/wan21_14b/wan21.py": "01b45cc71f69a6914f7b286559317c8e8485d0b0fec93bb28ebc37c183c295f4", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_clip.py": "f65e44c9d1b7811d2996b3fa22e6fe4c2ac5e6edf1fc2c14251cf582bf8d1f05", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_dit.py": "0d1b5837ea923508c05394d56aaa465813e7b4f5aea3b31ceceae39b2de9b0f9", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_text_encoder.py": "902a1e46b21b5c48e166fe03defabb94b3773c6bbe836fc09b9a0d0894eb1f6e", - "source/vpp2/src/vpp2/models/wan21_14b/wan_video_vae.py": "33f7d804677b44a6f3ab334684017dcdb1e9dfb748279de76ad94a5bb71a7e51", - "source/vpp2/src/vpp2/policy.py": "2a7696cd73ccb99575bf901185cf578c3775945f61f6e67aeb2b4ec6bfc4e30b", - "source/vpp2/src/vpp2/preflight.py": "7a91e486675a4cdf38565e0f4b58e60a68bba7de5654cfff736b5df58f5c53a6", - "source/vpp2/src/vpp2/robodojo.py": "183db869a622ef17ee92c487949db2e22a7d1365558fe703bfb8dd8fef83e9c6", - "source/vpp2/src/vpp2/runtime.py": "e26885a3732f5fdac3d8381da870a1673d0c03354f02f9deee7fe779d645f8a7", - "source/vpp2/src/vpp2/trainer.py": "feaa0ac4ed94a376836eb60cfe6f52460392b11f7cafafec9c6d9f151f5b61f1", - "source/vpp2/src/vpp2/utils/__init__.py": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", - "source/vpp2/src/vpp2/utils/conditioning.py": "43d43f0f3ca0add64498c3d64a3791513a53e3fce0ea53f77ef09580a86b7b2d", - "source/vpp2/src/vpp2/utils/fs.py": "69e6df236b43360428a613686c8f37c531c0d16a3a2c5b06a725c46b49d657c5", - "source/vpp2/src/vpp2/utils/logging_config.py": "1de4abf66d9d201b49e7bff48291643b9dc5ec9b6e7918ca73e1bd18887b1c43", - "source/vpp2/src/vpp2/utils/lr_continuation.py": "72ea9f2af52041db19aab681d7a99fdf6d87d5ed5486f2499383a211c6c1ab76", - "source/vpp2/src/vpp2/utils/misc.py": "7e42c330c24604e118f1878473dc804aa8a272944df502ef1414c05be4d5bba2", - "source/vpp2/src/vpp2/utils/pytorch_utils.py": "9b0ba19de9a64458b12a0fb24f0811f49d9e9fca5d8b815f5f5ecd3b7886fd63", - "source/vpp2/src/vpp2/utils/samplers.py": "4d3bd9b2d498f4ad8f2cf9765d60c4bf5368fa6fa2a7d42d0db6210f66899652", - "source/vpp2/src/vpp2/utils/training_profiler.py": "91f6d98577e63d85e474c738a9bc1901edc194bdf318b5387d527c31b6708832", - "source/vpp2/src/vpp2/utils/video_caption.py": "d9572deb3690aecb0f16c052016cedc5f94da8ce8f016b4dff1a4e358e18d5e5", - "source/vpp2/src/vpp2/utils/video_io.py": "9e9898b021a44e87aa1b4e6d13e3755a9869a2e27a7eb53c72a6802808d5bd80", - "source/vpp2/src/vpp2/utils/video_metrics.py": "1840a37685d686336c7326a2a3d4fbe048d1e8e7e431fb14519d360a8b7aaae8", - "source/vpp2/src/vpp2/video_training.py": "20f55bf8b0a7dba6422a1115be1c8adf31a0db6a9f53a8f6f53f5d970188bfb2", - "source/vpp2/src/vpp2/weight_resize.py": "269edd4b9d32a1c7f363ee082dde7ce57f2176190daab6d5bf4a1c98ab43f0b4", - "source/vpp2/src/vpp2/weights.py": "5dbdff347de1b57e30433efca6da28334d0263d27aaa9b2278d95614db1b8641", - "source/vpp2/src/vpp2/width_kv/__init__.py": "0183a7106da7e45223550a552db2905d6b59c2a4259f8c86cb98629b03e66b43", - "source/vpp2/src/vpp2/width_kv/calibrate.py": "93a06910cb23a9e1dbd961ee9ef9794d70aaaa6186b08483260c8215109598f5", - "source/vpp2/src/vpp2/width_kv/common.py": "45f5f7087f5f3dc067358838e3fc738698b796defecb2ea721545d275f767766", - "source/vpp2/src/vpp2/width_kv/diagnostics.py": "cf184ae58f5e1c5f4453774eee1e10c85931e618bbbf768ab42f649cf301f5f1", - "source/vpp2/src/vpp2/width_kv/reproducibility.py": "89c5377e1314dd6e8de7f67c4385d30f5bd91fa4a5742449f1c1ff8dd578f451", - "source/vpp2/src/vpp2/width_kv/scoring.py": "7644358d0b2d29d3b91515fcea56090dbd2a7a0dad2d5e5c88e8d585bff15533", - "source/vpp2/src/vpp2/width_kv/slicing.py": "856203c14e0b06d19585a96392d00a00703779ebdb9dbdc9ab1323d50daf8ba4" - }, - "update": 1000, - "validation_gt_action_mse": 0.0005726480308242441, - "video_parameters": 12468409664 -} diff --git a/inference/README.md b/inference/README.md new file mode 100644 index 0000000000000000000000000000000000000000..38e99e161105c1710074b500ade351715c7e08dd --- /dev/null +++ b/inference/README.md @@ -0,0 +1,13 @@ +# Bagel-Robotics-1 public inference adapter + +This folder is the standalone XPolicyLab adapter for AdaPrune checkpoint 1000. It contains inference code and evaluation instructions, with no training repository dependency. Model tensors download separately from `bageldotcom/adaprune`, pinned to `2651631c5d08819088475e8778676f5cf6d9afcf` and verified against `policy/bagel_robotics_1/artifact-manifest.json`. + +Install this adapter into an existing XPolicyLab checkout (the installer refuses to overwrite an existing policy): + +```bash +python install_adapter.py /absolute/path/to/XPolicyLab +``` + +Then follow [Installation](policy/bagel_robotics_1/README.md#installation) for the Python 3.10 environment, exact checkpoint and encoder download, and debug checks. [REEVALUATION.md](policy/bagel_robotics_1/REEVALUATION.md) gives native simulator task/suite/three-seed commands. RoboDojo and its assets are installed separately. + +The adapter is prepared against XPolicyLab `6baccd57ff958570d0db1588370289ee36c8bb70`; source and dependency pins are preserved in the policy folder. This public release is not an XPolicyLab PR or an official leaderboard result. Training/pruning/export source and the technical report are planned for November 20, 2026. diff --git a/inference/SHA256SUMS b/inference/SHA256SUMS new file mode 100644 index 0000000000000000000000000000000000000000..655413b1e67d62beb5f63b559849a56550afa1ad --- /dev/null +++ b/inference/SHA256SUMS @@ -0,0 +1,81 @@ +9ee395e4c4603776300a8cf2b8e1b986c47df4f2aa00bccaef7d32fe1a302724 README.md +56f26e5b6ba87080c82703e102240fdfbd955c731fb2a044609ffff099795b3f install_adapter.py +6c9437916a0dc5b6ed5fd56b361a4a1894be910e6965c9570e8683cc74a40813 policy/bagel_robotics_1/.gitignore +24cb153ee8bababbfc20fe7acd36768923fbcf2a07d0aa653f460282761ccf8f policy/bagel_robotics_1/EVALUATION_RESULTS.md +8379dddfbbb1154ad9cc57f008f1f8d4a8d26c3de99bd6b36aa4d8067888aa92 policy/bagel_robotics_1/LICENSE +2b2e02ed1e08922744249a51678dea3b765dd0d10d9d908e93b3b9b53531775a policy/bagel_robotics_1/README.md +4fa25718ab410d9926541d5c682693a0772f2d7df2f1fd9c1c4a205d1e0b2521 policy/bagel_robotics_1/REEVALUATION.md +2f051521079a9de8815faafcb20098f1fe7fa167425e8c8088e7a42c2d50bb8e policy/bagel_robotics_1/THIRD_PARTY_NOTICES.md +1d22bc8164fcca87f47b003406878112087118c4a5e23e6019ae1998e2b53418 policy/bagel_robotics_1/VALIDATION.md +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 policy/bagel_robotics_1/__init__.py +1d89d4f59bf0d9c5d7cdf29de28baec2280c99c6a28b9176365781f4f506fd30 policy/bagel_robotics_1/artifact-manifest.json +76fec0d61c9344d8d2c5f61853a93269c8b19ae16d08de673f2ced5bdfe08b79 policy/bagel_robotics_1/assets.py +2a16b03892ede7aa0a93cfd65e01a239498aa992bc4f1affb9cdde54253dae08 policy/bagel_robotics_1/backend.py +68f337b21b1e517e1df27550e64fbc542b644528adc8f3f47fb8e44849185af6 policy/bagel_robotics_1/deploy.py +4c315728926a12e96cd2aee3ff2f66d2f8ee7b175f331745f6aec01771c88a9a policy/bagel_robotics_1/deploy.yml +e8ce9e58f22e4330b2f1cca1f45e304d9cd466941ec795ebcf46782d1299fe93 policy/bagel_robotics_1/download_checkpoint.py +467e70c368f1574f6a39afdb3c84d6b10e8430bdbf638d9742a58585c7e60bc3 policy/bagel_robotics_1/download_checkpoint.sh +daae036dc45b13f90f1b5b5c9e813262d62585aba467534e2402d4933e8dd97c policy/bagel_robotics_1/eval.sh +6110ad701ed4c7dd9768b61add6df64ace15c7109ccafdace4ea8ab8934b23cb policy/bagel_robotics_1/evidence/action-comparison.json +2c8b3a55f75117533bf7ec0cfa8cfa7c42cd9b51d2517161fc022e8e15c5b9d3 policy/bagel_robotics_1/evidence/five-suite-results.json +3187c8c75bb85c393b65f23838e8163fd201081b82b492601b2a6c7bb552d43a policy/bagel_robotics_1/evidence/gpu-validation.json +f73d49a6b9c96824eddb76ae146b720a1d2feafba69c2ab7e9222c9167f3985f policy/bagel_robotics_1/evidence/local-results.json +a299b9f60b3820af5292ef8b410d73aaa67a97f41e44c8415e9ed743d67f4f7b policy/bagel_robotics_1/evidence/pr-audit.json +d842f9639df62df7fddc84f095771b438f02f955605e221e4f7b160893592454 policy/bagel_robotics_1/install.sh +c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 policy/bagel_robotics_1/licenses/Apache-2.0.txt +7794bb06af8fe5485ca912454ad1665ccd7846c45f9c2b1258658e480948cdbe policy/bagel_robotics_1/licenses/RoboDojo-MIT.txt +c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 policy/bagel_robotics_1/licenses/XPolicyLab.txt +56418464b2a88e7aea31d436ee42851dfababad97db9178abdce318b5a7e621b policy/bagel_robotics_1/model.py +2d1698608d28de6395f8c8794460b292f0233d2a4a5ef76a5d83152631ffe389 policy/bagel_robotics_1/requirements-transport.txt +8379dddfbbb1154ad9cc57f008f1f8d4a8d26c3de99bd6b36aa4d8067888aa92 policy/bagel_robotics_1/runtime/LICENSE +bc40a4d1ce1487f1f0bb4b272af7abe6db345ec5fa3cc1373afc7ad36fa7743c policy/bagel_robotics_1/runtime/THIRD_PARTY_NOTICES.md +c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 policy/bagel_robotics_1/runtime/licenses/Apache-2.0.txt +2258964574a8c567f3f6f871e54ef3664218bed4c40ee73eee4ed8df304fab0b policy/bagel_robotics_1/runtime/pyproject.toml +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 policy/bagel_robotics_1/runtime/src/bagel_cp1000/__init__.py +70e67d196cb46263677ebe873c5837657d6b8f90ca40cb6845f4782f5377ba2d policy/bagel_robotics_1/runtime/src/bagel_cp1000/checkpoint_compat.py +8729d8e1386c74a0e3bd1c800a7c883725c9d00441f19bcbe7e40c2f8ff7af84 policy/bagel_robotics_1/runtime/src/bagel_cp1000/data.py +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/__init__.py +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/__init__.py +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/processors/__init__.py +df79b044f93bcc9f4e93a2575ed5a7bc191595e3916753fcc26d3dd00db892c3 policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/processors/base_processor.py +b00acaa43c3d18323f56ec9899b2de3ee5a7df8c2289ceea283725ca62aae773 policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/processors/vpp2_processor.py +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/transforms/__init__.py +39fd44f254bd7fb71b9269d75d8f9b5a5bbbe167ea438dda92d40eda1d256734 policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/transforms/action_state_merger.py +f494d262ce29770e959bdff60b997f7a07e5f00d10ef515eee7be813d1db038f policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/transforms/image.py +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/utils/__init__.py +28cedb2f4d69257a5f4da10e406dddba78ddd2a95408a9a55d6f74be5899d8dd policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/utils/normalizer.py +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/__init__.py +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/__init__.py +780171144ff43f9282875af6c42a16db96b1f9ff56d01742a1024f7888fbb0fb policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/action_dit.py +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/helpers/__init__.py +6f7ad787624844970985117002ab809bd777f7474969daca121e7101381c6d0c policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/helpers/compact_channels.py +594249b6eb931048e352fd3ffef9b1ac1db9e4fc74659e04216d6b823dd174f3 policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/helpers/gradient.py +39cb43aafb25c9046d19921cdddc6df2bae2b3eb267f5f1c271254dd216908e5 policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/helpers/io.py +ce632db536b479c96a7160968eb314deb4e2dd1ab1b986e68f5dd8dea0ed6468 policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/helpers/loader.py +5f42547a8571a2758ea6d4285834d5eaafc67285c6db42d44ec3c317e8402cc2 policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/mot.py +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/schedulers/__init__.py +15de04574c1d8ccb794ca6560b1e501e5c83cc86104bb80f1eb3cc3b0324ffe0 policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/schedulers/scheduler_continuous.py +41e8632ad7898bf3a63cf7c874179adae609583ceb1b4dadf2b4c22669865323 policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/vpp2.py +d203d5ec0f6c913b052e22202eff0fe238e087040ae0de9843b7a22a5533b5f3 policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/wan21.py +f65e44c9d1b7811d2996b3fa22e6fe4c2ac5e6edf1fc2c14251cf582bf8d1f05 policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/wan_video_clip.py +516b8dd09d576898c8760968ada4b617f5fe6a7c3fd945787898ae326df8e9a1 policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/wan_video_dit.py +902a1e46b21b5c48e166fe03defabb94b3773c6bbe836fc09b9a0d0894eb1f6e policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/wan_video_text_encoder.py +33f7d804677b44a6f3ab334684017dcdb1e9dfb748279de76ad94a5bb71a7e51 policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/wan_video_vae.py +35ca975c19a1290531c0027e5cf849ceabee724ff771ed4b49dd653c125c8deb policy/bagel_robotics_1/runtime/src/bagel_cp1000/policy.py +dcf2942f3b9a02590902212b3c4f24b297c485ed0be65702ee540529dd4f55c0 policy/bagel_robotics_1/runtime/src/bagel_cp1000/runtime.py +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 policy/bagel_robotics_1/runtime/src/bagel_cp1000/utils/__init__.py +dd3afea396e0ba3e619a1a66121f3c41dd0ca4174e1cf1f9f459b200f23e2690 policy/bagel_robotics_1/runtime/src/bagel_cp1000/utils/logging_config.py +9b0ba19de9a64458b12a0fb24f0811f49d9e9fca5d8b815f5f5ecd3b7886fd63 policy/bagel_robotics_1/runtime/src/bagel_cp1000/utils/pytorch_utils.py +113091a0c7fa38ecda3aae470bb6f151d0d034cfc187d4d752350f8cb9d71191 policy/bagel_robotics_1/setup_eval_env_client.sh +428ada84e7b5d2c131118e7c8c47a65fb60bc34ce49db94b2e33608c354b93b9 policy/bagel_robotics_1/setup_eval_policy_server.sh +6597accf2e5ebc6ac46cdc9cfefc9a1622f24fecc9059516dab4fc3abd4530c6 policy/bagel_robotics_1/source-provenance.json +42be4b09c56377f4686b2e722de760fa3bafd1c6b92605ada269d94e19efc95e policy/bagel_robotics_1/temporal_ensemble.py +d5a7f0219ee4fc94c32add51121b83bf2138950a39de67cd42d9a76dddf391eb policy/bagel_robotics_1/tests/fixtures/checkpoint_processor.json +add0937c0762cba1395426f8c46fc3b5b9bc2d6da63a51202b7b781a53732db9 policy/bagel_robotics_1/tests/test_backend.py +97b8ff038365aed20925627fd6f5ed589b9a4b74a3795742fe381f925746259e policy/bagel_robotics_1/tests/test_checkpoint_processor.py +59ba14286d9b0ab3d2d29d59fa8b04bb3cdc51dcfadeb6f4b8df7a0df417cb11 policy/bagel_robotics_1/tests/test_contract.py +a602f672afb21b6662e18882a104e1fc16e46a31a3aa73d9598a1eee715045b4 policy/bagel_robotics_1/tests/test_validation.py +df0f4687516d3392bfee26e747352fa6510c33ff5102da5dbe830dfb11235c48 policy/bagel_robotics_1/validation.py +34ca874def38c294228fb542fde970ba1bc3ccc9ff390b23ebe1fc40e3a37459 policy/bagel_robotics_1/validation_compare.py +9fb0ffad9e69f97c34a90428831ef7eed219fe62c989b0e855dc0d5f6fb2e3ec policy/bagel_robotics_1/validation_replay.py +45a6a985ffc7e4c64df13e37fb6afffc649f0675cdfb7bbdd64aeb37b0feee7d policy/bagel_robotics_1/validation_server.py diff --git a/inference/install_adapter.py b/inference/install_adapter.py new file mode 100644 index 0000000000000000000000000000000000000000..bda9a874c1a5159fb1ea78ba6c2cf2a7c82f3d5e --- /dev/null +++ b/inference/install_adapter.py @@ -0,0 +1,40 @@ +"""Install this standalone policy into an existing XPolicyLab checkout. + +Refuses to overwrite any existing adapter. Does not publish, submit, or load GPUs. +""" +import argparse +import json +from pathlib import Path +import shutil +import subprocess + +ROOT = Path(__file__).resolve().parent + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("xpolicylab", type=Path) + args = parser.parse_args() + xpl = args.xpolicylab.expanduser().resolve() + for rel in ["model_template.py", "setup_policy_server.py", "utils/checkpoint_resolver.py"]: + if not (xpl / rel).is_file(): + parser.error(f"Not a compatible XPolicyLab checkout: missing {rel}") + source = ROOT / "policy/bagel_robotics_1" + destination = xpl / "policy/bagel_robotics_1" + if destination.exists(): + parser.error(f"Refusing to overwrite {destination}; choose a clean checkout") + shutil.copytree(source, destination, + ignore=shutil.ignore_patterns("__pycache__", "*.pyc", "*.egg-info", + "checkpoints", ".venv", "build", "dist", ".pytest_cache", "validation-output")) + expected = json.loads((source / "source-provenance.json").read_text())["xpolicylab_base"] + version = subprocess.run(["git", "-C", str(xpl), "rev-parse", "HEAD"], + capture_output=True, text=True) + print(f"Installed: {destination}") + print(f"Prepared against XPolicyLab commit: {expected}") + if version.returncode == 0 and version.stdout.strip() != expected: + print("This checkout differs from the pinned reference; rerun adapter checks.") + print(f"Next: bash {destination}/install.sh /absolute/path/to/new-policy-venv") + + +if __name__ == "__main__": + main() diff --git a/inference/policy/bagel_robotics_1/.gitignore b/inference/policy/bagel_robotics_1/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..92e78f945da7430756a7592348acf89c52d93516 --- /dev/null +++ b/inference/policy/bagel_robotics_1/.gitignore @@ -0,0 +1,9 @@ +checkpoints/ +.venv/ +__pycache__/ +*.pyc +*.egg-info/ +.pytest_cache/ +build/ +dist/ +validation-output/ diff --git a/inference/policy/bagel_robotics_1/EVALUATION_RESULTS.md b/inference/policy/bagel_robotics_1/EVALUATION_RESULTS.md new file mode 100644 index 0000000000000000000000000000000000000000..d2b0231c15d11a9c682f6c39d9378fa9d4cba4ac --- /dev/null +++ b/inference/policy/bagel_robotics_1/EVALUATION_RESULTS.md @@ -0,0 +1,103 @@ +# Checkpoint-1000 research evaluation results + +Bagel-Robotics-1 / AdaPrune Final, checkpoint 1000. Success means full task completion; partial scores average credited progress over all reported outcomes, including failures. Partial values here are out of 100. Generalization combines standard and randomized episodes; other suites use their recorded standard scene selections. + +| Suite | Successful / reported outcomes | Success rate | Mean partial /100 | +|---|---:|---:|---:| +| Precision | 126/400 | 31.50% | 40.43 | +| Memory† | 173/300 | 57.67% | 58.00 | +| Long Horizon‡ | 137/400 | 34.25% | 53.00 | +| Generalization | 183/600 | 30.50% | 36.82 | +| Open§ | 16/400 | 4.00% | 4.48 | +| **Equal-weight five-suite average** | **635/2,100 total; not the averaging formula** | **31.58%** | **38.55** | + +## Original scenes, repairs and replacements + +† Memory has 299 valid original results: 173 successes, **57.86% success and 58.19/100 partial**. Original sorting-sequence episode 47 remains unscored. Its separately repaired variant is a valid failure with score zero; the headline includes that variant, giving 300 reported outcomes. The repaired variant is not an unchanged-original result. + +‡ Long Horizon includes 398 original results plus egg-holder replacements 50 and 51 for invalid original layouts 15 and 20. Both replacements failed the task, with partial scores 0 and 0.25. Original-only totals: 137/398 successes, 53.2035/100 partial. + +§ Open includes 399 original results plus pickup replacement 50 for invalid original layout 5. That replacement failed with partial zero. Original-only totals: 16/399 successes, 4.4862/100 partial. + +Generalization combines standard and randomized episodes over all 12 tasks (600 results). The nine user-supplied completed tasks contribute 131/450 successes; the three node-2 tasks contribute 52/150. The original stack-block layout 6 and laptop/headphones layout 22 succeeded on retry; these are original scenes, not replacements. Cancellation of duplicate queue entries does not discard the separately supplied completed results. + +These totals contain **2,096 original results, three replacements and one repaired variant**. The overall score gives each suite equal weight, not each episode. Organizer acceptance of local substitutions or repairs is not assumed. + +## Sources and scope + +Precision, Open and Long Horizon retain the original receipt hashes and replacement evidence in `evidence/local-results.json`. The completed five-suite calculation is in `evidence/five-suite-results.json`. + +Memory and nine Generalization tasks come from the user's supplied completed task summaries. Their raw episode logs were not independently re-audited during this packaging update. Stack blocks, store laptop/headphones and sort nesting dolls use node-2 receipts verified in the preceding results review, including successful original-layout retries. No new multi-seed estimate is implied. + +These results belong to the frozen research runner. Packaged-adapter debug, smoke and matched-action validation are reported separately in `VALIDATION.md`; research scores do not substitute for those tests. This is not an official leaderboard entry. + +## Task-level breakdown + +### Precision + +| Task | Successful / reported outcomes | Success rate | Mean partial /100 | +|---|---:|---:|---:| +| Build tower | 32/50 | 64.00% | 73.60 | +| Deposit coin | 11/50 | 22.00% | 26.80 | +| Fasten screws | 18/50 | 36.00% | 66.80 | +| Insert key | 0/50 | 0.00% | 15.00 | +| Insert tubes | 32/50 | 64.00% | 75.20 | +| Play xylophone | 0/50 | 0.00% | 0.00 | +| Plug in charger | 2/50 | 4.00% | 4.00 | +| Pour balls into vase | 31/50 | 62.00% | 62.00 | + +### Memory + +| Task | Successful / reported outcomes | Success rate | Mean partial /100 | +|---|---:|---:|---:| +| Cover blocks | 50/50 | 100.00% | 100.00 | +| Imitate sorting sequence | 0/50 | 0.00% | 2.00 | +| Match and pick from conveyor | 46/50 | 92.00% | 92.00 | +| Press by number | 50/50 | 100.00% | 100.00 | +| Swap T | 11/50 | 22.00% | 22.00 | +| Swap blocks | 16/50 | 32.00% | 32.00 | + +### Long Horizon + +| Task | Successful / reported outcomes | Success rate | Mean partial /100 | +|---|---:|---:|---:| +| Classify objects | 16/50 | 32.00% | 44.50 | +| Fill egg holder | 2/50 | 4.00% | 13.80 | +| Fill pen holder | 11/50 | 22.00% | 43.90 | +| Make kong | 43/50 | 86.00% | 86.00 | +| Organize table | 9/50 | 18.00% | 64.50 | +| Play stacking toy | 6/50 | 12.00% | 32.00 | +| Play tic tac toe | 1/50 | 2.00% | 40.50 | +| Put bottles into dustbin | 49/50 | 98.00% | 98.80 | + +### Generalization + +| Task | Successful / reported outcomes | Success rate | Mean partial /100 | +|---|---:|---:|---:| +| Arrange largest number | 2/50 | 4.00% | 11.00 | +| Fold clothes | 36/50 | 72.00% | 74.40 | +| Hang mugs | 14/50 | 28.00% | 38.50 | +| Make toast | 22/50 | 44.00% | 52.50 | +| Pack objects into box | 6/50 | 12.00% | 35.40 | +| Pour liquid into cup | 22/50 | 44.00% | 44.00 | +| Push T | 1/50 | 2.00% | 2.00 | +| Sort nesting dolls by size | 10/50 | 20.00% | 20.00 | +| Stack blocks | 22/50 | 44.00% | 50.00 | +| Stack bowls | 26/50 | 52.00% | 58.90 | +| Store laptop and headphones | 20/50 | 40.00% | 51.20 | +| Sweep blocks | 2/50 | 4.00% | 4.00 | + +### Open + +| Task | Successful / reported outcomes | Success rate | Mean partial /100 | +|---|---:|---:|---:| +| Align blocks | 0/50 | 0.00% | 0.00 | +| General pickup | 12/50 | 24.00% | 24.00 | +| Stack blocks by language | 4/50 | 8.00% | 9.20 | +| Solve equation | 0/50 | 0.00% | 0.00 | +| Classify objects by language | 0/50 | 0.00% | 2.60 | +| Pick from conveyor by image | 0/50 | 0.00% | 0.00 | +| Store tools in toolbox | 0/50 | 0.00% | 0.00 | +| Pour by language | 0/50 | 0.00% | 0.00 | + +Checkpoint identity: `790bffc9464fa7a026aa43b217aec2033d186895cad643166daa0bcc01914d5c`. diff --git a/inference/policy/bagel_robotics_1/LICENSE b/inference/policy/bagel_robotics_1/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..90124d129334cd5de11aa0fd606182b3ffd442cb --- /dev/null +++ b/inference/policy/bagel_robotics_1/LICENSE @@ -0,0 +1,24 @@ +MIT License + +Copyright (c) 2026 The FastWAM Authors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +Except for third-party code and files that retain their original license +headers, this repository is released under the MIT License. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/inference/policy/bagel_robotics_1/README.md b/inference/policy/bagel_robotics_1/README.md new file mode 100644 index 0000000000000000000000000000000000000000..07a9b607c8b6040dcfb467228021e6ef0b90f324 --- /dev/null +++ b/inference/policy/bagel_robotics_1/README.md @@ -0,0 +1,219 @@ +# Bagel-Robotics-1 + +**Contributor:** Bagel Labs | **Paper:** Technical report in preparation | **arXiv:** Not yet available | **Original code:** [VPP2](https://github.com/roboterax/video-prediction-policy-2) + +Evaluation-only adapter for the physically compact VPP2 recovery checkpoint 1000. +The video expert has 12,468,409,664 parameters, 23.95% fewer than the recorded +16,394,878,784-parameter parent video expert. Action2B remains unchanged. The +`runtime/` directory vendors a minimal isolated inference runtime and compact +loader; this is a different artifact from Bagel-Robotics-1-Preview. + +Shared conventions — argument meanings, checkpoint naming, split-machine deployment, `EVAL_ENV_TYPE` — are documented in the [XPolicyLab README](https://github.com/XPolicyLab/XPolicyLab/blob/main/README.md). Official results: [RoboDojo LeaderBoard](https://robodojo-benchmark.com/LeaderBoard). + +## Installation + +Install this directory under `XPolicyLab/policy/bagel_robotics_1` in a RoboDojo +workspace. `env_cfg/` belongs next to XPolicyLab, not inside the policy. Install +RoboDojo and its simulator/assets separately using the +[official installation guide](https://robodojo-benchmark.com/doc/usage/install-and-download/). + +**1. Set paths and install the policy environment.** Replace the example checkout +path below. Run the following sections in the same shell so these variables remain +available. Use **Python 3.10**, the version used for the GPU qualification; set +`PYTHON_BIN` to its executable if it is not named `python3.10`. + +```bash +BAGEL_XPL_ROOT=/absolute/path/to/XPolicyLab +BAGEL_POLICY_DIR="$BAGEL_XPL_ROOT/policy/bagel_robotics_1" +BAGEL_POLICY_ENV="$BAGEL_POLICY_DIR/.venv" +cd "$BAGEL_POLICY_DIR" +PYTHON_BIN=python3.10 bash install.sh "$BAGEL_POLICY_ENV" +``` + +The installer creates a venv, installs PyTorch 2.11 / torchvision 0.26 CUDA 13.0 +wheels and installs the isolated runtime plus XPolicyLab. `TORCH_INDEX_URL` changes +the PyTorch wheel index. GPU qualification used Python 3.10.21 and PyTorch +2.11.0+cu130 on an RTX PRO 6000 Blackwell; installation on another stack does not +establish numerical equivalence. The recorded GPU has 96 GB VRAM; a lower +minimum has not been qualified. The isolated validation jobs reserved 128 GiB +host RAM and eight CPUs; these are tested allocations, not measured minima. + +**2. Download and verify before evaluation.** The checkpoint is public at +[bageldotcom/adaprune](https://huggingface.co/bageldotcom/adaprune). No login, token +or access request is required. + +```bash +PYTHON_BIN="$BAGEL_POLICY_ENV/bin/python" bash download_checkpoint.sh +``` + +The download is approximately **45.7 GB** before cache/installation overhead. +To check pinned metadata before downloading tensors, run +`PYTHON_BIN="$BAGEL_POLICY_ENV/bin/python" bash download_checkpoint.sh --metadata-only` +first. This checks four small JSON files only; run the full downloader above +before evaluation. The downloader verifies every checkpoint and auxiliary-asset hash. For existing +files, follow [Model Assets](#model-assets) instead. Continue to +[Evaluation](#evaluation) only after the download or verification succeeds. + +## Data Processing + +No conversion is needed for inference. The research recovery run used a curated +30,000-window RoboDojo EE16 export; training reproduction is outside this initial +adapter. `process_data.sh` is intentionally omitted under the proposed eval-only +exception. Inputs are decoded RGB arrays from XPolicyLab's shared server. + +## Training + +`train.sh` is intentionally omitted. Training, mask learning and export are not included in this adapter; the +standalone review package contains a method note. The technical report and training, +pruning, and export code are planned for release on **November 20, 2026**. +The proposed eval-only integration and release schedule remain subject to maintainer +coordination; this preparation does not claim that the exception is approved. + +## Evaluation + +Supported: `bench_name=RoboDojo`, `env_cfg_type=arx_x5`, `action_type=ee`. +Use the same checkpoint and settings for every task. Complete Installation first. + +**3. Check both debug transports.** These load the real model but use synthetic +observations. Run from the policy directory with the environment defined above. +On a dedicated workstation, choose a GPU with sufficient free memory: + +```bash +cd "$BAGEL_POLICY_DIR" +BAGEL_GPU_ID=0 +``` + +On a scheduled cluster, run inside an allocation and set `BAGEL_GPU_ID` to its +assigned single GPU instead; preserve the scheduler's `CUDA_VISIBLE_DEVICES`. +For a one-GPU allocation that exports this variable: + +```bash +BAGEL_GPU_ID="${CUDA_VISIBLE_DEVICES:?Run inside a one-GPU allocation}" +``` + +Run both commands sequentially: + +```bash +EVAL_ENV_TYPE=debug DEBUG_OBS_ENCODED=0 DEBUG_EVAL_EPISODES=1 bash eval.sh \ + RoboDojo stack_blocks cp1000 arx_x5 ee 1 \ + "$BAGEL_GPU_ID" "$BAGEL_GPU_ID" "$BAGEL_POLICY_ENV" "$BAGEL_POLICY_ENV" + +EVAL_ENV_TYPE=debug DEBUG_OBS_ENCODED=1 DEBUG_EVAL_EPISODES=1 bash eval.sh \ + RoboDojo stack_blocks cp1000 arx_x5 ee 1 \ + "$BAGEL_GPU_ID" "$BAGEL_GPU_ID" "$BAGEL_POLICY_ENV" "$BAGEL_POLICY_ENV" +``` + +Each must finish with `[TestEnv] Episode finished` and `[MAIN] eval finished`, +exit zero, and contain no traceback. Debug completion is an interface check, +not a task success result. A venv path in argument 10 is supported for debug +only; simulation uses the official conda client launcher. + +**4. Run a small native simulator check.** Set the installed RoboDojo path and +simulator conda environment name. The following command matches the tested +`insert_tubes` smoke: seed 1, two episodes, original layouts 0 and 1. It uses +the same GPU selected above for the policy and simulator. + +```bash +BAGEL_SIM_ROOT=/absolute/path/to/RoboDojo +BAGEL_SIM_ENV=your_simulator_conda_env +cd "$BAGEL_SIM_ROOT" +EVAL_ENV_TYPE=sim bash scripts/robodojo.sh eval \ + --policy-dir "$BAGEL_POLICY_DIR" \ + --task insert_tubes --ckpt cp1000 --env-cfg arx_x5 --action-type ee \ + --seed 1 --eval-num 2 --policy-env "$BAGEL_POLICY_ENV" \ + --eval-env "$BAGEL_SIM_ENV" \ + --policy-gpu "$BAGEL_GPU_ID" --env-gpu "$BAGEL_GPU_ID" +``` + +For the second tested task, repeat with `--task store_laptop_and_headphones`. +Preserve native `_result.json` files under RoboDojo's `eval_result/` and record +source revisions and any startup errors. See [VALIDATION.md](VALIDATION.md) for +measured outcomes and the shared-installation startup workaround used in our +qualification. Keep these two-episode checks separate from full benchmark runs. + +For a full task, suite, or three-seed run, follow [Reevaluation](REEVALUATION.md). +It uses the official runner, native episode counts and original layouts. + +The direct launcher retains XPolicyLab's ten-argument contract (run from the +policy directory): + +```text +bash eval.sh \ + +``` + +The custom `deploy.py` records every executed observation, calls reset at episode +boundaries and stops sending actions when the environment terminates. This is +necessary for the checkpoint's history conditioning. Batched execution is disabled; +the batch methods only support a single environment and reject larger batches. + +## Model Assets + +The Installation quickstart authenticates and downloads before evaluation. +The script downloads the six exact bundle files into `checkpoints/cp1000` and +the pinned public VAE/CLIP/UMT5/tokenizer assets into +`checkpoints/Wan2.1-I2V-14B-480P`. Bundle repository: +[bageldotcom/adaprune](https://huggingface.co/bageldotcom/adaprune), +revision `2651631c5d08819088475e8778676f5cf6d9afcf` (**public; no login required**). +Access must be arranged for evaluators. No token is included. + +For existing artifacts, set `BAGEL_CP1000_BUNDLE` and `BAGEL_CP1000_WAN_ROOT`. +`bundle_path` and `wan_model_dir` in `deploy.yml` are alternatives. The environment +variables take precedence; otherwise the shared XPolicyLab checkpoint resolver +uses `ckpt_name`. `artifact-manifest.json` pins every file and encoder revision. + +```bash +export BAGEL_CP1000_BUNDLE=/absolute/path/to/update_001000 +export BAGEL_CP1000_WAN_ROOT=/absolute/path/to/Wan2.1-I2V-14B-480P +"$BAGEL_POLICY_ENV/bin/python" "$BAGEL_POLICY_DIR/download_checkpoint.py" \ + --verify-only --bundle "$BAGEL_CP1000_BUNDLE" --wan-root "$BAGEL_CP1000_WAN_ROOT" +``` + +Full file hashes are checked before loading. `--metadata-only` downloads only +small checkpoint metadata for CPU architecture checks and does not qualify weights. + +## Configuration + +BF16, action horizon 32, execute/replan 16, ten Euler steps, sigma shift 1, +90/10 temporal blending, and `eval_batch: false` are fixed and validated. +`seed` is supplied by the evaluator; task names never select alternate models. +The server launcher also preserves the recorded deterministic backend controls +(`PYTHONHASHSEED=1`, `CUBLAS_WORKSPACE_CONFIG=:4096:8`, deterministic algorithms, +and the recorded TF32/matmul settings). Direct API users must set those startup +environment variables before launching Python. The checkpoint loader accepts only the compact channel architecture and loads +weights strictly. There is no teacher, mask-training module or dense fallback. + +Optional validation: setting `BAGEL_VALIDATION_TRACE` to a new absolute output +directory enables lossless capture around the official policy server. It records +the first 209 observations per episode and fingerprints preprocessing, history +and actions. It changes no predictions or scoring and is disabled by default. +See [VALIDATION.md](VALIDATION.md) for capture/replay scope. + +## Notes + +Mask-based structured pruning and recovery produce physically smaller, +nonuniform FFN and cross-attention layers. The method is intended for compatible +WAM backbones; the evidence here is limited to VPP2. The technical report will +provide the detailed algorithm and recovery recipe. + + +The recorded research results cover all five suites: + +| Suite | Successful / reported outcomes | Success rate | Mean partial /100 | +|---|---:|---:|---:| +| Precision | 126/400 | 31.50% | 40.43 | +| Memory† | 173/300 | 57.67% | 58.00 | +| Long Horizon‡ | 137/400 | 34.25% | 53.00 | +| Generalization | 183/600 | 30.50% | 36.82 | +| Open§ | 16/400 | 4.00% | 4.48 | +| **Equal-weight five-suite average** | **635/2,100 total; not the averaging formula** | **31.58%** | **38.55** | + +Memory includes one repaired variant, Long Horizon two labeled replacements, and Open one labeled replacement. Generalization combines standard and randomized episodes. Memory and nine Generalization tasks use user-supplied summaries; see [EVALUATION_RESULTS.md](EVALUATION_RESULTS.md) for complete counts, task results, source limitations and original-only figures. These are research-runner results, not official leaderboard scores or proof of packaged-adapter equivalence. + +The learned masks have been exported into nonuniform per-layer FFN/cross-attention +reductions. Action2B and all video self-attention heads are retained. Eligibility +as a new model and the evaluation-only exception remain subject to committee review. + +Package validation so far: 15 CPU tests, real compact-video strict tensor loading, all checkpoint/encoder hashes, static checks, isolated wheel processor loading, and clean-checkout installation. Both real-checkpoint GPU debug transports passed in job 53609. Four native simulator episodes completed with valid results, and all eight action/history/reset/backend comparison checks passed with zero recorded differences. See [VALIDATION.md](VALIDATION.md) for the measured task scores and test scope. +Reviewer access remains pending. The technical report and training/pruning/export code are planned for **November 20, 2026**. Full-suite +coverage is a separate leaderboard-verification milestone. See [validation evidence](VALIDATION.md) and [historical task results](EVALUATION_RESULTS.md). The standalone review package contains the fuller internal method note. diff --git a/inference/policy/bagel_robotics_1/REEVALUATION.md b/inference/policy/bagel_robotics_1/REEVALUATION.md new file mode 100644 index 0000000000000000000000000000000000000000..ee620a70099602a593c6c8565747bbcc08fe9009 --- /dev/null +++ b/inference/policy/bagel_robotics_1/REEVALUATION.md @@ -0,0 +1,131 @@ +# Reevaluate Bagel-Robotics-1 checkpoint 1000 + +Use the [README quickstart](README.md#installation) to install Python 3.10 policy +dependencies, download and verify the pinned files, and pass both +debug checks. The standalone inference runtime is included; the private research +training repository is not needed. Install RoboDojo and its assets separately. + +The only policy checkpoint is `cp1000`, from +[bageldotcom/adaprune](https://huggingface.co/bageldotcom/adaprune), +revision `2651631c5d08819088475e8778676f5cf6d9afcf`. The downloader and loader reject +files that do not match `artifact-manifest.json`. The VAE, image/text encoders and +tokenizer are downloaded automatically at their separately pinned public revision. +The checkpoint and all required public encoder assets download without authentication. + +## Set the local paths + +Replace the example paths and simulator conda environment. Reuse the policy +venv created in the README. GPU commands on a cluster belong inside an allocation; +set `BAGEL_GPU_ID` to its assigned single GPU. On a dedicated workstation, the +example selects GPU 0. Do not overwrite a scheduler's GPU visibility assignment. + +```bash +BAGEL_XPL_ROOT=/absolute/path/to/XPolicyLab +BAGEL_POLICY_DIR="$BAGEL_XPL_ROOT/policy/bagel_robotics_1" +BAGEL_POLICY_ENV="$BAGEL_POLICY_DIR/.venv" +BAGEL_SIM_ROOT=/absolute/path/to/RoboDojo +BAGEL_SIM_ENV=your_simulator_conda_env +BAGEL_GPU_ID=0 +cd "$BAGEL_SIM_ROOT" +``` + +Qualification used XPolicyLab `6baccd57ff958570d0db1588370289ee36c8bb70` and +RoboDojo `f57e1633ffed59761bc8e568cfe7530c4b33381c`. Record the revisions used for +reevaluation. A different simulator or numerical backend requires fresh checking. +The [official installation guide](https://robodojo-benchmark.com/doc/usage/install-and-download/) +provides the simulator workspace layout, assets and conda setup. + +## Inspect the command, then check two episodes + +The dry run does not load the model or simulator: + +```bash +EVAL_ENV_TYPE=sim bash scripts/robodojo.sh eval \ + --policy-dir "$BAGEL_POLICY_DIR" --task insert_tubes --ckpt cp1000 \ + --env-cfg arx_x5 --action-type ee --seed 1 --eval-num 2 \ + --policy-env "$BAGEL_POLICY_ENV" --eval-env "$BAGEL_SIM_ENV" \ + --policy-gpu "$BAGEL_GPU_ID" --env-gpu "$BAGEL_GPU_ID" --dry-run +``` + +Remove `--dry-run` to execute the check. The recorded qualification used original +layouts 0/1 and produced 2/2 successes for `insert_tubes`. Repeating with +`--task store_laptop_and_headphones` produced 1/2 successes and 60/100 mean partial +score. These are four integration episodes, not full-suite performance guarantees. +[Validation evidence](VALIDATION.md) records their scope and backend. + +## Evaluate complete tasks or suites + +Use the official `benchmark` entry point with `--eval-num native`: the benchmark +then selects its 25/50 episode counts. The following runs the entire Memory suite +sequentially with seed 1. Append `--dry-run` first to inspect all resolved commands. + +```bash +EVAL_ENV_TYPE=sim bash scripts/robodojo.sh benchmark \ + --policy-dir "$BAGEL_POLICY_DIR" --ckpt cp1000 \ + --env-cfg arx_x5 --action-type ee --seed 1 --eval-num native \ + --policy-env "$BAGEL_POLICY_ENV" --eval-env "$BAGEL_SIM_ENV" \ + --policy-gpu "$BAGEL_GPU_ID" --env-gpu "$BAGEL_GPU_ID" \ + --dimension memory +``` + +Use `--dimension generalization`, `precision`, `long-horizon`, `open`, or `all`. +For one complete task, use `--only insert_tubes` with `--dimension precision`. +Generalization includes each standard task and its `_random` sibling; each has +25 episodes per seed. The five suites contain 54 runnable configurations, merged +into 42 task rows. Preserve canonical names such as `play_Xylophone`, `swap_T`, +`push_T` and `push_T_random`. + +## Run the three-seed verification scope + +Use a dedicated result workspace for a complete run, separate from the smoke +checks. This command is a full benchmark, not a quick installation test. Run it +only with the intended evaluation allocation and disk space. It runs tasks and +seeds sequentially; it never changes the checkpoint or inference settings. + +```bash +set -euo pipefail +for BAGEL_EVAL_SEED in 0 1 2; do + EVAL_ENV_TYPE=sim bash scripts/robodojo.sh benchmark \ + --policy-dir "$BAGEL_POLICY_DIR" --ckpt cp1000 \ + --env-cfg arx_x5 --action-type ee --seed "$BAGEL_EVAL_SEED" \ + --eval-num native --dimension all \ + --policy-env "$BAGEL_POLICY_ENV" --eval-env "$BAGEL_SIM_ENV" \ + --policy-gpu "$BAGEL_GPU_ID" --env-gpu "$BAGEL_GPU_ID" +done +bash scripts/robodojo.sh summarize +``` + +The official [Quick Evaluation guide](https://robodojo-benchmark.com/doc/usage/quick-evaluation/) +also documents multi-GPU task sharding. Use one unbatched policy process per +worker; `eval_batch: false` is required. Shared state across independent episodes +or changing inference settings is not part of this submission. + +## Preserve and report the results + +Keep each run's native `_result.json`, logs, source revisions and videos. Run +`bash scripts/robodojo.sh summarize` from the matching RoboDojo checkout and retain +`eval_result/RoboDojo/_summary.md`. The native summary distinguishes incomplete +coverage; its across-seed statistics must not be replaced with statistics over +episodes or combined with the two-episode smoke results. + +The default reevaluation uses original supplied layouts. If a scene fails before +any robot action, preserve its startup error and retry history; do not silently +replace the scene or score an infrastructure failure as a policy failure. Seek +the committee's handling decision. The historical research run used three +labeled replacements and one repaired Memory variant, described in +[EVALUATION_RESULTS.md](EVALUATION_RESULTS.md); those exceptions are not activated +by these commands. Official verification and acceptance remain with RoboDojo. + +## Common setup problems + +| Symptom | Check | +|---|---| +| HTTP 401/403 or repository not found | Use the canonical public repository and pinned revision; retry without a stale cached credential (`HF_HUB_DISABLE_IMPLICIT_TOKEN=1`). | +| Hash/size mismatch | Check the pinned revision and local file completeness; do not disable verification. | +| Missing encoder or tokenizer | Run the full downloader; `--metadata-only` does not fetch tensors or encoders. | +| Missing `env_cfg` or simulator | Complete the official workspace setup; `env_cfg/` belongs beside XPolicyLab. | +| Shared Isaac/Kit cache permissions | Use a writable installation/cache; the recorded local workaround is documented in VALIDATION.md. No task or scoring patches are supplied. | +| Insufficient GPU memory | Qualification used a 96 GB RTX PRO 6000 Blackwell; a smaller minimum has not been qualified. | + +The policy logs the checkpoint identity after file verification. Keep that log +with the run so the evaluated checkpoint is unambiguous. diff --git a/inference/policy/bagel_robotics_1/THIRD_PARTY_NOTICES.md b/inference/policy/bagel_robotics_1/THIRD_PARTY_NOTICES.md new file mode 100644 index 0000000000000000000000000000000000000000..7c7140daa83b46bf89a8ef0a227cc2585c1d8932 --- /dev/null +++ b/inference/policy/bagel_robotics_1/THIRD_PARTY_NOTICES.md @@ -0,0 +1,13 @@ +# Source and artifact notices + +- The retained VPP2/FastWAM-derived runtime carries the original MIT notice in + `LICENSE`, copyright 2026 The FastWAM Authors. Bagel-specific packaging does not + remove that attribution. See `source-provenance.json` for frozen-source hashes. +- Wan2.1/DiffSynth-derived model components retain Apache-2.0 terms; see + `licenses/Apache-2.0.txt` and upstream Wan2.1/DiffSynth source notices. +- The XPolicyLab interface follows its upstream license, included in + `licenses/XPolicyLab.txt`. RoboDojo and simulator assets are not bundled. +- Encoder weights, tokenizer files and model weights have their own upstream + terms. The code license does not assign a new license to those artifacts. +- The existing preview PR by Soroush Mehraban was consulted as a reference; its + alternate checkpoint, code and release promises are not this submission. diff --git a/inference/policy/bagel_robotics_1/VALIDATION.md b/inference/policy/bagel_robotics_1/VALIDATION.md new file mode 100644 index 0000000000000000000000000000000000000000..4c9981011f1581f8fa35bee61f600f06b59d9135 --- /dev/null +++ b/inference/policy/bagel_robotics_1/VALIDATION.md @@ -0,0 +1,45 @@ +# Adapter validation + +Status: **Technical qualification passed: 15 CPU tests, both real-checkpoint debug transports, four valid native simulator episodes, and all eight exact replay/backend checks. The technical report and training/pruning/export code are planned for November 20, 2026; evaluator access and user review remain before submission.** + +| Check | Evidence and scope | +|---|---| +| Static/template audit | 50 Python files compiled, five shell scripts checked, clean diff, exact PR-template headings | +| CPU regression | 15 tests passed: compact architecture metadata, corrupt artifacts, blending, observation timing, reset, backend settings, lossless array integrity and comparison failures | +| Real video tensors | Strict CPU loading passed; 12,468,409,664 compact video parameters | +| Artifact integrity | All six bundle files and nine auxiliary assets matched pinned sizes/hashes | +| Fresh policy installation | Python 3.10.21, PyTorch 2.11.0+cu130; dependency consistency check passed | +| Source preservation | 30 numerical modules and 16 policy functions match the frozen reference after namespace normalization; factory and prompt match | +| Simulator preflight | Official doctor: 12 passes, zero failures; Isaac and conda checks intentionally skipped at this non-GPU stage | +| Plain and encoded debug | Passed with real checkpoint: job 53609, exit 0, both evaluation-finished markers | +| Simulator smoke | 4/4 valid, original layouts 0/1, seed 1: Insert tubes 2/2 successes, 100/100 partial; Store laptop/headphones 1/2 successes, 60/100 partial | +| Numerical action comparison | Passed: all eight checks, zero recorded differences; job 53612 completed with exit 0 | + +XPolicyLab base: `6baccd57ff958570d0db1588370289ee36c8bb70`. +Simulator validation checkout: `f57e1633ffed59761bc8e568cfe7530c4b33381c`. + +Two real recordings of 209 observations / 14 action chunks each were replayed in A/B/A order, giving 42 chunks per implementation. Reference-versus-package, original-capture-versus-replay, reset and backend checks all passed with zero recorded differences. Evidence: `evidence/gpu-validation.json` and `evidence/action-comparison.json`. Equality is established for these fixtures on PyTorch 2.11.0+cu130 and NVIDIA RTX PRO 6000 Blackwell, not every input or backend. + +The original Store laptop/headphones layout 1 failed with 0.2/1 partial and is retained. Debug completion is an interface check; four simulator smoke episodes do not establish full-suite performance. Historical research scores are separately documented in EVALUATION_RESULTS.md. + +## Reproduce the transport checks + +Use the policy README's debug command with the actual checkpoint. Repeat it with `DEBUG_OBS_ENCODED=1`. Both runs must finish normally and print the evaluation-finished marker. + +## Optional lossless capture + +`BAGEL_VALIDATION_TRACE=/absolute/path/to/new-capture-directory` enables `validation_server.py` through the normal server launcher. The wrapper uses the official server and records already-decoded observations, inference inputs, history fingerprints, raw predictions, blending and commands. It does not modify actions, seeds, task termination or scoring. + +Capture is limited to the first 209 observations per episode. The default server path does not import or enable the recorder. Array blobs are local test artifacts and are excluded from the PR. + +`validation_replay.py` replays two fixtures in A/B/A order. `validation_compare.py` checks exact equality of reference versus packaged outputs, capture versus replay, history and resets, and verifies matched GPU/backend settings. The original frozen research implementation is needed for the reference comparison and is not redistributed in this inference package. + +All planned qualification stages completed. Failed attempts remain preserved in the outer verification packet; full camera fixtures and videos remain on the validation machine and are excluded from the PR. + +## Packaging repair + +The first debug attempt (53541) failed before opening the server because serialized processor targets still referred to the original `vpp2` namespace and the processor modules were missing. Its dependent simulator job 53542 was cancelled before execution. The repair vendors the evaluated processor/transform modules unchanged except import namespace, and recursively maps Hydra targets into `bagel_cp1000`. Four new CPU cases test the real processor metadata and legacy target formats while rejecting research-package imports. Failed evidence is preserved in the outer review packet. + +## Shared simulator installation + +The local qualification environment reuses an existing shared Isaac Sim installation. Attempt 53610 stopped at its noninteractive startup prompt; attempt 53611 then stopped on read-only shared cache permissions. Neither reached a scored episode. Attempt 53612 restores the same noninteractive flag and user-owned portable Kit directory used by the frozen evaluation runner. A recorded one-line change to the validation checkout's launch script permits the portable-root argument; task, physics, layout and scoring code remain unchanged. This launch-only patch is in the outer verification packet and is not part of the policy PR. See [Kit portable configuration](https://docs.omniverse.nvidia.com/kit/docs/kit-manual/latest/guide/configuring.html). diff --git a/inference/policy/bagel_robotics_1/__init__.py b/inference/policy/bagel_robotics_1/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/inference/policy/bagel_robotics_1/artifact-manifest.json b/inference/policy/bagel_robotics_1/artifact-manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..fcc1c37a1eaf549c4b77576d0dcbcfcc197c44aa --- /dev/null +++ b/inference/policy/bagel_robotics_1/artifact-manifest.json @@ -0,0 +1,112 @@ +{ + "schema": "bagel-cp1000-submission-v1", + "display_name": "Bagel-Robotics-1", + "checkpoint_identity": "790bffc9464fa7a026aa43b217aec2033d186895cad643166daa0bcc01914d5c", + "update": 1000, + "video_parameters": 12468409664, + "repo_id": "bageldotcom/adaprune", + "revision": "2651631c5d08819088475e8778676f5cf6d9afcf", + "private": false, + "files": { + "COMPLETE.json": { + "sha256": "eee062fbcb8c92a881117aa7f06b5cd039dfb9912d85571b59a20aa30837b0e1", + "size": 2491 + }, + "action.pt": { + "sha256": "9b04836abe5a30972e69ee84e5f5e39c09bf53dd45865551e1d04b42ead90ec3", + "size": 4057916577 + }, + "compact_architecture.json": { + "sha256": "a7f6696ab9a9beca785531c2402b81ccd1550745cb6e9ccaad67f658630f6b32", + "size": 6563270 + }, + "dataset_stats.json": { + "sha256": "2649d4e3ff3d6d400c9953b7c20c79541474f9c38a8a9916b9caacecd8578f16", + "size": 100256 + }, + "validation.json": { + "sha256": "9806ad2b0b58f879351da58eede46507a79433ec9e4eb8f37f415cf58f2ef70e", + "size": 88781 + }, + "video.pt": { + "sha256": "fb62db0b3a74a53aeab60f4b1acc8a5be47274f5c9db166684043521fe2a40bb", + "size": 24937214042 + } + }, + "wan": { + "repo": "Haodong082399/VPP2", + "revision": "04824ddb3aae11f13db50984ed7d540c3b77dd9f", + "files": [ + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/LICENSE.txt", + "blobId": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "size": 11357 + }, + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/Wan2.1_VAE.pth", + "blobId": "5897fba405232a6b07a947d6188d19a8e050ccfb", + "size": 507609880, + "lfs": { + "sha256": "38071ab59bd94681c686fa51d75a1968f64e470262043be31f7a094e442fd981", + "size": 507609880, + "pointerSize": 134 + } + }, + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/config.json", + "blobId": "f5a12b285ec9c2497cafc4a4443fc6ba61b1a30b", + "size": 250 + }, + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/google/umt5-xxl/special_tokens_map.json", + "blobId": "14855e7052ffbb595057dfd791d293c1c940db2c", + "size": 6623 + }, + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/google/umt5-xxl/spiece.model", + "blobId": "2fe5f347e9f9367585589ae89e997dfbd5cf802c", + "size": 4548313, + "lfs": { + "sha256": "e3909a67b780650b35cf529ac782ad2b6b26e6d1f849d3fbb6a872905f452458", + "size": 4548313, + "pointerSize": 132 + } + }, + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/google/umt5-xxl/tokenizer.json", + "blobId": "7bd4ee3cf5633e49c0e06a3aac2a621559e6222a", + "size": 16837417, + "lfs": { + "sha256": "6e197b4d3dbd71da14b4eb255f4fa91c9c1f2068b20a2de2472967ca3d22602b", + "size": 16837417, + "pointerSize": 133 + } + }, + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/google/umt5-xxl/tokenizer_config.json", + "blobId": "4e1cc1cd85599ce0b47fd0a746af188fe4043ff2", + "size": 61728 + }, + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/models_clip_open-clip-xlm-roberta-large-vit-huge-14.pth", + "blobId": "cbdd1a5bd944b2b4c47e21435106316971ac76d8", + "size": 4772359047, + "lfs": { + "sha256": "628c9998b613391f193eb67ff68da9667d75f492911e4eb3decf23460a158c38", + "size": 4772359047, + "pointerSize": 135 + } + }, + { + "rfilename": "checkpoints/Wan2.1-I2V-14B-480P/models_t5_umt5-xxl-enc-bf16.pth", + "blobId": "d5dad910304ab4b909a2c8a225a71840606e6de4", + "size": 11361920418, + "lfs": { + "sha256": "7cace0da2b446bbbbc57d031ab6cf163a3d59b366da94e5afe36745b746fd81d", + "size": 11361920418, + "pointerSize": 136 + } + } + ] + } +} diff --git a/inference/policy/bagel_robotics_1/assets.py b/inference/policy/bagel_robotics_1/assets.py new file mode 100644 index 0000000000000000000000000000000000000000..041f23bb350b59af8c4e9f45c96a32200a33e9b5 --- /dev/null +++ b/inference/policy/bagel_robotics_1/assets.py @@ -0,0 +1,104 @@ +"""Pinned CP1000 artifact and inference contract; safe to import without torch.""" +from __future__ import annotations + +import hashlib +import json +import os +from pathlib import Path + +POLICY_DIR = Path(__file__).resolve().parent +MANIFEST = json.loads((POLICY_DIR / "artifact-manifest.json").read_text()) +FIXED_SETTINGS = { + "bench_name": "RoboDojo", "env_cfg_type": "arx_x5", "action_type": "ee", + "protocol": "ws", "eval_batch": False, "mixed_precision": "bf16", + "action_horizon": 32, "replan_steps": 16, "num_inference_steps": 10, + "sigma_shift": 1.0, "deployment_adapter": "robodojo_ee16", + "temporal_ensemble": {"enabled": True, "new_weight": 0.9, "old_weight": 0.1}, +} + + +def file_digest(path, algorithm="sha256", git_blob=False): + digest = hashlib.new(algorithm) + if git_blob: + digest.update(f"blob {path.stat().st_size}\0".encode()) + with path.open("rb") as handle: + for chunk in iter(lambda: handle.read(8 * 1024 * 1024), b""): + digest.update(chunk) + return digest.hexdigest() + + +def verify_bundle(bundle, *, full_hash=True): + bundle = Path(bundle).expanduser().resolve() + for name, expected in MANIFEST["files"].items(): + path = bundle / name + if not path.is_file(): + raise FileNotFoundError(f"Missing checkpoint artifact: {path}") + if path.stat().st_size != expected["size"]: + raise ValueError(f"Checkpoint size mismatch: {name}") + if full_hash or name not in {"action.pt", "video.pt"}: + if file_digest(path) != expected["sha256"]: + raise ValueError(f"Checkpoint SHA-256 mismatch: {name}") + receipt = json.loads((bundle / "COMPLETE.json").read_text()) + if receipt.get("identity") != MANIFEST["checkpoint_identity"] or receipt.get("update") != 1000: + raise ValueError("Not the approved recovery checkpoint 1000") + architecture = json.loads((bundle / "compact_architecture.json").read_text()) + if architecture.get("schema") != "vpp2-compact-channels-v1" or architecture.get("parameters") != MANIFEST["video_parameters"]: + raise ValueError("Unexpected compact architecture") + return {"checkpoint_identity": receipt["identity"], "update": 1000, + "files": len(MANIFEST["files"]), "full_hash": full_hash} + + +def verify_wan(wan_root, *, full_hash=True): + wan_root = Path(wan_root).expanduser().resolve() + prefix = "checkpoints/Wan2.1-I2V-14B-480P/" + for entry in MANIFEST["wan"]["files"]: + path = wan_root / entry["rfilename"].removeprefix(prefix) + if not path.is_file(): + raise FileNotFoundError(f"Missing encoder asset: {path}") + if path.stat().st_size != entry["size"]: + raise ValueError(f"Encoder asset size mismatch: {path.name}") + if full_hash: + lfs = entry.get("lfs") + actual = file_digest(path, "sha256" if lfs else "sha1", git_blob=not bool(lfs)) + expected = lfs["sha256"] if lfs else entry["blobId"] + if actual != expected: + raise ValueError(f"Encoder asset checksum mismatch: {path.name}") + return {"repo": MANIFEST["wan"]["repo"], "revision": MANIFEST["wan"]["revision"], + "files": len(MANIFEST["wan"]["files"]), "full_hash": full_hash} + + +def validate_settings(model_cfg): + cfg = dict(model_cfg) + for key, expected in FIXED_SETTINGS.items(): + actual = cfg.get(key, expected) + if actual != expected: + raise ValueError(f"CP1000 requires {key}={expected!r}; got {actual!r}") + cfg[key] = expected + seed = cfg.get("seed", 1) + if isinstance(seed, bool) or not isinstance(seed, int) or seed < 0: + raise ValueError("seed must be a nonnegative integer supplied by the evaluator") + cfg["seed"] = seed + return cfg + + +def prepare_model_config(model_cfg, policy_dir=POLICY_DIR): + from XPolicyLab.utils.checkpoint_resolver import resolve_checkpoint_root + + cfg = validate_settings(model_cfg) + explicit = os.environ.get("BAGEL_CP1000_BUNDLE") or cfg.get("bundle_path") + lookup = dict(cfg) + if explicit: + lookup["model_path"] = explicit + bundle = resolve_checkpoint_root(lookup, Path(policy_dir) / "checkpoints", + policy_dir=policy_dir) + wan_root = os.environ.get("BAGEL_CP1000_WAN_ROOT") or cfg.get("wan_model_dir") + if not wan_root: + wan_root = Path(policy_dir) / "checkpoints/Wan2.1-I2V-14B-480P" + # Verify before loading any tensors. No silently accepted alternate weights. + verification = {"checkpoint": verify_bundle(bundle), "encoders": verify_wan(wan_root)} + print("[Bagel-Robotics-1] " + json.dumps(verification), flush=True) + cfg.update(checkpoint_path=str(bundle / "action.pt"), + video_checkpoint_path=str(bundle / "video.pt"), + dataset_stats_path=str(bundle / "dataset_stats.json"), + wan_model_dir=str(Path(wan_root).expanduser().resolve())) + return cfg diff --git a/inference/policy/bagel_robotics_1/backend.py b/inference/policy/bagel_robotics_1/backend.py new file mode 100644 index 0000000000000000000000000000000000000000..85667024949973c25f9ecc2dbc3f94a67d70d52f --- /dev/null +++ b/inference/policy/bagel_robotics_1/backend.py @@ -0,0 +1,26 @@ +"""Numerical controls recorded by the checkpoint-1000 node-2 evaluation.""" +import os +import random + + +def configure_backend(seed): + if os.environ.get("PYTHONHASHSEED") != "1": + raise RuntimeError("Launch Python with PYTHONHASHSEED=1 (see setup_eval_policy_server.sh)") + if os.environ.get("CUBLAS_WORKSPACE_CONFIG") != ":4096:8": + raise RuntimeError("Launch Python with CUBLAS_WORKSPACE_CONFIG=:4096:8") + import numpy as np + import torch + random.seed(seed) + np.random.seed(seed % (2 ** 32)) + torch.manual_seed(seed) + if torch.cuda.is_available(): + torch.cuda.manual_seed_all(seed) + torch.backends.cudnn.benchmark = False + torch.backends.cudnn.deterministic = True + torch.backends.cudnn.allow_tf32 = True + torch.backends.cuda.matmul.allow_tf32 = False + torch.set_float32_matmul_precision("highest") + torch.use_deterministic_algorithms(True, warn_only=False) + return {"torch": torch.__version__, "cuda": torch.version.cuda, + "deterministic_algorithms": torch.are_deterministic_algorithms_enabled(), + "float32_matmul_precision": torch.get_float32_matmul_precision()} diff --git a/inference/policy/bagel_robotics_1/deploy.py b/inference/policy/bagel_robotics_1/deploy.py new file mode 100644 index 0000000000000000000000000000000000000000..9562d8adb50a27422059d4d0ffeb12dd04a74fa6 --- /dev/null +++ b/inference/policy/bagel_robotics_1/deploy.py @@ -0,0 +1,36 @@ +import os +import socket +import uuid + +# VPP2 keeps per-episode observation history on the policy server. Every +# executed action records exactly one observation through update_obs, and each +# call carries this process's client id so one server can serve several +# simulator clients without mixing their histories. A single-client official +# evaluation behaves exactly as without the id. +_CLIENT_ID_FIELD = "_vpp2_client_id" +_CLIENT_ID = f"{socket.gethostname()}:{os.getpid()}:{uuid.uuid4().hex[:8]}" + + +def _with_client_id(obs): + tagged = dict(obs) + tagged[_CLIENT_ID_FIELD] = _CLIENT_ID + return tagged + + +def eval_one_episode(TASK_ENV, model_client): + model_client.call(func_name="reset") + model_client.call(func_name="reset_client", obs={_CLIENT_ID_FIELD: _CLIENT_ID}) + + while not TASK_ENV.is_episode_end(): # Check whether the episode ends + obs = TASK_ENV.get_obs() # Get Observation + model_client.call(func_name="update_obs", obs=_with_client_id(obs)) + + actions = model_client.call(func_name="get_action", obs={_CLIENT_ID_FIELD: _CLIENT_ID}) + for action_idx, action in enumerate(actions): + if TASK_ENV.is_episode_end(): + break + TASK_ENV.take_action(action) + + if action_idx != len(actions) - 1 and not TASK_ENV.is_episode_end(): + obs = TASK_ENV.get_obs() # Get Observation + model_client.call(func_name="update_obs", obs=_with_client_id(obs)) diff --git a/inference/policy/bagel_robotics_1/deploy.yml b/inference/policy/bagel_robotics_1/deploy.yml new file mode 100644 index 0000000000000000000000000000000000000000..68075ab87f920a6585db75ab488ef83d2e2707a0 --- /dev/null +++ b/inference/policy/bagel_robotics_1/deploy.yml @@ -0,0 +1,26 @@ +policy_name: bagel_robotics_1 +protocol: ws +host: localhost +port: null +bench_name: RoboDojo +task_name: null +ckpt_name: cp1000 +env_cfg_type: arx_x5 +action_type: ee +seed: 1 +gpu_id: null +eval_batch: false +bundle_path: null +wan_model_dir: null +deployment_adapter: robodojo_ee16 +device: cuda +mixed_precision: bf16 +action_horizon: 32 +replan_steps: 16 +num_inference_steps: 10 +sigma_shift: 1.0 +default_instruction: follow the instruction +temporal_ensemble: + enabled: true + new_weight: 0.9 + old_weight: 0.1 diff --git a/inference/policy/bagel_robotics_1/download_checkpoint.py b/inference/policy/bagel_robotics_1/download_checkpoint.py new file mode 100644 index 0000000000000000000000000000000000000000..ccd940f8a86ec002daad1fb83061793a262025e1 --- /dev/null +++ b/inference/policy/bagel_robotics_1/download_checkpoint.py @@ -0,0 +1,48 @@ +"""Download the pinned existing private CP1000 artifact and public encoder assets.""" +from pathlib import Path +import argparse +import json +from assets import MANIFEST, POLICY_DIR, verify_bundle, verify_wan + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--bundle", type=Path, default=POLICY_DIR / "checkpoints/cp1000") + parser.add_argument("--wan-root", type=Path, default=POLICY_DIR / "checkpoints/Wan2.1-I2V-14B-480P") + parser.add_argument("--verify-only", action="store_true") + parser.add_argument("--metadata-only", action="store_true", + help="Download/check small checkpoint metadata; does not qualify tensor weights") + args = parser.parse_args() + if args.metadata_only and args.verify_only: + parser.error("Choose metadata-only or verify-only") + if not args.verify_only: + from huggingface_hub import hf_hub_download + for filename in MANIFEST["files"]: + if args.metadata_only and filename in {"action.pt", "video.pt"}: + continue + hf_hub_download(MANIFEST["repo_id"], filename, revision=MANIFEST["revision"], + local_dir=args.bundle) + if args.metadata_only: + from assets import file_digest + for name, expected in MANIFEST["files"].items(): + if name not in {"action.pt", "video.pt"}: + if file_digest(args.bundle / name) != expected["sha256"]: + raise ValueError(f"Metadata mismatch: {name}") + print("Pinned metadata verified. Tensor weights and encoders NOT checked.") + return + prefix = "checkpoints/Wan2.1-I2V-14B-480P/" + # Download just the encoders/tokenizer, never the original dense video model. + for entry in MANIFEST["wan"]["files"]: + source = hf_hub_download(MANIFEST["wan"]["repo"], entry["rfilename"], + revision=MANIFEST["wan"]["revision"]) + import shutil + destination = args.wan_root / entry["rfilename"].removeprefix(prefix) + destination.parent.mkdir(parents=True, exist_ok=True) + if not destination.exists(): + shutil.copyfile(source, destination) + print(json.dumps({"checkpoint": verify_bundle(args.bundle), + "encoders": verify_wan(args.wan_root)}, indent=2)) + + +if __name__ == "__main__": + main() diff --git a/inference/policy/bagel_robotics_1/download_checkpoint.sh b/inference/policy/bagel_robotics_1/download_checkpoint.sh new file mode 100644 index 0000000000000000000000000000000000000000..66f21f7224226622aa25037911c5671141ec4873 --- /dev/null +++ b/inference/policy/bagel_robotics_1/download_checkpoint.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -euo pipefail +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +exec "${PYTHON_BIN:-python}" "${SCRIPT_DIR}/download_checkpoint.py" "$@" diff --git a/inference/policy/bagel_robotics_1/eval.sh b/inference/policy/bagel_robotics_1/eval.sh new file mode 100644 index 0000000000000000000000000000000000000000..99c05abed3ca49e8d1605f946bd5b0b00f9168bc --- /dev/null +++ b/inference/policy/bagel_robotics_1/eval.sh @@ -0,0 +1,68 @@ +#!/bin/bash +set -euo pipefail + +bench_name=${1} +task_name=${2} +ckpt_name=${3} +env_cfg_type=${4} +action_type=${5} +seed=${6} +policy_gpu_id=${7} +env_gpu_id=${8} +policy_conda_env=${9} +eval_env_conda_env=${10} + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +XPL_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)" +BENCH_ROOT="$(cd "${XPL_ROOT}/.." && pwd)" +UTILS_DIR="${XPL_ROOT}/utils" + +SERVER_SCRIPT="${SCRIPT_DIR}/setup_eval_policy_server.sh" +CLIENT_SCRIPT="${SCRIPT_DIR}/setup_eval_env_client.sh" + +policy_server_port=$(bash "${UTILS_DIR}/get_free_port.sh") +policy_server_ip="localhost" + +additional_info="ckpt_name=${ckpt_name},action_type=${action_type}" + +cleanup() { + if [[ -n "${SERVER_PID:-}" ]]; then + echo "[MAIN] kill server ${SERVER_PID}" + kill "${SERVER_PID}" 2>/dev/null || true + fi +} +trap cleanup EXIT + +echo "[MAIN] start server, policy_server_port=${policy_server_port}" + +bash "${SERVER_SCRIPT}" \ + "${bench_name}" \ + "${task_name}" \ + "${ckpt_name}" \ + "${env_cfg_type}" \ + "${action_type}" \ + "${seed}" \ + "${policy_gpu_id}" \ + "${policy_conda_env}" \ + "${policy_server_port}" & + +SERVER_PID=$! + +bash "${UTILS_DIR}/wait_for_policy_server.sh" "${policy_server_ip}" "${policy_server_port}" "${SERVER_PID}" "Policy server" 1200 + +echo "[MAIN] start client, server=${policy_server_ip}:${policy_server_port}" + +bash "${CLIENT_SCRIPT}" \ + "${bench_name}" \ + "${task_name}" \ + "${ckpt_name}" \ + "${env_cfg_type}" \ + "${action_type}" \ + "${seed}" \ + "${env_gpu_id}" \ + "${eval_env_conda_env}" \ + "${additional_info}" \ + "${policy_server_port}" \ + "${policy_server_ip}" + +echo "[MAIN] eval finished" diff --git a/inference/policy/bagel_robotics_1/evidence/action-comparison.json b/inference/policy/bagel_robotics_1/evidence/action-comparison.json new file mode 100644 index 0000000000000000000000000000000000000000..ca39bce72c422493afb69a1abaebc7e32e6527d0 --- /dev/null +++ b/inference/policy/bagel_robotics_1/evidence/action-comparison.json @@ -0,0 +1,105 @@ +{ + "passed": true, + "checks": { + "reference_vs_packaged_0": { + "passed": true, + "events": [ + 280, + 280 + ], + "max_abs_stored_array_difference": 0.0, + "difference_count": 0, + "differences": [] + }, + "reference_vs_packaged_1": { + "passed": true, + "events": [ + 280, + 280 + ], + "max_abs_stored_array_difference": 0.0, + "difference_count": 0, + "differences": [] + }, + "reference_vs_packaged_2": { + "passed": true, + "events": [ + 280, + 280 + ], + "max_abs_stored_array_difference": 0.0, + "difference_count": 0, + "differences": [] + }, + "captured_vs_packaged_0": { + "passed": true, + "events": [ + 280, + 280 + ], + "max_abs_stored_array_difference": 0.0, + "difference_count": 0, + "differences": [] + }, + "captured_vs_packaged_1": { + "passed": true, + "events": [ + 280, + 280 + ], + "max_abs_stored_array_difference": 0.0, + "difference_count": 0, + "differences": [] + }, + "reference_reset_A_to_B_to_A": { + "passed": true, + "events": [ + 280, + 280 + ], + "max_abs_stored_array_difference": 0.0, + "difference_count": 0, + "differences": [] + }, + "packaged_reset_A_to_B_to_A": { + "passed": true, + "events": [ + 280, + 280 + ], + "max_abs_stored_array_difference": 0.0, + "difference_count": 0, + "differences": [] + }, + "matching_backend": { + "passed": true, + "reference": { + "torch": "2.11.0+cu130", + "cuda": "13.0", + "cudnn": 91900, + "gpu": "NVIDIA RTX PRO 6000 Blackwell Server Edition", + "deterministic": true, + "warn_only": false, + "cudnn_benchmark": false, + "cudnn_deterministic": true, + "cudnn_tf32": true, + "matmul_tf32": false, + "matmul_precision": "highest" + }, + "packaged": { + "torch": "2.11.0+cu130", + "cuda": "13.0", + "cudnn": 91900, + "gpu": "NVIDIA RTX PRO 6000 Blackwell Server Edition", + "deterministic": true, + "warn_only": false, + "cudnn_benchmark": false, + "cudnn_deterministic": true, + "cudnn_tf32": true, + "matmul_tf32": false, + "matmul_precision": "highest" + } + } + }, + "scope": "Same observations, seed 1, hardware and backend; not a benchmark score." +} diff --git a/inference/policy/bagel_robotics_1/evidence/five-suite-results.json b/inference/policy/bagel_robotics_1/evidence/five-suite-results.json new file mode 100644 index 0000000000000000000000000000000000000000..32e5a88090efe96f45983aea48a35d7a77121733 --- /dev/null +++ b/inference/policy/bagel_robotics_1/evidence/five-suite-results.json @@ -0,0 +1,448 @@ +{ + "schema": "bagel-cp1000-five-suite-report-v1", + "checkpoint": 1000, + "display_name": "Bagel-Robotics-1", + "official_leaderboard_result": false, + "scope": "Research-runner reported results; not packaged-adapter validation", + "aggregation": "Equal-weight mean of five suites; Generalization combines standard and randomized episodes", + "suites": { + "precision": { + "scored": 400, + "successes": 126, + "success_rate": 0.315, + "mean_partial_score": 0.40425, + "tasks": { + "build_tower": { + "name": "Build tower", + "scored": 50, + "successes": 32, + "success_rate": 0.64, + "mean_partial_score": 0.736, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "deposit_coin": { + "name": "Deposit coin", + "scored": 50, + "successes": 11, + "success_rate": 0.22, + "mean_partial_score": 0.268, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "fasten_screws": { + "name": "Fasten screws", + "scored": 50, + "successes": 18, + "success_rate": 0.36, + "mean_partial_score": 0.6679999999999999, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "insert_key": { + "name": "Insert key", + "scored": 50, + "successes": 0, + "success_rate": 0, + "mean_partial_score": 0.15, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "insert_tubes": { + "name": "Insert tubes", + "scored": 50, + "successes": 32, + "success_rate": 0.64, + "mean_partial_score": 0.752, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "play_Xylophone": { + "name": "Play xylophone", + "scored": 50, + "successes": 0, + "success_rate": 0, + "mean_partial_score": 0, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "plug_in_charger": { + "name": "Plug in charger", + "scored": 50, + "successes": 2, + "success_rate": 0.04, + "mean_partial_score": 0.04, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "pour_balls_into_vase": { + "name": "Pour balls into vase", + "scored": 50, + "successes": 31, + "success_rate": 0.62, + "mean_partial_score": 0.62, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + } + } + }, + "memory": { + "scored": 300, + "successes": 173, + "success_rate": 0.5766666666666667, + "mean_partial_score": 0.58, + "tasks": { + "cover_blocks": { + "name": "Cover blocks", + "scored": 50, + "successes": 50, + "success_rate": 1, + "mean_partial_score": 1, + "source": "user-supplied completed task summary" + }, + "imitate_sorting_sequence": { + "name": "Imitate sorting sequence", + "scored": 50, + "successes": 0, + "success_rate": 0, + "mean_partial_score": 0.02, + "source": "user-supplied completed task summary" + }, + "match_and_pick_from_conveyor": { + "name": "Match and pick from conveyor", + "scored": 50, + "successes": 46, + "success_rate": 0.92, + "mean_partial_score": 0.92, + "source": "user-supplied completed task summary" + }, + "press_by_number": { + "name": "Press by number", + "scored": 50, + "successes": 50, + "success_rate": 1, + "mean_partial_score": 1, + "source": "user-supplied completed task summary" + }, + "swap_T": { + "name": "Swap T", + "scored": 50, + "successes": 11, + "success_rate": 0.22, + "mean_partial_score": 0.22, + "source": "user-supplied completed task summary" + }, + "swap_blocks": { + "name": "Swap blocks", + "scored": 50, + "successes": 16, + "success_rate": 0.32, + "mean_partial_score": 0.32, + "source": "user-supplied completed task summary" + } + } + }, + "long_horizon": { + "scored": 400, + "successes": 137, + "success_rate": 0.3425, + "mean_partial_score": 0.53, + "tasks": { + "classify_objects": { + "name": "Classify objects", + "scored": 50, + "successes": 16, + "success_rate": 0.32, + "mean_partial_score": 0.445, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "fill_egg_holder": { + "name": "Fill egg holder", + "scored": 50, + "successes": 2, + "success_rate": 0.04, + "mean_partial_score": 0.138, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "fill_pen_holder": { + "name": "Fill pen holder", + "scored": 50, + "successes": 11, + "success_rate": 0.22, + "mean_partial_score": 0.439, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "make_kong": { + "name": "Make kong", + "scored": 50, + "successes": 43, + "success_rate": 0.86, + "mean_partial_score": 0.86, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "organize_table": { + "name": "Organize table", + "scored": 50, + "successes": 9, + "success_rate": 0.18, + "mean_partial_score": 0.645, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "play_stacking_toy": { + "name": "Play stacking toy", + "scored": 50, + "successes": 6, + "success_rate": 0.12, + "mean_partial_score": 0.32, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "play_tic_tac_toe": { + "name": "Play tic tac toe", + "scored": 50, + "successes": 1, + "success_rate": 0.02, + "mean_partial_score": 0.405, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "put_bottles_into_dustbin": { + "name": "Put bottles into dustbin", + "scored": 50, + "successes": 49, + "success_rate": 0.98, + "mean_partial_score": 0.988, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + } + } + }, + "generalization": { + "scored": 600, + "successes": 183, + "success_rate": 0.305, + "mean_partial_score": 0.36824999999999997, + "tasks": { + "arrange_largest_number": { + "name": "Arrange largest number", + "scored": 50, + "successes": 2, + "success_rate": 0.04, + "mean_partial_score": 0.11, + "source": "user-supplied completed task summary" + }, + "fold_clothes": { + "name": "Fold clothes", + "scored": 50, + "successes": 36, + "success_rate": 0.72, + "mean_partial_score": 0.7440000000000001, + "source": "user-supplied completed task summary" + }, + "hang_mugs": { + "name": "Hang mugs", + "scored": 50, + "successes": 14, + "success_rate": 0.28, + "mean_partial_score": 0.385, + "source": "user-supplied completed task summary" + }, + "make_toast": { + "name": "Make toast", + "scored": 50, + "successes": 22, + "success_rate": 0.44, + "mean_partial_score": 0.525, + "source": "user-supplied completed task summary" + }, + "pack_objects_into_box": { + "name": "Pack objects into box", + "scored": 50, + "successes": 6, + "success_rate": 0.12, + "mean_partial_score": 0.354, + "source": "user-supplied completed task summary" + }, + "pour_liquid_into_cup": { + "name": "Pour liquid into cup", + "scored": 50, + "successes": 22, + "success_rate": 0.44, + "mean_partial_score": 0.44, + "source": "user-supplied completed task summary" + }, + "push_T": { + "name": "Push T", + "scored": 50, + "successes": 1, + "success_rate": 0.02, + "mean_partial_score": 0.02, + "source": "user-supplied completed task summary" + }, + "sort_nesting_dolls_by_size": { + "name": "Sort nesting dolls by size", + "scored": 50, + "successes": 10, + "success_rate": 0.2, + "mean_partial_score": 0.2, + "source": "node-2 receipts verified in prior results review" + }, + "stack_blocks": { + "name": "Stack blocks", + "scored": 50, + "successes": 22, + "success_rate": 0.44, + "mean_partial_score": 0.5, + "source": "node-2 receipts verified in prior results review" + }, + "stack_bowls": { + "name": "Stack bowls", + "scored": 50, + "successes": 26, + "success_rate": 0.52, + "mean_partial_score": 0.589, + "source": "user-supplied completed task summary" + }, + "store_laptop_and_headphones": { + "name": "Store laptop and headphones", + "scored": 50, + "successes": 20, + "success_rate": 0.4, + "mean_partial_score": 0.512, + "source": "node-2 receipts verified in prior results review" + }, + "sweep_blocks": { + "name": "Sweep blocks", + "scored": 50, + "successes": 2, + "success_rate": 0.04, + "mean_partial_score": 0.04, + "source": "user-supplied completed task summary" + } + } + }, + "open": { + "scored": 400, + "successes": 16, + "success_rate": 0.04, + "mean_partial_score": 0.044750000000000005, + "tasks": { + "align_blocks": { + "name": "Align blocks", + "scored": 50, + "successes": 0, + "success_rate": 0, + "mean_partial_score": 0, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "general_pickup": { + "name": "General pickup", + "scored": 50, + "successes": 12, + "success_rate": 0.24, + "mean_partial_score": 0.24, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "stack_blocks_by_language": { + "name": "Stack blocks by language", + "scored": 50, + "successes": 4, + "success_rate": 0.08, + "mean_partial_score": 0.092, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "solve_equation": { + "name": "Solve equation", + "scored": 50, + "successes": 0, + "success_rate": 0, + "mean_partial_score": 0, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "classify_objects_by_language": { + "name": "Classify objects by language", + "scored": 50, + "successes": 0, + "success_rate": 0, + "mean_partial_score": 0.026000000000000002, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "pick_from_conveyor_by_image": { + "name": "Pick from conveyor by image", + "scored": 50, + "successes": 0, + "success_rate": 0, + "mean_partial_score": 0, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "store_tools_in_toolbox": { + "name": "Store tools in toolbox", + "scored": 50, + "successes": 0, + "success_rate": 0, + "mean_partial_score": 0, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + }, + "pour_by_language": { + "name": "Pour by language", + "scored": 50, + "successes": 0, + "success_rate": 0, + "mean_partial_score": 0, + "source": "saved checkpoint-1000 research evidence with receipt hashes" + } + } + } + }, + "provenance_note": "Memory and nine Generalization tasks use user-supplied summaries; raw episode records for those tasks were not independently re-audited. The other three Generalization tasks were verified against node-2 receipts in the preceding results review.", + "exceptions": [ + { + "suite": "memory", + "type": "repaired_variant", + "original_layout": 47, + "original_status": "unscored", + "variant_success": false, + "variant_partial_score": 0, + "reported_scored": 300, + "original_scored": 299, + "original_successes": 173, + "original_mean_partial_score": 0.5819397993311036 + }, + { + "suite": "open", + "type": "replacement", + "task": "general_pickup", + "original_layouts": [ + 5 + ], + "replacement_layouts": [ + 50 + ], + "replacement_successes": [ + false + ], + "replacement_partial_scores": [ + 0 + ] + }, + { + "suite": "long_horizon", + "type": "replacement", + "task": "fill_egg_holder", + "original_layouts": [ + 15, + 20 + ], + "replacement_layouts": [ + 50, + 51 + ], + "replacement_successes": [ + false, + false + ], + "replacement_partial_scores": [ + 0, + 0.25 + ] + } + ], + "overall": { + "success_rate": 0.3158333333333333, + "mean_partial_score": 0.38545, + "reported_scored": 2100, + "successes": 635, + "original_results": 2096, + "replacements": 3, + "repaired_variants": 1 + } +} diff --git a/inference/policy/bagel_robotics_1/evidence/gpu-validation.json b/inference/policy/bagel_robotics_1/evidence/gpu-validation.json new file mode 100644 index 0000000000000000000000000000000000000000..ce1d916a4950c7f6906fd7073e3d4b2d24e29eaa --- /dev/null +++ b/inference/policy/bagel_robotics_1/evidence/gpu-validation.json @@ -0,0 +1,168 @@ +{ + "passed": true, + "date_utc": "2026-11-06", + "public_model_name": "Bagel-Robotics-1", + "checkpoint": { + "update": 1000, + "identity": "790bffc9464fa7a026aa43b217aec2033d186895cad643166daa0bcc01914d5c", + "revision": "2651631c5d08819088475e8778676f5cf6d9afcf" + }, + "source_revisions": { + "simulator": "f57e1633ffed59761bc8e568cfe7530c4b33381c", + "xpolicylab": "6baccd57ff958570d0db1588370289ee36c8bb70" + }, + "adapter_code_integrity": { + "passed": true, + "files_checked": 57, + "manifest_sha256": "a97b59051c7c5c1652a21c2f0e60b745114551004234f46015ab1c1fb4aa32ad" + }, + "debug": { + "passed": true, + "plain": true, + "encoded": true, + "job_id": "53609" + }, + "simulator": { + "passed": true, + "seed": 1, + "errors": [], + "scope": "Adapter smoke test; not a complete suite or official score." + }, + "simulator_tasks": { + "insert_tubes": { + "episodes": 2, + "successes": 2, + "success_rate_percent": 100, + "partial_score_100": 100.0, + "layouts": [ + 0, + 1 + ], + "details": [ + { + "layout_id": 0, + "success": true, + "score": 1.0 + }, + { + "layout_id": 1, + "success": true, + "score": 1.0 + } + ], + "result_sha256": "52f265125beb3fa9d1c040451392dd0762a9561d1105825712fda3fc84e10243", + "video_files": 6 + }, + "store_laptop_and_headphones": { + "episodes": 2, + "successes": 1, + "success_rate_percent": 50, + "partial_score_100": 60.0, + "layouts": [ + 0, + 1 + ], + "details": [ + { + "layout_id": 0, + "success": true, + "score": 1.0 + }, + { + "layout_id": 1, + "success": false, + "score": 0.2 + } + ], + "result_sha256": "95e73d2f069cf0f3d9418e654206afda6a6670ec8a9b8661d232299349614f55", + "video_files": 6 + } + }, + "replay": { + "passed": true, + "fixtures": [ + { + "task": "insert_tubes", + "coverage": { + "observations": 209, + "action_chunks": 14, + "history_mature": true, + "capture_limit": 209 + }, + "trace_sha256": "e4956cf7959ea7fa0f261d8395e6c6387b1329dcbcfe99e2e3dd200b5632217f" + }, + { + "task": "store_laptop_and_headphones", + "coverage": { + "observations": 209, + "action_chunks": 14, + "history_mature": true, + "capture_limit": 209 + }, + "trace_sha256": "5174d8b3ac7565a38e913813c4c9d3f4a58077ac2dffd0276d1383781ca011e1" + } + ], + "order": [ + "A", + "B", + "A" + ], + "observations_per_run": 209, + "chunks_per_run": 14, + "runs_per_implementation": 3, + "checks": 8, + "recorded_differences": 0, + "max_abs_stored_array_difference": 0.0 + }, + "jobs": [ + { + "JobID": "53541", + "State": "FAILED", + "ExitCode": "1:0", + "Elapsed": "00:01:13" + }, + { + "JobID": "53542", + "State": "CANCELLED", + "ExitCode": "0:0", + "Elapsed": "00:00:00" + }, + { + "JobID": "53609", + "State": "COMPLETED", + "ExitCode": "0:0", + "Elapsed": "00:02:20" + }, + { + "JobID": "53610", + "State": "FAILED", + "ExitCode": "1:0", + "Elapsed": "00:01:08" + }, + { + "JobID": "53611", + "State": "FAILED", + "ExitCode": "55:0", + "Elapsed": "00:01:09" + }, + { + "JobID": "53612", + "State": "COMPLETED", + "ExitCode": "0:0", + "Elapsed": "00:15:45" + } + ], + "scope": "Technical package qualification on the recorded backend. Four smoke episodes are separate from historical suite results; this is not official leaderboard evaluation.", + "simulator_launch_adjustments": [ + "Established noninteractive Kit setting", + "User-owned portable Kit cache via a recorded launcher-only patch", + "Read-path bridge to native eval_result; no result contents changed" + ], + "receipts": { + "simulator-result.json": "360a928cbffca156e08f461a9b5a810cc648a9c4de72121089563e21b60937c3", + "action-comparison.json": "6110ad701ed4c7dd9768b61add6df64ace15c7109ccafdace4ea8ab8934b23cb", + "gpu-validation-result.json": "46b138b64700468bdef996abd972395502cddaf2ca25eb0dccd39b710345b070", + "adapter-integrity-after.json": "4b463b710cd3f1724789121005167f8b22a369ddd7c151f9a5501e448fb2cbae", + "slurm-final.json": "766906b88c3153fb1abb641579302b9639234ccac995015bcb58ead33622344d" + } +} diff --git a/inference/policy/bagel_robotics_1/evidence/local-results.json b/inference/policy/bagel_robotics_1/evidence/local-results.json new file mode 100644 index 0000000000000000000000000000000000000000..63b90a262e4205cacdbbab94f95ca135e4e66d45 --- /dev/null +++ b/inference/policy/bagel_robotics_1/evidence/local-results.json @@ -0,0 +1,569 @@ +{ + "checkpoint": 1000, + "seed": 1, + "official_leaderboard_result": false, + "suites": { + "precision": { + "source_file": "progress-001000.json", + "source_sha256": "099fa38f19d9f5ff428695ca9999fa5c291081f1519c8320f2101a86c03ff6ef", + "original": { + "complete": true, + "expected": 400, + "mean_partial_score": 0.40425000000000033, + "protocol": "266df4b5d9b8eac16145600a8c4f9223d15e03285d61473c3bbd8c43b694f211", + "scored": 400, + "success_rate": 0.315, + "successes": 126, + "tasks": { + "build_tower": { + "complete": true, + "expected": 50, + "mean_partial_score": 0.7360000000000002, + "scored": 50, + "success_rate": 0.64, + "successes": 32 + }, + "deposit_coin": { + "complete": true, + "expected": 50, + "mean_partial_score": 0.2679999999999999, + "scored": 50, + "success_rate": 0.22, + "successes": 11 + }, + "fasten_screws": { + "complete": true, + "expected": 50, + "mean_partial_score": 0.6679999999999999, + "scored": 50, + "success_rate": 0.36, + "successes": 18 + }, + "insert_key": { + "complete": true, + "expected": 50, + "mean_partial_score": 0.15000000000000013, + "scored": 50, + "success_rate": 0.0, + "successes": 0 + }, + "insert_tubes": { + "complete": true, + "expected": 50, + "mean_partial_score": 0.7519999999999999, + "scored": 50, + "success_rate": 0.64, + "successes": 32 + }, + "play_Xylophone": { + "complete": true, + "expected": 50, + "mean_partial_score": 0.0, + "scored": 50, + "success_rate": 0.0, + "successes": 0 + }, + "plug_in_charger": { + "complete": true, + "expected": 50, + "mean_partial_score": 0.04, + "scored": 50, + "success_rate": 0.04, + "successes": 2 + }, + "pour_balls_into_vase": { + "complete": true, + "expected": 50, + "mean_partial_score": 0.62, + "scored": 50, + "success_rate": 0.62, + "successes": 31 + } + }, + "update": 1000 + }, + "reported_with_labeled_replacements": { + "scored": 400, + "successes": 126, + "success_rate": 0.315, + "mean_partial_score": 0.40425000000000033, + "replacement_count": 0, + "tasks": { + "build_tower": { + "mean_partial_score": 0.7360000000000002, + "scored": 50, + "success_rate": 0.64, + "successes": 32 + }, + "deposit_coin": { + "mean_partial_score": 0.2679999999999999, + "scored": 50, + "success_rate": 0.22, + "successes": 11 + }, + "fasten_screws": { + "mean_partial_score": 0.6679999999999999, + "scored": 50, + "success_rate": 0.36, + "successes": 18 + }, + "insert_key": { + "mean_partial_score": 0.15000000000000013, + "scored": 50, + "success_rate": 0.0, + "successes": 0 + }, + "insert_tubes": { + "mean_partial_score": 0.7519999999999999, + "scored": 50, + "success_rate": 0.64, + "successes": 32 + }, + "play_Xylophone": { + "mean_partial_score": 0.0, + "scored": 50, + "success_rate": 0.0, + "successes": 0 + }, + "plug_in_charger": { + "mean_partial_score": 0.04, + "scored": 50, + "success_rate": 0.04, + "successes": 2 + }, + "pour_balls_into_vase": { + "mean_partial_score": 0.62, + "scored": 50, + "success_rate": 0.62, + "successes": 31 + } + } + } + }, + "open": { + "source_file": "progress.json", + "source_sha256": "32e307e43f14291eb654f11d457be3bd29c28d0e7e6d3bc132de8d26eec8f3c3", + "original": { + "accounted": 399, + "expected": 400, + "mean_partial_score": 0.04486215538847117, + "native_complete": false, + "reporting_complete": false, + "scored": 399, + "success_rate": 0.040100250626566414, + "successes": 16, + "suite": "open", + "tasks": { + "align_blocks": { + "accounted": 50, + "expected": 50, + "mean_partial_score": 0.0, + "native_complete": true, + "reporting_complete": true, + "scored": 50, + "success_rate": 0.0, + "successes": 0, + "unscored": 0, + "valid_failures": 50 + }, + "classify_objects_by_language": { + "accounted": 50, + "expected": 50, + "mean_partial_score": 0.026000000000000002, + "native_complete": true, + "reporting_complete": true, + "scored": 50, + "success_rate": 0.0, + "successes": 0, + "unscored": 0, + "valid_failures": 50 + }, + "general_pickup": { + "accounted": 49, + "expected": 50, + "mean_partial_score": 0.24489795918367346, + "native_complete": false, + "reporting_complete": false, + "scored": 49, + "success_rate": 0.24489795918367346, + "successes": 12, + "unscored": 0, + "valid_failures": 37 + }, + "pick_from_conveyor_by_image": { + "accounted": 50, + "expected": 50, + "mean_partial_score": 0.0, + "native_complete": true, + "reporting_complete": true, + "scored": 50, + "success_rate": 0.0, + "successes": 0, + "unscored": 0, + "valid_failures": 50 + }, + "pour_by_language": { + "accounted": 50, + "expected": 50, + "mean_partial_score": 0.0, + "native_complete": true, + "reporting_complete": true, + "scored": 50, + "success_rate": 0.0, + "successes": 0, + "unscored": 0, + "valid_failures": 50 + }, + "solve_equation": { + "accounted": 50, + "expected": 50, + "mean_partial_score": 0.0, + "native_complete": true, + "reporting_complete": true, + "scored": 50, + "success_rate": 0.0, + "successes": 0, + "unscored": 0, + "valid_failures": 50 + }, + "stack_blocks_by_language": { + "accounted": 50, + "expected": 50, + "mean_partial_score": 0.092, + "native_complete": true, + "reporting_complete": true, + "scored": 50, + "success_rate": 0.08, + "successes": 4, + "unscored": 0, + "valid_failures": 46 + }, + "store_tools_in_toolbox": { + "accounted": 50, + "expected": 50, + "mean_partial_score": 0.0, + "native_complete": true, + "reporting_complete": true, + "scored": 50, + "success_rate": 0.0, + "successes": 0, + "unscored": 0, + "valid_failures": 50 + } + }, + "unscored": 0, + "update": 1000, + "valid_failures": 383, + "variants": { + "standard": { + "accounted": 399, + "expected": 400, + "mean_partial_score": 0.04486215538847117, + "native_complete": false, + "reporting_complete": false, + "scored": 399, + "success_rate": 0.040100250626566414, + "successes": 16, + "unscored": 0, + "valid_failures": 383 + } + } + }, + "reported_with_labeled_replacements": { + "scored": 400, + "successes": 16, + "success_rate": 0.04, + "mean_partial_score": 0.04475, + "replacement_count": 1, + "tasks": { + "align_blocks": { + "mean_partial_score": 0.0, + "scored": 50, + "success_rate": 0.0, + "successes": 0 + }, + "classify_objects_by_language": { + "mean_partial_score": 0.026000000000000002, + "scored": 50, + "success_rate": 0.0, + "successes": 0 + }, + "general_pickup": { + "mean_partial_score": 0.24, + "scored": 50, + "success_rate": 0.24, + "successes": 12 + }, + "pick_from_conveyor_by_image": { + "mean_partial_score": 0.0, + "scored": 50, + "success_rate": 0.0, + "successes": 0 + }, + "pour_by_language": { + "mean_partial_score": 0.0, + "scored": 50, + "success_rate": 0.0, + "successes": 0 + }, + "solve_equation": { + "mean_partial_score": 0.0, + "scored": 50, + "success_rate": 0.0, + "successes": 0 + }, + "stack_blocks_by_language": { + "mean_partial_score": 0.092, + "scored": 50, + "success_rate": 0.08, + "successes": 4 + }, + "store_tools_in_toolbox": { + "mean_partial_score": 0.0, + "scored": 50, + "success_rate": 0.0, + "successes": 0 + } + } + } + }, + "long_horizon": { + "source_file": "progress.json", + "source_sha256": "9bc9c571ee6099957f954be58e5cf7654a1439975389277b8c29d036b3ad1e48", + "original": { + "accounted": 398, + "expected": 400, + "mean_partial_score": 0.532035175879397, + "native_complete": false, + "reporting_complete": false, + "scored": 398, + "success_rate": 0.3442211055276382, + "successes": 137, + "suite": "long_horizon", + "tasks": { + "classify_objects": { + "accounted": 50, + "expected": 50, + "mean_partial_score": 0.445, + "native_complete": true, + "reporting_complete": true, + "scored": 50, + "success_rate": 0.32, + "successes": 16, + "unscored": 0, + "valid_failures": 34 + }, + "fill_egg_holder": { + "accounted": 48, + "expected": 50, + "mean_partial_score": 0.13854166666666667, + "native_complete": false, + "reporting_complete": false, + "scored": 48, + "success_rate": 0.041666666666666664, + "successes": 2, + "unscored": 0, + "valid_failures": 46 + }, + "fill_pen_holder": { + "accounted": 50, + "expected": 50, + "mean_partial_score": 0.439, + "native_complete": true, + "reporting_complete": true, + "scored": 50, + "success_rate": 0.22, + "successes": 11, + "unscored": 0, + "valid_failures": 39 + }, + "make_kong": { + "accounted": 50, + "expected": 50, + "mean_partial_score": 0.86, + "native_complete": true, + "reporting_complete": true, + "scored": 50, + "success_rate": 0.86, + "successes": 43, + "unscored": 0, + "valid_failures": 7 + }, + "organize_table": { + "accounted": 50, + "expected": 50, + "mean_partial_score": 0.645, + "native_complete": true, + "reporting_complete": true, + "scored": 50, + "success_rate": 0.18, + "successes": 9, + "unscored": 0, + "valid_failures": 41 + }, + "play_stacking_toy": { + "accounted": 50, + "expected": 50, + "mean_partial_score": 0.32, + "native_complete": true, + "reporting_complete": true, + "scored": 50, + "success_rate": 0.12, + "successes": 6, + "unscored": 0, + "valid_failures": 44 + }, + "play_tic_tac_toe": { + "accounted": 50, + "expected": 50, + "mean_partial_score": 0.405, + "native_complete": true, + "reporting_complete": true, + "scored": 50, + "success_rate": 0.02, + "successes": 1, + "unscored": 0, + "valid_failures": 49 + }, + "put_bottles_into_dustbin": { + "accounted": 50, + "expected": 50, + "mean_partial_score": 0.988, + "native_complete": true, + "reporting_complete": true, + "scored": 50, + "success_rate": 0.98, + "successes": 49, + "unscored": 0, + "valid_failures": 1 + } + }, + "unscored": 0, + "update": 1000, + "valid_failures": 261, + "variants": { + "standard": { + "accounted": 398, + "expected": 400, + "mean_partial_score": 0.532035175879397, + "native_complete": false, + "reporting_complete": false, + "scored": 398, + "success_rate": 0.3442211055276382, + "successes": 137, + "unscored": 0, + "valid_failures": 261 + } + } + }, + "reported_with_labeled_replacements": { + "scored": 400, + "successes": 137, + "success_rate": 0.3425, + "mean_partial_score": 0.53, + "replacement_count": 2, + "tasks": { + "classify_objects": { + "mean_partial_score": 0.445, + "scored": 50, + "success_rate": 0.32, + "successes": 16 + }, + "fill_egg_holder": { + "mean_partial_score": 0.138, + "scored": 50, + "success_rate": 0.04, + "successes": 2 + }, + "fill_pen_holder": { + "mean_partial_score": 0.439, + "scored": 50, + "success_rate": 0.22, + "successes": 11 + }, + "make_kong": { + "mean_partial_score": 0.86, + "scored": 50, + "success_rate": 0.86, + "successes": 43 + }, + "organize_table": { + "mean_partial_score": 0.645, + "scored": 50, + "success_rate": 0.18, + "successes": 9 + }, + "play_stacking_toy": { + "mean_partial_score": 0.32, + "scored": 50, + "success_rate": 0.12, + "successes": 6 + }, + "play_tic_tac_toe": { + "mean_partial_score": 0.405, + "scored": 50, + "success_rate": 0.02, + "successes": 1 + }, + "put_bottles_into_dustbin": { + "mean_partial_score": 0.988, + "scored": 50, + "success_rate": 0.98, + "successes": 49 + } + } + } + } + }, + "replacements": [ + { + "suite": "open", + "episode": "general_pickup--0050", + "outcome": { + "executed_steps": 200, + "layout_id": 50, + "score": 0.0, + "step_budget": 200, + "success": false, + "termination_reason": "step_budget" + }, + "receipt_sha256": "4f2a6cebf43dc12ea30ee63981e720e7afcec93b03ad3f6a4ba460c59f2d9cf4", + "protocol": "e32aa0e95d1bdfe638c65520e8512c1e0da1cab16744ac560ba2c8ad59dcbc5d", + "source_sha256": "a9c67e0796355fb49b13de78212bb5ef0983d3e2d18bb0480d0c38f2bcbe1eae", + "source_file": "replacement-result.json" + }, + { + "suite": "long_horizon", + "episode": "fill_egg_holder--0050", + "outcome": { + "executed_steps": 700, + "layout_id": 50, + "score": 0.0, + "step_budget": 700, + "success": false, + "termination_reason": "step_budget" + }, + "receipt_sha256": "e997fd981a5855be673538943400865788b20f4850d0da684d9752ff4778bafa", + "protocol": "a876503909848ac16a62806bed0177445f8ee0681970f82f1d49150a1ab5b5b6", + "source_sha256": "af24963ead6a0db6175e26b51df2a551e3a3b7c4854659c8b7995ff24a4fb927", + "source_file": "fill_egg_holder--0050-result.json" + }, + { + "suite": "long_horizon", + "episode": "fill_egg_holder--0051", + "outcome": { + "executed_steps": 700, + "layout_id": 51, + "score": 0.25, + "step_budget": 700, + "success": false, + "termination_reason": "step_budget" + }, + "receipt_sha256": "8a9be90e270a00edd75615061418570fe83af25e28eb742ce2548d10b792713f", + "protocol": "a876503909848ac16a62806bed0177445f8ee0681970f82f1d49150a1ab5b5b6", + "source_sha256": "48566afa4d9dd6f1c53c601974cc583fc4c519a57c96c94515e361ba1daf03b0", + "source_file": "fill_egg_holder--0051-result.json" + } + ], + "note": "Local standard-layout results. Open/Long Horizon include labeled startup-invalid replacements. No five-suite benchmark aggregate or packaged-adapter rollout claim." +} diff --git a/inference/policy/bagel_robotics_1/evidence/pr-audit.json b/inference/policy/bagel_robotics_1/evidence/pr-audit.json new file mode 100644 index 0000000000000000000000000000000000000000..ad9d686daefda3c4c8575af5ee9a28326e2557a0 --- /dev/null +++ b/inference/policy/bagel_robotics_1/evidence/pr-audit.json @@ -0,0 +1,20 @@ +{ + "passed": true, + "errors": [], + "python_files": 50, + "shell_scripts": 5, + "cpu_tests": { + "tests": 15, + "failures": 0, + "errors": 0, + "skipped": 0 + }, + "pr_template_headings_exact": true, + "gpu_qualification": "passed", + "ready_for_pr": false, + "remaining_gates": [ + "dedicated private reviewer access", + "maintainer agreement on proposed eval-only integration and release timeline", + "user review before PR creation" + ] +} diff --git a/inference/policy/bagel_robotics_1/install.sh b/inference/policy/bagel_robotics_1/install.sh new file mode 100644 index 0000000000000000000000000000000000000000..655eecb24e443f96698966843a7a2dbc3c70adc1 --- /dev/null +++ b/inference/policy/bagel_robotics_1/install.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +set -euo pipefail +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +XPL_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)" +ENV_DIR="${1:-${SCRIPT_DIR}/.venv}" +"${PYTHON_BIN:-python3}" -m venv "${ENV_DIR}" +"${ENV_DIR}/bin/python" -m pip install --upgrade pip +"${ENV_DIR}/bin/python" -m pip install torch==2.11.0 torchvision==0.26.0 \ + --index-url "${TORCH_INDEX_URL:-https://download.pytorch.org/whl/cu130}" +"${ENV_DIR}/bin/python" -m pip install -c "${SCRIPT_DIR}/requirements-transport.txt" -e "${SCRIPT_DIR}/runtime" -e "${XPL_ROOT}" +echo "Policy environment: ${ENV_DIR}" diff --git a/inference/policy/bagel_robotics_1/licenses/Apache-2.0.txt b/inference/policy/bagel_robotics_1/licenses/Apache-2.0.txt new file mode 100644 index 0000000000000000000000000000000000000000..261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64 --- /dev/null +++ b/inference/policy/bagel_robotics_1/licenses/Apache-2.0.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/inference/policy/bagel_robotics_1/licenses/RoboDojo-MIT.txt b/inference/policy/bagel_robotics_1/licenses/RoboDojo-MIT.txt new file mode 100644 index 0000000000000000000000000000000000000000..2d51370cc56c4c2b931be99bc3ced43566393741 --- /dev/null +++ b/inference/policy/bagel_robotics_1/licenses/RoboDojo-MIT.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Yue Chen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/inference/policy/bagel_robotics_1/licenses/XPolicyLab.txt b/inference/policy/bagel_robotics_1/licenses/XPolicyLab.txt new file mode 100644 index 0000000000000000000000000000000000000000..261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64 --- /dev/null +++ b/inference/policy/bagel_robotics_1/licenses/XPolicyLab.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/inference/policy/bagel_robotics_1/model.py b/inference/policy/bagel_robotics_1/model.py new file mode 100644 index 0000000000000000000000000000000000000000..9d6c28561a98a68d8485a70f6052a2e01288631c --- /dev/null +++ b/inference/policy/bagel_robotics_1/model.py @@ -0,0 +1,361 @@ +import os +from pathlib import Path +from typing import Any +import cv2 +import numpy as np +from .temporal_ensemble import TemporalEnsemble +from XPolicyLab.model_template import ModelTemplate +from XPolicyLab.utils.process_data import get_robot_action_dim_info +from .assets import prepare_model_config +from .backend import configure_backend + +POLICY_DIR = Path(__file__).resolve().parent + + +def _is_none_like(value: Any) -> bool: + if value is None: + return True + return isinstance(value, str) and value.strip().lower() in {"", "none", "null"} + + +def _standardize_rgb(image: np.ndarray, *, resize: bool = True) -> np.ndarray: + image = np.asarray(image) + if image.ndim != 3 or image.shape[-1] != 3: + raise ValueError(f"Expected HWC image with 3 channels, got {image.shape}") + if image.dtype != np.uint8: + image = np.clip(image, 0, 255).astype(np.uint8) + if resize and image.shape[:2] != (240, 320): + image = cv2.resize(image, (320, 240), interpolation=cv2.INTER_AREA) + if resize and image.shape != (240, 320, 3): + raise ValueError(f"Expected standardized RGB shape (240, 320, 3), got {image.shape}") + return image + + +def _get_instruction(obs: dict, fallback: str) -> str: + value = obs.get("task_instruction") + if value is None: + value = obs.get("instruction", obs.get("instructions")) + if isinstance(value, (list, tuple)): + return str(value[0]) if value else fallback + if value is None: + return fallback + if hasattr(value, "item"): + value = value.item() + text = str(value).strip() + return text if text else fallback + + +class Model(ModelTemplate): + def __init__(self, model_cfg): + self.model_cfg = prepare_model_config(model_cfg, POLICY_DIR) + self.backend_settings = configure_backend(self.model_cfg["seed"]) + info = get_robot_action_dim_info(self.model_cfg["env_cfg_type"]) + if len(info["arm_dim"]) != 2 or list(info["ee_dim"]) != [1, 1]: + raise ValueError("The checkpoint requires two arms and one gripper value per arm") + self.robot_action_dim_info = info + self.action_dim = sum(7 + int(d) for d in info["ee_dim"]) + if self.action_dim != 16: + raise ValueError("Checkpoint action width differs from the registered robot") + self.action_type = self.model_cfg["action_type"] + if ( + self.action_type != "ee" + or self.model_cfg.get("deployment_adapter", "robodojo_ee16") != "robodojo_ee16" + ): + raise ValueError("This adapter only supports RoboDojo EE16") + self.env_cfg_type = self.model_cfg["env_cfg_type"] + self.action_horizon = 1 + self.replan_steps = int(self.model_cfg.get("replan_steps") or 16) + self.default_instruction = str( + self.model_cfg.get("default_instruction") + or self.model_cfg.get("prompt") + or "follow the instruction" + ) + self.deployment_adapter = ( + str(self.model_cfg.get("deployment_adapter") or "robodojo_ee16").strip().lower() + ) + self.last_obs = None + self.last_instruction = self.default_instruction + self.model = None + self._request_context = {} + self._virtual_env_ids = {} + self._next_virtual_env_id = 0 + self._client_last_use = {} + self._client_use_counter = 0 + self._max_retained_clients = int(self.model_cfg.get("max_retained_clients") or 64) + self._last_infer_step = {} + self.history_guard_duplicates = 0 + self.history_guard_mismatches = 0 + self._active_client = None + self._seen_client_ids = False + self._last_obs_by_client = {} + self._last_instruction_by_client = {} + self._last_virtual_by_client = {} + self._infer_count_by_virtual = {} + self._ensemble_by_virtual = {} + self._last_ensemble = None + checkpoint_path = self.model_cfg.get("checkpoint_path") or self.model_cfg.get( + "ckpt_setting" + ) + dataset_stats_path = self.model_cfg.get("dataset_stats_path") + if _is_none_like(checkpoint_path): + raise FileNotFoundError( + "VPP2 requires checkpoint_path/ckpt_setting for real deployment." + ) + if _is_none_like(dataset_stats_path): + raise FileNotFoundError("VPP2 requires dataset_stats_path for real deployment.") + from bagel_cp1000.policy import get_model + + upstream_cfg = dict(self.model_cfg) + upstream_cfg["ckpt_setting"] = str(Path(checkpoint_path).expanduser().resolve()) + upstream_cfg["dataset_stats_path"] = str(Path(dataset_stats_path).expanduser().resolve()) + self.model = get_model(upstream_cfg) + video = self.model.model.video_expert + if sum(p.numel() for p in video.parameters()) != 12468409664: + raise ValueError("Loaded video expert is not the pinned compact CP1000 model") + if any("mask_logits" in name for name, _ in video.named_parameters()): + raise ValueError("Training mask parameters must not be present at inference") + self.action_horizon = int(self.model.action_horizon) + self.replan_steps = int(self.model.replan_steps) + if self.model_cfg.get("temporal_ensemble") != {"enabled": True, "new_weight": 0.9, "old_weight": 0.1}: + raise ValueError("Expected the authorized 90/10 temporal ensemble") + if (self.action_horizon, self.replan_steps) != (32, 16): + raise ValueError("Expected horizon 32, execute 16") + + @staticmethod + def _pack_robodojo_ee16_state(obs: dict) -> np.ndarray: + state = obs["state"] + parts = [] + for side in ("left", "right"): + pose = np.asarray(state[f"{side}_ee_pose"], dtype=np.float32).reshape(7) + gripper = np.asarray(state[f"{side}_ee_joint_state"], dtype=np.float32).reshape(1) + parts.extend((pose, gripper)) + packed = np.concatenate(parts, axis=0) + if packed.shape != (16,): + raise ValueError(f"Expected RoboDojo EE state [16], got {packed.shape}") + return packed + + @staticmethod + def _unpack_robodojo_ee16_actions(actions: np.ndarray): + packed = np.asarray(actions, dtype=np.float32) + if packed.ndim == 1: + packed = packed[None, :] + if packed.ndim != 2 or packed.shape[1] != 16: + raise ValueError(f"Expected RoboDojo EE actions [T,16], got {packed.shape}") + result = [] + for action in packed: + result.append( + { + "left_ee_pose": action[0:7], + "left_ee_joint_state": action[7:8], + "right_ee_pose": action[8:15], + "right_ee_joint_state": action[15:16], + } + ) + return result + + def _encode_observation(self, obs: dict) -> dict: + vision = obs["vision"] + adapted = { + "env_idx": self._virtual_env_idx(int(obs.get("env_idx", 0))), + "observation": { + "head_camera": { + "rgb": _standardize_rgb(vision["cam_head"]["color"], resize=False) + }, + "left_camera": { + "rgb": _standardize_rgb(vision["cam_left_wrist"]["color"], resize=False) + }, + "right_camera": { + "rgb": _standardize_rgb(vision["cam_right_wrist"]["color"], resize=False) + }, + }, + "joint_action": {"vector": self._pack_robodojo_ee16_state(obs)}, + } + return adapted + + CLIENT_ID_FIELD = "_vpp2_client_id" + + def _bind_client(self, obs) -> None: + client_id = obs.get(self.CLIENT_ID_FIELD) if isinstance(obs, dict) else None + if client_id is None: + self._active_client = None + return + self._seen_client_ids = True + self._active_client = ("client", str(client_id)) + + def _client_key(self): + if getattr(self, "_active_client", None) is not None: + return self._active_client + context = getattr(self, "_request_context", None) or {} + return (context.get("evaluation_id"), context.get("trial_id")) + + def _forget_virtual(self, virtual: int) -> None: + self._last_infer_step.pop(virtual, None) + self._infer_count_by_virtual.pop(virtual, None) + self._ensemble_by_virtual.pop(virtual, None) + self._last_ensemble = None + if self.model is not None and hasattr(self.model, "reset_env"): + self.model.reset_env(virtual) + + def _virtual_env_idx(self, env_idx: int) -> int: + client = self._client_key() + self._client_use_counter += 1 + self._client_last_use[client] = self._client_use_counter + key = (client, int(env_idx)) + virtual = self._virtual_env_ids.get(key) + if virtual is None: + virtual = self._next_virtual_env_id + self._next_virtual_env_id += 1 + self._virtual_env_ids[key] = virtual + self._evict_stale_clients() + return virtual + + def _evict_stale_clients(self) -> None: + clients = {key[0] for key in self._virtual_env_ids} + excess = len(clients) - self._max_retained_clients + if excess <= 0: + return + current = self._client_key() + stale = sorted( + (c for c in clients if c != current), key=lambda c: self._client_last_use.get(c, 0) + )[:excess] + for client in stale: + for key in [k for k in self._virtual_env_ids if k[0] == client]: + self._forget_virtual(self._virtual_env_ids.pop(key)) + self._client_last_use.pop(client, None) + self._last_obs_by_client.pop(client, None) + self._last_instruction_by_client.pop(client, None) + self._last_virtual_by_client.pop(client, None) + + def set_request_context(self, context): + self._request_context = dict(context or {}) + if self.model is not None and hasattr(self.model, "set_request_context"): + self.model.set_request_context(self._request_context) + + def _remember(self, encoded, raw_obs) -> None: + client = self._client_key() + self.last_obs = encoded + self.last_instruction = _get_instruction(raw_obs, self.default_instruction) + self._last_obs_by_client[client] = self.last_obs + self._last_instruction_by_client[client] = self.last_instruction + self._last_virtual_by_client[client] = encoded["env_idx"] + + def update_obs(self, obs): + self._bind_client(obs) + observation_history = obs.get("_vpp2_observation_history") + if observation_history: + step = (self._request_context or {}).get("step") + virtual = self._virtual_env_idx(int(obs.get("env_idx", 0))) + if step is not None: + last = self._last_infer_step.get(virtual) + if last is not None and int(step) <= last: + self.history_guard_duplicates += 1 + print( + f"[VPP2][history-guard] duplicate infer step={step} last={last} client={self._client_key()} total_duplicates={self.history_guard_duplicates}", + flush=True, + ) + current = observation_history[-1] + self._remember(self._encode_observation(current), current) + self._infer_count_by_virtual[virtual] = max( + 0, self._infer_count_by_virtual.get(virtual, 0) - 1 + ) + return + self._last_infer_step[virtual] = int(step) + for history_obs in observation_history: + if not isinstance(history_obs, dict): + continue + encoded = self._encode_observation(history_obs) + self._remember(encoded, history_obs) + if self.model is not None and hasattr(self.model, "observe"): + self.model.observe(encoded) + return + encoded = self._encode_observation(obs) + self._remember(encoded, obs) + if self.model is not None and hasattr(self.model, "observe"): + self.model.observe(encoded) + + def _check_history_alignment(self, virtual: int) -> None: + """Before the k-th inference of an episode exactly replan_steps*k + observations must have been recorded after the anchor (step 0).""" + count = self._infer_count_by_virtual.get(virtual, 0) + self._infer_count_by_virtual[virtual] = count + 1 + model = self.model + if model is None or not getattr(model, "history_condition_frames", 0): + return + recorded = getattr(model, "_history_step_by_env", {}).get(virtual) + expected = int(self.replan_steps) * count + if recorded != expected: + self.history_guard_mismatches += 1 + print( + f"[VPP2][history-guard] MISMATCH inference={count} recorded_obs_step={recorded} expected={expected} client={self._client_key()} total_mismatches={self.history_guard_mismatches}", + flush=True, + ) + + def _infer_actions(self, obs, instruction): + if obs is None: + raise ValueError("No observation is available. Call update_obs() before get_action().") + action_chunk = self.model._infer_action_chunk(obs, instruction) + action_chunk = np.asarray(action_chunk, dtype=np.float32) + if action_chunk.ndim == 1: + action_chunk = action_chunk[None, :] + virtual = int(obs["env_idx"]) + ensemble = self._ensemble_by_virtual.setdefault(virtual, TemporalEnsemble()) + action_chunk = ensemble.apply(action_chunk) + self._last_ensemble = ensemble.last_info + return self._unpack_robodojo_ee16_actions(action_chunk) + + def get_action(self, obs=None): + self._bind_client(obs) + client = self._client_key() + last_obs = self._last_obs_by_client.get(client, self.last_obs) + instruction = self._last_instruction_by_client.get(client, self.last_instruction) + virtual = self._last_virtual_by_client.get(client) + if virtual is not None: + self._check_history_alignment(virtual) + return self._infer_actions(last_obs, instruction) + + def _reset_client_state(self, client) -> None: + for key in [k for k in self._virtual_env_ids if k[0] == client]: + self._forget_virtual(self._virtual_env_ids.pop(key)) + self._last_obs_by_client.pop(client, None) + self._last_instruction_by_client.pop(client, None) + self._last_virtual_by_client.pop(client, None) + + def reset_client(self, obs=None): + """Episode reset for one identified client (upstream per-call protocol).""" + self._bind_client(obs) + client = self._client_key() + self.last_obs = None + self.last_instruction = self.default_instruction + if self.model is not None and hasattr(self.model, "reset_env"): + self._reset_client_state(client) + elif self.model is not None: + self.model.reset() + + def reset(self): + self._active_client = None + self._request_context = {} + self._seen_client_ids = False + self._next_virtual_env_id = 0 + self._client_use_counter = 0 + self.last_obs = None + self.last_instruction = self.default_instruction + for state in (self._virtual_env_ids, self._client_last_use, + self._last_infer_step, self._infer_count_by_virtual, + self._ensemble_by_virtual, self._last_obs_by_client, + self._last_instruction_by_client, self._last_virtual_by_client): + state.clear() + self._last_ensemble = None + self.history_guard_duplicates = 0 + self.history_guard_mismatches = 0 + if self.model is not None: + self.model.reset() + + def update_obs_batch(self, obs_list): + if len(obs_list) != 1: + raise NotImplementedError("CP1000 is qualified for one environment per instance") + self.update_obs(obs_list[0]) + + def get_action_batch(self, env_idx_list=None): + if env_idx_list is not None and len(env_idx_list) != 1: + raise NotImplementedError("CP1000 is qualified for one environment per instance") + return [self.get_action()] diff --git a/inference/policy/bagel_robotics_1/requirements-transport.txt b/inference/policy/bagel_robotics_1/requirements-transport.txt new file mode 100644 index 0000000000000000000000000000000000000000..a81fad56bb51b81de53dbd66e77efc599a2d6d98 --- /dev/null +++ b/inference/policy/bagel_robotics_1/requirements-transport.txt @@ -0,0 +1,5 @@ +opencv-python-headless==4.11.0.86 +websockets==16.1.1 +h5py==3.16.0 +PyYAML==6.0.3 +msgpack==1.2.3 diff --git a/inference/policy/bagel_robotics_1/runtime/LICENSE b/inference/policy/bagel_robotics_1/runtime/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..90124d129334cd5de11aa0fd606182b3ffd442cb --- /dev/null +++ b/inference/policy/bagel_robotics_1/runtime/LICENSE @@ -0,0 +1,24 @@ +MIT License + +Copyright (c) 2026 The FastWAM Authors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +Except for third-party code and files that retain their original license +headers, this repository is released under the MIT License. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/inference/policy/bagel_robotics_1/runtime/THIRD_PARTY_NOTICES.md b/inference/policy/bagel_robotics_1/runtime/THIRD_PARTY_NOTICES.md new file mode 100644 index 0000000000000000000000000000000000000000..89c5a601d8405bd6c0b3f316168a442e00a5b41c --- /dev/null +++ b/inference/policy/bagel_robotics_1/runtime/THIRD_PARTY_NOTICES.md @@ -0,0 +1,8 @@ +# Runtime source notices + +The VPP2/FastWAM-derived source retains the MIT notice in LICENSE. +Wan2.1/DiffSynth-derived components retain Apache-2.0 terms, included in +licenses/Apache-2.0.txt. Source attribution is retained in individual modules +where present. Source hashes and packaging changes accompany the adapter in +source-provenance.json. Model weights and datasets are separate artifacts with +their own upstream terms; this code license does not relicense those artifacts. diff --git a/inference/policy/bagel_robotics_1/runtime/licenses/Apache-2.0.txt b/inference/policy/bagel_robotics_1/runtime/licenses/Apache-2.0.txt new file mode 100644 index 0000000000000000000000000000000000000000..261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64 --- /dev/null +++ b/inference/policy/bagel_robotics_1/runtime/licenses/Apache-2.0.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/inference/policy/bagel_robotics_1/runtime/pyproject.toml b/inference/policy/bagel_robotics_1/runtime/pyproject.toml new file mode 100644 index 0000000000000000000000000000000000000000..562c61ea0b38693486cacec458a729fbe508d1c2 --- /dev/null +++ b/inference/policy/bagel_robotics_1/runtime/pyproject.toml @@ -0,0 +1,20 @@ +[build-system] +requires = ["setuptools>=77", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "bagel-cp1000-inference" +version = "0.1.0" +description = "Isolated inference runtime for Bagel-Robotics-1 recovery checkpoint 1000" +requires-python = ">=3.10" +license = "MIT AND Apache-2.0" +license-files = ["LICENSE", "THIRD_PARTY_NOTICES.md", "licenses/*.txt"] +dependencies = [ + "torch==2.11.0", "torchvision==0.26.0", "numpy==1.26.4", + "transformers==4.49.0", "huggingface-hub==0.36.0", "hydra-core==1.3.2", + "omegaconf==2.3.0", "einops==0.8.1", "Pillow==12.0.0", "rich==14.2.0", + "safetensors==0.5.3", "ftfy==6.3.1", "regex>=2024.11", "sentencepiece>=0.2" +] + +[tool.setuptools.packages.find] +where = ["src"] diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/__init__.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/checkpoint_compat.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/checkpoint_compat.py new file mode 100644 index 0000000000000000000000000000000000000000..a4da5e8c1d0162debd960c9e03ac94c097beaf4d --- /dev/null +++ b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/checkpoint_compat.py @@ -0,0 +1,42 @@ +"""Read historical checkpoints using the isolated inference namespace. + +Legacy identifiers below describe serialized input formats, not current methods. +No legacy package is imported and tensor keys are unchanged. +""" + +ACTION_FORMAT = "vpp2_wan21_action_v1" +_LEGACY_ACTION_FORMATS = {"fastwam_wan21_action_v1"} +_LEGACY_NAMESPACES = ("fastwam.", "robodojo_joint2b.") +_LEGACY_TARGET_PARTS = { + "fastwam": "vpp2", + "FastWAM": "VPP2", + "fastwam_processor": "vpp2_processor", + "FastWAMProcessor": "VPP2Processor", + "create_fastwam_wan21_14b": "create_vpp2_wan21_14b", +} + + +def canonicalize_config(value): + """Convert Hydra targets recursively, preserving paths and other values.""" + if isinstance(value, list): + return [canonicalize_config(item) for item in value] + if not isinstance(value, dict): + return value + result = {key: canonicalize_config(item) for key, item in value.items()} + target = result.get("_target_") + if isinstance(target, str): + for prefix in _LEGACY_NAMESPACES: + if target.startswith(prefix): + target = "vpp2." + target[len(prefix) :] + break + if target.startswith("vpp2."): + target = ".".join(_LEGACY_TARGET_PARTS.get(part, part) for part in target.split(".")) + target = "bagel_cp1000." + target[len("vpp2.") :] + result["_target_"] = target + return result + + +def action_config(payload): + if payload.get("format") not in {ACTION_FORMAT, *_LEGACY_ACTION_FORMATS}: + raise ValueError("Expected an exported VPP2 action checkpoint") + return canonicalize_config(payload["resolved_config"]) diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/data.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/data.py new file mode 100644 index 0000000000000000000000000000000000000000..b49a92a1018f69871953bcb448b5c21fb6ae8870 --- /dev/null +++ b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/data.py @@ -0,0 +1 @@ +DEFAULT_PROMPT = "A video recorded from a robot's point of view executing the following instruction: {task}" diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/__init__.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/__init__.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/processors/__init__.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/processors/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/processors/base_processor.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/processors/base_processor.py new file mode 100644 index 0000000000000000000000000000000000000000..a457628009c319e8b86e4a2c4744759f129d472c --- /dev/null +++ b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/processors/base_processor.py @@ -0,0 +1,270 @@ +from abc import ABC, abstractmethod +from typing import Dict, Any, Optional, List, Literal + +import torch +import numpy as np +from copy import deepcopy +from ..utils.normalizer import LinearNormalizer, NormMode +from bagel_cp1000.utils.pytorch_utils import dict_apply + + +class BaseProcessor(ABC): + def __init__( + self, + # keys + shape_meta: Dict[str, Any], + num_obs_steps: int, + num_output_cameras: int, + action_output_dim: int, + proprio_output_dim: int, + action_state_transforms: Optional[List[Any]], + # action & state normalization + use_stepwise_action_norm: bool, + norm_default_mode: NormMode, + norm_exception_mode: Dict[str, Dict[str, NormMode]], + action_state_merger, + # image transform + train_transforms: Dict[str, List[Any]] | None, + val_transforms: Dict[str, List[Any]] | None, + # instruction transform + drop_high_level_prob: float, + use_zh_instruction: bool, + tokenizer: Any, + ): + self.shape_meta = shape_meta + self.num_obs_steps = num_obs_steps + self.num_output_cameras = num_output_cameras + self.action_output_dim = action_output_dim + self.proprio_output_dim = proprio_output_dim + + self.drop_high_level_prob = drop_high_level_prob + self.use_zh_instruction = use_zh_instruction + + # image + self.train_transforms = train_transforms + self.val_transforms = val_transforms + + self._is_train = None + + self.action_state_transforms = action_state_transforms + self.action_state_merger = action_state_merger + self.action_state_merger.set_shape_meta(self.shape_meta) + + self.use_stepwise_action_norm = use_stepwise_action_norm + self.norm_default_mode = norm_default_mode + self.norm_exception_mode = norm_exception_mode + self._normalizer = None + + self.tokenizer = tokenizer + + @property + def is_train(self): + if self._is_train is None: + raise ValueError("is_train has not been set. Please call train() and eval() first.") + return self._is_train + + @property + def normalizer(self) -> LinearNormalizer: + if self._normalizer is None: + raise ValueError( + "normalizer has not been set. Please call set_normalizer_from_stats() first." + ) + return self._normalizer + + def train(self): + self._is_train = True + return self + + def eval(self): + self._is_train = False + return self + + def set_normalizer_from_stats(self, dataset_stats: Dict[str, Any] = None): + self._normalizer = LinearNormalizer( + use_stepwise_action_norm=self.use_stepwise_action_norm, + shape_meta=self.shape_meta, + default_mode=self.norm_default_mode, + exception_mode=self.norm_exception_mode, + stats=dataset_stats, + ) + + def augment_instruction(self, data: Dict[str, str] | List[str]) -> List[str]: + """ + Args: + data: Dict[str, str] | List[str], lerobot sample in raw mcap + + Returns: + List[str], processed instructions + """ + # if single instruction, convert to list + if "coarse_task" in data: + high_level_instruction = data["coarse_task"] + else: + high_level_instruction = "" + if "task" not in data: + return f"[high] {high_level_instruction}" + + low_level_instruction = data["task"] + # Galaxea lerobot use @ to split Chinese and English instruction + if "@" in low_level_instruction: + zh, eng = low_level_instruction.split("@") + low_level_instruction = zh if self.use_zh_instruction else eng + + if np.random.rand() < self.drop_high_level_prob: + instruction = f"[Low]: {low_level_instruction}" + else: + instruction = f"[High]: {high_level_instruction}, [Low]: {low_level_instruction}" + + return instruction + + def action_state_transform(self, batch): + if "action" in batch: + for meta in self.shape_meta["action"]: + k, meta_shape = meta["key"], meta["raw_shape"] + actual_shape = batch["action"][k].shape[-1] + assert actual_shape == meta_shape, ( + f"Action key {k} actual raw shape {actual_shape} mismatch with meta raw shape {meta_shape}." + ) + + for meta in self.shape_meta["state"]: + k, meta_shape = meta["key"], meta["raw_shape"] + actual_shape = batch["state"][k].shape[-1] + assert actual_shape == meta_shape, ( + f"State key {k} actual raw shape {actual_shape} mismatch with meta raw shape{meta_shape}." + ) + + if self.action_state_transforms is not None: + for trans in self.action_state_transforms: + batch = trans.forward(batch) + + if "action" in batch: + for meta in self.shape_meta["action"]: + k, meta_shape = meta["key"], meta["shape"] + actual_shape = batch["action"][k].shape[-1] + assert actual_shape == meta_shape, ( + f"Action key {k} actual transformed shape {actual_shape} mismatch with meta shape {meta_shape}." + ) + + for meta in self.shape_meta["state"]: + k, meta_shape = meta["key"], meta["shape"] + actual_shape = batch["state"][k].shape[-1] + assert actual_shape == meta_shape, ( + f"State key {k} actual transformed shape {actual_shape} mismatch with meta raw shape {meta_shape}." + ) + + return batch + + def preprocess(self, data: Dict[str, Any]) -> Dict[str, Any]: + """ + Preprocess the data for the policy model. + + Args: + Data: Dict[str, Any], lerobot sample in raw mcap obtained from dataset __getitem__: + - "action": Optional, Dict[str, torch.Tensor] -> [action_horizon, action_dim] + - "state": Dict[str, torch.Tensor] -> [num_obs_steps, state_dim] + - "images": Dict[str, torch.Tensor] -> [num_obs_steps, C, H, W] + - "action_is_pad": Optional, torch.Tensor -> [action_horizon,] + - "state_is_pad": torch.Tensor -> [num_obs_steps,] + - "image_is_pad": torch.Tensor -> [num_obs_steps,] + - "idx": int, sample index + + Returns: + Sample: Dict[str, Any], which can collated: + - "input_ids": torch.Tensor -> [max_image_text_tokens,] + - "attention_mask": torch.Tensor -> [max_image_text_tokens,] + - "pixel_values": torch.Tensor -> [num_input_cameras, C, H, W] + - "image_is_pad": torch.Tensor -> [num_obs_steps,] + - "proprio": torch.Tensor -> [num_obs_steps, proprio_dim] + - "state_is_pad": torch.Tensor -> [num_obs_steps,] + - "action": Optional, torch.Tensor -> [action_horizon, action_dim] + - "action_is_pad": Optional, torch.Tensor -> [action_horizon,] + - "gt_action: Optional, deepcopy of input action for open loop eval, which is left untouched + - "idx": int, sample index + """ + sample = {} + # 1. instruction + sample["instruction"] = self.augment_instruction(data) + sample["image_is_pad"] = data["image_is_pad"] + + # 2. image + processed_images = [] + for meta in self.shape_meta["images"]: + key, shape = meta["key"], meta["shape"] + image = data["images"][key] # [num_obs_steps, C, H, W] + assert image.ndim == 4, ( + f"Expected 4 dimensions (num_obs_steps, C, H, W), got shape {image.shape}" + ) + + # Apply transforms efficiently on the merged batch + transforms = self.train_transforms if self.is_train else self.val_transforms + for trans in transforms[key]: + image = trans(image) + + meta_shape = [self.num_obs_steps] + shape + assert image.shape == meta_shape, ( + f"Expected shape {meta_shape}, got {image.shape} after transforms for key {key}" + ) + + processed_images.append(image) + + pixel_values = torch.cat(processed_images, dim=0) # [num_input_cameras, C, H, W] + if self.num_output_cameras > pixel_values.shape[0]: + out = torch.zeros( + (self.num_output_cameras,) + pixel_values.shape[1:], + device=pixel_values.device, + dtype=pixel_values.dtype, + ) + out[0 : pixel_values.shape[0]] = pixel_values + sample["pixel_values"] = out + else: + sample["pixel_values"] = pixel_values + + # Copy action before transform for open-loop evaluation, + # disabled for training dataset as it may cause collating key problem. + if not self.is_train and "action" in data: + sample["gt_action"] = deepcopy(data["action"]) + + # 3. action & state + data = self.action_state_transform(data) + data = self.normalizer.forward(data) + data = self.action_state_merger.forward(data) + + if "action" in data: + sample["action"] = data["action"] # [action_horizon, action_dim] + sample["action_is_pad"] = data["action_is_pad"] # [action_horizon,] + sample["action_dim_is_pad"] = data["action_dim_is_pad"] # [action_dim,] + assert sample["action"].shape[-1] == self.action_output_dim + + # TODO: rename all "state" into "proprio" + sample["proprio"] = data["state"] # [num_obs_steps, proprio_dim] + sample["proprio_is_pad"] = data["state_is_pad"] # [num_obs_steps,] + sample["proprio_dim_is_pad"] = data["state_dim_is_pad"] # [proprio_dim,] + assert sample["proprio"].shape[-1] == self.proprio_output_dim + + sample["idx"] = data["idx"] + + sample = self.tokenizer(sample) + + return sample + + def postprocess(self, data: Dict[str, Any]) -> Dict[str, Any]: + """ + Postprocess the data for the policy model. + + Args: + data: Dict[str, Any], lerobot sample in raw mcap + + Returns: + data: Dict[str, Any], processed data including unnormalized action + """ + assert "action" in data, "Action is required in postprocess" + data["state"] = data.pop("proprio") + data = self.action_state_merger.backward(data) + data = self.normalizer.backward(data) + if self.action_state_transforms is not None: + for trans in reversed(self.action_state_transforms): + data = trans.backward(data) + + start_obs_step = self.num_obs_steps - 1 + data["action"] = dict_apply(data["action"], lambda x: x[:, start_obs_step:, :]) + return data diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/processors/vpp2_processor.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/processors/vpp2_processor.py new file mode 100644 index 0000000000000000000000000000000000000000..d0479c35ef858f054b0db2b45902132398db47b6 --- /dev/null +++ b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/processors/vpp2_processor.py @@ -0,0 +1,324 @@ +from abc import ABC, abstractmethod +from typing import Dict, Any, Optional, List, Literal + +import torch +import numpy as np +from copy import deepcopy +from ..utils.normalizer import LinearNormalizer, NormMode +from bagel_cp1000.utils.pytorch_utils import dict_apply +from bagel_cp1000.utils.logging_config import get_logger +from .base_processor import BaseProcessor + +logger = get_logger(__name__) + + +class VPP2Processor(BaseProcessor): + def __init__( + self, + # keys + shape_meta: Dict[str, Any], + num_obs_steps: int, + num_output_cameras: int, + action_output_dim: int, + proprio_output_dim: int, + action_state_transforms: Optional[List[Any]], + # action & state normalization + use_stepwise_action_norm: bool, + norm_default_mode: NormMode, + norm_exception_mode: Dict[str, Dict[str, NormMode]], + action_state_merger, + # image transform + train_transforms: Dict[str, List[Any]] | None, + val_transforms: Dict[str, List[Any]] | None, + # instruction transform + drop_high_level_prob: float = 1.0, + use_zh_instruction: bool = False, + tokenizer: Optional[Any] = None, + delta_action_dim_mask: Optional[Dict[str, List[bool]]] = None, + num_image_obs_steps: Optional[int] = None, + ): + self.shape_meta = shape_meta + self.num_obs_steps = num_obs_steps + self.num_image_obs_steps = ( + num_obs_steps if num_image_obs_steps is None else num_image_obs_steps + ) + if self.num_image_obs_steps <= 0: + raise ValueError( + f"`num_image_obs_steps` must be positive, got {self.num_image_obs_steps}" + ) + self.num_output_cameras = num_output_cameras + self.action_output_dim = action_output_dim + self.proprio_output_dim = proprio_output_dim + + self.drop_high_level_prob = drop_high_level_prob + self.use_zh_instruction = use_zh_instruction + + # image + self.train_transforms = train_transforms + self.val_transforms = val_transforms + + self._is_train = None + + self.action_state_transforms = action_state_transforms + self.action_state_merger = action_state_merger + self.action_state_merger.set_shape_meta(self.shape_meta) + + self.use_stepwise_action_norm = use_stepwise_action_norm + self.norm_default_mode = norm_default_mode + self.norm_exception_mode = norm_exception_mode + self._normalizer = None + + self.tokenizer = tokenizer + if delta_action_dim_mask is None: + self.delta_action_dim_mask = None + else: + action_meta = self.shape_meta["action"] + expected_keys = [m["key"] for m in action_meta] + provided_keys = list(delta_action_dim_mask.keys()) + if set(provided_keys) != set(expected_keys): + raise ValueError( + f"`delta_action_dim_mask` keys mismatch. Expected {expected_keys}, got {provided_keys}." + ) + + self.delta_action_dim_mask = {} + for meta in action_meta: + key = meta["key"] + expected_dim = meta["shape"] + mask = delta_action_dim_mask[key] + if len(mask) != expected_dim: + raise ValueError( + f"`delta_action_dim_mask[{key}]` length must be {expected_dim}, got {len(mask)}." + ) + self.delta_action_dim_mask[key] = torch.as_tensor(mask, dtype=torch.bool) + + @property + def is_train(self): + if self._is_train is None: + raise ValueError("is_train has not been set. Please call train() and eval() first.") + return self._is_train + + @property + def normalizer(self) -> LinearNormalizer: + if self._normalizer is None: + raise ValueError( + "normalizer has not been set. Please call set_normalizer_from_stats() first." + ) + return self._normalizer + + def train(self): + self._is_train = True + return self + + def eval(self): + self._is_train = False + return self + + def set_normalizer_from_stats(self, dataset_stats: Dict[str, Any] = None): + self._normalizer = LinearNormalizer( + use_stepwise_action_norm=self.use_stepwise_action_norm, + shape_meta=self.shape_meta, + default_mode=self.norm_default_mode, + exception_mode=self.norm_exception_mode, + stats=dataset_stats, + ) + + def augment_instruction(self, data: Dict[str, str] | List[str]) -> List[str]: + """ + Args: + data: Dict[str, str] | List[str], lerobot sample in raw mcap + + Returns: + List[str], processed instructions + """ + # if single instruction, convert to list + if "coarse_task" in data: + high_level_instruction = data["coarse_task"] + else: + high_level_instruction = "" + if "task" not in data: + return f"[high] {high_level_instruction}" + + low_level_instruction = data["task"] + # Galaxea lerobot use @ to split Chinese and English instruction + if "@" in low_level_instruction: + zh, eng = low_level_instruction.split("@") + low_level_instruction = zh if self.use_zh_instruction else eng + + if np.random.rand() < self.drop_high_level_prob: + instruction = f"{low_level_instruction}" + else: + instruction = f"[High]: {high_level_instruction}, [Low]: {low_level_instruction}" + + return instruction + + def action_state_transform(self, batch): + if "action" in batch: + for meta in self.shape_meta["action"]: + k, meta_shape = meta["key"], meta["raw_shape"] + actual_shape = batch["action"][k].shape[-1] + assert actual_shape == meta_shape, ( + f"Action key {k} actual raw shape {actual_shape} mismatch with meta raw shape {meta_shape}." + ) + + for meta in self.shape_meta["state"]: + k, meta_shape = meta["key"], meta["raw_shape"] + actual_shape = batch["state"][k].shape[-1] + assert actual_shape == meta_shape, ( + f"State key {k} actual raw shape {actual_shape} mismatch with meta raw shape {meta_shape}." + ) + + if self.action_state_transforms is not None: + for trans in self.action_state_transforms: + batch = trans.forward(batch) + + if "action" in batch: + for meta in self.shape_meta["action"]: + k, meta_shape = meta["key"], meta["shape"] + actual_shape = batch["action"][k].shape[-1] + assert actual_shape == meta_shape, ( + f"Action key {k} actual transformed shape {actual_shape} mismatch with meta shape {meta_shape}." + ) + + for meta in self.shape_meta["state"]: + k, meta_shape = meta["key"], meta["shape"] + actual_shape = batch["state"][k].shape[-1] + assert actual_shape == meta_shape, ( + f"State key {k} actual transformed shape {actual_shape} mismatch with meta raw shape {meta_shape}." + ) + + return batch + + def preprocess(self, data: Dict[str, Any]) -> Dict[str, Any]: + """ + Preprocess the data for the policy model. + + Args: + Data: Dict[str, Any], lerobot sample in raw mcap obtained from dataset __getitem__: + - "action": Optional, Dict[str, torch.Tensor] -> [action_horizon, action_dim] + - "state": Dict[str, torch.Tensor] -> [num_obs_steps, state_dim] + - "images": Dict[str, torch.Tensor] -> [num_obs_steps, C, H, W] + - "action_is_pad": Optional, torch.Tensor -> [action_horizon,] + - "state_is_pad": torch.Tensor -> [num_obs_steps,] + - "image_is_pad": torch.Tensor -> [num_obs_steps,] + - "idx": int, sample index + + Returns: + Sample: Dict[str, Any], which can collated: + - "input_ids": torch.Tensor -> [max_image_text_tokens,] + - "attention_mask": torch.Tensor -> [max_image_text_tokens,] + - "pixel_values": torch.Tensor -> [num_input_cameras, C, H, W] + - "image_is_pad": torch.Tensor -> [num_obs_steps,] + - "proprio": torch.Tensor -> [num_obs_steps, proprio_dim] + - "state_is_pad": torch.Tensor -> [num_obs_steps,] + - "action": Optional, torch.Tensor -> [action_horizon, action_dim] + - "action_is_pad": Optional, torch.Tensor -> [action_horizon,] + - "gt_action: Optional, deepcopy of input action for open loop eval, which is left untouched + - "idx": int, sample index + """ + sample = {} + # 1. instruction + sample["instruction"] = self.augment_instruction(data) + sample["image_is_pad"] = data["image_is_pad"] + + # 2. image + processed_images = [] + for meta in self.shape_meta["images"]: + key, shape = meta["key"], meta["shape"] + image = data["images"][key] # [num_obs_steps, C, H, W] + assert image.ndim == 4, ( + f"Expected 4 dimensions (num_obs_steps, C, H, W), got shape {image.shape}" + ) + + # Apply transforms efficiently on the merged batch + transforms = self.train_transforms if self.is_train else self.val_transforms + current_transforms = transforms[key] if isinstance(transforms, dict) else transforms + for trans in current_transforms: + image = trans(image) + + meta_shape = [self.num_image_obs_steps] + shape + assert image.shape == meta_shape, ( + f"Expected shape {meta_shape}, got {image.shape} after transforms for key {key}" + ) + + processed_images.append(image) + pixel_values = torch.stack(processed_images, dim=0) # [num_input_cameras, T, C, H, W] + + if self.num_output_cameras > pixel_values.shape[0]: + out = torch.zeros( + (self.num_output_cameras,) + pixel_values.shape[1:], + device=pixel_values.device, + dtype=pixel_values.dtype, + ) + out[0 : pixel_values.shape[0]] = pixel_values + sample["pixel_values"] = out + elif self.num_output_cameras < pixel_values.shape[0]: + logger.warning( + f"num_output_cameras {self.num_output_cameras} is less than the number of cameras in data {pixel_values.shape[0]}, " + f"truncating the input to the first {self.num_output_cameras} cameras." + ) + sample["pixel_values"] = pixel_values[: self.num_output_cameras] + else: + sample["pixel_values"] = pixel_values + + # Copy action before transform for open-loop evaluation, + # disabled for training dataset as it may cause collating key problem. + if not self.is_train and "action" in data: + sample["gt_action"] = deepcopy(data["action"]) + + # 3. action & state. Convert absolute labels to their configured + # representation before zeroing padded delta dimensions. Doing this + # in the opposite order would turn a padded zero into ``-state`` for + # an absolute-to-delta transform. + data = self.action_state_transform(data) + if "action" in data and self.delta_action_dim_mask is not None: + action_is_pad = torch.as_tensor(data["action_is_pad"], dtype=torch.bool) + if bool(action_is_pad.any().item()): + for key, dim_mask in self.delta_action_dim_mask.items(): + cur_action = data["action"][key] + cur_action_is_pad = action_is_pad.to(device=cur_action.device) + cur_dim_mask = dim_mask.to(device=cur_action.device) + pad_delta_mask = cur_action_is_pad.unsqueeze(1) & cur_dim_mask.unsqueeze(0) + cur_action[pad_delta_mask] = 0.0 + data = self.normalizer.forward(data) + data = self.action_state_merger.forward(data) + + if "action" in data: + sample["action"] = data["action"] # [action_horizon, action_dim] + sample["action_is_pad"] = data["action_is_pad"] # [action_horizon,] + sample["action_dim_is_pad"] = data["action_dim_is_pad"] # [action_dim,] + assert sample["action"].shape[-1] == self.action_output_dim + # sample["action"][sample["action_is_pad"], :-1] = 0.0 # NOTE: we assume use delta_eef_pose + gripper, so pad action is 0 + + # TODO: rename all "state" into "proprio" + sample["proprio"] = data["state"] # [num_obs_steps, proprio_dim] + sample["proprio_is_pad"] = data["state_is_pad"] # [num_obs_steps,] + sample["proprio_dim_is_pad"] = data["state_dim_is_pad"] # [proprio_dim,] + assert sample["proprio"].shape[-1] == self.proprio_output_dim + + sample["idx"] = data["idx"] + + # sample = self.tokenizer(sample) + + return sample + + def postprocess(self, data: Dict[str, Any]) -> Dict[str, Any]: + """ + Postprocess the data for the policy model. + + Args: + data: Dict[str, Any], lerobot sample in raw mcap + + Returns: + data: Dict[str, Any], processed data including unnormalized action + """ + assert "action" in data, "Action is required in postprocess" + data["state"] = data.pop("proprio") + data = self.action_state_merger.backward(data) + data = self.normalizer.backward(data) + if self.action_state_transforms is not None: + for trans in reversed(self.action_state_transforms): + data = trans.backward(data) + + start_obs_step = self.num_obs_steps - 1 + data["action"] = dict_apply(data["action"], lambda x: x[:, start_obs_step:, :]) + return data diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/transforms/__init__.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/transforms/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/transforms/action_state_merger.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/transforms/action_state_merger.py new file mode 100644 index 0000000000000000000000000000000000000000..f1b259785b0eb7151109fb087ea6489a9b40e9af --- /dev/null +++ b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/transforms/action_state_merger.py @@ -0,0 +1,76 @@ +from typing import Dict + +import torch +from torch.nn.functional import pad + + +class ConcatLeftAlign: + def __init__(self, action_target_dim: int | None = None, state_target_dim: int | None = None): + self.action_target_dim = action_target_dim + self.state_target_dim = state_target_dim + + def set_shape_meta(self, shape_meta): + self.action_meta = shape_meta["action"] + self.state_meta = shape_meta["state"] + + def forward(self, batch): + if "action" in batch: + batch["action"] = self._concat(batch["action"], self.action_meta) + batch["action"], batch["action_dim_is_pad"] = self._pad( + batch["action"], self.action_target_dim + ) + + batch["state"] = self._concat(batch["state"], self.state_meta) + batch["state"], batch["state_dim_is_pad"] = self._pad(batch["state"], self.state_target_dim) + + return batch + + def backward(self, batch): + if self.state_target_dim is not None: + assert batch["state"].shape[-1] == self.state_target_dim + batch["state"] = self._crop(batch["state"], self.state_meta) + batch["state"] = self._split(batch["state"], self.state_meta) + + if self.action_target_dim is not None: + assert batch["action"].shape[-1] == self.action_target_dim + batch["action"] = self._crop(batch["action"], self.action_meta) + batch["action"] = self._split(batch["action"], self.action_meta) + + return batch + + @staticmethod + def _pad(x: torch.Tensor, dim: int): + if dim is None: + dim = x.shape[-1] + + assert x.ndim == 2 and x.shape[-1] <= dim + pad_dim = dim - x.shape[-1] + x_padded = pad(x, (0, pad_dim)) + mask = torch.zeros_like(x[0]).bool() + mask = pad(mask, (0, pad_dim), value=True) + return x_padded, mask + + @staticmethod + def _crop(x: torch.Tensor, meta: int): + assert x.ndim == 3 + dim = sum([m["shape"] for m in meta]) + x = x[:, :, :dim] + return x + + @staticmethod + def _concat(x: Dict[str, torch.Tensor], meta: Dict[str, Dict]): + x = torch.cat([x[m["key"]] for m in meta], dim=-1) + assert x.ndim == 2 + return x + + @staticmethod + def _split(x: torch.Tensor, meta: Dict[str, Dict]): + assert x.ndim == 3 + y = {} + idx = 0 + for m in meta: + key, dim = m["key"], m["shape"] + y[key] = x[:, :, idx : idx + dim] + idx += dim + + return y diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/transforms/image.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/transforms/image.py new file mode 100644 index 0000000000000000000000000000000000000000..7ea98e3fe0b396ea734ea5eb302ef68c4dc9b14f --- /dev/null +++ b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/transforms/image.py @@ -0,0 +1,68 @@ +import torch +import torch.nn as nn +import torchvision.transforms as TF +import torchvision.transforms.functional as TF_F + + +class ToTensor(nn.Module): + def __init__(self): + super().__init__() + + def forward(self, x: torch.Tensor): + assert x.dtype == torch.uint8 + x = x.to(torch.float32) / 255.0 + return x + + +class Pad(nn.Module): + def __init__(self, padding, fill=0, padding_mode="constant"): + super().__init__() + self.padding = padding + self.fill = fill + self.padding_mode = padding_mode + self.pad = TF.Pad(padding=tuple(padding), fill=fill, padding_mode=padding_mode) + + def forward(self, x: torch.Tensor): + assert x.ndim == 4, "Can only pad tensor of 4 dims." + return self.pad(x) + + +class CenterCropAspectResize(nn.Module): + """Center-crop a video tensor to an aspect ratio, then resize it. + + The LeRobot loader supplies ``[T,C,H,W]`` tensors. RoboColiseum's head + and wrist cameras have different native geometries, so a direct resize + would make training and benchmark inference disagree geometrically. This + transform establishes a common 4:3 camera contract before the views are + composed into the model's T-shaped canvas. + """ + + def __init__(self, size, aspect_ratio: float = 4.0 / 3.0): + super().__init__() + if len(size) != 2 or int(size[0]) <= 0 or int(size[1]) <= 0: + raise ValueError(f"size must be [height,width], got {size!r}") + if float(aspect_ratio) <= 0: + raise ValueError(f"aspect_ratio must be positive, got {aspect_ratio!r}") + self.size = [int(size[0]), int(size[1])] + self.aspect_ratio = float(aspect_ratio) + + def forward(self, x: torch.Tensor): + if x.ndim != 4: + raise ValueError(f"CenterCropAspectResize expects [T,C,H,W], got {tuple(x.shape)}") + height, width = (int(value) for value in x.shape[-2:]) + current_ratio = width / height + if current_ratio > self.aspect_ratio: + crop_height = height + crop_width = max(1, int(round(height * self.aspect_ratio))) + else: + crop_width = width + crop_height = max(1, int(round(width / self.aspect_ratio))) + top = (height - crop_height) // 2 + left = (width - crop_width) // 2 + x = TF_F.crop(x, top, left, crop_height, crop_width) + return TF_F.resize( + x, + size=self.size, + interpolation=TF_F.InterpolationMode.BILINEAR, + antialias=True, + ) diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/utils/__init__.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/utils/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/utils/normalizer.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/utils/normalizer.py new file mode 100644 index 0000000000000000000000000000000000000000..f979a7fa2305007e4538bc51454a0360bafe3c39 --- /dev/null +++ b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/datasets/lerobot/utils/normalizer.py @@ -0,0 +1,221 @@ +from typing import Literal, Dict, Annotated, Union, Any, List, Tuple, Optional +import torch +import json +from collections import defaultdict +import numpy as np +from omegaconf import DictConfig, OmegaConf +from pathlib import Path +from bagel_cp1000.utils.logging_config import get_logger + +from bagel_cp1000.utils.pytorch_utils import dict_apply + +logger = get_logger(__name__) + +ConstConstStr = Annotated[ + str, "format: 'const_min/const_max', where const_min and const_max give the constant range" +] +NormMode = Union[Literal["min/max", "q01/q99", "z-score"], ConstConstStr] + + +class LinearNormalizer: + def __init__( + self, + shape_meta, + use_stepwise_action_norm, + default_mode: NormMode, + exception_mode: Dict[str, Dict[str, NormMode]], + stats: Dict[str, Dict[str, Dict[str, torch.Tensor]]], + ): + super().__init__() + self.normalizers = {"action": {}, "state": {}} + self.stats = stats + + for meta in shape_meta["action"]: + key = meta["key"] + + if use_stepwise_action_norm: + cur_stats = { + k.removeprefix("stepwise_"): v + for k, v in stats["action"][key].items() + if k.startswith("stepwise_") + } + else: + cur_stats = { + k.removeprefix("global_"): v + for k, v in stats["action"][key].items() + if k.startswith("global_") + } + + if ( + exception_mode is not None + and "action" in exception_mode + and key in exception_mode["action"] + ): + cur_mode = exception_mode["action"][key] + else: + cur_mode = default_mode + + self.normalizers["action"][key] = SingleFieldLinearNormalizer( + stats=cur_stats, + mode=cur_mode, + ) + + for meta in shape_meta["state"]: + key = meta["key"] + cur_stats = { + k.removeprefix("global_"): v + for k, v in stats["state"][key].items() + if k.startswith("global_") + } + + if ( + exception_mode is not None + and "state" in exception_mode + and key in exception_mode["state"] + ): + cur_mode = exception_mode["state"][key] + else: + cur_mode = default_mode + + self.normalizers["state"][key] = SingleFieldLinearNormalizer( + stats=cur_stats, + mode=cur_mode, + ) + + def get_stats(self): + stats = { + "action": {key: norm.get_stats() for key, norm in self.normalizers["action"].items()}, + "state": {key: norm.get_stats() for key, norm in self.normalizers["state"].items()}, + } + return stats + + def forward(self, batch: Dict[str, Dict[str, torch.Tensor]]) -> torch.Tensor: + if "action" in batch: + for key, norm in self.normalizers["action"].items(): + batch["action"][key] = norm.forward(batch["action"][key]) + + for key, norm in self.normalizers["state"].items(): + batch["state"][key] = norm.forward(batch["state"][key]) + + return batch + + def backward(self, batch: Dict[str, Dict[str, torch.Tensor]]) -> torch.Tensor: + for key, norm in self.normalizers["action"].items(): + batch["action"][key] = norm.backward(batch["action"][key]) + + for key, norm in self.normalizers["state"].items(): + batch["state"][key] = norm.backward(batch["state"][key]) + + return batch + + +class SingleFieldLinearNormalizer: + std_reg = 1e-8 + range_tol = 1e-4 + output_max = 1.0 + output_min = -1.0 + + def __init__(self, stats, mode: NormMode = "min/max"): + self.stats = stats + self.mode = mode + + if mode == "z-score": + input_mean, input_std = stats["mean"], stats["std"] + scale = 1.0 / (input_std + self.std_reg) + offset = -input_mean / (input_std + self.std_reg) + else: + if mode == "min/max": + input_min, input_max = stats["min"], stats["max"] + elif mode == "q01/q99": + input_min, input_max = stats["q01"], stats["q99"] + else: + # parse const_min/const_max + input_min, input_max = map(float, mode.split("/")) + input_min = torch.full_like(stats["min"], input_min) + input_max = torch.full_like(stats["max"], input_max) + + input_range = input_max - input_min + ignore_dim = input_range < self.range_tol + input_range[ignore_dim] = self.output_max - self.output_min + scale = (self.output_max - self.output_min) / input_range + offset = self.output_min - scale * input_min + offset[ignore_dim] = (self.output_max + self.output_min) / 2 - input_min[ignore_dim] + + self.scale = scale + self.offset = offset + + def get_stats(self): + return self.stats + + def forward(self, x: torch.Tensor) -> torch.Tensor: + x = x * self.scale + self.offset + x = torch.clamp(x, -5.0, 5.0) + return x + + def backward(self, x: torch.Tensor) -> torch.Tensor: + x = (x - self.offset) / self.scale + return x + + +def save_dataset_stats_to_json(dataset_stats: dict, file_path: str): + + def convert_tensor(obj): + if isinstance(obj, torch.Tensor): + return obj.detach().cpu().numpy().tolist() + elif isinstance(obj, (defaultdict, dict)): + return {k: convert_tensor(v) for k, v in dict(obj).items()} + elif isinstance(obj, (list, tuple)): + return [convert_tensor(item) for item in obj] + elif isinstance(obj, (int, float, str, bool, type(None))): + return obj + else: + return str(obj) + + serializable_stats = convert_tensor(dataset_stats) + + with open(file_path, "w", encoding="utf-8") as f: + json.dump(serializable_stats, f, ensure_ascii=False, indent=2) + + +def load_dataset_stats_from_json(file_path: str, try_convert_tensor: bool = True) -> Dict[str, Any]: + + def is_numeric_list(obj): + if isinstance(obj, list): + if not obj: + return True + first = obj[0] + if isinstance(first, (int, float)): + return all(isinstance(x, (int, float)) for x in obj) + elif isinstance(first, list): + return all(is_numeric_list(item) for item in obj) + else: + return False + return False + + def convert_back_to_tensor(obj): + if isinstance(obj, dict): + return {k: convert_back_to_tensor(v) for k, v in obj.items()} + elif isinstance(obj, list): + if is_numeric_list(obj): + try: + arr = np.array(obj) + return torch.from_numpy(arr) + except Exception: + return [convert_back_to_tensor(item) for item in obj] + else: + return [convert_back_to_tensor(item) for item in obj] + else: + return obj + + with open(file_path, "r", encoding="utf-8") as f: + data = json.load(f) + + if try_convert_tensor: + data = convert_back_to_tensor(data) + + data = dict_apply( + data, + lambda x: x.to(torch.float32) if isinstance(x, torch.Tensor) else x, + ) + + return data diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/__init__.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/__init__.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/action_dit.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/action_dit.py new file mode 100644 index 0000000000000000000000000000000000000000..a75f31c59bc88dcfb013c18d769c15f9a53fb7a7 --- /dev/null +++ b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/action_dit.py @@ -0,0 +1,458 @@ +import os +import torch +import torch.nn as nn +from typing import Any, Dict, Optional + +from bagel_cp1000.utils.logging_config import get_logger + +from .helpers.gradient import gradient_checkpoint_forward +from .wan_video_dit import ( + DiTBlock, + WanRMSNorm, + rope_apply, + sinusoidal_embedding_1d, + precompute_freqs_cis, +) + +logger = get_logger(__name__) + + +class ActionHead(nn.Module): + def __init__(self, hidden_dim: int, out_dim: int, eps: float): + super().__init__() + self.norm = nn.LayerNorm(hidden_dim, eps=eps, elementwise_affine=False) + self.proj = nn.Linear(hidden_dim, out_dim) + self.modulation = nn.Parameter(torch.randn(1, 2, hidden_dim) / hidden_dim**0.5) + + def forward(self, x: torch.Tensor, t: torch.Tensor) -> torch.Tensor: + shift, scale = (self.modulation.to(dtype=t.dtype, device=t.device) + t.unsqueeze(1)).chunk( + 2, dim=1 + ) + shift = shift.squeeze(1) + scale = scale.squeeze(1) + return self.proj(self.norm(x) * (1 + scale.unsqueeze(1)) + shift.unsqueeze(1)) + + +class ActionDiT(nn.Module): + ACTION_BACKBONE_SKIP_PREFIXES = ( + "action_encoder.", + "head.", + "video_kv_projections.", + "video_k_norms.", + "video_token_encoder.", + ) + ACTION_BACKBONE_META_KEYS = ( + "hidden_dim", + "ffn_dim", + "num_layers", + "num_heads", + "attn_head_dim", + "text_dim", + "freq_dim", + "eps", + ) + + def __init__( + self, + hidden_dim: int, + action_dim: int, + ffn_dim: int, + text_dim: int, + freq_dim: int, + eps: float, + num_heads: int, + attn_head_dim: int, + num_layers: int, + use_gradient_checkpointing: bool = False, + use_video_tokens: bool = False, + video_token_dim: Optional[int] = None, + video_token_latent_dim: int = 2560, + ): + super().__init__() + self.hidden_dim = hidden_dim + self.action_dim = action_dim + self.ffn_dim = ffn_dim + self.text_dim = text_dim + self.freq_dim = freq_dim + self.num_heads = num_heads + self.attn_head_dim = attn_head_dim + self.attn_hidden_dim = num_heads * attn_head_dim + self.use_video_tokens = bool(use_video_tokens) + self.video_token_dim = None if video_token_dim is None else int(video_token_dim) + self.video_token_latent_dim = int(video_token_latent_dim) + + if num_heads <= 0: + raise ValueError(f"`num_heads` must be > 0, got {num_heads}") + if attn_head_dim <= 0: + raise ValueError(f"`attn_head_dim` must be > 0, got {attn_head_dim}") + if attn_head_dim % 2 != 0: + raise ValueError(f"`attn_head_dim` must be even for RoPE, got {attn_head_dim}") + if self.use_video_tokens and (self.video_token_dim is None or self.video_token_dim <= 0): + raise ValueError( + "`use_video_tokens=true` requires a positive `video_token_dim`, " + f"got {video_token_dim}." + ) + if self.use_video_tokens and self.video_token_latent_dim <= 0: + raise ValueError( + f"`video_token_latent_dim` must be positive, got {self.video_token_latent_dim}." + ) + + self.action_encoder = nn.Linear(action_dim, hidden_dim) + self.text_embedding = nn.Sequential( + nn.Linear(text_dim, hidden_dim), + nn.GELU(approximate="tanh"), + nn.Linear(hidden_dim, hidden_dim), + ) + self.time_embedding = nn.Sequential( + nn.Linear(freq_dim, hidden_dim), + nn.SiLU(), + nn.Linear(hidden_dim, hidden_dim), + ) + self.time_projection = nn.Sequential(nn.SiLU(), nn.Linear(hidden_dim, hidden_dim * 6)) + self.blocks = nn.ModuleList( + [ + DiTBlock( + hidden_dim=hidden_dim, + attn_head_dim=attn_head_dim, + num_heads=num_heads, + ffn_dim=ffn_dim, + eps=eps, + ) + for _ in range(num_layers) + ] + ) + self.video_kv_projections = nn.ModuleList() + self.video_k_norms = nn.ModuleList() + self.video_token_encoder: Optional[nn.Linear] = None + if self.use_video_tokens: + self.video_token_encoder = nn.Linear( + self.video_token_dim, + self.video_token_latent_dim, + ) + self.video_kv_projections.extend( + nn.ModuleDict( + { + "k": nn.Linear( + self.video_token_latent_dim, + self.attn_hidden_dim, + ), + "v": nn.Linear( + self.video_token_latent_dim, + self.attn_hidden_dim, + ), + } + ) + for _ in range(num_layers) + ) + self.video_k_norms.extend( + WanRMSNorm(self.attn_hidden_dim, eps=eps) for _ in range(num_layers) + ) + self.head = nn.Linear(hidden_dim, action_dim) + self.freqs = precompute_freqs_cis(attn_head_dim, end=1024) + + self.use_gradient_checkpointing = use_gradient_checkpointing + + def encode_video_tokens(self, video_tokens: torch.Tensor) -> torch.Tensor: + """Compress frozen Wan video features before action-owned K/V projections.""" + if self.video_token_encoder is None: + raise RuntimeError("Video-token encoding is disabled for this ActionDiT.") + if video_tokens.ndim != 3 or video_tokens.shape[-1] != self.video_token_dim: + raise ValueError( + "`video_tokens` must have shape [B,Sv,video_token_dim], got " + f"{tuple(video_tokens.shape)} with video_token_dim={self.video_token_dim}." + ) + return self.video_token_encoder(video_tokens) + + def project_video_tokens( + self, + layer_idx: int, + video_tokens: torch.Tensor, + video_freqs: torch.Tensor, + ) -> tuple[torch.Tensor, torch.Tensor]: + """Build one action layer's K/V from the shared compressed video tokens.""" + if not self.use_video_tokens: + raise RuntimeError("Video-token K/V projection is disabled for this ActionDiT.") + if video_tokens.ndim != 3: + raise ValueError(f"`video_tokens` must be [B,Sv,Dv], got {tuple(video_tokens.shape)}.") + if video_tokens.shape[-1] != self.video_token_latent_dim: + raise ValueError( + "Encoded video token dim must be " + f"{self.video_token_latent_dim}, got {video_tokens.shape[-1]}." + ) + if not 0 <= int(layer_idx) < len(self.video_kv_projections): + raise ValueError( + f"Action layer index must be in [0, {len(self.video_kv_projections) - 1}], " + f"got {layer_idx}." + ) + + layer_idx = int(layer_idx) + projection = self.video_kv_projections[layer_idx] + k = projection["k"](video_tokens) + k = self.video_k_norms[layer_idx](k) + k = rope_apply(k, video_freqs, self.num_heads) + v = projection["v"](video_tokens) + return k, v + + @classmethod + def backbone_key_set(cls, keys) -> set[str]: + return { + key + for key in keys + if not any(key.startswith(prefix) for prefix in cls.ACTION_BACKBONE_SKIP_PREFIXES) + } + + @classmethod + def from_pretrained( + cls, + action_dit_config: dict[str, Any], + action_dit_pretrained_path: str | None = None, + skip_dit_load_from_pretrain: bool = False, + device: str = "cuda", + torch_dtype: torch.dtype = torch.bfloat16, + ) -> "ActionDiT": + if action_dit_config is None: + raise ValueError("`action_dit_config` is required for ActionDiT.from_pretrained().") + if skip_dit_load_from_pretrain: + logger.info( + "Skipping ActionDiT pretrained load (`skip_dit_load_from_pretrain=True`); " + "initializing action expert randomly and expecting checkpoint override." + ) + return cls(**action_dit_config).to(device=device, dtype=torch_dtype) + if not action_dit_pretrained_path: + logger.info( + "No `action_dit_pretrained_path` provided, initializing ActionDiT with random weights." + ) + return cls(**action_dit_config).to(device=device, dtype=torch_dtype) + from pathlib import Path + + p = Path(action_dit_pretrained_path) + if not p.is_absolute(): + p = Path(__file__).resolve().parents[4] / p + action_dit_pretrained_path = str(p) + if not os.path.isfile(action_dit_pretrained_path): + raise FileNotFoundError( + f"`action_dit_pretrained_path` does not exist: {action_dit_pretrained_path}" + ) + + action_cfg = dict(action_dit_config) + action_expert = cls(**action_cfg).to(device=device, dtype=torch_dtype) + action_state = action_expert.state_dict() + expected_backbone_keys = cls.backbone_key_set(action_state.keys()) + + payload = torch.load(action_dit_pretrained_path, map_location="cpu") + if not isinstance(payload, dict): + raise ValueError( + f"Invalid action backbone payload type from {action_dit_pretrained_path}: {type(payload)}" + ) + + policy = payload.get("policy", {}) + if policy: + logger.info(f"ActionDiT backbone payload policy: {policy}") + + meta = payload.get("meta") + expected_meta = { + "hidden_dim": int(action_cfg["hidden_dim"]), + "ffn_dim": int(action_cfg["ffn_dim"]), + "num_layers": int(action_cfg["num_layers"]), + "num_heads": int(action_cfg["num_heads"]), + "attn_head_dim": int(action_cfg["attn_head_dim"]), + "text_dim": int(action_cfg["text_dim"]), + "freq_dim": int(action_cfg["freq_dim"]), + "eps": float(action_cfg["eps"]), + } + for key in cls.ACTION_BACKBONE_META_KEYS: + if key not in meta: + raise ValueError(f"`meta.{key}` missing in {action_dit_pretrained_path}") + expected_value = expected_meta[key] + got_value = meta[key] + if key == "eps": + if abs(float(got_value) - float(expected_value)) > 1e-12: + raise ValueError( + f"`meta.{key}` mismatch in {action_dit_pretrained_path}: " + f"expected {expected_value}, got {got_value}" + ) + elif int(got_value) != int(expected_value): + if key == "num_heads" and bool(action_cfg.get("use_video_tokens", False)): + logger.warning( + "Action backbone num_heads changed from %s to %s for video-token mode; " + "shape-incompatible attention tensors will remain randomly initialized.", + got_value, + expected_value, + ) + continue + raise ValueError( + f"`meta.{key}` mismatch in {action_dit_pretrained_path}: " + f"expected {expected_value}, got {got_value}" + ) + + backbone_state_dict = payload.get("backbone_state_dict") + if not isinstance(backbone_state_dict, dict): + raise ValueError( + f"`backbone_state_dict` must be a dict in {action_dit_pretrained_path}, " + f"got {type(backbone_state_dict)}" + ) + + provided_keys = set(backbone_state_dict.keys()) + missing_keys = sorted(expected_backbone_keys - provided_keys) + unexpected_keys = sorted(provided_keys - expected_backbone_keys) + if missing_keys or unexpected_keys: + raise ValueError( + "Action backbone key mismatch in preprocessed payload. " + f"missing={missing_keys[:10]}{'...' if len(missing_keys) > 10 else ''}, " + f"unexpected={unexpected_keys[:10]}{'...' if len(unexpected_keys) > 10 else ''}" + ) + + merged_state = dict(action_state) + skipped_shape_keys: list[str] = [] + for key in expected_backbone_keys: + value = backbone_state_dict[key] + if not isinstance(value, torch.Tensor): + raise ValueError( + f"`backbone_state_dict[{key}]` must be torch.Tensor in {action_dit_pretrained_path}, " + f"got {type(value)}" + ) + target = merged_state[key] + if tuple(value.shape) != tuple(target.shape): + if bool(action_cfg.get("use_video_tokens", False)): + skipped_shape_keys.append(key) + continue + raise ValueError( + f"Shape mismatch for `{key}` in {action_dit_pretrained_path}: " + f"expected {tuple(target.shape)}, got {tuple(value.shape)}" + ) + merged_state[key] = value.to(device=target.device, dtype=target.dtype) + + if skipped_shape_keys: + logger.warning( + "Kept random initialization for %d shape-incompatible ActionDiT tensors " + "(examples: %s).", + len(skipped_shape_keys), + skipped_shape_keys[:8], + ) + + action_expert.load_state_dict(merged_state, strict=True) + logger.info( + "Loaded ActionDiT backbone from %s (keys=%d; random_kept_prefixes=%s).", + action_dit_pretrained_path, + len(expected_backbone_keys), + list(cls.ACTION_BACKBONE_SKIP_PREFIXES), + ) + return action_expert.to(device=device, dtype=torch_dtype) + + def pre_dit( + self, + action_tokens: torch.Tensor, + timestep: torch.Tensor, + context: torch.Tensor, + context_mask: Optional[torch.Tensor] = None, + ) -> Dict[str, Any]: + if action_tokens.ndim != 3: + raise ValueError( + f"`action_tokens` must be 3D [B, T, action_dim], got shape {tuple(action_tokens.shape)}" + ) + if action_tokens.shape[2] != self.action_dim: + raise ValueError( + f"`action_tokens` last dim must be {self.action_dim}, got {action_tokens.shape[2]}" + ) + if timestep.ndim != 1: + raise ValueError(f"`timestep` must be 1D [B] or [1], got shape {tuple(timestep.shape)}") + if context.ndim != 3: + raise ValueError(f"`context` must be 3D [B, L, D], got shape {tuple(context.shape)}") + + batch_size = action_tokens.shape[0] + if context.shape[0] != batch_size: + raise ValueError( + f"Batch mismatch between action tokens and text context: {batch_size} vs {context.shape[0]}" + ) + if timestep.shape[0] not in (1, batch_size): + raise ValueError( + f"`timestep` length must be 1 or batch_size({batch_size}), got {timestep.shape[0]}" + ) + if timestep.shape[0] == 1 and batch_size > 1: + if self.training: + raise ValueError("During training, action timestep length must match batch_size.") + timestep = timestep.expand(batch_size) + + if context_mask is None: + context_mask = torch.ones( + (batch_size, context.shape[1]), dtype=torch.bool, device=context.device + ) + else: + if context_mask.ndim != 2: + raise ValueError( + f"`context_mask` must be 2D [B, L], got shape {tuple(context_mask.shape)}" + ) + if context_mask.shape[0] != batch_size or context_mask.shape[1] != context.shape[1]: + raise ValueError( + f"`context_mask` shape must match `context` shape [B, L], got {tuple(context_mask.shape)} vs {tuple(context.shape)}" + ) + + seq_len = action_tokens.shape[1] + if seq_len > self.freqs.shape[0]: + raise ValueError( + f"Action token length {seq_len} exceeds RoPE cache {self.freqs.shape[0]}." + ) + + time_weight = self.time_embedding[0].weight + time_input = sinusoidal_embedding_1d(self.freq_dim, timestep).to( + device=time_weight.device, + dtype=time_weight.dtype, + ) + t = self.time_embedding(time_input) + t_mod = self.time_projection(t).unflatten(1, (6, self.hidden_dim)) + + tokens = self.action_encoder(action_tokens) + context_emb = self.text_embedding(context) + context_attn_mask = context_mask.unsqueeze(1).expand(-1, seq_len, -1) + freqs = self.freqs[:seq_len].view(seq_len, 1, -1).to(tokens.device) + + return { + "tokens": tokens, + "freqs": freqs, + "t": t, + "t_mod": t_mod, + "context": context_emb, + "context_mask": context_attn_mask, + "meta": { + "batch_size": batch_size, + "seq_len": seq_len, + }, + } + + def post_dit(self, tokens: torch.Tensor, pre_state: Dict[str, Any]) -> torch.Tensor: + return self.head(tokens) + + def forward( + self, + action_tokens: torch.Tensor, + timestep: torch.Tensor, + context: torch.Tensor, + context_mask: Optional[torch.Tensor] = None, + ) -> torch.Tensor: + pre_state = self.pre_dit( + action_tokens=action_tokens, + timestep=timestep, + context=context, + context_mask=context_mask, + ) + x = pre_state["tokens"] + context = pre_state["context"] + t_mod = pre_state["t_mod"] + freqs = pre_state["freqs"] + context_mask = pre_state["context_mask"] + + for block in self.blocks: + if self.use_gradient_checkpointing: + x = gradient_checkpoint_forward( + block, + self.use_gradient_checkpointing, + x, + context, + t_mod, + freqs, + context_mask=context_mask, + ) + else: + x = block(x, context, t_mod, freqs, context_mask=context_mask) + + return self.post_dit(x, pre_state) diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/helpers/__init__.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/helpers/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/helpers/compact_channels.py b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/helpers/compact_channels.py new file mode 100644 index 0000000000000000000000000000000000000000..bb445b22096660f99b076e159d1143270c64beb3 --- /dev/null +++ b/inference/policy/bagel_robotics_1/runtime/src/bagel_cp1000/models/wan21_14b/helpers/compact_channels.py @@ -0,0 +1,27 @@ +"""Native heterogeneous channel architecture; no training/mask dependencies.""" +from torch import nn +from ..wan_video_dit import WanVideoDiT,I2VCrossAttention,precompute_freqs_cis_3d + + +def build(spec,device='cpu'): + if spec.get('schema')!='vpp2-compact-channels-v1':raise ValueError('Unknown channel architecture') + g=spec['geometry'];selection=spec['selection'];h=len(selection['hidden_indices']) + def valid(ids,maximum): + return ids==sorted(set(ids)) and len(ids)>0 and all(type(i) is int and 0<=i