transform_path_for_private

Function transform_path_for_private 

Source
pub fn transform_path_for_private(path: &str) -> String
Expand description

Transforms an installation path for private dependencies.

Private dependencies are installed to a private/ subdirectory within their resource type directory. For example:

  • .claude/agents/helper.md becomes .claude/agents/private/helper.md
  • .agpm/snippets/utils.md becomes .agpm/snippets/private/utils.md

This function intelligently inserts private/ after the resource type directory by detecting common path patterns.

§Arguments

  • path - The original installation path

§Returns

The transformed path with private/ inserted before the filename.

§Examples

use agpm_cli::resolver::path_resolver::transform_path_for_private;

// Without tool namespace
let path = transform_path_for_private(".claude/agents/helper.md");
assert_eq!(path, ".claude/agents/private/helper.md");

// With tool namespace (the common case)
let path = transform_path_for_private(".claude/agents/agpm/helper.md");
assert_eq!(path, ".claude/agents/agpm/private/helper.md");

let path = transform_path_for_private(".agpm/snippets/utils.md");
assert_eq!(path, ".agpm/snippets/private/utils.md");

// OpenCode paths (singular directory names)
let path = transform_path_for_private(".opencode/agent/agpm/test.md");
assert_eq!(path, ".opencode/agent/agpm/private/test.md");