From 09279a428659cf41824737d3e0c97bcc19a8885a Mon Sep 17 00:00:00 2001 From: Michelle Tilley Date: Fri, 10 Apr 2026 13:24:57 -0700 Subject: feat: Client-tool execution + permission system (#3370) Adds client-side tool execution to Atuin AI, starting with `atuin_history`. The server can request tool calls, which are executed locally with a permission system, and results are sent back to continue the conversation. --- crates/atuin-ai/src/permissions/file.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 crates/atuin-ai/src/permissions/file.rs (limited to 'crates/atuin-ai/src/permissions/file.rs') diff --git a/crates/atuin-ai/src/permissions/file.rs b/crates/atuin-ai/src/permissions/file.rs new file mode 100644 index 00000000..c973f55b --- /dev/null +++ b/crates/atuin-ai/src/permissions/file.rs @@ -0,0 +1,26 @@ +use std::path::PathBuf; + +use serde::{Deserialize, Serialize}; + +use crate::permissions::rule::Rule; + +#[derive(Debug, Clone)] +pub(crate) struct RuleFile { + pub path: PathBuf, + pub content: RuleFileContent, +} + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub(crate) struct RuleFileContent { + pub permissions: RuleFilePermissions, +} + +#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] +pub(crate) struct RuleFilePermissions { + #[serde(default)] + pub allow: Vec, + #[serde(default)] + pub deny: Vec, + #[serde(default)] + pub ask: Vec, +} -- cgit v1.3.1