refactor: Centralize status info retrieval in status service
Co-authored-by: aider (openai/andrew/openrouter/deepseek/deepseek-chat-v3.1) <aider@aider.chat>
This commit is contained in:
@@ -15,6 +15,7 @@ pub struct StatusInfo {
|
|||||||
pub meta_plugins: std::collections::HashMap<String, MetaPluginInfo>,
|
pub meta_plugins: std::collections::HashMap<String, MetaPluginInfo>,
|
||||||
pub enabled_meta_plugins: Vec<String>,
|
pub enabled_meta_plugins: Vec<String>,
|
||||||
pub filter_plugins: Vec<String>,
|
pub filter_plugins: Vec<String>,
|
||||||
|
pub configured_meta_plugins: Option<Vec<crate::config::MetaPluginConfig>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(serde::Serialize, serde::Deserialize, ToSchema)]
|
#[derive(serde::Serialize, serde::Deserialize, ToSchema)]
|
||||||
|
|||||||
@@ -129,8 +129,8 @@ fn build_config_table(settings: &config::Settings) -> Table {
|
|||||||
config_table
|
config_table
|
||||||
}
|
}
|
||||||
|
|
||||||
fn build_meta_plugins_configured_table(settings: &config::Settings) -> Option<Table> {
|
fn build_meta_plugins_configured_table(status_info: &StatusInfo) -> Option<Table> {
|
||||||
let meta_plugins = settings.meta_plugins.as_ref()?;
|
let meta_plugins = status_info.configured_meta_plugins.as_ref()?;
|
||||||
if meta_plugins.is_empty() {
|
if meta_plugins.is_empty() {
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
@@ -297,8 +297,8 @@ pub fn mode_status(
|
|||||||
build_path_table(&status_info.paths).printstd();
|
build_path_table(&status_info.paths).printstd();
|
||||||
println!();
|
println!();
|
||||||
|
|
||||||
// Always try to print META PLUGINS CONFIGURED section
|
// Always try to print META PLUGINS CONFIGURED section using status_info
|
||||||
if let Some(meta_plugins_table) = build_meta_plugins_configured_table(settings) {
|
if let Some(meta_plugins_table) = build_meta_plugins_configured_table(&status_info) {
|
||||||
println!("META PLUGINS CONFIGURED:");
|
println!("META PLUGINS CONFIGURED:");
|
||||||
meta_plugins_table.printstd();
|
meta_plugins_table.printstd();
|
||||||
println!();
|
println!();
|
||||||
@@ -310,6 +310,7 @@ pub fn mode_status(
|
|||||||
Ok(())
|
Ok(())
|
||||||
},
|
},
|
||||||
OutputFormat::Json => {
|
OutputFormat::Json => {
|
||||||
|
// Create a subset for status info that includes everything
|
||||||
println!("{}", serde_json::to_string_pretty(&status_info)?);
|
println!("{}", serde_json::to_string_pretty(&status_info)?);
|
||||||
Ok(())
|
Ok(())
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -220,17 +220,17 @@ pub fn mode_status_plugins(
|
|||||||
Ok(())
|
Ok(())
|
||||||
},
|
},
|
||||||
OutputFormat::Json => {
|
OutputFormat::Json => {
|
||||||
// Create a subset for plugins only
|
// Create a subset for plugins only using status_info
|
||||||
let plugins_info = serde_json::json!({
|
let plugins_info = serde_json::json!({
|
||||||
"meta_plugins_available": status_info.meta_plugins,
|
"meta_plugins_available": status_info.meta_plugins,
|
||||||
"meta_plugins_configured": settings.meta_plugins,
|
"meta_plugins_configured": status_info.configured_meta_plugins,
|
||||||
"filter_plugins": status_info.filter_plugins
|
"filter_plugins": status_info.filter_plugins
|
||||||
});
|
});
|
||||||
println!("{}", serde_json::to_string_pretty(&plugins_info)?);
|
println!("{}", serde_json::to_string_pretty(&plugins_info)?);
|
||||||
Ok(())
|
Ok(())
|
||||||
},
|
},
|
||||||
OutputFormat::Yaml => {
|
OutputFormat::Yaml => {
|
||||||
// Create a proper structure for plugins info
|
// Create a proper structure for plugins info using status_info
|
||||||
use serde_yaml::Mapping;
|
use serde_yaml::Mapping;
|
||||||
let mut plugins_mapping = Mapping::new();
|
let mut plugins_mapping = Mapping::new();
|
||||||
|
|
||||||
@@ -241,7 +241,7 @@ pub fn mode_status_plugins(
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Add configured plugins if they exist
|
// Add configured plugins if they exist
|
||||||
if let Some(configured_plugins) = &settings.meta_plugins {
|
if let Some(configured_plugins) = &status_info.configured_meta_plugins {
|
||||||
plugins_mapping.insert(
|
plugins_mapping.insert(
|
||||||
serde_yaml::Value::String("meta_plugins_configured".to_string()),
|
serde_yaml::Value::String("meta_plugins_configured".to_string()),
|
||||||
serde_yaml::to_value(configured_plugins)?,
|
serde_yaml::to_value(configured_plugins)?,
|
||||||
|
|||||||
@@ -39,6 +39,9 @@ impl StatusService {
|
|||||||
.map(|name| name.clone())
|
.map(|name| name.clone())
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
|
// Add configured meta plugins information
|
||||||
|
status_info.configured_meta_plugins = settings.meta_plugins.clone();
|
||||||
|
|
||||||
status_info
|
status_info
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user