Skip to content

feat: migrate runtime data assets to Hugging Face#3156

Draft
TomCC7 wants to merge 2 commits into
mainfrom
feature/daring-meadow-468
Draft

feat: migrate runtime data assets to Hugging Face#3156
TomCC7 wants to merge 2 commits into
mainfrom
feature/daring-meadow-468

Conversation

@TomCC7

@TomCC7 TomCC7 commented Jul 23, 2026

Copy link
Copy Markdown
Member

Summary

  • replace the custom top-level private Git LFS runtime with a pinned public Hugging Face dataset revision while preserving get_data() and LfsPath
  • download and safely materialize one validated archive per immutable top-level data asset with process-safe locking and local-first behavior
  • remove the obsolete runtime LFS scripts, hooks, and 110 archive pointers while retaining documentation/media Git LFS
  • update recording writers, scene cooking, GraspGen setup, dependencies, tests, terminology, and data-loading documentation

Dataset: https://huggingface.co/datasets/playercc7/dimensional
Pinned revision: f262d7f8775c2d507b1bfde62a5aa21cffabb3a1

Verification

  • uv run pytest dimos/utils/test_data.py dimos/utils/testing/test_legacy.py dimos/experimental/scene_cooking/test_cooking.py -m "not self_hosted" — 61 passed, 2 deselected
  • live anonymous pinned-Hub integration test passed using occupancy_simple.npy.tar.gz
  • uv run ruff check and uv run ruff format --check passed for changed Python files
  • uv lock --check passed
  • bash -n dimos/manipulation/grasping/docker_context/build.sh passed
  • git diff --check origin/main...HEAD passed
  • manually replayed go2_bigoffice with unitree-go2-memory successfully

Notes

  • existing local top-level assets remain authoritative and are never replaced
  • documentation/media Git LFS remains intentionally unchanged in scope
  • the public dataset was verified anonymously at the pinned revision: 110 archives totaling 34,635,236,624 bytes

@mintlify

mintlify Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
dimensional 🟢 Ready View Preview Jul 23, 2026, 7:38 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

@codecov

codecov Bot commented Jul 23, 2026

Copy link
Copy Markdown

❌ 18 Tests Failed:

Tests completed Failed Passed Skipped
3428 18 3410 74
View the top 3 failed test(s) by shortest run time
dimos.mapping.osm.test_osm::test_pixel_to_latlon
Stack Traces | 0.053s run time
mock_openstreetmap_org = None

    def test_pixel_to_latlon(mock_openstreetmap_org: None) -> None:
        position = LatLon(lat=37.751857, lon=-122.431265)
>       map_image = get_osm_map(position, 18, 4)

mock_openstreetmap_org = None
position   = LatLon(lat=37.751857, lon=-122.431265, alt=None)

.../mapping/osm/test_osm.py:61: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

position = LatLon(lat=37.751857, lon=-122.431265, alt=None), zoom_level = 18
n_tiles = 4

    def get_osm_map(position: LatLon, zoom_level: int = 18, n_tiles: int = 4) -> MapImage:
        """
        Tiles are always 256x256 pixels. With n_tiles=4, this should produce a 1024x1024 image.
        Downloads tiles in parallel with a maximum of 5 concurrent downloads.
    
        Args:
            position (LatLon): center position
            zoom_level (int, optional): Defaults to 18.
            n_tiles (int, optional): generate a map of n_tiles by n_tiles.
        """
        center_x, center_y = _lat_lon_to_tile(position.lat, position.lon, zoom_level)
    
        start_x = int(center_x - n_tiles / 2.0)
        start_y = int(center_y - n_tiles / 2.0)
    
        tile_size = 256
        output_size = tile_size * n_tiles
        output_img = PILImage.new("RGB", (output_size, output_size))
    
        n_failed_tiles = 0
    
        # Prepare all tile download tasks
        download_tasks = []
        for row in range(n_tiles):
            for col in range(n_tiles):
                tile_x = start_x + col
                tile_y = start_y + row
                download_tasks.append((row, col, tile_x, tile_y, zoom_level))
    
        # Download tiles in parallel with max 5 workers
        with ThreadPoolExecutor(max_workers=5) as executor:
            futures = [executor.submit(_download_tile, task) for task in download_tasks]
    
            for future in as_completed(futures):
                row, col, tile_img = future.result()
    
                if tile_img is not None:
                    paste_x = col * tile_size
                    paste_y = row * tile_size
                    output_img.paste(tile_img, (paste_x, paste_y))
                else:
                    n_failed_tiles += 1
    
        if n_failed_tiles > 3:
>           raise ValueError("Failed to download all tiles for the requested map.")
E           ValueError: Failed to download all tiles for the requested map.

center_x   = 41920.27352177778
center_y   = 101345.36949820863
col        = 3
download_tasks = [(0, 0, 41918, 101343, 18), (0, 1, 41919, 101343, 18), (0, 2, 41920, 101343, 18), (0, 3, 41921, 101343, 18), (1, 0, 41918, 101344, 18), (1, 1, 41919, 101344, 18), ...]
executor   = <concurrent.futures.thread.ThreadPoolExecutor object at 0x7fed7c1bad80>
future     = <Future at 0x7fed7c1a94f0 state=finished returned tuple>
futures    = [<Future at 0x7fed7c1ba840 state=finished returned tuple>, <Future at 0x7fed7c1b8aa0 state=finished returned tuple>, <...Future at 0x7fed7c1bb950 state=finished returned tuple>, <Future at 0x7fed7c1ab890 state=finished returned tuple>, ...]
n_failed_tiles = 16
n_tiles    = 4
output_img = <PIL.Image.Image image mode=RGB size=1024x1024 at 0x7FED7C1B90D0>
output_size = 1024
position   = LatLon(lat=37.751857, lon=-122.431265, alt=None)
row        = 3
start_x    = 41918
start_y    = 101343
tile_img   = None
tile_size  = 256
tile_x     = 41921
tile_y     = 101346
zoom_level = 18

.../mapping/osm/osm.py:176: ValueError
dimos.mapping.osm.test_osm::test_latlon_to_pixel
Stack Traces | 0.054s run time
mock_openstreetmap_org = None

    def test_latlon_to_pixel(mock_openstreetmap_org: None) -> None:
        position = LatLon(lat=37.751857, lon=-122.431265)
>       map_image = get_osm_map(position, 18, 4)

mock_openstreetmap_org = None
position   = LatLon(lat=37.751857, lon=-122.431265, alt=None)

.../mapping/osm/test_osm.py:69: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

position = LatLon(lat=37.751857, lon=-122.431265, alt=None), zoom_level = 18
n_tiles = 4

    def get_osm_map(position: LatLon, zoom_level: int = 18, n_tiles: int = 4) -> MapImage:
        """
        Tiles are always 256x256 pixels. With n_tiles=4, this should produce a 1024x1024 image.
        Downloads tiles in parallel with a maximum of 5 concurrent downloads.
    
        Args:
            position (LatLon): center position
            zoom_level (int, optional): Defaults to 18.
            n_tiles (int, optional): generate a map of n_tiles by n_tiles.
        """
        center_x, center_y = _lat_lon_to_tile(position.lat, position.lon, zoom_level)
    
        start_x = int(center_x - n_tiles / 2.0)
        start_y = int(center_y - n_tiles / 2.0)
    
        tile_size = 256
        output_size = tile_size * n_tiles
        output_img = PILImage.new("RGB", (output_size, output_size))
    
        n_failed_tiles = 0
    
        # Prepare all tile download tasks
        download_tasks = []
        for row in range(n_tiles):
            for col in range(n_tiles):
                tile_x = start_x + col
                tile_y = start_y + row
                download_tasks.append((row, col, tile_x, tile_y, zoom_level))
    
        # Download tiles in parallel with max 5 workers
        with ThreadPoolExecutor(max_workers=5) as executor:
            futures = [executor.submit(_download_tile, task) for task in download_tasks]
    
            for future in as_completed(futures):
                row, col, tile_img = future.result()
    
                if tile_img is not None:
                    paste_x = col * tile_size
                    paste_y = row * tile_size
                    output_img.paste(tile_img, (paste_x, paste_y))
                else:
                    n_failed_tiles += 1
    
        if n_failed_tiles > 3:
>           raise ValueError("Failed to download all tiles for the requested map.")
E           ValueError: Failed to download all tiles for the requested map.

center_x   = 41920.27352177778
center_y   = 101345.36949820863
col        = 3
download_tasks = [(0, 0, 41918, 101343, 18), (0, 1, 41919, 101343, 18), (0, 2, 41920, 101343, 18), (0, 3, 41921, 101343, 18), (1, 0, 41918, 101344, 18), (1, 1, 41919, 101344, 18), ...]
executor   = <concurrent.futures.thread.ThreadPoolExecutor object at 0x7fed7c1b88c0>
future     = <Future at 0x7fed7c17f530 state=finished returned tuple>
futures    = [<Future at 0x7fed7c1b96a0 state=finished returned tuple>, <Future at 0x7fed7c1b29f0 state=finished returned tuple>, <...Future at 0x7fed7c1b2900 state=finished returned tuple>, <Future at 0x7fed7c1ab6e0 state=finished returned tuple>, ...]
n_failed_tiles = 16
n_tiles    = 4
output_img = <PIL.Image.Image image mode=RGB size=1024x1024 at 0x7FED7C1B9970>
output_size = 1024
position   = LatLon(lat=37.751857, lon=-122.431265, alt=None)
row        = 3
start_x    = 41918
start_y    = 101343
tile_img   = None
tile_size  = 256
tile_x     = 41921
tile_y     = 101346
zoom_level = 18

.../mapping/osm/osm.py:176: ValueError
dimos.codebase_checks.test_blueprint_kwargs::test_blueprint_atom_kwargs_match_module_config[coordinator-flowbase-nav]
Stack Traces | 0.055s run time
blueprint_name = 'coordinator-flowbase-nav'

    @pytest.mark.parametrize("blueprint_name", _blueprint_params())
    def test_blueprint_atom_kwargs_match_module_config(blueprint_name: str) -> None:
        """Fail when blueprint kwargs cannot be consumed by their target module."""
>       blueprint = _get_blueprint_or_skip(blueprint_name)

blueprint_name = 'coordinator-flowbase-nav'

dimos/codebase_checks/test_blueprint_kwargs.py:91: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/codebase_checks/test_blueprint_kwargs.py:36: in _get_blueprint_or_skip
    return get_blueprint_by_name(blueprint_name)
        blueprint_name = 'coordinator-flowbase-nav'
        message    = "Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root"
dimos/robot/get_all_blueprints.py:51: in get_blueprint_by_name
    module = __import__(module_path, fromlist=[attr])
        attr       = 'coordinator_flowbase_nav'
        module_path = 'dimos.control.blueprints.mobile'
        name       = 'coordinator-flowbase-nav'
.../control/blueprints/mobile.py:139: in <module>
    "paths_dir": str(G1_LOCAL_PLANNER_PRECOMPUTED_PATHS),
        ControlCoordinator = <class 'dimos.control.coordinator.ControlCoordinator'>
        FastLio2   = <class 'dimos.hardware.sensors.lidar.fastlio2.module.FastLio2'>
        G1_LOCAL_PLANNER_PRECOMPUTED_PATHS = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
        HardwareComponent = <class 'dimos.control.components.HardwareComponent'>
        HardwareType = <enum 'HardwareType'>
        KeyboardTeleop = <class 'dimos.robot.unitree.keyboard_teleop.KeyboardTeleop'>
        MovementManager = <class 'dimos.navigation.movement_manager.movement_manager.MovementManager'>
        RerunBridgeModule = <class 'dimos.visualization.rerun.bridge.RerunBridgeModule'>
        RerunWebSocketServer = <class 'dimos.visualization.rerun.websocket_server.RerunWebSocketServer'>
        TaskConfig = <class 'dimos.control.coordinator.TaskConfig'>
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/mobile.cpython-312.pyc'
        __doc__    = 'Mobile manipulation coordinator blueprints.\n\nUsage:\n    dimos run coordinator-mock-twist-base                # Moc... teleop\n    dimos run coordinator-flowbase-nav                   # FlowBase + FastLio2 + nav stack (click-to-drive)\n'
        __file__   = '/__w/dimos/dimos/.../control/blueprints/mobile.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7fed647bec00>
        __name__   = 'dimos.control.blueprints.mobile'
        __package__ = 'dimos.control.blueprints'
        __spec__   = ModuleSpec(name='dimos.control.blueprints.mobile', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fed647bec00>, origin='/__w/dimos/dimos/.../control/blueprints/mobile.py')
        _base_joints = ['base/vx', 'base/vy', 'base/wz']
        _flowbase_twist_base = <function _flowbase_twist_base at 0x7fed648fc040>
        _mock_twist_base = <function _mock_twist_base at 0x7fed640d3f60>
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0x7fefb22a14e0>
        cmu_nav_rerun_config = <function cmu_nav_rerun_config at 0x7fed56fd18a0>
        coordinator_flowbase = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_flowbase_keyboard_teleop = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_mock_twist_base = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        create_cmu_nav = <function create_cmu_nav at 0x7fed56fd0b80>
        make_joints = <function make_joints at 0x7fedb12e6160>
        make_twist_base_joints = <function make_twist_base_joints at 0x7fedb12e5c60>
        os         = <module 'os' (frozen)>
dimos/utils/data.py:420: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:406: in _ensure_downloaded
    resolved = get_data(object.__getattribute__(self, "_lfs_filename"))
        resolved   = None
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:386: in get_data
    _materialize_archive(archive, top_level, reference.parts[1:], data_dir, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        file_path  = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        reference  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        remote_archive = 'data/unitree_g1_local_planner_precomputed_paths.tar.gz'
        requested  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:316: in _materialize_archive
    _extract_archive(archive, staging, top_level, requested, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-s9k24jx1')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:218: in _extract_archive
    path = _archive_member_path(member, top_level)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645eef80>
        members    = [<TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645eef80>, <TarInfo 'unitree_g1_local_planner_precom... at 0x7fed645ef340>, <TarInfo 'unitree_g1_local_planner_precomputed_paths/correspondences.txt' at 0x7fed645eebc0>, ...]
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        root_kind  = None
        seen       = set()
        staged_top = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-s9k24jx1/unitree_g1_local_planner_precomputed_paths')
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-s9k24jx1')
        tar        = <tarfile.TarFile object at 0x7fed647e4d40>
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
        validated  = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

member = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645eef80>
top_level = 'unitree_g1_local_planner_precomputed_paths'

    def _archive_member_path(member: tarfile.TarInfo, top_level: str) -> PurePosixPath:
        name = member.name
        if not name or name.startswith("/") or "\\" in name:
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        parts = name.split("/")
        if parts[-1] == "":
            parts.pop()
        if not parts or any(part in ("", ".", "..") for part in parts):
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        path = PurePosixPath(*parts)
        if path.parts[0] != top_level:
>           raise RuntimeError(f"Archive member {name!r} has the wrong root")
E           RuntimeError: Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root

member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645eef80>
name       = '._unitree_g1_local_planner_precomputed_paths'
parts      = ['._unitree_g1_local_planner_precomputed_paths']
path       = PurePosixPath('._unitree_g1_local_planner_precomputed_paths')
top_level  = 'unitree_g1_local_planner_precomputed_paths'

dimos/utils/data.py:161: RuntimeError
dimos.robot.test_all_blueprints::test_self_hosted_blueprint_is_valid[unitree-g1-nav-sim]
Stack Traces | 0.055s run time
blueprint_name = 'unitree-g1-nav-sim'

    @pytest.mark.self_hosted
    @pytest.mark.parametrize("blueprint_name", SELF_HOSTED_BLUEPRINTS)
    def test_self_hosted_blueprint_is_valid(blueprint_name: str) -> None:
        """Validate blueprints that need heavy deps or LFS — self-hosted runner only."""
>       _check_blueprint(blueprint_name)

blueprint_name = 'unitree-g1-nav-sim'

dimos/robot/test_all_blueprints.py:116: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/robot/test_all_blueprints.py:85: in _check_blueprint
    blueprint = get_blueprint_by_name(blueprint_name)
        blueprint_name = 'unitree-g1-nav-sim'
        message    = "Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root"
dimos/robot/get_all_blueprints.py:51: in get_blueprint_by_name
    module = __import__(module_path, fromlist=[attr])
        attr       = 'unitree_g1_nav_sim'
        module_path = 'dimos.robot.unitree.g1.blueprints.navigation.unitree_g1_nav_sim'
        name       = 'unitree-g1-nav-sim'
.../blueprints/navigation/unitree_g1_nav_sim.py:41: in <module>
    "paths_dir": str(G1_LOCAL_PLANNER_PRECOMPUTED_PATHS),
        Any        = typing.Any
        G1         = G1Config(name='unitree_g1', model_path=PosixPath('.../unitree/g1/g1.urdf'), height_clearance=...sition=Vector([          0           0         1.2]), orientation=Quaternion(0.000000, 0.000000, 0.000000, 1.000000))})
        G1_LOCAL_PLANNER_PRECOMPUTED_PATHS = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
        MovementManager = <class 'dimos.navigation.movement_manager.movement_manager.MovementManager'>
        UnityBridgeModule = <class 'dimos.simulation.unity.module.UnityBridgeModule'>
        __annotations__ = {}
        __builtins__ = <builtins>
        __cached__ = '.../navigation/__pycache__/unitree_g1_nav_sim.cpython-312.pyc'
        __doc__    = None
        __file__   = '/__w/dimos/dimos/.../blueprints/navigation/unitree_g1_nav_sim.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7fece7fbf440>
        __name__   = 'dimos.robot.unitree.g1.blueprints.navigation.unitree_g1_nav_sim'
        __package__ = 'dimos.robot.unitree.g1.blueprints.navigation'
        __spec__   = ModuleSpec(name='dimos.robot.unitree.g1.blueprints.navigation.unitree_g1_nav_sim', loader=<_frozen_importlib_external....bject at 0x7fece7fbf440>, origin='/__w/dimos/dimos/.../blueprints/navigation/unitree_g1_nav_sim.py')
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0x7fefb22a14e0>
        cmu_nav_rerun_config = <function cmu_nav_rerun_config at 0x7fed56fd18a0>
        create_cmu_nav = <function create_cmu_nav at 0x7fed56fd0b80>
        g1_static_robot = <function g1_static_robot at 0x7fed6497c7c0>
        global_config = GlobalConfig(robot_ip=None, robot_ips=None, unitree_aes_128_key=None, xarm7_ip=None, xarm6_ip=None, can_port=None, dev...detection_model='moondream', listen_host='127.0.0.1', dimsim_scene='apartment', dimsim_port=8090, dimsim_headless=True)
        vis_module = <function vis_module at 0x7fed66e3bce0>
dimos/utils/data.py:420: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:406: in _ensure_downloaded
    resolved = get_data(object.__getattribute__(self, "_lfs_filename"))
        resolved   = None
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:386: in get_data
    _materialize_archive(archive, top_level, reference.parts[1:], data_dir, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        file_path  = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        reference  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        remote_archive = 'data/unitree_g1_local_planner_precomputed_paths.tar.gz'
        requested  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:316: in _materialize_archive
    _extract_archive(archive, staging, top_level, requested, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-fdrdr1jb')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:218: in _extract_archive
    path = _archive_member_path(member, top_level)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed51770940>
        members    = [<TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed51770940>, <TarInfo 'unitree_g1_local_planner_precom... at 0x7fed51770a00>, <TarInfo 'unitree_g1_local_planner_precomputed_paths/correspondences.txt' at 0x7fed51773dc0>, ...]
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        root_kind  = None
        seen       = set()
        staged_top = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-fdrdr1jb/unitree_g1_local_planner_precomputed_paths')
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-fdrdr1jb')
        tar        = <tarfile.TarFile object at 0x7fece7fbf3e0>
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
        validated  = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

member = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed51770940>
top_level = 'unitree_g1_local_planner_precomputed_paths'

    def _archive_member_path(member: tarfile.TarInfo, top_level: str) -> PurePosixPath:
        name = member.name
        if not name or name.startswith("/") or "\\" in name:
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        parts = name.split("/")
        if parts[-1] == "":
            parts.pop()
        if not parts or any(part in ("", ".", "..") for part in parts):
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        path = PurePosixPath(*parts)
        if path.parts[0] != top_level:
>           raise RuntimeError(f"Archive member {name!r} has the wrong root")
E           RuntimeError: Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root

member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed51770940>
name       = '._unitree_g1_local_planner_precomputed_paths'
parts      = ['._unitree_g1_local_planner_precomputed_paths']
path       = PurePosixPath('._unitree_g1_local_planner_precomputed_paths')
top_level  = 'unitree_g1_local_planner_precomputed_paths'

dimos/utils/data.py:161: RuntimeError
dimos.codebase_checks.test_blueprint_kwargs::test_blueprint_atom_kwargs_match_module_config[coordinator-flowbase-keyboard-teleop]
Stack Traces | 0.057s run time
blueprint_name = 'coordinator-flowbase-keyboard-teleop'

    @pytest.mark.parametrize("blueprint_name", _blueprint_params())
    def test_blueprint_atom_kwargs_match_module_config(blueprint_name: str) -> None:
        """Fail when blueprint kwargs cannot be consumed by their target module."""
>       blueprint = _get_blueprint_or_skip(blueprint_name)

blueprint_name = 'coordinator-flowbase-keyboard-teleop'

dimos/codebase_checks/test_blueprint_kwargs.py:91: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/codebase_checks/test_blueprint_kwargs.py:36: in _get_blueprint_or_skip
    return get_blueprint_by_name(blueprint_name)
        blueprint_name = 'coordinator-flowbase-keyboard-teleop'
        message    = "Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root"
dimos/robot/get_all_blueprints.py:51: in get_blueprint_by_name
    module = __import__(module_path, fromlist=[attr])
        attr       = 'coordinator_flowbase_keyboard_teleop'
        module_path = 'dimos.control.blueprints.mobile'
        name       = 'coordinator-flowbase-keyboard-teleop'
.../control/blueprints/mobile.py:139: in <module>
    "paths_dir": str(G1_LOCAL_PLANNER_PRECOMPUTED_PATHS),
        ControlCoordinator = <class 'dimos.control.coordinator.ControlCoordinator'>
        FastLio2   = <class 'dimos.hardware.sensors.lidar.fastlio2.module.FastLio2'>
        G1_LOCAL_PLANNER_PRECOMPUTED_PATHS = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
        HardwareComponent = <class 'dimos.control.components.HardwareComponent'>
        HardwareType = <enum 'HardwareType'>
        KeyboardTeleop = <class 'dimos.robot.unitree.keyboard_teleop.KeyboardTeleop'>
        MovementManager = <class 'dimos.navigation.movement_manager.movement_manager.MovementManager'>
        RerunBridgeModule = <class 'dimos.visualization.rerun.bridge.RerunBridgeModule'>
        RerunWebSocketServer = <class 'dimos.visualization.rerun.websocket_server.RerunWebSocketServer'>
        TaskConfig = <class 'dimos.control.coordinator.TaskConfig'>
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/mobile.cpython-312.pyc'
        __doc__    = 'Mobile manipulation coordinator blueprints.\n\nUsage:\n    dimos run coordinator-mock-twist-base                # Moc... teleop\n    dimos run coordinator-flowbase-nav                   # FlowBase + FastLio2 + nav stack (click-to-drive)\n'
        __file__   = '/__w/dimos/dimos/.../control/blueprints/mobile.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7fee73fed460>
        __name__   = 'dimos.control.blueprints.mobile'
        __package__ = 'dimos.control.blueprints'
        __spec__   = ModuleSpec(name='dimos.control.blueprints.mobile', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fee73fed460>, origin='/__w/dimos/dimos/.../control/blueprints/mobile.py')
        _base_joints = ['base/vx', 'base/vy', 'base/wz']
        _flowbase_twist_base = <function _flowbase_twist_base at 0x7fed640d3560>
        _mock_twist_base = <function _mock_twist_base at 0x7fed640d34c0>
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0x7fefb22a14e0>
        cmu_nav_rerun_config = <function cmu_nav_rerun_config at 0x7fed56fd18a0>
        coordinator_flowbase = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_flowbase_keyboard_teleop = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_mock_twist_base = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        create_cmu_nav = <function create_cmu_nav at 0x7fed56fd0b80>
        make_joints = <function make_joints at 0x7fedb12e6160>
        make_twist_base_joints = <function make_twist_base_joints at 0x7fedb12e5c60>
        os         = <module 'os' (frozen)>
dimos/utils/data.py:420: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:406: in _ensure_downloaded
    resolved = get_data(object.__getattribute__(self, "_lfs_filename"))
        resolved   = None
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:386: in get_data
    _materialize_archive(archive, top_level, reference.parts[1:], data_dir, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        file_path  = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        reference  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        remote_archive = 'data/unitree_g1_local_planner_precomputed_paths.tar.gz'
        requested  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:316: in _materialize_archive
    _extract_archive(archive, staging, top_level, requested, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-_hrm4ltq')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:218: in _extract_archive
    path = _archive_member_path(member, top_level)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645ee8c0>
        members    = [<TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645ee8c0>, <TarInfo 'unitree_g1_local_planner_precom... at 0x7fed645ec700>, <TarInfo 'unitree_g1_local_planner_precomputed_paths/correspondences.txt' at 0x7fed645eca00>, ...]
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        root_kind  = None
        seen       = set()
        staged_top = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-_hrm4ltq/unitree_g1_local_planner_precomputed_paths')
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-_hrm4ltq')
        tar        = <tarfile.TarFile object at 0x7fed647bcec0>
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
        validated  = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

member = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645ee8c0>
top_level = 'unitree_g1_local_planner_precomputed_paths'

    def _archive_member_path(member: tarfile.TarInfo, top_level: str) -> PurePosixPath:
        name = member.name
        if not name or name.startswith("/") or "\\" in name:
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        parts = name.split("/")
        if parts[-1] == "":
            parts.pop()
        if not parts or any(part in ("", ".", "..") for part in parts):
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        path = PurePosixPath(*parts)
        if path.parts[0] != top_level:
>           raise RuntimeError(f"Archive member {name!r} has the wrong root")
E           RuntimeError: Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root

member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645ee8c0>
name       = '._unitree_g1_local_planner_precomputed_paths'
parts      = ['._unitree_g1_local_planner_precomputed_paths']
path       = PurePosixPath('._unitree_g1_local_planner_precomputed_paths')
top_level  = 'unitree_g1_local_planner_precomputed_paths'

dimos/utils/data.py:161: RuntimeError
dimos.robot.test_all_blueprints::test_self_hosted_blueprint_is_valid[coordinator-flowbase-keyboard-teleop]
Stack Traces | 0.057s run time
blueprint_name = 'coordinator-flowbase-keyboard-teleop'

    @pytest.mark.self_hosted
    @pytest.mark.parametrize("blueprint_name", SELF_HOSTED_BLUEPRINTS)
    def test_self_hosted_blueprint_is_valid(blueprint_name: str) -> None:
        """Validate blueprints that need heavy deps or LFS — self-hosted runner only."""
>       _check_blueprint(blueprint_name)

blueprint_name = 'coordinator-flowbase-keyboard-teleop'

dimos/robot/test_all_blueprints.py:116: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/robot/test_all_blueprints.py:85: in _check_blueprint
    blueprint = get_blueprint_by_name(blueprint_name)
        blueprint_name = 'coordinator-flowbase-keyboard-teleop'
        message    = "Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root"
dimos/robot/get_all_blueprints.py:51: in get_blueprint_by_name
    module = __import__(module_path, fromlist=[attr])
        attr       = 'coordinator_flowbase_keyboard_teleop'
        module_path = 'dimos.control.blueprints.mobile'
        name       = 'coordinator-flowbase-keyboard-teleop'
.../control/blueprints/mobile.py:139: in <module>
    "paths_dir": str(G1_LOCAL_PLANNER_PRECOMPUTED_PATHS),
        ControlCoordinator = <class 'dimos.control.coordinator.ControlCoordinator'>
        FastLio2   = <class 'dimos.hardware.sensors.lidar.fastlio2.module.FastLio2'>
        G1_LOCAL_PLANNER_PRECOMPUTED_PATHS = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
        HardwareComponent = <class 'dimos.control.components.HardwareComponent'>
        HardwareType = <enum 'HardwareType'>
        KeyboardTeleop = <class 'dimos.robot.unitree.keyboard_teleop.KeyboardTeleop'>
        MovementManager = <class 'dimos.navigation.movement_manager.movement_manager.MovementManager'>
        RerunBridgeModule = <class 'dimos.visualization.rerun.bridge.RerunBridgeModule'>
        RerunWebSocketServer = <class 'dimos.visualization.rerun.websocket_server.RerunWebSocketServer'>
        TaskConfig = <class 'dimos.control.coordinator.TaskConfig'>
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/mobile.cpython-312.pyc'
        __doc__    = 'Mobile manipulation coordinator blueprints.\n\nUsage:\n    dimos run coordinator-mock-twist-base                # Moc... teleop\n    dimos run coordinator-flowbase-nav                   # FlowBase + FastLio2 + nav stack (click-to-drive)\n'
        __file__   = '/__w/dimos/dimos/.../control/blueprints/mobile.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7fece7fa4fb0>
        __name__   = 'dimos.control.blueprints.mobile'
        __package__ = 'dimos.control.blueprints'
        __spec__   = ModuleSpec(name='dimos.control.blueprints.mobile', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fece7fa4fb0>, origin='/__w/dimos/dimos/.../control/blueprints/mobile.py')
        _base_joints = ['base/vx', 'base/vy', 'base/wz']
        _flowbase_twist_base = <function _flowbase_twist_base at 0x7feceda67e20>
        _mock_twist_base = <function _mock_twist_base at 0x7feceda67d80>
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0x7fefb22a14e0>
        cmu_nav_rerun_config = <function cmu_nav_rerun_config at 0x7fed56fd18a0>
        coordinator_flowbase = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_flowbase_keyboard_teleop = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_mock_twist_base = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        create_cmu_nav = <function create_cmu_nav at 0x7fed56fd0b80>
        make_joints = <function make_joints at 0x7fedb12e6160>
        make_twist_base_joints = <function make_twist_base_joints at 0x7fedb12e5c60>
        os         = <module 'os' (frozen)>
dimos/utils/data.py:420: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:406: in _ensure_downloaded
    resolved = get_data(object.__getattribute__(self, "_lfs_filename"))
        resolved   = None
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:386: in get_data
    _materialize_archive(archive, top_level, reference.parts[1:], data_dir, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        file_path  = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        reference  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        remote_archive = 'data/unitree_g1_local_planner_precomputed_paths.tar.gz'
        requested  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:316: in _materialize_archive
    _extract_archive(archive, staging, top_level, requested, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-qmsgphci')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:218: in _extract_archive
    path = _archive_member_path(member, top_level)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed517737c0>
        members    = [<TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed517737c0>, <TarInfo 'unitree_g1_local_planner_precom... at 0x7fed517734c0>, <TarInfo 'unitree_g1_local_planner_precomputed_paths/correspondences.txt' at 0x7fed51773400>, ...]
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        root_kind  = None
        seen       = set()
        staged_top = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-qmsgphci/unitree_g1_local_planner_precomputed_paths')
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-qmsgphci')
        tar        = <tarfile.TarFile object at 0x7fece7fa6f90>
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
        validated  = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

member = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed517737c0>
top_level = 'unitree_g1_local_planner_precomputed_paths'

    def _archive_member_path(member: tarfile.TarInfo, top_level: str) -> PurePosixPath:
        name = member.name
        if not name or name.startswith("/") or "\\" in name:
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        parts = name.split("/")
        if parts[-1] == "":
            parts.pop()
        if not parts or any(part in ("", ".", "..") for part in parts):
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        path = PurePosixPath(*parts)
        if path.parts[0] != top_level:
>           raise RuntimeError(f"Archive member {name!r} has the wrong root")
E           RuntimeError: Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root

member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed517737c0>
name       = '._unitree_g1_local_planner_precomputed_paths'
parts      = ['._unitree_g1_local_planner_precomputed_paths']
path       = PurePosixPath('._unitree_g1_local_planner_precomputed_paths')
top_level  = 'unitree_g1_local_planner_precomputed_paths'

dimos/utils/data.py:161: RuntimeError
dimos.robot.test_all_blueprints::test_self_hosted_blueprint_is_valid[coordinator-flowbase-nav]
Stack Traces | 0.057s run time
blueprint_name = 'coordinator-flowbase-nav'

    @pytest.mark.self_hosted
    @pytest.mark.parametrize("blueprint_name", SELF_HOSTED_BLUEPRINTS)
    def test_self_hosted_blueprint_is_valid(blueprint_name: str) -> None:
        """Validate blueprints that need heavy deps or LFS — self-hosted runner only."""
>       _check_blueprint(blueprint_name)

blueprint_name = 'coordinator-flowbase-nav'

dimos/robot/test_all_blueprints.py:116: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/robot/test_all_blueprints.py:85: in _check_blueprint
    blueprint = get_blueprint_by_name(blueprint_name)
        blueprint_name = 'coordinator-flowbase-nav'
        message    = "Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root"
dimos/robot/get_all_blueprints.py:51: in get_blueprint_by_name
    module = __import__(module_path, fromlist=[attr])
        attr       = 'coordinator_flowbase_nav'
        module_path = 'dimos.control.blueprints.mobile'
        name       = 'coordinator-flowbase-nav'
.../control/blueprints/mobile.py:139: in <module>
    "paths_dir": str(G1_LOCAL_PLANNER_PRECOMPUTED_PATHS),
        ControlCoordinator = <class 'dimos.control.coordinator.ControlCoordinator'>
        FastLio2   = <class 'dimos.hardware.sensors.lidar.fastlio2.module.FastLio2'>
        G1_LOCAL_PLANNER_PRECOMPUTED_PATHS = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
        HardwareComponent = <class 'dimos.control.components.HardwareComponent'>
        HardwareType = <enum 'HardwareType'>
        KeyboardTeleop = <class 'dimos.robot.unitree.keyboard_teleop.KeyboardTeleop'>
        MovementManager = <class 'dimos.navigation.movement_manager.movement_manager.MovementManager'>
        RerunBridgeModule = <class 'dimos.visualization.rerun.bridge.RerunBridgeModule'>
        RerunWebSocketServer = <class 'dimos.visualization.rerun.websocket_server.RerunWebSocketServer'>
        TaskConfig = <class 'dimos.control.coordinator.TaskConfig'>
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/mobile.cpython-312.pyc'
        __doc__    = 'Mobile manipulation coordinator blueprints.\n\nUsage:\n    dimos run coordinator-mock-twist-base                # Moc... teleop\n    dimos run coordinator-flowbase-nav                   # FlowBase + FastLio2 + nav stack (click-to-drive)\n'
        __file__   = '/__w/dimos/dimos/.../control/blueprints/mobile.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7fecedaa9fd0>
        __name__   = 'dimos.control.blueprints.mobile'
        __package__ = 'dimos.control.blueprints'
        __spec__   = ModuleSpec(name='dimos.control.blueprints.mobile', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fecedaa9fd0>, origin='/__w/dimos/dimos/.../control/blueprints/mobile.py')
        _base_joints = ['base/vx', 'base/vy', 'base/wz']
        _flowbase_twist_base = <function _flowbase_twist_base at 0x7fece8080540>
        _mock_twist_base = <function _mock_twist_base at 0x7fece80804a0>
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0x7fefb22a14e0>
        cmu_nav_rerun_config = <function cmu_nav_rerun_config at 0x7fed56fd18a0>
        coordinator_flowbase = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_flowbase_keyboard_teleop = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_mock_twist_base = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        create_cmu_nav = <function create_cmu_nav at 0x7fed56fd0b80>
        make_joints = <function make_joints at 0x7fedb12e6160>
        make_twist_base_joints = <function make_twist_base_joints at 0x7fedb12e5c60>
        os         = <module 'os' (frozen)>
dimos/utils/data.py:420: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:406: in _ensure_downloaded
    resolved = get_data(object.__getattribute__(self, "_lfs_filename"))
        resolved   = None
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:386: in get_data
    _materialize_archive(archive, top_level, reference.parts[1:], data_dir, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        file_path  = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        reference  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        remote_archive = 'data/unitree_g1_local_planner_precomputed_paths.tar.gz'
        requested  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:316: in _materialize_archive
    _extract_archive(archive, staging, top_level, requested, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-3ist997n')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:218: in _extract_archive
    path = _archive_member_path(member, top_level)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed51772b00>
        members    = [<TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed51772b00>, <TarInfo 'unitree_g1_local_planner_precom... at 0x7fed51770400>, <TarInfo 'unitree_g1_local_planner_precomputed_paths/correspondences.txt' at 0x7fed51770a00>, ...]
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        root_kind  = None
        seen       = set()
        staged_top = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-3ist997n/unitree_g1_local_planner_precomputed_paths')
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-3ist997n')
        tar        = <tarfile.TarFile object at 0x7fece80157c0>
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
        validated  = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

member = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed51772b00>
top_level = 'unitree_g1_local_planner_precomputed_paths'

    def _archive_member_path(member: tarfile.TarInfo, top_level: str) -> PurePosixPath:
        name = member.name
        if not name or name.startswith("/") or "\\" in name:
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        parts = name.split("/")
        if parts[-1] == "":
            parts.pop()
        if not parts or any(part in ("", ".", "..") for part in parts):
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        path = PurePosixPath(*parts)
        if path.parts[0] != top_level:
>           raise RuntimeError(f"Archive member {name!r} has the wrong root")
E           RuntimeError: Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root

member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed51772b00>
name       = '._unitree_g1_local_planner_precomputed_paths'
parts      = ['._unitree_g1_local_planner_precomputed_paths']
path       = PurePosixPath('._unitree_g1_local_planner_precomputed_paths')
top_level  = 'unitree_g1_local_planner_precomputed_paths'

dimos/utils/data.py:161: RuntimeError
dimos.robot.test_all_blueprints::test_self_hosted_blueprint_is_valid[coordinator-mobile-manip-mock]
Stack Traces | 0.057s run time
blueprint_name = 'coordinator-mobile-manip-mock'

    @pytest.mark.self_hosted
    @pytest.mark.parametrize("blueprint_name", SELF_HOSTED_BLUEPRINTS)
    def test_self_hosted_blueprint_is_valid(blueprint_name: str) -> None:
        """Validate blueprints that need heavy deps or LFS — self-hosted runner only."""
>       _check_blueprint(blueprint_name)

blueprint_name = 'coordinator-mobile-manip-mock'

dimos/robot/test_all_blueprints.py:116: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/robot/test_all_blueprints.py:85: in _check_blueprint
    blueprint = get_blueprint_by_name(blueprint_name)
        blueprint_name = 'coordinator-mobile-manip-mock'
        message    = "Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root"
dimos/robot/get_all_blueprints.py:51: in get_blueprint_by_name
    module = __import__(module_path, fromlist=[attr])
        attr       = 'coordinator_mobile_manip_mock'
        module_path = 'dimos.control.blueprints.mobile'
        name       = 'coordinator-mobile-manip-mock'
.../control/blueprints/mobile.py:139: in <module>
    "paths_dir": str(G1_LOCAL_PLANNER_PRECOMPUTED_PATHS),
        ControlCoordinator = <class 'dimos.control.coordinator.ControlCoordinator'>
        FastLio2   = <class 'dimos.hardware.sensors.lidar.fastlio2.module.FastLio2'>
        G1_LOCAL_PLANNER_PRECOMPUTED_PATHS = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
        HardwareComponent = <class 'dimos.control.components.HardwareComponent'>
        HardwareType = <enum 'HardwareType'>
        KeyboardTeleop = <class 'dimos.robot.unitree.keyboard_teleop.KeyboardTeleop'>
        MovementManager = <class 'dimos.navigation.movement_manager.movement_manager.MovementManager'>
        RerunBridgeModule = <class 'dimos.visualization.rerun.bridge.RerunBridgeModule'>
        RerunWebSocketServer = <class 'dimos.visualization.rerun.websocket_server.RerunWebSocketServer'>
        TaskConfig = <class 'dimos.control.coordinator.TaskConfig'>
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/mobile.cpython-312.pyc'
        __doc__    = 'Mobile manipulation coordinator blueprints.\n\nUsage:\n    dimos run coordinator-mock-twist-base                # Moc... teleop\n    dimos run coordinator-flowbase-nav                   # FlowBase + FastLio2 + nav stack (click-to-drive)\n'
        __file__   = '/__w/dimos/dimos/.../control/blueprints/mobile.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7fece8017560>
        __name__   = 'dimos.control.blueprints.mobile'
        __package__ = 'dimos.control.blueprints'
        __spec__   = ModuleSpec(name='dimos.control.blueprints.mobile', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fece8017560>, origin='/__w/dimos/dimos/.../control/blueprints/mobile.py')
        _base_joints = ['base/vx', 'base/vy', 'base/wz']
        _flowbase_twist_base = <function _flowbase_twist_base at 0x7fece8080fe0>
        _mock_twist_base = <function _mock_twist_base at 0x7fece8080f40>
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0x7fefb22a14e0>
        cmu_nav_rerun_config = <function cmu_nav_rerun_config at 0x7fed56fd18a0>
        coordinator_flowbase = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_flowbase_keyboard_teleop = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_mock_twist_base = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        create_cmu_nav = <function create_cmu_nav at 0x7fed56fd0b80>
        make_joints = <function make_joints at 0x7fedb12e6160>
        make_twist_base_joints = <function make_twist_base_joints at 0x7fedb12e5c60>
        os         = <module 'os' (frozen)>
dimos/utils/data.py:420: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:406: in _ensure_downloaded
    resolved = get_data(object.__getattribute__(self, "_lfs_filename"))
        resolved   = None
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:386: in get_data
    _materialize_archive(archive, top_level, reference.parts[1:], data_dir, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        file_path  = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        reference  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        remote_archive = 'data/unitree_g1_local_planner_precomputed_paths.tar.gz'
        requested  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:316: in _materialize_archive
    _extract_archive(archive, staging, top_level, requested, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-3mjdbn6m')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:218: in _extract_archive
    path = _archive_member_path(member, top_level)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fece7f98580>
        members    = [<TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fece7f98580>, <TarInfo 'unitree_g1_local_planner_precom... at 0x7fece7f98880>, <TarInfo 'unitree_g1_local_planner_precomputed_paths/correspondences.txt' at 0x7fece7f98a00>, ...]
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        root_kind  = None
        seen       = set()
        staged_top = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-3mjdbn6m/unitree_g1_local_planner_precomputed_paths')
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-3mjdbn6m')
        tar        = <tarfile.TarFile object at 0x7fece8071820>
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
        validated  = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

member = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fece7f98580>
top_level = 'unitree_g1_local_planner_precomputed_paths'

    def _archive_member_path(member: tarfile.TarInfo, top_level: str) -> PurePosixPath:
        name = member.name
        if not name or name.startswith("/") or "\\" in name:
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        parts = name.split("/")
        if parts[-1] == "":
            parts.pop()
        if not parts or any(part in ("", ".", "..") for part in parts):
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        path = PurePosixPath(*parts)
        if path.parts[0] != top_level:
>           raise RuntimeError(f"Archive member {name!r} has the wrong root")
E           RuntimeError: Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root

member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fece7f98580>
name       = '._unitree_g1_local_planner_precomputed_paths'
parts      = ['._unitree_g1_local_planner_precomputed_paths']
path       = PurePosixPath('._unitree_g1_local_planner_precomputed_paths')
top_level  = 'unitree_g1_local_planner_precomputed_paths'

dimos/utils/data.py:161: RuntimeError
dimos.robot.test_all_blueprints::test_self_hosted_blueprint_is_valid[coordinator-mock-twist-base]
Stack Traces | 0.057s run time
blueprint_name = 'coordinator-mock-twist-base'

    @pytest.mark.self_hosted
    @pytest.mark.parametrize("blueprint_name", SELF_HOSTED_BLUEPRINTS)
    def test_self_hosted_blueprint_is_valid(blueprint_name: str) -> None:
        """Validate blueprints that need heavy deps or LFS — self-hosted runner only."""
>       _check_blueprint(blueprint_name)

blueprint_name = 'coordinator-mock-twist-base'

dimos/robot/test_all_blueprints.py:116: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/robot/test_all_blueprints.py:85: in _check_blueprint
    blueprint = get_blueprint_by_name(blueprint_name)
        blueprint_name = 'coordinator-mock-twist-base'
        message    = "Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root"
dimos/robot/get_all_blueprints.py:51: in get_blueprint_by_name
    module = __import__(module_path, fromlist=[attr])
        attr       = 'coordinator_mock_twist_base'
        module_path = 'dimos.control.blueprints.mobile'
        name       = 'coordinator-mock-twist-base'
.../control/blueprints/mobile.py:139: in <module>
    "paths_dir": str(G1_LOCAL_PLANNER_PRECOMPUTED_PATHS),
        ControlCoordinator = <class 'dimos.control.coordinator.ControlCoordinator'>
        FastLio2   = <class 'dimos.hardware.sensors.lidar.fastlio2.module.FastLio2'>
        G1_LOCAL_PLANNER_PRECOMPUTED_PATHS = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
        HardwareComponent = <class 'dimos.control.components.HardwareComponent'>
        HardwareType = <enum 'HardwareType'>
        KeyboardTeleop = <class 'dimos.robot.unitree.keyboard_teleop.KeyboardTeleop'>
        MovementManager = <class 'dimos.navigation.movement_manager.movement_manager.MovementManager'>
        RerunBridgeModule = <class 'dimos.visualization.rerun.bridge.RerunBridgeModule'>
        RerunWebSocketServer = <class 'dimos.visualization.rerun.websocket_server.RerunWebSocketServer'>
        TaskConfig = <class 'dimos.control.coordinator.TaskConfig'>
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/mobile.cpython-312.pyc'
        __doc__    = 'Mobile manipulation coordinator blueprints.\n\nUsage:\n    dimos run coordinator-mock-twist-base                # Moc... teleop\n    dimos run coordinator-flowbase-nav                   # FlowBase + FastLio2 + nav stack (click-to-drive)\n'
        __file__   = '/__w/dimos/dimos/.../control/blueprints/mobile.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7fece8073350>
        __name__   = 'dimos.control.blueprints.mobile'
        __package__ = 'dimos.control.blueprints'
        __spec__   = ModuleSpec(name='dimos.control.blueprints.mobile', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fece8073350>, origin='/__w/dimos/dimos/.../control/blueprints/mobile.py')
        _base_joints = ['base/vx', 'base/vy', 'base/wz']
        _flowbase_twist_base = <function _flowbase_twist_base at 0x7fece8081da0>
        _mock_twist_base = <function _mock_twist_base at 0x7fece8081d00>
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0x7fefb22a14e0>
        cmu_nav_rerun_config = <function cmu_nav_rerun_config at 0x7fed56fd18a0>
        coordinator_flowbase = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_flowbase_keyboard_teleop = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_mock_twist_base = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        create_cmu_nav = <function create_cmu_nav at 0x7fed56fd0b80>
        make_joints = <function make_joints at 0x7fedb12e6160>
        make_twist_base_joints = <function make_twist_base_joints at 0x7fedb12e5c60>
        os         = <module 'os' (frozen)>
dimos/utils/data.py:420: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:406: in _ensure_downloaded
    resolved = get_data(object.__getattribute__(self, "_lfs_filename"))
        resolved   = None
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:386: in get_data
    _materialize_archive(archive, top_level, reference.parts[1:], data_dir, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        file_path  = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        reference  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        remote_archive = 'data/unitree_g1_local_planner_precomputed_paths.tar.gz'
        requested  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:316: in _materialize_archive
    _extract_archive(archive, staging, top_level, requested, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-if1a_n_a')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:218: in _extract_archive
    path = _archive_member_path(member, top_level)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fece7f99240>
        members    = [<TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fece7f99240>, <TarInfo 'unitree_g1_local_planner_precom... at 0x7fece7f99540>, <TarInfo 'unitree_g1_local_planner_precomputed_paths/correspondences.txt' at 0x7fece7f996c0>, ...]
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        root_kind  = None
        seen       = set()
        staged_top = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-if1a_n_a/unitree_g1_local_planner_precomputed_paths')
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-if1a_n_a')
        tar        = <tarfile.TarFile object at 0x7fece7fbd5b0>
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
        validated  = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

member = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fece7f99240>
top_level = 'unitree_g1_local_planner_precomputed_paths'

    def _archive_member_path(member: tarfile.TarInfo, top_level: str) -> PurePosixPath:
        name = member.name
        if not name or name.startswith("/") or "\\" in name:
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        parts = name.split("/")
        if parts[-1] == "":
            parts.pop()
        if not parts or any(part in ("", ".", "..") for part in parts):
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        path = PurePosixPath(*parts)
        if path.parts[0] != top_level:
>           raise RuntimeError(f"Archive member {name!r} has the wrong root")
E           RuntimeError: Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root

member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fece7f99240>
name       = '._unitree_g1_local_planner_precomputed_paths'
parts      = ['._unitree_g1_local_planner_precomputed_paths']
path       = PurePosixPath('._unitree_g1_local_planner_precomputed_paths')
top_level  = 'unitree_g1_local_planner_precomputed_paths'

dimos/utils/data.py:161: RuntimeError
dimos.codebase_checks.test_blueprint_kwargs::test_blueprint_atom_kwargs_match_module_config[coordinator-mobile-manip-mock]
Stack Traces | 0.058s run time
blueprint_name = 'coordinator-mobile-manip-mock'

    @pytest.mark.parametrize("blueprint_name", _blueprint_params())
    def test_blueprint_atom_kwargs_match_module_config(blueprint_name: str) -> None:
        """Fail when blueprint kwargs cannot be consumed by their target module."""
>       blueprint = _get_blueprint_or_skip(blueprint_name)

blueprint_name = 'coordinator-mobile-manip-mock'

dimos/codebase_checks/test_blueprint_kwargs.py:91: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/codebase_checks/test_blueprint_kwargs.py:36: in _get_blueprint_or_skip
    return get_blueprint_by_name(blueprint_name)
        blueprint_name = 'coordinator-mobile-manip-mock'
        message    = "Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root"
dimos/robot/get_all_blueprints.py:51: in get_blueprint_by_name
    module = __import__(module_path, fromlist=[attr])
        attr       = 'coordinator_mobile_manip_mock'
        module_path = 'dimos.control.blueprints.mobile'
        name       = 'coordinator-mobile-manip-mock'
.../control/blueprints/mobile.py:139: in <module>
    "paths_dir": str(G1_LOCAL_PLANNER_PRECOMPUTED_PATHS),
        ControlCoordinator = <class 'dimos.control.coordinator.ControlCoordinator'>
        FastLio2   = <class 'dimos.hardware.sensors.lidar.fastlio2.module.FastLio2'>
        G1_LOCAL_PLANNER_PRECOMPUTED_PATHS = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
        HardwareComponent = <class 'dimos.control.components.HardwareComponent'>
        HardwareType = <enum 'HardwareType'>
        KeyboardTeleop = <class 'dimos.robot.unitree.keyboard_teleop.KeyboardTeleop'>
        MovementManager = <class 'dimos.navigation.movement_manager.movement_manager.MovementManager'>
        RerunBridgeModule = <class 'dimos.visualization.rerun.bridge.RerunBridgeModule'>
        RerunWebSocketServer = <class 'dimos.visualization.rerun.websocket_server.RerunWebSocketServer'>
        TaskConfig = <class 'dimos.control.coordinator.TaskConfig'>
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/mobile.cpython-312.pyc'
        __doc__    = 'Mobile manipulation coordinator blueprints.\n\nUsage:\n    dimos run coordinator-mock-twist-base                # Moc... teleop\n    dimos run coordinator-flowbase-nav                   # FlowBase + FastLio2 + nav stack (click-to-drive)\n'
        __file__   = '/__w/dimos/dimos/.../control/blueprints/mobile.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7fed647e6930>
        __name__   = 'dimos.control.blueprints.mobile'
        __package__ = 'dimos.control.blueprints'
        __spec__   = ModuleSpec(name='dimos.control.blueprints.mobile', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fed647e6930>, origin='/__w/dimos/dimos/.../control/blueprints/mobile.py')
        _base_joints = ['base/vx', 'base/vy', 'base/wz']
        _flowbase_twist_base = <function _flowbase_twist_base at 0x7fed648fcae0>
        _mock_twist_base = <function _mock_twist_base at 0x7fed648fca40>
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0x7fefb22a14e0>
        cmu_nav_rerun_config = <function cmu_nav_rerun_config at 0x7fed56fd18a0>
        coordinator_flowbase = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_flowbase_keyboard_teleop = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_mock_twist_base = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        create_cmu_nav = <function create_cmu_nav at 0x7fed56fd0b80>
        make_joints = <function make_joints at 0x7fedb12e6160>
        make_twist_base_joints = <function make_twist_base_joints at 0x7fedb12e5c60>
        os         = <module 'os' (frozen)>
dimos/utils/data.py:420: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:406: in _ensure_downloaded
    resolved = get_data(object.__getattribute__(self, "_lfs_filename"))
        resolved   = None
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:386: in get_data
    _materialize_archive(archive, top_level, reference.parts[1:], data_dir, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        file_path  = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        reference  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        remote_archive = 'data/unitree_g1_local_planner_precomputed_paths.tar.gz'
        requested  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:316: in _materialize_archive
    _extract_archive(archive, staging, top_level, requested, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-m4yiq3sv')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:218: in _extract_archive
    path = _archive_member_path(member, top_level)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645efe80>
        members    = [<TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645efe80>, <TarInfo 'unitree_g1_local_planner_precom... at 0x7fed64900100>, <TarInfo 'unitree_g1_local_planner_precomputed_paths/correspondences.txt' at 0x7fed64900340>, ...]
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        root_kind  = None
        seen       = set()
        staged_top = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-m4yiq3sv/unitree_g1_local_planner_precomputed_paths')
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-m4yiq3sv')
        tar        = <tarfile.TarFile object at 0x7fed647ec560>
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
        validated  = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

member = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645efe80>
top_level = 'unitree_g1_local_planner_precomputed_paths'

    def _archive_member_path(member: tarfile.TarInfo, top_level: str) -> PurePosixPath:
        name = member.name
        if not name or name.startswith("/") or "\\" in name:
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        parts = name.split("/")
        if parts[-1] == "":
            parts.pop()
        if not parts or any(part in ("", ".", "..") for part in parts):
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        path = PurePosixPath(*parts)
        if path.parts[0] != top_level:
>           raise RuntimeError(f"Archive member {name!r} has the wrong root")
E           RuntimeError: Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root

member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645efe80>
name       = '._unitree_g1_local_planner_precomputed_paths'
parts      = ['._unitree_g1_local_planner_precomputed_paths']
path       = PurePosixPath('._unitree_g1_local_planner_precomputed_paths')
top_level  = 'unitree_g1_local_planner_precomputed_paths'

dimos/utils/data.py:161: RuntimeError
dimos.mapping.osm.test_osm::test_get_osm_map
Stack Traces | 0.058s run time
mock_openstreetmap_org = None

    def test_get_osm_map(mock_openstreetmap_org: None) -> None:
        position = LatLon(lat=37.751857, lon=-122.431265)
>       map_image = get_osm_map(position, 18, 4)

mock_openstreetmap_org = None
position   = LatLon(lat=37.751857, lon=-122.431265, alt=None)

.../mapping/osm/test_osm.py:49: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

position = LatLon(lat=37.751857, lon=-122.431265, alt=None), zoom_level = 18
n_tiles = 4

    def get_osm_map(position: LatLon, zoom_level: int = 18, n_tiles: int = 4) -> MapImage:
        """
        Tiles are always 256x256 pixels. With n_tiles=4, this should produce a 1024x1024 image.
        Downloads tiles in parallel with a maximum of 5 concurrent downloads.
    
        Args:
            position (LatLon): center position
            zoom_level (int, optional): Defaults to 18.
            n_tiles (int, optional): generate a map of n_tiles by n_tiles.
        """
        center_x, center_y = _lat_lon_to_tile(position.lat, position.lon, zoom_level)
    
        start_x = int(center_x - n_tiles / 2.0)
        start_y = int(center_y - n_tiles / 2.0)
    
        tile_size = 256
        output_size = tile_size * n_tiles
        output_img = PILImage.new("RGB", (output_size, output_size))
    
        n_failed_tiles = 0
    
        # Prepare all tile download tasks
        download_tasks = []
        for row in range(n_tiles):
            for col in range(n_tiles):
                tile_x = start_x + col
                tile_y = start_y + row
                download_tasks.append((row, col, tile_x, tile_y, zoom_level))
    
        # Download tiles in parallel with max 5 workers
        with ThreadPoolExecutor(max_workers=5) as executor:
            futures = [executor.submit(_download_tile, task) for task in download_tasks]
    
            for future in as_completed(futures):
                row, col, tile_img = future.result()
    
                if tile_img is not None:
                    paste_x = col * tile_size
                    paste_y = row * tile_size
                    output_img.paste(tile_img, (paste_x, paste_y))
                else:
                    n_failed_tiles += 1
    
        if n_failed_tiles > 3:
>           raise ValueError("Failed to download all tiles for the requested map.")
E           ValueError: Failed to download all tiles for the requested map.

center_x   = 41920.27352177778
center_y   = 101345.36949820863
col        = 3
download_tasks = [(0, 0, 41918, 101343, 18), (0, 1, 41919, 101343, 18), (0, 2, 41920, 101343, 18), (0, 3, 41921, 101343, 18), (1, 0, 41918, 101344, 18), (1, 1, 41919, 101344, 18), ...]
executor   = <concurrent.futures.thread.ThreadPoolExecutor object at 0x7fed7c1ac800>
future     = <Future at 0x7fed7c1b3380 state=finished returned tuple>
futures    = [<Future at 0x7fed7c1a9760 state=finished returned tuple>, <Future at 0x7fed7c1ab500 state=finished returned tuple>, <...Future at 0x7fed7c1a8980 state=finished returned tuple>, <Future at 0x7fed7c1a8ef0 state=finished returned tuple>, ...]
n_failed_tiles = 16
n_tiles    = 4
output_img = <PIL.Image.Image image mode=RGB size=1024x1024 at 0x7FED7C1A84D0>
output_size = 1024
position   = LatLon(lat=37.751857, lon=-122.431265, alt=None)
row        = 3
start_x    = 41918
start_y    = 101343
tile_img   = None
tile_size  = 256
tile_x     = 41921
tile_y     = 101346
zoom_level = 18

.../mapping/osm/osm.py:176: ValueError
dimos.robot.test_all_blueprints::test_self_hosted_blueprint_is_valid[alfred-nav]
Stack Traces | 0.062s run time
blueprint_name = 'alfred-nav'

    @pytest.mark.self_hosted
    @pytest.mark.parametrize("blueprint_name", SELF_HOSTED_BLUEPRINTS)
    def test_self_hosted_blueprint_is_valid(blueprint_name: str) -> None:
        """Validate blueprints that need heavy deps or LFS — self-hosted runner only."""
>       _check_blueprint(blueprint_name)

blueprint_name = 'alfred-nav'

dimos/robot/test_all_blueprints.py:116: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/robot/test_all_blueprints.py:85: in _check_blueprint
    blueprint = get_blueprint_by_name(blueprint_name)
        blueprint_name = 'alfred-nav'
        message    = "Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root"
dimos/robot/get_all_blueprints.py:51: in get_blueprint_by_name
    module = __import__(module_path, fromlist=[attr])
        attr       = 'alfred_nav'
        module_path = 'dimos.robot.diy.alfred.blueprints.alfred_nav'
        name       = 'alfred-nav'
.../alfred/blueprints/alfred_nav.py:39: in <module>
    "paths_dir": str(LOCAL_PLANNER_PRECOMPUTED_PATHS),
        AlfredHighLevel = <class 'dimos.robot.diy.alfred.effector_high_level.AlfredHighLevel'>
        Any        = typing.Any
        FastLio2   = <class 'dimos.hardware.sensors.lidar.fastlio2.module.FastLio2'>
        LOCAL_PLANNER_PRECOMPUTED_PATHS = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
        MovementManager = <class 'dimos.navigation.movement_manager.movement_manager.MovementManager'>
        __annotations__ = {}
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/alfred_nav.cpython-312.pyc'
        __doc__    = None
        __file__   = '/__w/dimos/dimos/.../alfred/blueprints/alfred_nav.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7feceda56db0>
        __name__   = 'dimos.robot.diy.alfred.blueprints.alfred_nav'
        __package__ = 'dimos.robot.diy.alfred.blueprints'
        __spec__   = ModuleSpec(name='dimos.robot.diy.alfred.blueprints.alfred_nav', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7feceda56db0>, origin='/__w/dimos/dimos/.../alfred/blueprints/alfred_nav.py')
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0x7fefb22a14e0>
        cmu_nav_rerun_config = <function cmu_nav_rerun_config at 0x7fed56fd18a0>
        create_cmu_nav = <function create_cmu_nav at 0x7fed56fd0b80>
        global_config = GlobalConfig(robot_ip=None, robot_ips=None, unitree_aes_128_key=None, xarm7_ip=None, xarm6_ip=None, can_port=None, dev...detection_model='moondream', listen_host='127.0.0.1', dimsim_scene='apartment', dimsim_port=8090, dimsim_headless=True)
        os         = <module 'os' (frozen)>
        vis_module = <function vis_module at 0x7fed66e3bce0>
dimos/utils/data.py:420: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:406: in _ensure_downloaded
    resolved = get_data(object.__getattribute__(self, "_lfs_filename"))
        resolved   = None
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:386: in get_data
    _materialize_archive(archive, top_level, reference.parts[1:], data_dir, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        file_path  = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        reference  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        remote_archive = 'data/unitree_g1_local_planner_precomputed_paths.tar.gz'
        requested  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:316: in _materialize_archive
    _extract_archive(archive, staging, top_level, requested, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-jh8d80wm')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:218: in _extract_archive
    path = _archive_member_path(member, top_level)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed51772b00>
        members    = [<TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed51772b00>, <TarInfo 'unitree_g1_local_planner_precom... at 0x7fed51770ac0>, <TarInfo 'unitree_g1_local_planner_precomputed_paths/correspondences.txt' at 0x7fed51770a00>, ...]
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        root_kind  = None
        seen       = set()
        staged_top = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-jh8d80wm/unitree_g1_local_planner_precomputed_paths')
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-jh8d80wm')
        tar        = <tarfile.TarFile object at 0x7feceda56b40>
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
        validated  = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

member = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed51772b00>
top_level = 'unitree_g1_local_planner_precomputed_paths'

    def _archive_member_path(member: tarfile.TarInfo, top_level: str) -> PurePosixPath:
        name = member.name
        if not name or name.startswith("/") or "\\" in name:
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        parts = name.split("/")
        if parts[-1] == "":
            parts.pop()
        if not parts or any(part in ("", ".", "..") for part in parts):
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        path = PurePosixPath(*parts)
        if path.parts[0] != top_level:
>           raise RuntimeError(f"Archive member {name!r} has the wrong root")
E           RuntimeError: Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root

member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed51772b00>
name       = '._unitree_g1_local_planner_precomputed_paths'
parts      = ['._unitree_g1_local_planner_precomputed_paths']
path       = PurePosixPath('._unitree_g1_local_planner_precomputed_paths')
top_level  = 'unitree_g1_local_planner_precomputed_paths'

dimos/utils/data.py:161: RuntimeError
dimos.codebase_checks.test_blueprint_kwargs::test_blueprint_atom_kwargs_match_module_config[coordinator-mock-twist-base]
Stack Traces | 0.065s run time
blueprint_name = 'coordinator-mock-twist-base'

    @pytest.mark.parametrize("blueprint_name", _blueprint_params())
    def test_blueprint_atom_kwargs_match_module_config(blueprint_name: str) -> None:
        """Fail when blueprint kwargs cannot be consumed by their target module."""
>       blueprint = _get_blueprint_or_skip(blueprint_name)

blueprint_name = 'coordinator-mock-twist-base'

dimos/codebase_checks/test_blueprint_kwargs.py:91: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/codebase_checks/test_blueprint_kwargs.py:36: in _get_blueprint_or_skip
    return get_blueprint_by_name(blueprint_name)
        blueprint_name = 'coordinator-mock-twist-base'
        message    = "Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root"
dimos/robot/get_all_blueprints.py:51: in get_blueprint_by_name
    module = __import__(module_path, fromlist=[attr])
        attr       = 'coordinator_mock_twist_base'
        module_path = 'dimos.control.blueprints.mobile'
        name       = 'coordinator-mock-twist-base'
.../control/blueprints/mobile.py:139: in <module>
    "paths_dir": str(G1_LOCAL_PLANNER_PRECOMPUTED_PATHS),
        ControlCoordinator = <class 'dimos.control.coordinator.ControlCoordinator'>
        FastLio2   = <class 'dimos.hardware.sensors.lidar.fastlio2.module.FastLio2'>
        G1_LOCAL_PLANNER_PRECOMPUTED_PATHS = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
        HardwareComponent = <class 'dimos.control.components.HardwareComponent'>
        HardwareType = <enum 'HardwareType'>
        KeyboardTeleop = <class 'dimos.robot.unitree.keyboard_teleop.KeyboardTeleop'>
        MovementManager = <class 'dimos.navigation.movement_manager.movement_manager.MovementManager'>
        RerunBridgeModule = <class 'dimos.visualization.rerun.bridge.RerunBridgeModule'>
        RerunWebSocketServer = <class 'dimos.visualization.rerun.websocket_server.RerunWebSocketServer'>
        TaskConfig = <class 'dimos.control.coordinator.TaskConfig'>
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/mobile.cpython-312.pyc'
        __doc__    = 'Mobile manipulation coordinator blueprints.\n\nUsage:\n    dimos run coordinator-mock-twist-base                # Moc... teleop\n    dimos run coordinator-flowbase-nav                   # FlowBase + FastLio2 + nav stack (click-to-drive)\n'
        __file__   = '/__w/dimos/dimos/.../control/blueprints/mobile.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7fed647bfec0>
        __name__   = 'dimos.control.blueprints.mobile'
        __package__ = 'dimos.control.blueprints'
        __spec__   = ModuleSpec(name='dimos.control.blueprints.mobile', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fed647bfec0>, origin='/__w/dimos/dimos/.../control/blueprints/mobile.py')
        _base_joints = ['base/vx', 'base/vy', 'base/wz']
        _flowbase_twist_base = <function _flowbase_twist_base at 0x7fed648fc180>
        _mock_twist_base = <function _mock_twist_base at 0x7fed648fc220>
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0x7fefb22a14e0>
        cmu_nav_rerun_config = <function cmu_nav_rerun_config at 0x7fed56fd18a0>
        coordinator_flowbase = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_flowbase_keyboard_teleop = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_mock_twist_base = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        create_cmu_nav = <function create_cmu_nav at 0x7fed56fd0b80>
        make_joints = <function make_joints at 0x7fedb12e6160>
        make_twist_base_joints = <function make_twist_base_joints at 0x7fedb12e5c60>
        os         = <module 'os' (frozen)>
dimos/utils/data.py:420: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:406: in _ensure_downloaded
    resolved = get_data(object.__getattribute__(self, "_lfs_filename"))
        resolved   = None
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:386: in get_data
    _materialize_archive(archive, top_level, reference.parts[1:], data_dir, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        file_path  = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        reference  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        remote_archive = 'data/unitree_g1_local_planner_precomputed_paths.tar.gz'
        requested  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:316: in _materialize_archive
    _extract_archive(archive, staging, top_level, requested, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-m_qimzqv')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:218: in _extract_archive
    path = _archive_member_path(member, top_level)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645eec80>
        members    = [<TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645eec80>, <TarInfo 'unitree_g1_local_planner_precom... at 0x7fed645ec7c0>, <TarInfo 'unitree_g1_local_planner_precomputed_paths/correspondences.txt' at 0x7fed645eeb00>, ...]
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        root_kind  = None
        seen       = set()
        staged_top = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-m_qimzqv/unitree_g1_local_planner_precomputed_paths')
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-m_qimzqv')
        tar        = <tarfile.TarFile object at 0x7fed647ed880>
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
        validated  = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

member = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645eec80>
top_level = 'unitree_g1_local_planner_precomputed_paths'

    def _archive_member_path(member: tarfile.TarInfo, top_level: str) -> PurePosixPath:
        name = member.name
        if not name or name.startswith("/") or "\\" in name:
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        parts = name.split("/")
        if parts[-1] == "":
            parts.pop()
        if not parts or any(part in ("", ".", "..") for part in parts):
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        path = PurePosixPath(*parts)
        if path.parts[0] != top_level:
>           raise RuntimeError(f"Archive member {name!r} has the wrong root")
E           RuntimeError: Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root

member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645eec80>
name       = '._unitree_g1_local_planner_precomputed_paths'
parts      = ['._unitree_g1_local_planner_precomputed_paths']
path       = PurePosixPath('._unitree_g1_local_planner_precomputed_paths')
top_level  = 'unitree_g1_local_planner_precomputed_paths'

dimos/utils/data.py:161: RuntimeError
dimos.robot.test_all_blueprints::test_self_hosted_blueprint_is_valid[coordinator-flowbase]
Stack Traces | 0.067s run time
blueprint_name = 'coordinator-flowbase'

    @pytest.mark.self_hosted
    @pytest.mark.parametrize("blueprint_name", SELF_HOSTED_BLUEPRINTS)
    def test_self_hosted_blueprint_is_valid(blueprint_name: str) -> None:
        """Validate blueprints that need heavy deps or LFS — self-hosted runner only."""
>       _check_blueprint(blueprint_name)

blueprint_name = 'coordinator-flowbase'

dimos/robot/test_all_blueprints.py:116: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/robot/test_all_blueprints.py:85: in _check_blueprint
    blueprint = get_blueprint_by_name(blueprint_name)
        blueprint_name = 'coordinator-flowbase'
        message    = "Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root"
dimos/robot/get_all_blueprints.py:51: in get_blueprint_by_name
    module = __import__(module_path, fromlist=[attr])
        attr       = 'coordinator_flowbase'
        module_path = 'dimos.control.blueprints.mobile'
        name       = 'coordinator-flowbase'
.../control/blueprints/mobile.py:139: in <module>
    "paths_dir": str(G1_LOCAL_PLANNER_PRECOMPUTED_PATHS),
        ControlCoordinator = <class 'dimos.control.coordinator.ControlCoordinator'>
        FastLio2   = <class 'dimos.hardware.sensors.lidar.fastlio2.module.FastLio2'>
        G1_LOCAL_PLANNER_PRECOMPUTED_PATHS = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
        HardwareComponent = <class 'dimos.control.components.HardwareComponent'>
        HardwareType = <enum 'HardwareType'>
        KeyboardTeleop = <class 'dimos.robot.unitree.keyboard_teleop.KeyboardTeleop'>
        MovementManager = <class 'dimos.navigation.movement_manager.movement_manager.MovementManager'>
        RerunBridgeModule = <class 'dimos.visualization.rerun.bridge.RerunBridgeModule'>
        RerunWebSocketServer = <class 'dimos.visualization.rerun.websocket_server.RerunWebSocketServer'>
        TaskConfig = <class 'dimos.control.coordinator.TaskConfig'>
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/mobile.cpython-312.pyc'
        __doc__    = 'Mobile manipulation coordinator blueprints.\n\nUsage:\n    dimos run coordinator-mock-twist-base                # Moc... teleop\n    dimos run coordinator-flowbase-nav                   # FlowBase + FastLio2 + nav stack (click-to-drive)\n'
        __file__   = '/__w/dimos/dimos/.../control/blueprints/mobile.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7feceda561e0>
        __name__   = 'dimos.control.blueprints.mobile'
        __package__ = 'dimos.control.blueprints'
        __spec__   = ModuleSpec(name='dimos.control.blueprints.mobile', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7feceda561e0>, origin='/__w/dimos/dimos/.../control/blueprints/mobile.py')
        _base_joints = ['base/vx', 'base/vy', 'base/wz']
        _flowbase_twist_base = <function _flowbase_twist_base at 0x7feceda67740>
        _mock_twist_base = <function _mock_twist_base at 0x7feceda676a0>
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0x7fefb22a14e0>
        cmu_nav_rerun_config = <function cmu_nav_rerun_config at 0x7fed56fd18a0>
        coordinator_flowbase = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_flowbase_keyboard_teleop = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_mock_twist_base = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        create_cmu_nav = <function create_cmu_nav at 0x7fed56fd0b80>
        make_joints = <function make_joints at 0x7fedb12e6160>
        make_twist_base_joints = <function make_twist_base_joints at 0x7fedb12e5c60>
        os         = <module 'os' (frozen)>
dimos/utils/data.py:420: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:406: in _ensure_downloaded
    resolved = get_data(object.__getattribute__(self, "_lfs_filename"))
        resolved   = None
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:386: in get_data
    _materialize_archive(archive, top_level, reference.parts[1:], data_dir, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        file_path  = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        reference  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        remote_archive = 'data/unitree_g1_local_planner_precomputed_paths.tar.gz'
        requested  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:316: in _materialize_archive
    _extract_archive(archive, staging, top_level, requested, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-lv67zc7c')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:218: in _extract_archive
    path = _archive_member_path(member, top_level)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645ee5c0>
        members    = [<TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645ee5c0>, <TarInfo 'unitree_g1_local_planner_precom... at 0x7fed51773640>, <TarInfo 'unitree_g1_local_planner_precomputed_paths/correspondences.txt' at 0x7fed51770400>, ...]
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        root_kind  = None
        seen       = set()
        staged_top = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-lv67zc7c/unitree_g1_local_planner_precomputed_paths')
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-lv67zc7c')
        tar        = <tarfile.TarFile object at 0x7feceda56330>
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
        validated  = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

member = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645ee5c0>
top_level = 'unitree_g1_local_planner_precomputed_paths'

    def _archive_member_path(member: tarfile.TarInfo, top_level: str) -> PurePosixPath:
        name = member.name
        if not name or name.startswith("/") or "\\" in name:
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        parts = name.split("/")
        if parts[-1] == "":
            parts.pop()
        if not parts or any(part in ("", ".", "..") for part in parts):
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        path = PurePosixPath(*parts)
        if path.parts[0] != top_level:
>           raise RuntimeError(f"Archive member {name!r} has the wrong root")
E           RuntimeError: Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root

member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645ee5c0>
name       = '._unitree_g1_local_planner_precomputed_paths'
parts      = ['._unitree_g1_local_planner_precomputed_paths']
path       = PurePosixPath('._unitree_g1_local_planner_precomputed_paths')
top_level  = 'unitree_g1_local_planner_precomputed_paths'

dimos/utils/data.py:161: RuntimeError
dimos.codebase_checks.test_blueprint_kwargs::test_blueprint_atom_kwargs_match_module_config[coordinator-flowbase]
Stack Traces | 0.07s run time
blueprint_name = 'coordinator-flowbase'

    @pytest.mark.parametrize("blueprint_name", _blueprint_params())
    def test_blueprint_atom_kwargs_match_module_config(blueprint_name: str) -> None:
        """Fail when blueprint kwargs cannot be consumed by their target module."""
>       blueprint = _get_blueprint_or_skip(blueprint_name)

blueprint_name = 'coordinator-flowbase'

dimos/codebase_checks/test_blueprint_kwargs.py:91: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/codebase_checks/test_blueprint_kwargs.py:36: in _get_blueprint_or_skip
    return get_blueprint_by_name(blueprint_name)
        blueprint_name = 'coordinator-flowbase'
        message    = "Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root"
dimos/robot/get_all_blueprints.py:51: in get_blueprint_by_name
    module = __import__(module_path, fromlist=[attr])
        attr       = 'coordinator_flowbase'
        module_path = 'dimos.control.blueprints.mobile'
        name       = 'coordinator-flowbase'
.../control/blueprints/mobile.py:139: in <module>
    "paths_dir": str(G1_LOCAL_PLANNER_PRECOMPUTED_PATHS),
        ControlCoordinator = <class 'dimos.control.coordinator.ControlCoordinator'>
        FastLio2   = <class 'dimos.hardware.sensors.lidar.fastlio2.module.FastLio2'>
        G1_LOCAL_PLANNER_PRECOMPUTED_PATHS = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
        HardwareComponent = <class 'dimos.control.components.HardwareComponent'>
        HardwareType = <enum 'HardwareType'>
        KeyboardTeleop = <class 'dimos.robot.unitree.keyboard_teleop.KeyboardTeleop'>
        MovementManager = <class 'dimos.navigation.movement_manager.movement_manager.MovementManager'>
        RerunBridgeModule = <class 'dimos.visualization.rerun.bridge.RerunBridgeModule'>
        RerunWebSocketServer = <class 'dimos.visualization.rerun.websocket_server.RerunWebSocketServer'>
        TaskConfig = <class 'dimos.control.coordinator.TaskConfig'>
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/mobile.cpython-312.pyc'
        __doc__    = 'Mobile manipulation coordinator blueprints.\n\nUsage:\n    dimos run coordinator-mock-twist-base                # Moc... teleop\n    dimos run coordinator-flowbase-nav                   # FlowBase + FastLio2 + nav stack (click-to-drive)\n'
        __file__   = '/__w/dimos/dimos/.../control/blueprints/mobile.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7fed647a9670>
        __name__   = 'dimos.control.blueprints.mobile'
        __package__ = 'dimos.control.blueprints'
        __spec__   = ModuleSpec(name='dimos.control.blueprints.mobile', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fed647a9670>, origin='/__w/dimos/dimos/.../control/blueprints/mobile.py')
        _base_joints = ['base/vx', 'base/vy', 'base/wz']
        _flowbase_twist_base = <function _flowbase_twist_base at 0x7fed640d2980>
        _mock_twist_base = <function _mock_twist_base at 0x7fed56fd3560>
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0x7fefb22a14e0>
        cmu_nav_rerun_config = <function cmu_nav_rerun_config at 0x7fed56fd18a0>
        coordinator_flowbase = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_flowbase_keyboard_teleop = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        coordinator_mock_twist_base = Blueprint(blueprints=(BlueprintAtom(kwargs={'hardware': [HardwareComponent(hardware_id='base', hardware_type=<Hardware..._map=mappingproxy({('controlcoordinator', 'twist_command'): 'cmd_vel'}), requirement_checks=(), configurator_checks=())
        create_cmu_nav = <function create_cmu_nav at 0x7fed56fd0b80>
        make_joints = <function make_joints at 0x7fedb12e6160>
        make_twist_base_joints = <function make_twist_base_joints at 0x7fedb12e5c60>
        os         = <module 'os' (frozen)>
dimos/utils/data.py:420: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:406: in _ensure_downloaded
    resolved = get_data(object.__getattribute__(self, "_lfs_filename"))
        resolved   = None
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:386: in get_data
    _materialize_archive(archive, top_level, reference.parts[1:], data_dir, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        file_path  = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        reference  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        remote_archive = 'data/unitree_g1_local_planner_precomputed_paths.tar.gz'
        requested  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:316: in _materialize_archive
    _extract_archive(archive, staging, top_level, requested, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-vrqghuns')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:218: in _extract_archive
    path = _archive_member_path(member, top_level)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645edc00>
        members    = [<TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645edc00>, <TarInfo 'unitree_g1_local_planner_precom... at 0x7fed645ee200>, <TarInfo 'unitree_g1_local_planner_precomputed_paths/correspondences.txt' at 0x7fed645ee440>, ...]
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        root_kind  = None
        seen       = set()
        staged_top = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-vrqghuns/unitree_g1_local_planner_precomputed_paths')
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-vrqghuns')
        tar        = <tarfile.TarFile object at 0x7fed6479c3e0>
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
        validated  = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

member = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645edc00>
top_level = 'unitree_g1_local_planner_precomputed_paths'

    def _archive_member_path(member: tarfile.TarInfo, top_level: str) -> PurePosixPath:
        name = member.name
        if not name or name.startswith("/") or "\\" in name:
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        parts = name.split("/")
        if parts[-1] == "":
            parts.pop()
        if not parts or any(part in ("", ".", "..") for part in parts):
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        path = PurePosixPath(*parts)
        if path.parts[0] != top_level:
>           raise RuntimeError(f"Archive member {name!r} has the wrong root")
E           RuntimeError: Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root

member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645edc00>
name       = '._unitree_g1_local_planner_precomputed_paths'
parts      = ['._unitree_g1_local_planner_precomputed_paths']
path       = PurePosixPath('._unitree_g1_local_planner_precomputed_paths')
top_level  = 'unitree_g1_local_planner_precomputed_paths'

dimos/utils/data.py:161: RuntimeError
dimos.codebase_checks.test_blueprint_kwargs::test_blueprint_atom_kwargs_match_module_config[unitree-g1-nav-sim]
Stack Traces | 0.072s run time
blueprint_name = 'unitree-g1-nav-sim'

    @pytest.mark.parametrize("blueprint_name", _blueprint_params())
    def test_blueprint_atom_kwargs_match_module_config(blueprint_name: str) -> None:
        """Fail when blueprint kwargs cannot be consumed by their target module."""
>       blueprint = _get_blueprint_or_skip(blueprint_name)

blueprint_name = 'unitree-g1-nav-sim'

dimos/codebase_checks/test_blueprint_kwargs.py:91: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/codebase_checks/test_blueprint_kwargs.py:36: in _get_blueprint_or_skip
    return get_blueprint_by_name(blueprint_name)
        blueprint_name = 'unitree-g1-nav-sim'
        message    = "Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root"
dimos/robot/get_all_blueprints.py:51: in get_blueprint_by_name
    module = __import__(module_path, fromlist=[attr])
        attr       = 'unitree_g1_nav_sim'
        module_path = 'dimos.robot.unitree.g1.blueprints.navigation.unitree_g1_nav_sim'
        name       = 'unitree-g1-nav-sim'
.../blueprints/navigation/unitree_g1_nav_sim.py:41: in <module>
    "paths_dir": str(G1_LOCAL_PLANNER_PRECOMPUTED_PATHS),
        Any        = typing.Any
        G1         = G1Config(name='unitree_g1', model_path=PosixPath('.../unitree/g1/g1.urdf'), height_clearance=...sition=Vector([          0           0         1.2]), orientation=Quaternion(0.000000, 0.000000, 0.000000, 1.000000))})
        G1_LOCAL_PLANNER_PRECOMPUTED_PATHS = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
        MovementManager = <class 'dimos.navigation.movement_manager.movement_manager.MovementManager'>
        UnityBridgeModule = <class 'dimos.simulation.unity.module.UnityBridgeModule'>
        __annotations__ = {}
        __builtins__ = <builtins>
        __cached__ = '.../navigation/__pycache__/unitree_g1_nav_sim.cpython-312.pyc'
        __doc__    = None
        __file__   = '/__w/dimos/dimos/.../blueprints/navigation/unitree_g1_nav_sim.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7fed64a0a6c0>
        __name__   = 'dimos.robot.unitree.g1.blueprints.navigation.unitree_g1_nav_sim'
        __package__ = 'dimos.robot.unitree.g1.blueprints.navigation'
        __spec__   = ModuleSpec(name='dimos.robot.unitree.g1.blueprints.navigation.unitree_g1_nav_sim', loader=<_frozen_importlib_external....bject at 0x7fed64a0a6c0>, origin='/__w/dimos/dimos/.../blueprints/navigation/unitree_g1_nav_sim.py')
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0x7fefb22a14e0>
        cmu_nav_rerun_config = <function cmu_nav_rerun_config at 0x7fed56fd18a0>
        create_cmu_nav = <function create_cmu_nav at 0x7fed56fd0b80>
        g1_static_robot = <function g1_static_robot at 0x7fed6497c7c0>
        global_config = GlobalConfig(robot_ip=None, robot_ips=None, unitree_aes_128_key=None, xarm7_ip=None, xarm6_ip=None, can_port=None, dev...detection_model='moondream', listen_host='127.0.0.1', dimsim_scene='apartment', dimsim_port=8090, dimsim_headless=True)
        vis_module = <function vis_module at 0x7fed66e3bce0>
dimos/utils/data.py:420: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:406: in _ensure_downloaded
    resolved = get_data(object.__getattribute__(self, "_lfs_filename"))
        resolved   = None
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:386: in get_data
    _materialize_archive(archive, top_level, reference.parts[1:], data_dir, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        file_path  = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        reference  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        remote_archive = 'data/unitree_g1_local_planner_precomputed_paths.tar.gz'
        requested  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:316: in _materialize_archive
    _extract_archive(archive, staging, top_level, requested, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-fcl2bvgx')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:218: in _extract_archive
    path = _archive_member_path(member, top_level)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645efd00>
        members    = [<TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645efd00>, <TarInfo 'unitree_g1_local_planner_precom... at 0x7fed645eca00>, <TarInfo 'unitree_g1_local_planner_precomputed_paths/correspondences.txt' at 0x7fed64900940>, ...]
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        root_kind  = None
        seen       = set()
        staged_top = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-fcl2bvgx/unitree_g1_local_planner_precomputed_paths')
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-fcl2bvgx')
        tar        = <tarfile.TarFile object at 0x7fed64a0ac30>
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
        validated  = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

member = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645efd00>
top_level = 'unitree_g1_local_planner_precomputed_paths'

    def _archive_member_path(member: tarfile.TarInfo, top_level: str) -> PurePosixPath:
        name = member.name
        if not name or name.startswith("/") or "\\" in name:
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        parts = name.split("/")
        if parts[-1] == "":
            parts.pop()
        if not parts or any(part in ("", ".", "..") for part in parts):
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        path = PurePosixPath(*parts)
        if path.parts[0] != top_level:
>           raise RuntimeError(f"Archive member {name!r} has the wrong root")
E           RuntimeError: Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root

member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed645efd00>
name       = '._unitree_g1_local_planner_precomputed_paths'
parts      = ['._unitree_g1_local_planner_precomputed_paths']
path       = PurePosixPath('._unitree_g1_local_planner_precomputed_paths')
top_level  = 'unitree_g1_local_planner_precomputed_paths'

dimos/utils/data.py:161: RuntimeError
dimos.codebase_checks.test_blueprint_kwargs::test_blueprint_atom_kwargs_match_module_config[alfred-nav]
Stack Traces | 0.935s run time
blueprint_name = 'alfred-nav'

    @pytest.mark.parametrize("blueprint_name", _blueprint_params())
    def test_blueprint_atom_kwargs_match_module_config(blueprint_name: str) -> None:
        """Fail when blueprint kwargs cannot be consumed by their target module."""
>       blueprint = _get_blueprint_or_skip(blueprint_name)

blueprint_name = 'alfred-nav'

dimos/codebase_checks/test_blueprint_kwargs.py:91: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/codebase_checks/test_blueprint_kwargs.py:36: in _get_blueprint_or_skip
    return get_blueprint_by_name(blueprint_name)
        blueprint_name = 'alfred-nav'
        message    = "Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root"
dimos/robot/get_all_blueprints.py:51: in get_blueprint_by_name
    module = __import__(module_path, fromlist=[attr])
        attr       = 'alfred_nav'
        module_path = 'dimos.robot.diy.alfred.blueprints.alfred_nav'
        name       = 'alfred-nav'
.../alfred/blueprints/alfred_nav.py:39: in <module>
    "paths_dir": str(LOCAL_PLANNER_PRECOMPUTED_PATHS),
        AlfredHighLevel = <class 'dimos.robot.diy.alfred.effector_high_level.AlfredHighLevel'>
        Any        = typing.Any
        FastLio2   = <class 'dimos.hardware.sensors.lidar.fastlio2.module.FastLio2'>
        LOCAL_PLANNER_PRECOMPUTED_PATHS = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
        MovementManager = <class 'dimos.navigation.movement_manager.movement_manager.MovementManager'>
        __annotations__ = {}
        __builtins__ = <builtins>
        __cached__ = '.../blueprints/__pycache__/alfred_nav.cpython-312.pyc'
        __doc__    = None
        __file__   = '/__w/dimos/dimos/.../alfred/blueprints/alfred_nav.py'
        __loader__ = <_frozen_importlib_external.SourceFileLoader object at 0x7fed650192b0>
        __name__   = 'dimos.robot.diy.alfred.blueprints.alfred_nav'
        __package__ = 'dimos.robot.diy.alfred.blueprints'
        __spec__   = ModuleSpec(name='dimos.robot.diy.alfred.blueprints.alfred_nav', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7fed650192b0>, origin='/__w/dimos/dimos/.../alfred/blueprints/alfred_nav.py')
        annotations = _Feature((3, 7, 0, 'beta', 1), None, 16777216)
        autoconnect = <function autoconnect at 0x7fefb22a14e0>
        cmu_nav_rerun_config = <function cmu_nav_rerun_config at 0x7fed56fd18a0>
        create_cmu_nav = <function create_cmu_nav at 0x7fed56fd0b80>
        global_config = GlobalConfig(robot_ip=None, robot_ips=None, unitree_aes_128_key=None, xarm7_ip=None, xarm6_ip=None, can_port=None, dev...detection_model='moondream', listen_host='127.0.0.1', dimsim_scene='apartment', dimsim_port=8090, dimsim_headless=True)
        os         = <module 'os' (frozen)>
        vis_module = <function vis_module at 0x7fed66e3bce0>
dimos/utils/data.py:420: in __str__
    return str(self._ensure_downloaded())
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:406: in _ensure_downloaded
    resolved = get_data(object.__getattribute__(self, "_lfs_filename"))
        resolved   = None
        self       = <[RuntimeError("Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root") raised in repr()] LfsPath object at 0x7fed56f86150>
dimos/utils/data.py:386: in get_data
    _materialize_archive(archive, top_level, reference.parts[1:], data_dir, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        file_path  = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        reference  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        remote_archive = 'data/unitree_g1_local_planner_precomputed_paths.tar.gz'
        requested  = PosixPath('unitree_g1_local_planner_precomputed_paths')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:316: in _materialize_archive
    _extract_archive(archive, staging, top_level, requested, name)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        data_dir   = PosixPath('.../dimos/dimos/data')
        destination = PosixPath('.../dimos/dimos/data/unitree_g1_local_planner_precomputed_paths')
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-47m65v0b')
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
dimos/utils/data.py:218: in _extract_archive
    path = _archive_member_path(member, top_level)
        archive    = PosixPath('........./github/home/.cache.../f262d7f8775c2d507b1bfde62a5aa21cffabb3a1/data/unitree_g1_local_planner_precomputed_paths.tar.gz')
        member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed7d53eec0>
        members    = [<TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed7d53eec0>, <TarInfo 'unitree_g1_local_planner_precom... at 0x7fed645ec880>, <TarInfo 'unitree_g1_local_planner_precomputed_paths/correspondences.txt' at 0x7fed645ec580>, ...]
        name       = 'unitree_g1_local_planner_precomputed_paths'
        requested  = ()
        root_kind  = None
        seen       = set()
        staged_top = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-47m65v0b/unitree_g1_local_planner_precomputed_paths')
        staging    = PosixPath('.../dimos/dimos/data/.unitree_g1_local_planner_precomputed_paths.tmp-47m65v0b')
        tar        = <tarfile.TarFile object at 0x7fee03f5c260>
        top_level  = 'unitree_g1_local_planner_precomputed_paths'
        validated  = []
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

member = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed7d53eec0>
top_level = 'unitree_g1_local_planner_precomputed_paths'

    def _archive_member_path(member: tarfile.TarInfo, top_level: str) -> PurePosixPath:
        name = member.name
        if not name or name.startswith("/") or "\\" in name:
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        parts = name.split("/")
        if parts[-1] == "":
            parts.pop()
        if not parts or any(part in ("", ".", "..") for part in parts):
            raise RuntimeError(f"Unsafe archive member path {name!r}")
        path = PurePosixPath(*parts)
        if path.parts[0] != top_level:
>           raise RuntimeError(f"Archive member {name!r} has the wrong root")
E           RuntimeError: Archive member '._unitree_g1_local_planner_precomputed_paths' has the wrong root

member     = <TarInfo '._unitree_g1_local_planner_precomputed_paths' at 0x7fed7d53eec0>
name       = '._unitree_g1_local_planner_precomputed_paths'
parts      = ['._unitree_g1_local_planner_precomputed_paths']
path       = PurePosixPath('._unitree_g1_local_planner_precomputed_paths')
top_level  = 'unitree_g1_local_planner_precomputed_paths'

dimos/utils/data.py:161: RuntimeError
dimos.e2e_tests.test_manipulation_planning_groups::test_single_arm_plans_and_executes_through_control_coordinator
Stack Traces | 43.4s run time
dimos.protocol.rpc.rpc_utils.RemoteError: [Remote builtins.RuntimeError] World must be finalized first

Remote traceback:
Traceback (most recent call last):
  File ".../protocol/rpc/pubsubrpc.py", line 285, in execute_and_respond
    response = f(*args[0], **args[1])
               ^^^^^^^^^^^^^^^^^^^^^^
  File ".../protocol/rpc/spec.py", line 113, in override_f
    return getattr(module, fname)(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".../dimos/manipulation/manipulation_module.py", line 500, in get_current_joints
    state = self._world_monitor.get_current_joint_state(robot[1])
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".../planning/monitor/world_monitor.py", line 335, in get_current_joint_state
    ctx = self._world.get_live_context()
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File ".../planning/world/drake_world.py", line 844, in get_live_context
    raise RuntimeError("World must be finalized first")
RuntimeError: World must be finalized first


The above exception was the direct cause of the following exception:

lcm_spy = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x7bb0a23e4410>
start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x7bb0a1cdae80>

    def test_single_arm_plans_and_executes_through_control_coordinator(
        lcm_spy: LcmSpy,
        start_blueprint: Callable[..., DimosCliCall],
    ) -> None:
        """Plan with one arm and execute through its trajectory task."""
        _start_openarm_mock_planner(start_blueprint, lcm_spy)
    
        client = RPCClient(None, ManipulationModule)
        coordinator_client = RPCClient(None, ControlCoordinator)
        try:
            left_info = _wait_for_robot_info(client, "left_arm")
            left_id = _planning_group_id(left_info)
    
            tasks = coordinator_client.list_tasks()
            assert left_info["coordinator_task_name"] in tasks
    
>           _prepare_for_planning(client, ("left_arm",))

client     = <dimos.core.rpc_client.RPCClient object at 0x7bb0a2e31d60>
coordinator_client = <dimos.core.rpc_client.RPCClient object at 0x7bb0a2dc8560>
lcm_spy    = <dimos.e2e_tests.lcm_spy.LcmSpy object at 0x7bb0a23e4410>
left_id    = 'left_arm/manipulator'
left_info  = {'base_link': 'openarm_body_link0', 'coordinator_task_name': 'traj_left_arm', 'end_effector_link': 'openarm_left_link7', 'has_joint_name_mapping': False, ...}
start_blueprint = <function start_blueprint.<locals>.set_name_and_start at 0x7bb0a1cdae80>
tasks      = ['traj_left_arm', 'traj_right_arm']

dimos/e2e_tests/test_manipulation_planning_groups.py:168: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
dimos/e2e_tests/test_manipulation_planning_groups.py:119: in _prepare_for_planning
    _wait_for_current_joints(client, robot_names)
        client     = <dimos.core.rpc_client.RPCClient object at 0x7bb0a2e31d60>
        robot_names = ('left_arm',)
dimos/e2e_tests/test_manipulation_planning_groups.py:105: in _wait_for_current_joints
    missing = tuple(
        client     = <dimos.core.rpc_client.RPCClient object at 0x7bb0a2e31d60>
        deadline   = 1784836193.0295472
        missing    = ('left_arm',)
        robot_names = ('left_arm',)
        timeout    = 10.0
dimos/e2e_tests/test_manipulation_planning_groups.py:108: in <genexpr>
    if client.get_current_joints(robot_name) is None
        .0         = <tuple_iterator object at 0x7bb0a23e7160>
        client     = <dimos.core.rpc_client.RPCClient object at 0x7bb0a2e31d60>
        robot_name = 'left_arm'
dimos/core/rpc_client.py:76: in __call__
    result, unsub_fn = self._rpc.call_sync(
        args       = ('left_arm',)
        kwargs     = {}
        self       = <dimos.core.rpc_client.RpcCall object at 0x7bb0a23e5970>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <dimos.protocol.rpc.pubsubrpc.LCMRPC object at 0x7bb0a2e31f70>
name = 'ManipulationModule/get_current_joints', arguments = (('left_arm',), {})
rpc_timeout = 120.0

    def call_sync(
        self, name: str, arguments: Args, rpc_timeout: float | None = None
    ) -> tuple[Any, Callable[[], None]]:
        if rpc_timeout is None:
            method = name.rsplit("/", 1)[-1]
            rpc_timeout = self.rpc_timeouts.get(name) or self.rpc_timeouts.get(
                method, self.default_rpc_timeout
            )
        event = threading.Event()
    
        def receive_value(val) -> None:  # type: ignore[no-untyped-def]
            event.result = val  # type: ignore[attr-defined]  # attach to event
            event.set()
    
        unsub_fn = self.call(name, arguments, receive_value)
        if not event.wait(rpc_timeout):
            raise TimeoutError(f"RPC call to '{name}' timed out after {rpc_timeout} seconds")
    
        # Check if the result is an exception and raise it
        result = event.result  # type: ignore[attr-defined]
        if isinstance(result, BaseException):
>           raise result
E           RuntimeError: World must be finalized first

arguments  = (('left_arm',), {})
event      = <threading.Event at 0x7bb0a23e4590: set>
method     = 'get_current_joints'
name       = 'ManipulationModule/get_current_joints'
receive_value = <function RPCClient.call_sync.<locals>.receive_value at 0x7bb0a1c44f40>
result     = RuntimeError('World must be finalized first')
rpc_timeout = 120.0
self       = <dimos.protocol.rpc.pubsubrpc.LCMRPC object at 0x7bb0a2e31f70>
unsub_fn   = <function PubSubRPCMixin.call_cb.<locals>.unsubscribe_callback at 0x7bb0a1c45300>

.../protocol/rpc/spec.py:85: RuntimeError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant