Skip to main content

Module manager

Module manager 

Source
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::new plus with_* refinements instead of raw ad hoc assembly

Structs§

CommandCatalogEntry
Normalized command-level catalog entry derived from the discovered plugin set.
CommandConflict
One command-name conflict across multiple plugin providers.
DiscoveredPlugin
Canonical in-memory record for one discovered plugin provider.
DoctorReport
Aggregated plugin health payload used by diagnostic surfaces.
PluginDispatchContext
Per-dispatch runtime hints and environment overrides for plugin execution.
PluginManager
Coordinates plugin discovery, cached metadata, and dispatch settings.
PluginSummary
Reduced plugin view for listing, doctor, and status surfaces.
RawPluginOutput
Raw stdout/stderr captured from a plugin subprocess invocation.

Enums§

PluginDispatchError
Errors returned when selecting or invoking a plugin command.
PluginSource
Describes how a plugin executable was discovered.

Constants§

DEFAULT_PLUGIN_PROCESS_TIMEOUT_MS
Default timeout, in milliseconds, for plugin subprocess calls.