Introduce ReferenceResolver implementing the Package Registry Standard v1.0.0
§5.3 and §4.2:
ReferenceResolver:
- parse(ref_str) → PackageReference handles all three reference schemes
(registry, ID, local), wrapping ValueError into InvalidPackageReferenceError
- resolve(ref_str) → PackageId resolves references to concrete IDs:
ID refs directly, registry refs via RegistryClient, local refs reserved
- Integrates with RegistryClient for remote HTTP resolution
Version resolution (§4.2):
- resolve_version(version, available_versions) resolves concrete (vX.Y.Z)
and mutable aliases (latest, vx, x, vX.x, vX.Y.x)
- is_concrete_version() / is_version_alias() classification helpers
Integration tests: 35 Robot Framework test cases against fake registry server
with version alias resolution support
Benchmarks: 7 ASV benchmark classes covering parse, resolve, and version
resolution across small/medium/large version lists
ISSUES CLOSED: #26