pub async fn install_plugin<R: Runtime>(
app: AppHandle<R>,
webview: WebviewWindow<R>,
scheduler: State<'_, Scheduler>,
path: String,
) -> Result<InstallOutcome, String>Expand description
Install a plugin from path: read (size-capped), validate (parse, schema,
signature, and — for detectors — decode + sandbox link check), confirm via
a native dialog, then apply. Content plugins merge their pack into the
active profile; detector plugins persist their module and register their
granted capabilities. Returns a summary of the effect.