Plugin discovery, install, and enablement helpers.
Load a marketplace manifest from a root directory.
Load a marketplace from either a cached directory or JSON file.
Load a marketplace source and return its local install location.
Resolve or materialize a marketplace plugin entry to a plugin root.
Parse a user-provided marketplace source.
Redact credentials from every HTTP URL embedded in text.
Explain why materialize_plugin_source produced no plugin root.
A rejected path and an unsupported source type both yield None, and
saying "unsupported source" for the first sends readers looking for a
missing feature instead of at their path.
Split a plugin id in {plugin}@{marketplace} form.
Add a local marketplace to dcode state.
Add a marketplace from a pasted source string.
Remove a marketplace and every plugin installed from it.
Local marketplace source directories are never deleted. Managed marketplace clones and installed plugin caches are removed.
Set the enabled state of an installed plugin.
Uninstall a plugin (disable, clear records, delete orphaned cache).
Install a marketplace plugin into the versioned cache and enable it.
Copies the plugin source into plugins/cache/{marketplace}/{plugin}/{version}/,
writes installed_plugins.json, and enables the plugin.
Restore an installed plugin's files from its marketplace source.
Unlike install_plugin, this always replaces the cached copy, even when the
registry already lists the same version, so it repairs missing or damaged
files. The enabled state and the plugin's data directory are left as-is.
Resolve whether plugin auto-updates are enabled and from which source.
Build the notification announcing plugin updates that were not installed.
Refresh remote marketplaces and update enabled, opted-in plugins.
Plugins whose manifest opts into autoUpdate are installed; other plugins
with a different marketplace version are reported as available.
Update installed plugins to their marketplace versions.
Discover enabled marketplace plugins from their install cache paths.
Return broken installs that have not yet been shown in this process.
Several consumers (skills, hooks, MCP, the plugin manager) run discovery
independently. Routing user-facing notices through this claim keeps each
broken install to one warning per process while leaving other discovery
warnings untouched. A successful reinstall_plugin releases the claim.
List plugins from configured marketplaces.
Return plugin ids that have install records.
Raised when a marketplace cannot be loaded.
An enabled, registered plugin whose installed files are missing.
Local directory or JSON file used as a marketplace source.
A catalog entry from a marketplace manifest.
Persisted marketplace source record.
Result from plugin discovery.
broken lists enabled plugins whose installed files are missing. They are
reported separately from warnings so callers can present them once with
repair guidance instead of repeating an internal warning per consumer.
A discovered plugin ready to feed dcode adapters.
Parsed plugin manifest.
A parsed marketplace manifest.
A marketplace plugin version that differs from the installed one.
Outcome of checking installed plugins against their marketplaces.
GitHub or Git repository used as a marketplace source.
ref selects an optional branch or tag. Commit SHA checkout is not part of
the shallow-clone flow.
Marketplace manifest downloaded from an HTTP URL.