Skip to content

Support the installation of remote capabilities #52

Description

@Minitour

YAML File

capabilities:
   - id: <capability set id>
     type: <local|remote|github|gitlab>
     def:
         <url|path|repo>: <value>

Example

capabilities:
   - id: aodk
     type: github
     def:
        repo: Minitour/agentic-ontology-development-kit

Syntax:

  • For GitHub/Gitlab: / - to reference capabilities.yaml or capabilities.json at the root of the repo. Otherwise, using @ or :: sign to use recursive search of a folder or exact path respectively.
  • For Local files/URLs: A direct URL path to the file.

Behavior

Installation

During capa install the referenced capabilities shall be resolved first. Any conflicts or overrides encountered, the order of precedence shall follow:

  • The capabilities file of the current project shall override referenced files. I.e., if the current file references a skill, which is also referenced by a referenced capability file with a different version, the current capabilities file wins.
  • The order in which the referenced capabilities are mentioned does not impact their priority. If a conflict is found among referenced capabilities, in terms of version, the latest version wins, but a warning is emitted. If two resources have conflicting names (i.e., the exact same name), the installation shall stop with an error which mentions which two resources conflicted.
  • Dependency resolution shall take place using depth-first.
  • Cyclical dependencies should stop installation if detected.
  • If a capabilities file is resolved with a lockfile, the lockfile shall be used (applies for type GitHub|Gitlab).

Unpacking

Unlike plugins, where the MCP server is installed, but tools are not exposed unless referenced, installation of capabilities shall "unpack" everything that is mentioned in the capabilities file, except agents.base. This includes:

  • Skills (with tool association)
  • Rules
  • Servers
  • Tools
  • Plugins
  • Subagents
  • Configurations (agent.additional, options.requiresCommands)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions