vtcode_core/utils/
migration.rs1use crate::config::VTCodeConfig;
2use serde_json::json;
3use vtcode_commons::VtCodePaths;
4
5pub fn apply_migration_defaults(config: &mut VTCodeConfig) {
7 if config.tools.plugins.manifests.is_empty() {
8 let plugin_root = VtCodePaths::resolve()
9 .map(|paths| paths.plugins_dir().display().to_string())
10 .unwrap_or_else(|_| String::from("data/vtcode/plugins"));
11 config.tools.plugins.manifests = vec![plugin_root];
12 }
13}
14
15pub fn migration_summary(config: &VTCodeConfig) -> serde_json::Value {
17 json!({
18 "plugins": {
19 "enabled": config.tools.plugins.enabled,
20 "manifests": config.tools.plugins.manifests,
21 },
22 "security": {
23 "zero_trust": config.security.zero_trust_mode,
24 "integrity_checks": config.security.integrity_checks,
25 }
26 })
27}
28
29#[cfg(test)]
30mod tests {
31 use super::*;
32
33 #[test]
34 fn fills_missing_defaults() {
35 let mut config = VTCodeConfig::default();
36 apply_migration_defaults(&mut config);
37 assert!(!config.tools.plugins.manifests.is_empty());
38 }
39}