vtcode_config/core/
plugins.rs1use crate::env_helpers::default_enabled;
2use serde::{Deserialize, Serialize};
3
4#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
6#[derive(Debug, Clone, Copy, Deserialize, Serialize, PartialEq, Eq, Default)]
7#[serde(rename_all = "snake_case")]
8pub enum PluginTrustLevel {
9 #[default]
11 Sandbox,
12 Trusted,
14 Untrusted,
16}
17
18#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
20#[derive(Debug, Clone, Deserialize, Serialize)]
21pub struct PluginRuntimeConfig {
22 #[serde(default = "default_enabled")]
24 pub enabled: bool,
25
26 #[serde(default)]
28 pub manifests: Vec<String>,
29
30 #[serde(default)]
32 pub default_trust: PluginTrustLevel,
33
34 #[serde(default)]
36 pub allow: Vec<String>,
37
38 #[serde(default)]
40 pub deny: Vec<String>,
41
42 #[serde(default)]
44 pub auto_reload: bool,
45}
46
47impl Default for PluginRuntimeConfig {
48 fn default() -> Self {
49 Self {
50 enabled: true,
51 manifests: Vec::new(),
52 default_trust: PluginTrustLevel::Sandbox,
53 allow: Vec::new(),
54 deny: Vec::new(),
55 auto_reload: true,
56 }
57 }
58}