Local authoring model for .codex-plugin/plugin.json.
Summary
Types
@type interface_t() :: %{ display_name: String.t() | nil, short_description: String.t() | nil, long_description: String.t() | nil, developer_name: String.t() | nil, category: String.t() | nil, capabilities: [String.t()] | nil, website_url: String.t() | nil, privacy_policy_url: String.t() | nil, terms_of_service_url: String.t() | nil, default_prompt: [String.t()] | nil, brand_color: String.t() | nil, composer_icon: String.t() | nil, logo: String.t() | nil, screenshots: [String.t()] | nil, extra: map() }
@type t() :: %Codex.Plugins.Manifest{ apps: (String.t() | nil) | nil, author: (author_t() | nil) | nil, description: (String.t() | nil) | nil, extra: map(), homepage: (String.t() | nil) | nil, hooks: (String.t() | nil) | nil, interface: (interface_t() | nil) | nil, keywords: ([String.t()] | nil) | nil, license: (String.t() | nil) | nil, mcp_servers: (String.t() | nil) | nil, name: String.t(), repository: (String.t() | nil) | nil, skills: (String.t() | nil) | nil, version: (String.t() | nil) | nil }
Functions
Compatibility alias for parse!/1.
@spec parse(map() | keyword() | t()) :: {:ok, t()} | {:error, {:invalid_plugin_manifest, CliSubprocessCore.Schema.error_detail()}}
Parses manifest data into a %Codex.Plugins.Manifest{} struct.
Parses manifest data and raises on invalid input.
@spec schema() :: Zoi.schema()
Returns the schema used to validate manifest data.
Serializes a manifest struct back into canonical JSON-compatible data.