Module resolver

Module resolver 

Source
Expand description

Dependency resolution and conflict detection for AGPM.

This module implements the core dependency resolution algorithm that transforms manifest dependencies into locked versions. It handles version constraint solving, conflict detection, transitive dependency resolution, parallel source synchronization, and relative path preservation during installation.

§Service-Based Architecture

This resolver has been refactored to use a service-based architecture:

  • ResolutionCore: Shared immutable state
  • VersionResolutionService: Git operations and version resolution
  • PatternExpansionService: Glob pattern expansion
  • TransitiveDependencyService: Transitive dependency resolution
  • ConflictService: Conflict detection
  • ResourceFetchingService: Resource content fetching

Re-exports§

pub use path_resolver::extract_meaningful_path;
pub use path_resolver::is_file_relative_path;
pub use path_resolver::normalize_bare_filename;
pub use conflict_service::ConflictService;
pub use pattern_expander::PatternExpansionService;
pub use resource_service::ResourceFetchingService;
pub use types::ResolutionCore;
pub use version_resolver::VersionResolutionService;
pub use version_resolver::VersionResolver as VersionResolverExport;
pub use version_resolver::find_best_matching_tag;
pub use version_resolver::is_version_constraint;
pub use version_resolver::parse_tags_to_versions;
pub use dependency_graph::DependencyGraph;
pub use dependency_graph::DependencyNode;
pub use lockfile_builder::LockfileBuilder;
pub use pattern_expander::expand_pattern_to_concrete_deps;
pub use pattern_expander::generate_dependency_name;
pub use types::ConflictDetectionKey;
pub use types::DependencyKey;
pub use types::ManifestOverride;
pub use types::ManifestOverrideIndex;
pub use types::OverrideKey;
pub use types::ResolutionContext;
pub use types::ResolvedDependenciesMap;
pub use types::ResolvedDependencyInfo;
pub use types::TransitiveContext;
pub use version_resolver::PreparedSourceVersion;
pub use version_resolver::VersionResolver;
pub use version_resolver::WorktreeManager;

Modules§

backtracking
Automatic version backtracking for SHA conflict resolution.
conflict_service
Conflict detection service for version and path conflicts.
dependency_graph
Dependency graph management for transitive dependency resolution.
lockfile_builder
Lockfile building and management functionality.
path_resolver
Path computation and resolution for dependency installation.
pattern_expander
Pattern expansion for AGPM dependencies.
resource_service
Resource fetching service for dependency resolution.
sha_conflict_detector
SHA-based conflict detection for dependency resolution.
skills
Skills-specific resolution logic for pattern matching and dependency handling.
source_context
Source context for dependency name generation.
transitive_extractor
Transitive dependency extraction.
transitive_resolver
Transitive dependency resolution for AGPM.
types
Core types and utilities for dependency resolution.
version_resolver
Centralized version resolution module for AGPM

Structs§

DependencyResolver
Main dependency resolver with service-based architecture.