diff --git a/flake.lock b/flake.lock index 45addb6..35ac1ce 100644 --- a/flake.lock +++ b/flake.lock @@ -89,11 +89,11 @@ ] }, "locked": { - "lastModified": 1771437256, - "narHash": "sha256-bLqwib+rtyBRRVBWhMuBXPCL/OThfokA+j6+uH7jDGU=", + "lastModified": 1776249299, + "narHash": "sha256-Dt9t1TGRmJFc0xVYhttNBD6QsAgHOHCArqGa0AyjrJY=", "owner": "numtide", "repo": "blueprint", - "rev": "06ee7190dc2620ea98af9eb225aa9627b68b0e33", + "rev": "56131e8628f173d24a27f6d27c0215eff57e40dd", "type": "github" }, "original": { @@ -123,15 +123,16 @@ ] }, "locked": { - "lastModified": 1770895533, - "narHash": "sha256-v3QaK9ugy9bN9RXDnjw0i2OifKmz2NnKM82agtqm/UY=", - "owner": "nix-community", + "lastModified": 1776182890, + "narHash": "sha256-+/VOe8XGq5klpU+I19D+3TcaR7o+Cwbq67KNF7mcFak=", + "owner": "Mic92", "repo": "bun2nix", - "rev": "c843f477b15f51151f8c6bcc886954699440a6e1", + "rev": "648d293c51e981aec9cb07ba4268bc19e7a8c575", "type": "github" }, "original": { - "owner": "nix-community", + "owner": "Mic92", + "ref": "catalog-support", "repo": "bun2nix", "type": "github" } @@ -268,15 +269,16 @@ "uv2nix": "uv2nix_2" }, "locked": { - "lastModified": 1776145260, - "narHash": "sha256-jyxv5PCRMOA8mU+ng3EDXGLAw0Xq0dDQLgiYgEZudLA=", + "lastModified": 1776369186, + "narHash": "sha256-+Kltn1Ar0Ye4iBc6UVwvNPGI0uIgnCktl4Obh964/60=", "owner": "NousResearch", "repo": "hermes-agent", - "rev": "d6314318721cc8f3eba6e1a6138ccc03355764bc", + "rev": "1dd6b5d5fb94cac59e93388f9aeee6bc365b8f42", "type": "github" }, "original": { "owner": "NousResearch", + "ref": "v2026.4.16", "repo": "hermes-agent", "type": "github" } @@ -410,11 +412,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1776137484, - "narHash": "sha256-3gUwNO4y8ZmTyQBb3fCrLNRnqzAuuwNNSlPjmhrGnMo=", + "lastModified": 1776784995, + "narHash": "sha256-ikxb8cZGWHuZMs3xS471GVrpGA0xW1YFcIVOPTVkhBo=", "owner": "numtide", "repo": "llm-agents.nix", - "rev": "e70ca11dc1a327e99c58dcd580ed209056a61130", + "rev": "e3d40d2cd66a4f8052e4224ec027c6896a455847", "type": "github" }, "original": { @@ -432,8 +434,8 @@ "openspec": "openspec" }, "locked": { - "lastModified": 1776184481, - "narHash": "sha256-X4b1SRiUUhlp1ciL1pwHI5KvXmrM3A9zxb4GaeNkJ9I=", + "lastModified": 1776787894, + "narHash": "sha256-aDi7tWtiBdUBLhH4ULHZpcUTq3/w/Rad6dA/uLHu+7Q=", "path": "/home/m3tam3re/p/NIX/nixpkgs", "type": "path" }, @@ -672,11 +674,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1775888245, - "narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=", + "lastModified": 1776329215, + "narHash": "sha256-a8BYi3mzoJ/AcJP8UldOx8emoPRLeWqALZWu4ZvjPXw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "13043924aaa7375ce482ebe2494338e058282925", + "rev": "b86751bc4085f48661017fa226dee99fab6c651b", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 46598a8..346c109 100644 --- a/flake.nix +++ b/flake.nix @@ -65,7 +65,7 @@ url = "github:vercel-labs/skills"; flake = false; }; - hermes-agent.url = "github:NousResearch/hermes-agent"; + hermes-agent.url = "github:NousResearch/hermes-agent/v2026.4.16"; }; outputs = { diff --git a/home/features/coding/default.nix b/home/features/coding/default.nix index 608c88e..3011a6b 100644 --- a/home/features/coding/default.nix +++ b/home/features/coding/default.nix @@ -1,5 +1,6 @@ { config, + inputs, pkgs, videoDrivers, ... @@ -14,6 +15,20 @@ in { ./opencode.nix ./pi.nix ]; + + coding.agents.skills = { + agentsInput = inputs.agents; + externalSkills = [ + { + src = inputs.skills-anthropic; + selectSkills = ["pdf" "docx" "frontend-design"]; + } + {src = inputs.skills-vercel;} + {src = inputs.skills-basecamp;} + {src = inputs.skills-kestra;} + ]; + }; + programs.mcp = { enable = true; servers = { @@ -47,13 +62,12 @@ in { home.packages = with pkgs; [ agenix-cli + agent-browser alejandra bc bun devpod #devpod-desktop - claude-code - code2prompt gnumake cmake (python3.withPackages (ps: @@ -68,6 +82,7 @@ in { ])) pyrefly nixd + nix-update nodejs # opencode-desktop (qmd.override { @@ -76,6 +91,7 @@ in { }) openshell openspec + pi-coding-agent alejandra sidecar tailwindcss diff --git a/home/features/coding/opencode.nix b/home/features/coding/opencode.nix index 9caa29c..6abed49 100644 --- a/home/features/coding/opencode.nix +++ b/home/features/coding/opencode.nix @@ -6,16 +6,6 @@ coding.agents.opencode = { enable = true; agentsInput = inputs.agents; - - externalSkills = [ - { - src = inputs.skills-anthropic; - selectSkills = ["pdf" "docx" "frontend-design"]; - } - {src = inputs.skills-vercel;} - {src = inputs.skills-basecamp;} - {src = inputs.skills-kestra;} - ]; }; coding.opencode = { diff --git a/home/features/coding/pi.nix b/home/features/coding/pi.nix index 10f37a3..8285dba 100644 --- a/home/features/coding/pi.nix +++ b/home/features/coding/pi.nix @@ -3,23 +3,9 @@ enable = true; agentsInput = inputs.agents; - externalSkills = [ - { - src = inputs.skills-anthropic; - selectSkills = ["pdf" "docx" "frontend-design"]; - } - {src = inputs.skills-vercel;} - {src = inputs.skills-basecamp;} - {src = inputs.skills-kestra;} - ]; - - # Source materialized for m3ta.pi-agent wrapper sync into /var/lib/pi-agent/.pi/agent - # Use .pi/agents to match Pi's native directory layout. - path = ".pi/agents"; - modelOverrides = { - chiron = "zai-coding-plan/glm-5.1"; - chiron-forge = "zai-coding-plan/glm-5.1"; + chiron = "zai/glm-5.1"; + chiron-forge = "zai/glm-5.1"; }; settings = { @@ -33,11 +19,14 @@ "npm:@plannotator/pi-extension" "npm:pi-powerline-footer" "npm:pi-markdown-preview" + "npm:pi-gsd" + "npm:pi-tool-view" + "npm:pi-agent-browser-native" ]; defaultProvider = "zai"; defaultModel = "glm-5.1"; - defaultThinkingLevel = "medium"; + defaultThinkingLevel = "high"; }; # MCP servers auto-inherited from programs.mcp in default.nix diff --git a/hosts/common/default.nix b/hosts/common/default.nix index 134c9d5..db34ab4 100644 --- a/hosts/common/default.nix +++ b/hosts/common/default.nix @@ -78,11 +78,4 @@ nixPath = ["/etc/nix/path"]; }; users.defaultUserShell = pkgs.nushell; - - # Compatibility shim: the hermes-agent nixos module references the legacy - # agenix activation script name "setupSecrets" (renamed to "agenixInstall" - # in current agenix). This empty passthrough satisfies the dependency so - # any host importing hermes-agent.nixosModules.default can build. - # Remove once upstream fixes: github:NousResearch/hermes-agent nix/nixosModules.nix:564 - system.activationScripts.setupSecrets = lib.stringAfter [ "agenixInstall" ] ""; } diff --git a/hosts/m3-hermes/services/hermes-agent.nix b/hosts/m3-hermes/services/hermes-agent.nix index 13fb4d1..a00c86f 100644 --- a/hosts/m3-hermes/services/hermes-agent.nix +++ b/hosts/m3-hermes/services/hermes-agent.nix @@ -34,8 +34,10 @@ in { backend = "podman"; extraVolumes = ["/home/m3tam3re/p:/projects:rw"]; extraOptions = [ - "--env" "PYTHONPATH=${venvSitePackages}" - "--env" "LD_LIBRARY_PATH=${gccLibPath}" + "--env" + "PYTHONPATH=${venvSitePackages}" + "--env" + "LD_LIBRARY_PATH=${gccLibPath}" ]; }; @@ -61,7 +63,7 @@ in { # ── Terminal ─────────────────────────────────────────────────────── terminal = { - backend = "local"; + backend = "docker"; modal_mode = "auto"; cwd = "."; timeout = 180; diff --git a/hosts/m3-kratos/services/default.nix b/hosts/m3-kratos/services/default.nix index 2e0e7db..1c01a34 100644 --- a/hosts/m3-kratos/services/default.nix +++ b/hosts/m3-kratos/services/default.nix @@ -5,7 +5,6 @@ ./mem0.nix # ./n8n.nix ./netbird.nix - ./pi-agent.nix ./postgres.nix ./sound.nix ./udev.nix diff --git a/hosts/m3-kratos/services/pi-agent.nix b/hosts/m3-kratos/services/pi-agent.nix deleted file mode 100644 index 59b74fb..0000000 --- a/hosts/m3-kratos/services/pi-agent.nix +++ /dev/null @@ -1,52 +0,0 @@ -{config, ...}: let - cfg = config.m3ta.pi-agent; -in { - m3ta.pi-agent = { - enable = true; - binaryName = "pi"; - - # Per-user policy map: authorized host users + their allowed project roots. - hostUsers = { - m3tam3re = { - projectRoots = ["~/p"]; - # Optional (default comes from wrapper.hostConfigPath) - configPath = ".pi/agents"; - }; - }; - - wrapper = { - enable = true; - commandName = "pi"; - hideDirectBinary = true; - - # Sync Home Manager rendered Pi config from invoking user home. - hostConfigPath = ".pi/agents"; - }; - }; - - # Manage isolated pi-agent git identity via Home Manager (declarative + reusable pattern). - home-manager.users.${cfg.user} = { - home.username = cfg.user; - home.homeDirectory = cfg.stateDir; - home.stateVersion = "26.05"; - - programs.git = { - enable = true; - signing.format = null; - settings = { - user = { - name = "m3ta-chiron"; - email = "m3ta-chiron@agentmail.to"; - }; - core.excludesfile = "~/.gitignore_global"; - init.defaultBranch = "master"; - alias = { - st = "status"; - logd = "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"; - }; - }; - }; - - home.file.".gitignore_global".text = ""; - }; -} diff --git a/secrets/hermes-cloud-env.age b/secrets/hermes-cloud-env.age index 430608e..d21287a 100644 --- a/secrets/hermes-cloud-env.age +++ b/secrets/hermes-cloud-env.age @@ -1,35 +1,26 @@ ------BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDROTEtydyBQQisx -Z2Z6bTVTazFWWE14eWhLaHNXMU9pVUN4bEZ1U2dFN0c3RW1wdmlvCnh4eFJ4NC9u -UGo3cXNqNHdGQk5CK3J3b0xzcm85SHFMNXhzcUZPSlhUcjAKLT4gc3NoLWVkMjU1 -MTkgNWt3Y3NBIHVrZzBLc1poMkhuNnREQ0hrcHNFc0lYL2I3dHRka0xNN3Fibktm -Qk5HRlkKV0FXbFNkSVBKSENvSlhzZVdMWkxhbHRPSTMyak5YbW93VGFDdWJYdDlN -VQotPiBzc2gtZWQyNTUxOSA5ZDRZSVEgSlVabys1cXQveXFtTkZQckpOM0NldG9D -ZFVVMG9FNDZ3LzkzK09vbHMzZwpPcWE3dGJHc1hzTVpLWlVJUTBLYUZQbXljeGVD -UFF3dWZGSTgxMWZma0hVCi0+IHNzaC1lZDI1NTE5IDNCY3IxdyBISWZFazFhRDk5 -NVNMc1E2elBzclkzU2oxSjh2RjlyUHE2ME4vYnl0WVRjCi8wanRWamd0YXBLbmhE -blRpaTZpblErZllmNzF3VCtjTFlaODErUHRxQzAKLT4gc3NoLWVkMjU1MTkgYzRO -UWxBIDZXU3Y0TEx3ek9HVmpZUzQzRVpDL2sycElOREtRRkI2MTJFekJNajd6SE0K -SUVrTUlIMFVDNkJNL0cxWHhqQ1o1d240VXhBYkh5anlBRFZVZVltRkhTVQotPiBz -c2gtcnNhIERRbEU3dwpNcWRSaDVQRUpVQjBqcUtYN3lBczV5WlgwdlBERkowMFpJ -YWd6Z1FnSGJTVlY4SXNIMldSMFZQMWxtcHZhMXI2CmlWdnhUL29oTnNDV0lYNG0w -UU1oS09BVjRsMk40VHVnU3UrZjAwTkVTMUo0aEo4Z081RVpBeUx1ZGZsUnpMSk4K -cUpPTlJOMnZaUnk1WldOazUrVFRyYTMraEtwYjRkcFlodjUwNEVMazhaQlZVdWhh -b0pPa3JiWHlmOXUxUC8wRQpSUnVCVWZzaVROQTB3ZVR1SUJuNUdxdHIwSjZ5cVhZ -T3RaMytOdDFOUVZVRjBXM25mMFFwZVUzVGZ1d29KRWdWCms3bGVWSldNVEIxZ1Z5 -c0pjWnJRZzFsekN6dlA2Q0ZUQy82WHlhOHNLOWdLY2pkR3hPS1NSdUwzVjNSajdG -blcKVE5oaC9pTmNQL0gvMUp0azJPcFgwQlora0tXTWNWUk5NVTdxdmdmb2o2R294 -OGdpT3dwUzY5dDNDSFRBZ1VkdwppcGtQNGc3U3J4RXI3UzdpV2ZhMG9Dd3RwcDRj -U3pNK2hZaUxmOE42OGNKdW5kYWpLNHRYQ3REQUNqVlg3SFZ4Cm1oMVkwODlPOXJC -SjFVQ1hjMzNYVDZ2OVpEbXBoNnBQT0F6N0xDdnRYbWVmRkxYaElSbjBtN2p1OHlC -akZTUEoKCi0+IHNzaC1lZDI1NTE5IENTTXloZyA3YXYvak0vWW1BM3FVT2RncURE -QzJMa2NoZkRyQ3pIRkNoME1CR3FCVURnCnFXUEZWN0s0alNKZlZWOFdjK0hpMWdz -V05YWjRkNFlYb0pnV0oybW40aVEKLT4gNEU1P0QuOlgtZ3JlYXNlIDZ8I2hQcW4t -ID0mYiB2JDpPeyxMIGpJegp3dwotLS0gOGwwcWlWNERoRWlkMDBIZkt6U0dBaWw1 -TUhHVVp1NEV3cktEeDVVMWtkTQo3CZ3tLMBtiWDVl2PeAQsDShBnvHyUpE6+fjwN -j281j2luh4sKvpYMAQwbEGViKp0Bh9oJCV7CMaVTvY750NI7bu6oK8KpOIElj1UF -wBqnrZO4I1cAnJ1LRybPQXD+Wxc/uHQ4VZ+hO1b00q04wI5J1lWrgs47o+TcIB+M -oWyn5tDlJa55qSK2pcC+csycYlJDgZzhUGa0xZQGL0574hzTH9ZQFNJAnCm77ivC -LNaAoa/GYUT8cCxrSpcMRy+4nqLchCD/ZcCfHC1kOsjJSP9xnrYUe0/bcmsZ9FEz -YVtmsplM61hFzcY59z8VVz9aP8yp1v6LtiwDPX9mJhZXOqU= ------END AGE ENCRYPTED FILE----- +age-encryption.org/v1 +-> ssh-ed25519 4NLKrw Zd/NMDnj6lBe9ZfZyJpubFB5yLl28wNTEJiwd2+9L08 +odN3RAr4w3tg/zsibLhQ/51GtlNhbd6Ps7WEKf5+N7A +-> ssh-ed25519 5kwcsA UmhpgmoOntX/ttwLpAyS5wLgrLkElV+XUkNETHa4mWQ +gYosgxP7Ddn8dZOV7dVFCkZ+QJ4aFR6Fw3bqQDbZTOE +-> ssh-ed25519 9d4YIQ Sys2uaaR/MDc33a48C/HiHWx3pCkJtgXuZDbNjIbuno +cbBeOGom41lyjo1ZJpLZZq3q/pYQHBl68k2CAUTH0q4 +-> ssh-ed25519 3Bcr1w yulsJIUd/9B/Kr6+o5oDUBUyuTbgtxcY/oF3rDFptzg +/oufFYsJ2CmYfhvT38EIirgPGczSqLqPLmAFJqt3OVE +-> ssh-ed25519 c4NQlA QjnDUoTDZbt975WcvJ0WzhgzCJCewgJ8iby9/2I2UwE +tNXuNp71dxvHXYbGTQW4Akg38NUfPe2wxf/L/2bY1fY +-> ssh-rsa DQlE7w +dcSeDLSMYiC3SbCtZ7kzJ0ywZR/fuZJ+YhEZQ7mTVvdwZAqVjkpA/jVxOlWpmKOC +PEydXCo0bHYBFp12ldx5qJvxckZJ6gUM66fX4M618aq87/b9VAqN42GHDJPD6Ot1 +Aae1CpnC1ythkPS+z8FH54u5DYtIimJBApyCNuoc6cKoYe4UoQFV8Fmje/gaiJMa ++Gb9uY42HgCFtkG0g8LMitQft1BQ6Vkx8pIWrAXyxoYOTbPNV+J3ZMe4q1rJTmm2 +yXundaPgobVn3o0x6O4oLerb8Eov9uf/W8dZ9GCtjgbxBCz6gtajEXorZ8eZBREN +R1gB0KZB7kMyomPaZfglVUtr8PXzk71Gia984vyIXNHREY+ioto8YFUWEbHIUPDm +wUo5G/RdxAbI3yOoF8Y9iKVy3q+Zm1rqhYPZ1bm66+cSzrCosPVS1JcNyrwGRlv3 +RJabiJjSkftALGdvZwN1YiAzeyrsCijTSLQfOLihBL5K1DY1R1on0E9O98SQ1cQe + +-> ssh-ed25519 CSMyhg b5XFGFE4oKVs2Va+AmjOsPzqmevAO2R5K3lK4T/ZNlU +bHh12HARMz+eaGy2bjVBlYV/jv0MgavVeB2zVoDNI34 +--- UrkzgesMam4Kwdcb+STgOj05ozL72qeyjNn4zkz2VOg + ~B&Vj}q[ék~'9ϲ%(_ +@P we|1k,7yV¶v#tu$k{3u%Mc6o+vms,g㚙lϰq  mPP5 ev=4‡ oJLWҜZ"ky#_qNqA_v \ No newline at end of file diff --git a/secrets/hermes-env.age b/secrets/hermes-env.age index de7b3bb..d95c908 100644 Binary files a/secrets/hermes-env.age and b/secrets/hermes-env.age differ