feat(FN-3299): auto-install bundled runtime plugins on first save

Hermes / OpenClaw / Paperclip runtime cards in Settings now lazily
register themselves on first Save instead of failing with `Plugin
"fusion-plugin-...-runtime" not found`. The CLI also bundles each
runtime plugin (with @fusion/plugin-sdk inlined via esbuild) into
dist/plugins/<id>/bundled.js so npm/npx-installed Fusion can load them
without the workspace SDK dependency.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
gsxdsm
2026-05-05 20:45:07 -07:00
parent 1f1096efb8
commit 86ac019886
9 changed files with 329 additions and 24 deletions

View File

@@ -258,6 +258,16 @@ export interface ServerOptions {
* settings PUT to fail.
*/
onUseClaudeCliToggled?: (prev: boolean, next: boolean) => void;
/**
* Lazily install a bundled runtime plugin (e.g. Hermes/OpenClaw/Paperclip
* runtimes) the first time the user clicks Save in Settings. The dashboard
* has no knowledge of the on-disk bundle layout, so the host (CLI) injects
* this hook. Returns true if the plugin is now registered (either freshly
* installed or already present), false if the bundle could not be resolved
* (e.g. plugin id is unknown) so the route can fall through to its standard
* "plugin not found" error.
*/
ensureBundledPluginInstalled?: (pluginId: string) => Promise<boolean>;
/**
* Returns the host's last-observed resolution of the bundled
* `@fusion/pi-claude-cli` extension. Populated by serve/daemon/dashboard