Skip to main content

Module plugins

Module plugins 

Source
Expand description

Plugin registry types + claude-CLI wrappers.

Wire-shape data (InstalledPluginEntry, MarketplaceEntry, etc.) lives in forge_primitives::plugins so a view’s plugin UI doesn’t need to reach into claude CLI invocation code. Renderable plugin state lives with the view.

Modules§

cli
components
Per-plugin component + marketplace-manifest scan: the fast path behind the Extensions page. Pure filesystem reads under the config dir ($CLAUDE_CONFIG_DIR/~/.claude) and its plugins/ subtree, settings.json included; no CLI call. The plugin registry (installed_plugins.json) supplies installed-ness, version and the auto-dependency marker; settings.json’s enabledPlugins the enabled state; the marketplace manifests the latest version and LSP server names; each plugin’s own manifest its declared component paths.

Structs§

InstalledPluginEntry
MarketplaceEntry
MarketplaceSourceEntry
PluginUpdateAvailability
An installed entry whose marketplace copy reports a different version - the “check for updates” result, reported without applying anything.
PluginUpdateRecord
What forge remembers after a plugin moved. marketplace_ref_before is the marketplace clone’s HEAD before the update - the ref a rollback checks out. cwd_raw is where the update ran, so a rollback of a project/local entry works on the same install.
PluginUpdateRun
A section-level update run or check report: the rows and whether it has finished. Progress updates replace the whole run each time so the pane never reconciles partial state.
PluginUpdateRunRow
One row of a section-level update run or check report, carried to the pane through SessionUpdate.
PluginsInventorySnapshot

Enums§

PluginCapability
PluginRunRowStatus
Lifecycle of one row in a plugin update run or update check.
PluginUpdateTrigger

Functions§

classify_update_row
Classify one update call from the CLI’s output and the observed version change. The CLI exits 0 on some failures, so neither signal alone decides: the marker means current, a version change means updated, and anything else - including a silent exit 0 - is a failure whose detail is the output tail. Failures that exit non-zero never reach here: the runner reports them as errors.
update_availability
Diff the installed list against the marketplace catalog. One row per installed entry; an entry with no marketplace copy of a different version is absent.