vtcode_core/tool_policy/
alternative.rs1use indexmap::IndexMap;
2use serde::{Deserialize, Serialize};
3
4use super::ToolConstraints;
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct AlternativeToolPolicyConfig {
9 pub version: u32,
11 pub default: AlternativeDefaultPolicy,
13 pub tools: IndexMap<String, AlternativeToolPolicy>,
15 #[serde(default)]
17 pub constraints: IndexMap<String, ToolConstraints>,
18}
19
20#[derive(Debug, Clone, Serialize, Deserialize)]
22pub struct AlternativeDefaultPolicy {
23 pub allow: bool,
25 pub rate_limit_per_run: u32,
27 pub max_concurrent: u32,
29 pub fs_write: bool,
31 pub network: bool,
33}
34
35#[derive(Debug, Clone, Serialize, Deserialize)]
37pub struct AlternativeToolPolicy {
38 pub allow: bool,
40 #[serde(default)]
42 pub fs_write: bool,
43 #[serde(default)]
45 pub network: bool,
46 #[serde(default)]
48 pub args_policy: Option<AlternativeArgsPolicy>,
49}
50
51#[derive(Debug, Clone, Serialize, Deserialize)]
53pub struct AlternativeArgsPolicy {
54 pub deny_substrings: Vec<String>,
56}