Public declaration snapshot for an extension before runtime side effects run.
Manifests are append-only data contracts. Callers can inspect what an extension declares, which source it came from, and which runtime capabilities it says it uses without invoking extension code beyond static callback/schema functions.
Summary
Types
Semantic agent UI declaration metadata consumed by the editor-layer registry.
Declared runtime/UI capabilities in declaration order. Duplicate entries are preserved.
How the extension source code is obtained.
Functions
Builds a manifest from an extension module and source type.
Types
Semantic agent UI declaration metadata consumed by the editor-layer registry.
@type capabilities() :: [Minga.Extension.capability_spec()]
Declared runtime/UI capabilities in declaration order. Duplicate entries are preserved.
@type source_type() :: :path | :git | :hex | :module
How the extension source code is obtained.
@type t() :: %Minga.Extension.Manifest{ agent_ui_metadata: [agent_ui_metadata()], capabilities: capabilities(), commands: [Minga.Extension.command_spec()], description: String.t() | nil, hooks: [{atom(), keyword()}], keybindings: [Minga.Extension.keybind_spec()], load_policy: Minga.Extension.load_policy(), mcp_servers: [{atom() | String.t(), keyword()}], modeline_segments: [Minga.Extension.modeline_segment_spec()], name: atom(), skills: [String.t()], slash_commands: [{atom() | String.t(), String.t(), keyword()}], source: source_type(), version: String.t() }
Functions
@spec from_module(module(), source_type()) :: t()
Builds a manifest from an extension module and source type.
This calls the extension's declaration callbacks directly, so callback failures can raise or exit. The extension supervisor rescues those failures and turns them into load errors during startup.