DependencySpec

Struct DependencySpec 

Source
pub struct DependencySpec {
    pub spec: String,
    pub name: Option<String>,
    pub tool: Option<String>,
    pub target: Option<String>,
    pub filename: Option<String>,
    pub force: bool,
    pub no_install: bool,
}
Expand description

Common dependency specification used across commands

Fields§

§spec: String

Dependency specification string

Format: source:path[@version] for Git sources or path for local files

GIT DEPENDENCIES (from a repository source defined in [sources]): source:path@version - Specific version (tag/branch/commit) source:path - Defaults to “main” branch

Examples: official:agents/code-reviewer.md@v1.0.0 - Specific version tag community:snippets/python-utils.md@main - Branch name myrepo:commands/deploy.md@abc123f - Commit SHA community:hooks/pre-commit.json - Defaults to “main”

LOCAL FILE DEPENDENCIES: ./path/file.md - Relative to current directory ../path/file.md - Parent directory /absolute/path/file.md - Absolute path (Unix/macOS) C:\path\file.md - Absolute path (Windows)

Examples: ./agents/my-agent.md - Project agent ../shared-resources/common-snippet.md - Shared resource /usr/local/share/agpm/hooks/lint.json - System-wide hook

PATTERN DEPENDENCIES (glob patterns for multiple files): source:dir/.md@version - All .md files in directory source:dir/**/.md - All .md files recursively

Examples: community:agents/ai/.md@v2.0.0 - All AI agents official:agents/**/review.md@v1.5.0 - All review agents (recursive) ./local-agents/*.md - All local agents

Notes:

  • Version is optional for Git sources (defaults to “main”)
  • Version is not applicable for local file paths
  • Use –name to specify a custom dependency name
  • Patterns require –name to provide a meaningful dependency name
§name: Option<String>

Custom name for the dependency

If not provided, the name will be derived from the file path. This allows for more descriptive or shorter names in the manifest.

§tool: Option<String>

Target tool for the dependency

Specifies which AI coding tool this resource is for. Supported values: claude-code, opencode, agpm

Examples: –tool claude-code - Install to .claude/ (default for agents, commands, scripts, hooks) –tool opencode - Install to .opencode/ –tool agpm - Install to .agpm/ (default for snippets)

§target: Option<String>

Custom installation target path (relative to resource directory)

Override the default installation path. The path is relative to the resource type’s default directory (e.g., .claude/agents/).

IMPORTANT: Since v0.3.18+, custom targets are relative to the resource directory, not the project root.

Examples: –target custom/special.md - Install to .claude/agents/custom/special.md –target experimental/test.md - Install to .claude/commands/experimental/test.md

§filename: Option<String>

Custom filename for the installed resource

Override the default filename derived from the source path. Use this to rename resources during installation.

Examples: –filename my-reviewer.md - Install as my-reviewer.md instead of original name –filename helper.json - Rename JSON file during installation

§force: bool

Force overwrite if dependency exists

By default, adding a duplicate dependency will fail. Use this flag to replace existing dependencies.

§no_install: bool

Skip automatic installation after adding dependency

By default, the dependency is automatically installed after being added to the manifest. Use this flag to only update the manifest without installing the dependency files.

Examples: –no-install - Add to manifest only, skip installation

Trait Implementations§

Source§

impl Args for DependencySpec

Source§

fn group_id() -> Option<Id>

Report the ArgGroup::id for this set of arguments
Source§

fn augment_args<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate Self via FromArgMatches::from_arg_matches_mut Read more
Source§

fn augment_args_for_update<'b>(__clap_app: Command) -> Command

Append to Command so it can instantiate self via FromArgMatches::update_from_arg_matches_mut Read more
Source§

impl Clone for DependencySpec

Source§

fn clone(&self) -> DependencySpec

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DependencySpec

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl FromArgMatches for DependencySpec

Source§

fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>

Instantiate Self from ArgMatches, parsing the arguments as needed. Read more
Source§

fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.
Source§

fn update_from_arg_matches_mut( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>

Assign values from ArgMatches to self.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more