Plugin discovery from ~/.config/bterminal/plugins/ with plugin.json manifest. Sandboxed new Function() execution, permission-gated API (palette, btmsg:read, bttask:read, events). Plugin store + SettingsTab.
20 lines
576 B
Rust
20 lines
576 B
Rust
// Plugin discovery and file access commands
|
|
|
|
use crate::AppState;
|
|
use crate::plugins;
|
|
|
|
#[tauri::command]
|
|
pub fn plugins_discover(state: tauri::State<'_, AppState>) -> Vec<plugins::PluginMeta> {
|
|
let plugins_dir = state.app_config.plugins_dir();
|
|
plugins::discover_plugins(&plugins_dir)
|
|
}
|
|
|
|
#[tauri::command]
|
|
pub fn plugin_read_file(
|
|
state: tauri::State<'_, AppState>,
|
|
plugin_id: String,
|
|
filename: String,
|
|
) -> Result<String, String> {
|
|
let plugins_dir = state.app_config.plugins_dir();
|
|
plugins::read_plugin_file(&plugins_dir, &plugin_id, &filename)
|
|
}
|