use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, Default, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub enum ToolPolicy {
Allow,
#[default]
Ask,
Deny,
}
pub use leviath_core::config::TitleConfig;
pub use leviath_core::config::{ObservabilityConfig, TelemetryExporterKind};
#[derive(Debug, Clone, Copy, Default, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub enum ScriptPermission {
Allow,
Deny,
#[default]
Inherit,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq, Eq)]
pub struct ScriptToolPermissions {
#[serde(default)]
pub http_get: ScriptPermission,
#[serde(default)]
pub http_post: ScriptPermission,
#[serde(default)]
pub shell: ScriptPermission,
#[serde(default)]
pub read_file: ScriptPermission,
#[serde(default)]
pub write_file: ScriptPermission,
#[serde(default)]
pub env_var: ScriptPermission,
}