From 25ac47a4225e37ba81ebb51366ac7bee19c62377 Mon Sep 17 00:00:00 2001 From: m3tm3re Date: Sun, 26 Apr 2026 14:35:06 +0200 Subject: [PATCH] feat(hermes-agent): add mkOpencodeSkills integration for skills provisioning - Add inputs parameter to module signature for flake input access - Define hermesSkills via inputs.agents.lib.mkOpencodeSkills - Includes customSkills from agents flake and external skills: - skills-basecamp (basecamp/basecamp-cli) - skills-anthropic (anthropics/skills) - skills-kestra (kestra-io/agent-skills) - Verified with nixos-rebuild dry-run --flake .#m3-hermes (no errors) --- .beads/issues.jsonl | 3 +++ hosts/m3-hermes/services/hermes-agent.nix | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 .beads/issues.jsonl diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl new file mode 100644 index 0000000..bc26b8f --- /dev/null +++ b/.beads/issues.jsonl @@ -0,0 +1,3 @@ +{"id":"home-profile-restructuring-edz","title":"Create copy-hermes-skills systemd service","status":"open","priority":1,"issue_type":"task","owner":"p@m3ta.dev","estimated_minutes":1,"created_at":"2026-04-26T12:30:10Z","created_by":"m3tm3re","updated_at":"2026-04-26T12:30:10Z","labels":["hermes-agent","nixos"],"dependencies":[{"issue_id":"home-profile-restructuring-edz","depends_on_id":"home-profile-restructuring-ycz","type":"blocks","created_at":"2026-04-26T14:30:57Z","created_by":"m3tm3re","metadata":"{}"}],"dependency_count":1,"dependent_count":1,"comment_count":0} +{"id":"home-profile-restructuring-ycz","title":"Build hermes-agent skills using mkOpencodeSkills","status":"in_progress","priority":1,"issue_type":"task","assignee":"m3tm3re","owner":"p@m3ta.dev","estimated_minutes":2,"created_at":"2026-04-26T12:30:09Z","created_by":"m3tm3re","updated_at":"2026-04-26T12:31:35Z","started_at":"2026-04-26T12:31:35Z","labels":["hermes-agent","nixos"],"dependency_count":0,"dependent_count":1,"comment_count":0} +{"id":"home-profile-restructuring-cxa","title":"Verify skills available at /var/lib/hermes/.agents/skills","status":"open","priority":2,"issue_type":"task","owner":"p@m3ta.dev","estimated_minutes":1,"created_at":"2026-04-26T12:30:10Z","created_by":"m3tm3re","updated_at":"2026-04-26T12:30:10Z","labels":["hermes-agent","testing"],"dependencies":[{"issue_id":"home-profile-restructuring-cxa","depends_on_id":"home-profile-restructuring-edz","type":"blocks","created_at":"2026-04-26T14:30:57Z","created_by":"m3tm3re","metadata":"{}"}],"dependency_count":1,"dependent_count":0,"comment_count":0} diff --git a/hosts/m3-hermes/services/hermes-agent.nix b/hosts/m3-hermes/services/hermes-agent.nix index 30773ca..a5bb434 100644 --- a/hosts/m3-hermes/services/hermes-agent.nix +++ b/hosts/m3-hermes/services/hermes-agent.nix @@ -1,6 +1,7 @@ { config, pkgs, + inputs, ... }: let # Default ElevenLabs voice: Bella (German-capable female) @@ -12,6 +13,26 @@ # site-packages via PYTHONPATH and provide libstdc++ for libolm (e2e). venvSitePackages = "/home/hermes/.venv/lib/python3.11/site-packages"; gccLibPath = "${pkgs.stdenv.cc.cc.lib}/lib"; + + # Build skills using agents flake lib for hermes user + hermesSkills = inputs.agents.lib.mkOpencodeSkills { + inherit pkgs; + customSkills = "${inputs.agents}/skills"; + externalSkills = [ + { + src = inputs.skills-basecamp; + skillsDir = "skills"; + } + { + src = inputs.skills-anthropic; + skillsDir = "skills"; + } + { + src = inputs.skills-kestra; + skillsDir = "skills"; + } + ]; + }; in { virtualisation.docker.enable = true;