Minga.Extension.Manifest (Minga v0.1.0)

Copy Markdown View Source

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.

t()

Functions

Builds a manifest from an extension module and source type.

Types

agent_ui_metadata()

@type agent_ui_metadata() :: map() | keyword()

Semantic agent UI declaration metadata consumed by the editor-layer registry.

capabilities()

@type capabilities() :: [Minga.Extension.capability_spec()]

Declared runtime/UI capabilities in declaration order. Duplicate entries are preserved.

source_type()

@type source_type() :: :path | :git | :hex | :module

How the extension source code is obtained.

t()

@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

from_module(module, source)

@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.