Expand description
Public plugin facade and shared plugin data types.
This module exists so the rest of the app can depend on one stable plugin entry point while discovery, selection, catalog building, and dispatch live in narrower neighboring modules.
High-level flow:
- store discovered plugin metadata and process/runtime settings
- delegate catalog and selection work to neighboring modules
- hand the chosen provider to the dispatch layer when execution is needed
Contract:
- this file owns the public facade and shared plugin DTOs
- catalog building and provider selection logic live in neighboring modules
- subprocess execution and timeout handling belong in
plugin::dispatch
Public API shape:
- discovered plugins and catalog entries are semantic payloads
- dispatch machinery uses concrete constructors such as
PluginDispatchContext::newpluswith_*refinements instead of raw ad hoc assembly
Structs§
- Command
Catalog Entry - Normalized command-level catalog entry derived from the discovered plugin set.
- Command
Conflict - One command-name conflict across multiple plugin providers.
- Discovered
Plugin - Canonical in-memory record for one discovered plugin provider.
- Doctor
Report - Aggregated plugin health payload used by diagnostic surfaces.
- Plugin
Dispatch Context - Per-dispatch runtime hints and environment overrides for plugin execution.
- Plugin
Manager - Coordinates plugin discovery, cached metadata, and dispatch settings.
- Plugin
Summary - Reduced plugin view for listing, doctor, and status surfaces.
- RawPlugin
Output - Raw stdout/stderr captured from a plugin subprocess invocation.
Enums§
- Plugin
Dispatch Error - Errors returned when selecting or invoking a plugin command.
- Plugin
Source - Describes how a plugin executable was discovered.
Constants§
- DEFAULT_
PLUGIN_ PROCESS_ TIMEOUT_ MS - Default timeout, in milliseconds, for plugin subprocess calls.