ai_agent/utils/plugins/
plugin_startup_check.rs1#![allow(dead_code)]
3
4use super::installed_plugins_manager::get_in_memory_installed_plugins;
5use super::marketplace_manager::get_plugin_by_id;
6use super::plugin_identifier::parse_plugin_identifier;
7
8pub async fn check_enabled_plugins() -> Vec<String> {
10 Vec::new()
12}
13
14pub async fn find_missing_plugins(enabled_plugins: &[String]) -> Vec<String> {
16 let installed_plugins = match get_installed_plugin_ids() {
17 Ok(p) => p,
18 Err(_) => return Vec::new(),
19 };
20
21 let not_installed: Vec<_> = enabled_plugins
22 .iter()
23 .filter(|id| !installed_plugins.iter().any(|s| s.as_str() == id.as_str()))
24 .cloned()
25 .collect();
26
27 let mut missing = Vec::new();
28 for plugin_id in not_installed {
29 match get_plugin_by_id(&plugin_id).await {
30 Some(_) => missing.push(plugin_id),
31 None => log::debug!("Plugin {} not found in any marketplace", plugin_id),
32 }
33 }
34
35 missing
36}
37
38pub async fn get_installed_plugins() -> Result<Vec<String>, String> {
40 let v2_data = get_in_memory_installed_plugins();
41 let installed: Vec<_> = v2_data.plugins.keys().cloned().collect();
42 log::debug!("Found {} installed plugins", installed.len());
43 Ok(installed)
44}
45
46fn get_installed_plugin_ids() -> Result<Vec<String>, String> {
47 let v2_data = get_in_memory_installed_plugins();
48 Ok(v2_data.plugins.keys().cloned().collect())
49}