From 337648981cc5a55935116141341521f4fce83214 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Wed, 17 Dec 2025 13:29:24 -0500 Subject: Add Ava systemd deployment with dedicated user and workspace - Add Omni.Agent.Paths module for configurable AVA_DATA_ROOT - Create ava Linux user in Users.nix with SSH key - Add systemd service in Beryllium/Ava.nix with graceful shutdown - Update Skills.hs and Outreach.hs to use configurable paths - Add startup logging of resolved paths in Telegram.hs - Create migration script for moving data from _/var/ava to /home/ava - Add deployment documentation in Beryllium/AVA.md In dev: AVA_DATA_ROOT unset uses _/var/ava/ In prod: AVA_DATA_ROOT=/home/ava via systemd Amp-Thread-ID: https://ampcode.com/threads/T-019b2d7e-bd88-7355-8133-275c65157aaf Co-authored-by: Amp --- Omni/Agent/Skills.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Omni/Agent/Skills.hs') diff --git a/Omni/Agent/Skills.hs b/Omni/Agent/Skills.hs index a9953b1..1dbf23f 100644 --- a/Omni/Agent/Skills.hs +++ b/Omni/Agent/Skills.hs @@ -42,6 +42,7 @@ import qualified Data.List as List import qualified Data.Text as Text import qualified Data.Text.IO as TextIO import qualified Omni.Agent.Engine as Engine +import qualified Omni.Agent.Paths as Paths import qualified Omni.Test as Test import qualified System.Directory as Directory import qualified System.FilePath as FilePath @@ -55,7 +56,7 @@ test = "Omni.Agent.Skills" [ Test.unit "skillsDir returns correct path" <| do let dir = skillsDir - ("_/var/ava/skills" `Text.isSuffixOf` Text.pack dir) Test.@=? True, + ("skills" `Text.isSuffixOf` Text.pack dir) Test.@=? True, Test.unit "SkillMetadata parses from YAML frontmatter" <| do let yaml = "name: test-skill\ndescription: A test skill" case parseYamlFrontmatter yaml of @@ -91,7 +92,7 @@ test = -- | Base directory for all skills skillsDir :: FilePath -skillsDir = "_/var/ava/skills" +skillsDir = Paths.skillsDir -- | Skill metadata from YAML frontmatter data SkillMetadata = SkillMetadata -- cgit v1.2.3