Compare commits
2 Commits
59ada8585f
...
d90a20123e
| Author | SHA1 | Date | |
|---|---|---|---|
| d90a20123e | |||
| 1bd78b5de8 |
Generated
+4
-4
@@ -406,16 +406,16 @@
|
|||||||
"uv2nix": "uv2nix_2"
|
"uv2nix": "uv2nix_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1778170968,
|
"lastModified": 1778925537,
|
||||||
"narHash": "sha256-YQQUEDUim2CiYpL3uG7Wi1fWPsT2wtIqoBeJuAj9hUk=",
|
"narHash": "sha256-d9qhrTy45Q5UsmjapqMHOVi9e+gR9zE8Nq9Z0wObLmc=",
|
||||||
"owner": "NousResearch",
|
"owner": "NousResearch",
|
||||||
"repo": "hermes-agent",
|
"repo": "hermes-agent",
|
||||||
"rev": "498bfc7bc12a937621b4215312049b1000726df3",
|
"rev": "a91a57fa5a13d516c38b07a141a9ce8a3daabeb0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NousResearch",
|
"owner": "NousResearch",
|
||||||
"ref": "v2026.5.7",
|
"ref": "v2026.5.16",
|
||||||
"repo": "hermes-agent",
|
"repo": "hermes-agent",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
url = "github:vercel-labs/skills";
|
url = "github:vercel-labs/skills";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
hermes-agent.url = "github:NousResearch/hermes-agent/v2026.5.7";
|
hermes-agent.url = "github:NousResearch/hermes-agent/v2026.5.16";
|
||||||
|
|
||||||
rustfs = {
|
rustfs = {
|
||||||
url = "github:rustfs/rustfs-flake";
|
url = "github:rustfs/rustfs-flake";
|
||||||
|
|||||||
@@ -7,13 +7,30 @@
|
|||||||
# Edge TTS: Seraphina — friendly, multilingual German female voice (free, no API key)
|
# Edge TTS: Seraphina — friendly, multilingual German female voice (free, no API key)
|
||||||
edgeVoice = "de-DE-SeraphinaMultilingualNeural";
|
edgeVoice = "de-DE-SeraphinaMultilingualNeural";
|
||||||
|
|
||||||
# Extra Python packages from the container's writable venv layer.
|
# Hermes v0.14 moved Matrix from matrix-nio to lazy-installed mautrix.
|
||||||
# matrix-nio is installed via pip in /home/hermes/.venv but the hermes
|
# Lazy pip installs cannot work in the read-only Nix Python environment, so
|
||||||
# process uses the read-only Nix store Python, so we inject the venv's
|
# provide the Matrix runtime deps declaratively and put their site-packages on
|
||||||
# site-packages via PYTHONPATH and provide libstdc++ for libolm (e2e).
|
# the gateway process PYTHONPATH at interpreter startup.
|
||||||
# NOTE: v0.13.0 upgraded to Python 3.12 — path updated accordingly.
|
matrixPython = pkgs.python312.withPackages (ps: let
|
||||||
venvSitePackages = "/home/hermes/.venv/lib/python3.12/site-packages";
|
# Hermes lazy_deps pins this exact version. nixpkgs currently ships an
|
||||||
gccLibPath = "${pkgs.stdenv.cc.cc.lib}/lib";
|
# older aiosqlite, and lazy_deps treats version mismatches as missing.
|
||||||
|
aiosqlite_0_22_1 = ps.aiosqlite.overridePythonAttrs (_old: rec {
|
||||||
|
version = "0.22.1";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "omnilib";
|
||||||
|
repo = "aiosqlite";
|
||||||
|
tag = "v${version}";
|
||||||
|
hash = "sha256-voOOFo1OwaRQ3JsDHlBrngP+8ajf0kTNKXJyOaJiTs4=";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
in [
|
||||||
|
(ps.mautrix.override {withOlm = true;})
|
||||||
|
ps.markdown
|
||||||
|
aiosqlite_0_22_1
|
||||||
|
ps.asyncpg
|
||||||
|
ps.aiohttp-socks
|
||||||
|
]);
|
||||||
|
matrixPythonPath = "${matrixPython}/lib/python3.12/site-packages";
|
||||||
|
|
||||||
# Build skills using agents flake lib for hermes user
|
# Build skills using agents flake lib for hermes user
|
||||||
hermesSkills = inputs.agents.lib.mkSkills {
|
hermesSkills = inputs.agents.lib.mkSkills {
|
||||||
@@ -37,6 +54,13 @@
|
|||||||
in {
|
in {
|
||||||
virtualisation.docker.enable = true;
|
virtualisation.docker.enable = true;
|
||||||
|
|
||||||
|
# Matrix E2EE uses libolm via python-olm. libolm is archived upstream and
|
||||||
|
# marked insecure in nixpkgs, but Hermes Matrix encrypted rooms currently
|
||||||
|
# still require it through mautrix[encryption].
|
||||||
|
nixpkgs.config.permittedInsecurePackages = [
|
||||||
|
"olm-3.2.16"
|
||||||
|
];
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"d /home/hermes/.config 0755 hermes hermes -"
|
"d /home/hermes/.config 0755 hermes hermes -"
|
||||||
"d /home/hermes/.config/tea 0755 hermes hermes -"
|
"d /home/hermes/.config/tea 0755 hermes hermes -"
|
||||||
@@ -66,7 +90,12 @@ in {
|
|||||||
|
|
||||||
# Ensure 'uv' is in the hermes-agent service PATH so CronJobs and terminal
|
# Ensure 'uv' is in the hermes-agent service PATH so CronJobs and terminal
|
||||||
# sessions can use 'uv run' for PEP 723 scripts (e.g. garmin-daily.py).
|
# sessions can use 'uv run' for PEP 723 scripts (e.g. garmin-daily.py).
|
||||||
systemd.services.hermes-agent.path = [pkgs.uv];
|
systemd.services.hermes-agent = {
|
||||||
|
path = [pkgs.uv];
|
||||||
|
environment = {
|
||||||
|
PYTHONPATH = matrixPythonPath;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
services.hermes-agent = {
|
services.hermes-agent = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -113,12 +142,7 @@ in {
|
|||||||
enable = false;
|
enable = false;
|
||||||
backend = "podman";
|
backend = "podman";
|
||||||
extraVolumes = ["/home/m3tam3re/p:/projects:rw"];
|
extraVolumes = ["/home/m3tam3re/p:/projects:rw"];
|
||||||
extraOptions = [
|
extraOptions = [];
|
||||||
"--env"
|
|
||||||
"PYTHONPATH=${venvSitePackages}"
|
|
||||||
"--env"
|
|
||||||
"LD_LIBRARY_PATH=${gccLibPath}"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
|
|||||||
Reference in New Issue
Block a user