vtcode_config/core/
plugins.rs1use serde::{Deserialize, Serialize};
2
3#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
5#[derive(Debug, Clone, Copy, Deserialize, Serialize, PartialEq, Eq, Default)]
6#[serde(rename_all = "snake_case")]
7pub enum PluginTrustLevel {
8 #[default]
10 Sandbox,
11 Trusted,
13 Untrusted,
15}
16
17#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
19#[derive(Debug, Clone, Deserialize, Serialize)]
20pub struct PluginRuntimeConfig {
21 #[serde(default = "default_enabled")]
23 pub enabled: bool,
24
25 #[serde(default)]
27 pub manifests: Vec<String>,
28
29 #[serde(default)]
31 pub default_trust: PluginTrustLevel,
32
33 #[serde(default)]
35 pub allow: Vec<String>,
36
37 #[serde(default)]
39 pub deny: Vec<String>,
40
41 #[serde(default)]
43 pub auto_reload: bool,
44}
45
46impl Default for PluginRuntimeConfig {
47 fn default() -> Self {
48 Self {
49 enabled: true,
50 manifests: Vec::new(),
51 default_trust: PluginTrustLevel::Sandbox,
52 allow: Vec::new(),
53 deny: Vec::new(),
54 auto_reload: true,
55 }
56 }
57}
58
59fn default_enabled() -> bool {
60 true
61}