Skip to main content

Module plugins

Module plugins 

Source
Expand description

Plugin inventory + CLI-action wire shapes. SessionUpdate variants carry these directly; loaders (refresh_inventory, the claude plugin shell-out, etc.) live in forge_agent::userdata::plugins.

Re-exports§

use std::collections::BTreeMap; 🔒
use std::path::PathBuf; 🔒
use serde_json::Value; 🔒

Structs§

ExtensionRow
One row of the Extensions page’s shared grammar: a plugin, one of its components, or an MCP server. Flattened from a component scan by extension_rows.
InstalledPluginEntry
MarketplaceEntry
MarketplaceHealth
One marketplace’s on-disk health for the Extensions page.
MarketplaceSourceEntry
PluginComponents
Per-plugin component inventory read straight off disk (the plugin cache plus marketplace manifests). Produced by the scan in forge_agent::userdata::plugins::components; one entry per registered plugin, per plugin a manifest or the cache names, and one per marketplace whose manifest failed to load.
PluginDetails
A plugin’s claude plugin details projection: the always-on token cost every session pays for the plugin being installed.
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.
PluginsCliActionSuccess
PluginsInventorySnapshot

Enums§

ExtensionKind
PluginCapability
PluginRunRowStatus
Lifecycle of one row in a plugin update run or update check.
PluginUpdateTrigger
RowState
The row’s health, as the Extensions page renders it.

Constants§

ALREADY_CURRENT_MARKER 🔒
The CLI marker printed when an update finds nothing to do.

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.
component_row 🔒
extension_rows
Flatten component scans into Extension page rows: one row per plugin followed by its component rows, in scan order.
output_tail 🔒
The last line of CLI output worth showing, trimmed. Long failure prose clips so a report row stays one line.
plugin_marketplace
The marketplace part of an installed id (name@marketplace), empty when the id carries none.
plugin_row_state 🔒
The plugin row’s state from a scan result. Priority: a load failure, then not installed, then disabled, then an update, then the auto-dependency marker.
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.