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 itsplugins/subtree,settings.jsonincluded; no CLI call. The plugin registry (installed_plugins.json) supplies installed-ness, version and the auto-dependency marker;settings.json’senabledPluginsthe enabled state; the marketplace manifests the latest version and LSP server names; each plugin’s own manifest its declared component paths.
Structs§
- Installed
Plugin Entry - Marketplace
Entry - Marketplace
Source Entry - Plugin
Update Availability - An installed entry whose marketplace copy reports a different version - the “check for updates” result, reported without applying anything.
- Plugin
Update Record - What forge remembers after a plugin moved.
marketplace_ref_beforeis the marketplace clone’s HEAD before the update - the ref a rollback checks out.cwd_rawis where the update ran, so a rollback of a project/local entry works on the same install. - Plugin
Update Run - 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.
- Plugin
Update RunRow - One row of a section-level update run or check report, carried to
the pane through
SessionUpdate. - Plugins
Inventory Snapshot
Enums§
- Plugin
Capability - Plugin
RunRow Status - Lifecycle of one row in a plugin update run or update check.
- Plugin
Update Trigger
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.