`PluginSettingsComponent.#showPluginList()` only inspected the npm plugin
registry, so the TUI's `Settings → Plugins` panel rendered "No plugins
installed" whenever the user had no npm plugins — even when many
marketplace plugins were installed. The `/plugins list` slash command,
`omp plugin list` CLI, and the install/uninstall selectors already
merged `PluginManager.list()` with `MarketplaceManager.listInstalledPlugins()`;
the settings panel was the only surface that missed the marketplace
registry when it was added.
Extend the panel to consume both data sources:
- Replace `PluginListComponent`'s `InstalledPlugin[]` input with a tagged
union `PluginListEntry = { kind: "npm"; plugin: InstalledPlugin } | { kind:
"marketplace"; plugin: InstalledPluginSummary }`. Each row now carries an
`[npm]`/`[marketplace]` kind badge, a scope tag, and the shadow indicator
for user installs overridden by a project entry. Widen the SelectList
primary column so long `name@marketplace` ids stay readable.
- Add `MarketplacePluginDetailComponent`: single `Enabled` toggle plus the
read-only `InstalledPluginEntry` metadata (version, install path,
installed-at, last-updated, git commit SHA). The toggle calls
`MarketplaceManager.setPluginEnabled(pluginId, enabled, scope)` — same
path `/plugins enable|disable` uses.
- Update `PluginSettingsComponent` to await both `PluginManager.list()` and
`MarketplaceManager.listInstalledPlugins()` in parallel, build the merged
list, and route selection to the kind-specific detail view. The empty
state now lists both install commands (npm and marketplace).
Fixes#1842