- Add first_non_empty() and to_int() to core/type_utils.py - Add get_filename_from_path() and METADATA_DIR to core/path_utils.py - Replace inline implementations across resolver, downloader, and sources with calls to the shared utilities - Move strip_known_model_extension from resolver to matcher