9 Commits

Author SHA1 Message Date
m3ta-chiron c692ca1c63 fix: nix eval warnings 2026-06-11 17:42:43 +02:00
m3ta-chiron 2a1dbe540a fix: ksnip crash 2026-06-11 09:29:20 +02:00
m3ta-chiron 93216125d6 Merge branch 'master' of code.m3ta.dev:m3tam3re/nixos-config 2026-06-11 08:53:30 +02:00
m3ta-chiron 690475af84 flake update 2026-06-11 07:50:09 +02:00
m3ta-chiron 80c49a6727 chore: pin m3-atlas ghost to version 6 2026-06-09 18:40:25 +02:00
m3ta-chiron 8b495c6bc9 fix: lock m3ta-home git input 2026-06-07 11:11:06 +02:00
m3ta-chiron 9bceb1c6d0 fix: make inputs self-contained 2026-06-06 13:15:27 +02:00
m3ta-chiron a5d321805b merge into master 2026-06-06 08:02:37 +02:00
m3ta-chiron 651b808f15 +agents-lib in m3ta-home 2026-05-31 14:37:46 +02:00
7 changed files with 470 additions and 179 deletions
Generated
+298 -104
View File
@@ -43,26 +43,6 @@
}
},
"agent-lib": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1780681759,
"narHash": "sha256-eszNyFb1If4ePaJD1aQTvHFog8lvpwjCTl8F9rUlXnk=",
"ref": "refs/heads/master",
"rev": "9a4ee71b1a9008422266e4364a76ee2f08868b5a",
"revCount": 25,
"type": "git",
"url": "ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib"
},
"original": {
"type": "git",
"url": "ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib"
}
},
"agent-lib_2": {
"inputs": {
"nixpkgs": [
"m3ta-home",
@@ -70,11 +50,11 @@
]
},
"locked": {
"lastModified": 1780157040,
"narHash": "sha256-j2d3nj3FvOlxQ+Zlse+rMo3qHD3m4Gick5uiwtTaA2o=",
"lastModified": 1780736323,
"narHash": "sha256-b4CfjbWTT+5Z0XBI2/W2DnybwkYVwLxghCwXVmw9+Iw=",
"ref": "refs/heads/master",
"rev": "f63712a9ba03da6e2f591766d0f055aa65e6d237",
"revCount": 24,
"rev": "b0c832c9e02d8b3d8ad091f022c859382a037afd",
"revCount": 26,
"type": "git",
"url": "ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib"
},
@@ -104,11 +84,11 @@
"agents_2": {
"flake": false,
"locked": {
"lastModified": 1778518220,
"narHash": "sha256-6AQs9VZ0/DuD4njPbYHRE4v+SgJc6SBrGwemTWxikVc=",
"lastModified": 1780133320,
"narHash": "sha256-8AiN9tV9PBb5xblJiPlhumBbKj61qLjzqXXFtkj3vvY=",
"ref": "refs/heads/master",
"rev": "b6e1aaa6261c5056d024d8d4785659eaa4e675e6",
"revCount": 87,
"rev": "920c00313ae242bd93275c30131b9ab1e52ee2fb",
"revCount": 88,
"type": "git",
"url": "https://code.m3ta.dev/m3tam3re/AGENTS"
},
@@ -120,11 +100,11 @@
"agents_3": {
"flake": false,
"locked": {
"lastModified": 1778518220,
"narHash": "sha256-6AQs9VZ0/DuD4njPbYHRE4v+SgJc6SBrGwemTWxikVc=",
"lastModified": 1780133320,
"narHash": "sha256-8AiN9tV9PBb5xblJiPlhumBbKj61qLjzqXXFtkj3vvY=",
"ref": "refs/heads/master",
"rev": "b6e1aaa6261c5056d024d8d4785659eaa4e675e6",
"revCount": 87,
"rev": "920c00313ae242bd93275c30131b9ab1e52ee2fb",
"revCount": 88,
"type": "git",
"url": "https://code.m3ta.dev/m3tam3re/AGENTS"
},
@@ -320,11 +300,11 @@
]
},
"locked": {
"lastModified": 1780290312,
"narHash": "sha256-eTAlX0CwgB84Ts3GaBd944A3DRXVMzgA0EqroZBISUo=",
"lastModified": 1781152676,
"narHash": "sha256-RxWs5ND31KzTG7wvMM+PMfUjyNpmIEr999lqNARaM5o=",
"owner": "nix-community",
"repo": "disko",
"rev": "115e5211780054d8a890b41f0b7734cafad54dfe",
"rev": "ff8702b4de27f72b4c78573dfb89ec74e36abdf1",
"type": "github"
},
"original": {
@@ -364,11 +344,11 @@
]
},
"locked": {
"lastModified": 1780281921,
"narHash": "sha256-ZDsDl7lTOfM+Le2l6gDyEP3o+KHR3TUCkuxd9hQaLro=",
"lastModified": 1781147591,
"narHash": "sha256-ZdD4KNeFjIfdCT3J2eRgCiYBucJsQTXMT5+XssstbOY=",
"owner": "AvengeMedia",
"repo": "dms-plugin-registry",
"rev": "ee4eeacce5a7041ed39f8cd7fe64b6e0e888e73b",
"rev": "bb7f6f61189121435e7b9724ca4f49d904aaa112",
"type": "github"
},
"original": {
@@ -420,6 +400,28 @@
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": [
"m3ta-home",
"hermes-agent",
"nixpkgs"
]
},
"locked": {
"lastModified": 1772408722,
"narHash": "sha256-rHuJtdcOjK7rAHpHphUb1iCvgkU3GpfvicLMwwnfMT0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "f20dc5d9b8027381c474144ecabc9034d6a839a3",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_4": {
"inputs": {
"nixpkgs-lib": [
"m3ta-home",
@@ -441,7 +443,7 @@
"type": "github"
}
},
"flake-parts_4": {
"flake-parts_5": {
"inputs": {
"nixpkgs-lib": [
"nur",
@@ -472,16 +474,42 @@
"uv2nix": "uv2nix_2"
},
"locked": {
"lastModified": 1780061757,
"narHash": "sha256-0CmNH879jnsAAszo1nkkFm8RNE49xtwUditYdFIYBCM=",
"lastModified": 1780707343,
"narHash": "sha256-ngpkopVczNrT0bfCXHm38QjgrZT96Bm/rO89NA/ls3Y=",
"owner": "NousResearch",
"repo": "hermes-agent",
"rev": "77a1650c78a4cb1813d8a81fa1da40a15b6a3ec5",
"rev": "3c231eb3979ab9c57d5cd6d02f1d577a3b718b43",
"type": "github"
},
"original": {
"owner": "NousResearch",
"ref": "v2026.6.5",
"repo": "hermes-agent",
"type": "github"
}
},
"hermes-agent_2": {
"inputs": {
"flake-parts": "flake-parts_3",
"nixpkgs": [
"m3ta-home",
"nixpkgs"
],
"npm-lockfile-fix": "npm-lockfile-fix_2",
"pyproject-build-systems": "pyproject-build-systems_2",
"pyproject-nix": "pyproject-nix_5",
"uv2nix": "uv2nix_4"
},
"locked": {
"lastModified": 1781150804,
"narHash": "sha256-SDccCmUejmY/tROZRduFejEmsXEZvOA399zOv2Q2m/k=",
"owner": "NousResearch",
"repo": "hermes-agent",
"rev": "3e74f75e41ecd5a3b937d692ba7dcffbf77304f6",
"type": "github"
},
"original": {
"owner": "NousResearch",
"ref": "v2026.5.29.2",
"repo": "hermes-agent",
"type": "github"
}
@@ -514,11 +542,11 @@
]
},
"locked": {
"lastModified": 1780593650,
"narHash": "sha256-CHo7k65YTL3HY+WQVedDTupji+LMgNlKCdrtRHZFAK4=",
"lastModified": 1781129616,
"narHash": "sha256-Hl0Pz/QIKpePSU7SdK3BMe5VNmUhFvfWyg57GyawxzE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "447fd9ff62501dae7206dfe180ee89f8de27b7d5",
"rev": "7dbd305f8b81050f223f00bcfbc8a6b74e048806",
"type": "github"
},
"original": {
@@ -557,11 +585,11 @@
]
},
"locked": {
"lastModified": 1780099287,
"narHash": "sha256-efIPwVGtIWIjWcznhaop6XN6HxnOL8800hF6CBNvlqQ=",
"lastModified": 1781129616,
"narHash": "sha256-Hl0Pz/QIKpePSU7SdK3BMe5VNmUhFvfWyg57GyawxzE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "7d8127d308c3fb9664f7e643eec944be74ebb37d",
"rev": "7dbd305f8b81050f223f00bcfbc8a6b74e048806",
"type": "github"
},
"original": {
@@ -602,11 +630,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1780640554,
"narHash": "sha256-dgnL2gTgRoO1D4z6wkARGCO/gimq3/UE/mVFcQcWBn8=",
"lastModified": 1781157766,
"narHash": "sha256-InNpK3w0V6odvKtC5wCXZZiluiWAD6uLElz3to+sQA0=",
"owner": "numtide",
"repo": "llm-agents.nix",
"rev": "f764eba1fdd162a1f2bc923f7e7034b894a22b4a",
"rev": "0b3a6a2dc43576f223d036ba70a29a2f0de99061",
"type": "github"
},
"original": {
@@ -618,10 +646,11 @@
"m3ta-home": {
"inputs": {
"agenix": "agenix_2",
"agent-lib": "agent-lib_2",
"agent-lib": "agent-lib",
"agents": "agents",
"dms": "dms",
"dms-plugin-registry": "dms-plugin-registry",
"hermes-agent": "hermes-agent_2",
"home-manager": "home-manager_4",
"m3ta-nixpkgs": "m3ta-nixpkgs",
"nix-colors": "nix-colors",
@@ -631,11 +660,11 @@
"nur": "nur"
},
"locked": {
"lastModified": 1780420920,
"narHash": "sha256-dxcRmexgCX+DlmlFRE/eW3gzdohVU7+JTAkzUzvG/1Y=",
"lastModified": 1781192012,
"narHash": "sha256-zQ8AV4kiuyOT3B5bHzeF28eRv+3d3RSCIIDrTR6Rhr4=",
"ref": "refs/heads/master",
"rev": "19dea8277ef9c473e95e2dc3be367044dfa3f65c",
"revCount": 45,
"rev": "4a9d24fe08a85d00c8e6fe0dd1d3165dc604f5fc",
"revCount": 57,
"type": "git",
"url": "ssh://gitea@code.m3ta.dev/m3tam3re/m3ta-home"
},
@@ -656,11 +685,11 @@
"openspec": "openspec"
},
"locked": {
"lastModified": 1779944037,
"narHash": "sha256-jO6zAJjgc9n3SeDJW1EbV6CEqOa9DK+2AhTgWc+ImHQ=",
"lastModified": 1781153970,
"narHash": "sha256-OtC89zreW6Api7wpF5u76Jvkn8uQJiM+0yFFn/r+rj8=",
"ref": "refs/heads/master",
"rev": "ae1fb97c21b311dc03a46e8d50867048e5568c88",
"revCount": 323,
"rev": "8fae0726a53ecabb04f4a0931a17a25de6a05fbf",
"revCount": 324,
"type": "git",
"url": "ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs"
},
@@ -678,11 +707,11 @@
"openspec": "openspec_2"
},
"locked": {
"lastModified": 1779944037,
"narHash": "sha256-jO6zAJjgc9n3SeDJW1EbV6CEqOa9DK+2AhTgWc+ImHQ=",
"lastModified": 1781153970,
"narHash": "sha256-OtC89zreW6Api7wpF5u76Jvkn8uQJiM+0yFFn/r+rj8=",
"ref": "refs/heads/master",
"rev": "ae1fb97c21b311dc03a46e8d50867048e5568c88",
"revCount": 323,
"rev": "8fae0726a53ecabb04f4a0931a17a25de6a05fbf",
"revCount": 324,
"type": "git",
"url": "ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs"
},
@@ -859,11 +888,11 @@
},
"nixpkgs-master": {
"locked": {
"lastModified": 1779457550,
"narHash": "sha256-yALoy2CrvwvNfwMtGZDRdc+jqVNHulyuM5iVK12lUAI=",
"lastModified": 1781153468,
"narHash": "sha256-ZBRmjFtJn/XmHBV230OSabKQqxOoOJunJmBtSt1sLs0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a9c18fd234dbe4fd8de4bac53760b785c47e94ff",
"rev": "cd265fd6b43f2ec1257c2e400f648895d2ad7ccd",
"type": "github"
},
"original": {
@@ -875,11 +904,11 @@
},
"nixpkgs-master_2": {
"locked": {
"lastModified": 1779457550,
"narHash": "sha256-yALoy2CrvwvNfwMtGZDRdc+jqVNHulyuM5iVK12lUAI=",
"lastModified": 1781153468,
"narHash": "sha256-ZBRmjFtJn/XmHBV230OSabKQqxOoOJunJmBtSt1sLs0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a9c18fd234dbe4fd8de4bac53760b785c47e94ff",
"rev": "cd265fd6b43f2ec1257c2e400f648895d2ad7ccd",
"type": "github"
},
"original": {
@@ -891,11 +920,11 @@
},
"nixpkgs-master_3": {
"locked": {
"lastModified": 1780675612,
"narHash": "sha256-0uf5rIKWl6ljqZtDdYhVpBru9cggmUyoOw+m7IZNKYk=",
"lastModified": 1781160346,
"narHash": "sha256-fYh977TEG3NQN8sAQRMVtyuidoiqKuRRgrMWLD+s01A=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "a08eccd152a1534c8e01e69709fd21b108e5be2d",
"rev": "9e70637b2cb27f7d49c852f9fb7e0080ae953adb",
"type": "github"
},
"original": {
@@ -907,11 +936,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1779796641,
"narHash": "sha256-ZsIrKmhp4vbBXoXXmR/tBXA/UCsAQiJL9vsgZEduhVY=",
"lastModified": 1780952837,
"narHash": "sha256-Fwd1+spDtQ0hDyBwme6ufG3n4mY0UrjjFdYHv+G/Hds=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "25f538306313eae3927264466c70d7001dcea1df",
"rev": "e820eb4a444b46a19b2e03e8dfd2359439ff30fe",
"type": "github"
},
"original": {
@@ -955,11 +984,11 @@
},
"nixpkgs_3": {
"locked": {
"lastModified": 1780365719,
"narHash": "sha256-QfWfccTN+70ZQ4m2qlU9PiKfz2Yppq94058iJyARNwc=",
"lastModified": 1780930886,
"narHash": "sha256-rppURzHviaQN131F+nLiLdGfcb0uCd9gGP0E5+iw9MI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ffa10e26ae11d676b2db836259889f1f571cb14f",
"rev": "8c3cede7ddc26bd659d2d383b5610efbd2c7a16e",
"type": "github"
},
"original": {
@@ -1003,11 +1032,11 @@
},
"nixpkgs_6": {
"locked": {
"lastModified": 1779560665,
"narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=",
"lastModified": 1780749050,
"narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "64c08a7ca051951c8eae34e3e3cb1e202fe36786",
"rev": "a799d3e3886da994fa307f817a6bc705ae538eeb",
"type": "github"
},
"original": {
@@ -1019,11 +1048,11 @@
},
"nixpkgs_7": {
"locked": {
"lastModified": 1778869304,
"narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=",
"lastModified": 1780749050,
"narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "d233902339c02a9c334e7e593de68855ad26c4cb",
"rev": "a799d3e3886da994fa307f817a6bc705ae538eeb",
"type": "github"
},
"original": {
@@ -1051,11 +1080,11 @@
},
"nixpkgs_9": {
"locked": {
"lastModified": 1780365719,
"narHash": "sha256-QfWfccTN+70ZQ4m2qlU9PiKfz2Yppq94058iJyARNwc=",
"lastModified": 1780930886,
"narHash": "sha256-rppURzHviaQN131F+nLiLdGfcb0uCd9gGP0E5+iw9MI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "ffa10e26ae11d676b2db836259889f1f571cb14f",
"rev": "8c3cede7ddc26bd659d2d383b5610efbd2c7a16e",
"type": "github"
},
"original": {
@@ -1086,17 +1115,39 @@
"type": "github"
}
},
"npm-lockfile-fix_2": {
"inputs": {
"nixpkgs": [
"m3ta-home",
"hermes-agent",
"nixpkgs"
]
},
"locked": {
"lastModified": 1775903712,
"narHash": "sha256-2GV79U6iVH4gKAPWYrxUReB0S41ty/Y3dBLquU8AlaA=",
"owner": "jeslie0",
"repo": "npm-lockfile-fix",
"rev": "c6093acb0c0548e0f9b8b3d82918823721930fe8",
"type": "github"
},
"original": {
"owner": "jeslie0",
"repo": "npm-lockfile-fix",
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": "flake-parts_3",
"flake-parts": "flake-parts_4",
"nixpkgs": "nixpkgs_6"
},
"locked": {
"lastModified": 1780290189,
"narHash": "sha256-2igu6l2/d4RikYmC/SsykZ1jF1e4+Df+2qWPYjq2xto=",
"lastModified": 1781153862,
"narHash": "sha256-inru9e3OUY4xIf9xZjjNdEQsO3hq9qP6sc0IzxO4m10=",
"owner": "nix-community",
"repo": "NUR",
"rev": "8b6210602dcbd4409ab1c3453ea0c292637c2799",
"rev": "693d3fb2b087955a22098417dbbfd5b0020be50a",
"type": "github"
},
"original": {
@@ -1107,17 +1158,17 @@
},
"nur_2": {
"inputs": {
"flake-parts": "flake-parts_4",
"flake-parts": "flake-parts_5",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1780667345,
"narHash": "sha256-JkFBPvT91un8Hq2wrMJxcJgiWwpIl6X5frAH6E8f32M=",
"lastModified": 1781158001,
"narHash": "sha256-cg+genglm+qSyQ0nvu6cvpTuxkpYMw1Oi9GrtXPy6cI=",
"owner": "nix-community",
"repo": "NUR",
"rev": "c81bd4bb3912e373c17eaff12d67d478dfedf418",
"rev": "e2af4a27c10f1ed1e6b55fb2de40cefe3f4a55e6",
"type": "github"
},
"original": {
@@ -1135,11 +1186,11 @@
]
},
"locked": {
"lastModified": 1779302169,
"narHash": "sha256-OOSPtUXC4F2umtsZPkyWlPQxhXBsxF2vqBXLeI/lqIw=",
"lastModified": 1780479100,
"narHash": "sha256-VZZ/ukjciXqiebwei2JizyOnxx0T3IeoowFWElKec4o=",
"owner": "Fission-AI",
"repo": "OpenSpec",
"rev": "79303b521068c5f525ee61db06b915fc44b098f4",
"rev": "1b06fddd59d8e592d5b5794a1970b22867e85b1f",
"type": "github"
},
"original": {
@@ -1156,11 +1207,11 @@
]
},
"locked": {
"lastModified": 1779302169,
"narHash": "sha256-OOSPtUXC4F2umtsZPkyWlPQxhXBsxF2vqBXLeI/lqIw=",
"lastModified": 1780479100,
"narHash": "sha256-VZZ/ukjciXqiebwei2JizyOnxx0T3IeoowFWElKec4o=",
"owner": "Fission-AI",
"repo": "OpenSpec",
"rev": "79303b521068c5f525ee61db06b915fc44b098f4",
"rev": "1b06fddd59d8e592d5b5794a1970b22867e85b1f",
"type": "github"
},
"original": {
@@ -1192,6 +1243,30 @@
"type": "github"
}
},
"pyproject-build-systems_2": {
"inputs": {
"nixpkgs": [
"m3ta-home",
"hermes-agent",
"nixpkgs"
],
"pyproject-nix": "pyproject-nix_4",
"uv2nix": "uv2nix_3"
},
"locked": {
"lastModified": 1772555609,
"narHash": "sha256-3BA3HnUvJSbHJAlJj6XSy0Jmu7RyP2gyB/0fL7XuEDo=",
"owner": "pyproject-nix",
"repo": "build-system-pkgs",
"rev": "c37f66a953535c394244888598947679af231863",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "build-system-pkgs",
"type": "github"
}
},
"pyproject-nix": {
"inputs": {
"nixpkgs": [
@@ -1257,6 +1332,74 @@
"type": "github"
}
},
"pyproject-nix_4": {
"inputs": {
"nixpkgs": [
"m3ta-home",
"hermes-agent",
"pyproject-build-systems",
"nixpkgs"
]
},
"locked": {
"lastModified": 1769936401,
"narHash": "sha256-kwCOegKLZJM9v/e/7cqwg1p/YjjTAukKPqmxKnAZRgA=",
"owner": "nix-community",
"repo": "pyproject.nix",
"rev": "b0d513eeeebed6d45b4f2e874f9afba2021f7812",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "pyproject.nix",
"type": "github"
}
},
"pyproject-nix_5": {
"inputs": {
"nixpkgs": [
"m3ta-home",
"hermes-agent",
"nixpkgs"
]
},
"locked": {
"lastModified": 1772865871,
"narHash": "sha256-/ZTSg97aouL0SlPHaokA4r3iuH9QzHVuWPACD2CUCFY=",
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"rev": "e537db02e72d553cea470976b9733581bcf5b3ed",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"type": "github"
}
},
"pyproject-nix_6": {
"inputs": {
"nixpkgs": [
"m3ta-home",
"hermes-agent",
"uv2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1771518446,
"narHash": "sha256-nFJSfD89vWTu92KyuJWDoTQJuoDuddkJV3TlOl1cOic=",
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"rev": "eb204c6b3335698dec6c7fc1da0ebc3c6df05937",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"type": "github"
}
},
"quickshell": {
"inputs": {
"nixpkgs": [
@@ -1283,7 +1426,6 @@
"root": {
"inputs": {
"agenix": "agenix",
"agent-lib": "agent-lib",
"disko": "disko",
"hermes-agent": "hermes-agent",
"home-manager": "home-manager_2",
@@ -1505,6 +1647,58 @@
"repo": "uv2nix",
"type": "github"
}
},
"uv2nix_3": {
"inputs": {
"nixpkgs": [
"m3ta-home",
"hermes-agent",
"pyproject-build-systems",
"nixpkgs"
],
"pyproject-nix": [
"m3ta-home",
"hermes-agent",
"pyproject-build-systems",
"pyproject-nix"
]
},
"locked": {
"lastModified": 1770770348,
"narHash": "sha256-A2GzkmzdYvdgmMEu5yxW+xhossP+txrYb7RuzRaqhlg=",
"owner": "pyproject-nix",
"repo": "uv2nix",
"rev": "5d1b2cb4fe3158043fbafbbe2e46238abbc954b0",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "uv2nix",
"type": "github"
}
},
"uv2nix_4": {
"inputs": {
"nixpkgs": [
"m3ta-home",
"hermes-agent",
"nixpkgs"
],
"pyproject-nix": "pyproject-nix_6"
},
"locked": {
"lastModified": 1773039484,
"narHash": "sha256-+boo33KYkJDw9KItpeEXXv8+65f7hHv/earxpcyzQ0I=",
"owner": "pyproject-nix",
"repo": "uv2nix",
"rev": "b68be7cfeacbed9a3fa38a2b5adc0cfb81d9bb1f",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "uv2nix",
"type": "github"
}
}
},
"root": "root",
+1 -7
View File
@@ -25,7 +25,6 @@
m3ta-nixpkgs.url = "git+ssh://gitea@code.m3ta.dev/m3tam3re/nixpkgs";
llm-agents.url = "github:numtide/llm-agents.nix";
#
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
@@ -48,12 +47,7 @@
inputs.nixpkgs.follows = "nixpkgs";
};
agent-lib = {
url = "git+ssh://gitea@code.m3ta.dev/m3tam3re/agent-lib";
inputs.nixpkgs.follows = "nixpkgs";
};
hermes-agent.url = "github:NousResearch/hermes-agent/v2026.5.29.2";
hermes-agent.url = "github:NousResearch/hermes-agent/v2026.6.5";
rustfs = {
url = "github:rustfs/rustfs-flake";
+1 -1
View File
@@ -1,6 +1,6 @@
{config, ...}: {
virtualisation.oci-containers.containers."ghost" = {
image = "docker.io/ghost:latest";
image = "docker.io/ghost:6-alpine";
environmentFiles = [config.age.secrets.ghost-env.path];
ports = ["127.0.0.1:3002:2368"];
volumes = ["ghost_data:/var/lib/ghost/content"];
+128 -41
View File
@@ -8,43 +8,141 @@
# Edge TTS: Seraphina — friendly, multilingual German female voice (free, no API key)
edgeVoice = "de-DE-SeraphinaMultilingualNeural";
agentLock = builtins.fromJSON (builtins.readFile ../../../agent-sources.lock.json);
agentSkillSelections = {
m3ta-agents.exclude = [];
anthropic.exclude = ["pdf" "skill-creator" "xlsx"];
basecamp.exclude = [];
kestra.exclude = [];
mattpocock.exclude = ["grill-me" "caveman"];
superpowers.exclude = ["brainstorming" "systematic-debugging"];
vercel.exclude = [];
agentSkillExclusions = {
m3ta-agents = [];
anthropic = ["pdf" "skill-creator" "xlsx"];
basecamp = [];
kestra = [];
mattpocock = ["grill-me" "caveman"];
superpowers = ["brainstorming" "systematic-debugging"];
vercel = [];
};
sourceRoot = source:
builtins.fetchGit {
inherit (source) url rev;
agentLibSharedSkillsDir = ".agents/skills";
agentLibHomeManagerStub = {lib, ...}: {
options.home.homeDirectory = lib.mkOption {
type = lib.types.str;
default = "/var/lib/hermes";
};
options.home.file = lib.mkOption {
type = lib.types.attrsOf (lib.types.submodule ({name, ...}: {
options = {
enable = lib.mkOption {
type = lib.types.bool;
default = true;
};
executable = lib.mkOption {
type = lib.types.nullOr lib.types.bool;
default = null;
};
force = lib.mkOption {
type = lib.types.bool;
default = false;
};
ignorelinks = lib.mkOption {
type = lib.types.bool;
default = false;
};
onChange = lib.mkOption {
type = lib.types.lines;
default = "";
};
recursive = lib.mkOption {
type = lib.types.bool;
default = false;
};
source = lib.mkOption {
type = lib.types.nullOr lib.types.path;
default = null;
};
target = lib.mkOption {
type = lib.types.str;
default = name;
};
text = lib.mkOption {
type = lib.types.nullOr lib.types.lines;
default = null;
};
};
}));
default = {};
};
options.home.packages = lib.mkOption {
type = lib.types.listOf lib.types.package;
default = [];
};
options.assertions = lib.mkOption {
type = lib.types.listOf lib.types.attrs;
default = [];
};
};
selectedSkillNames = sourceName: let
source = agentLock.sources.${sourceName};
excluded = agentSkillSelections.${sourceName}.exclude;
in
lib.subtractLists excluded (builtins.attrNames source.items.skills);
agentLibSourceSelections =
lib.mapAttrs (_sourceName: exclude: {
skills = {
all = true;
inherit exclude;
};
})
agentSkillExclusions;
copySkill = sourceName: skillName: let
source = agentLock.sources.${sourceName};
item = source.items.skills.${skillName};
# Evaluate agent-lib's Hermes target renderer with a minimal Home Manager
# surface, then expose its selected shared-skill outputs as a single Nix store
# directory for hermes-agent's native `skills.external_dirs` setting. The full
# Home Manager module is not imported into this NixOS host because Hermes runs
# as a system service user rather than a managed login user's Home Manager
# generation.
agentLibEval = lib.evalModules {
specialArgs = {inherit pkgs;};
modules = [
agentLibHomeManagerStub
inputs.agent-lib.homeManagerModules.default
{
home.homeDirectory = "/var/lib/hermes";
programs.agent-lib = {
enable = true;
lockFile = ../../../agent-sources.lock.json;
shared.skillsDir = agentLibSharedSkillsDir;
targets.hermes.enable = true;
profiles.default.sources = agentLibSourceSelections;
};
}
];
};
agentLibFailedAssertions = lib.filter (assertion: !assertion.assertion) agentLibEval.config.assertions;
agentLibHomeFiles =
if agentLibFailedAssertions != []
then throw (builtins.head agentLibFailedAssertions).message
else agentLibEval.config.home.file;
hermesSkillHomeFiles =
lib.filterAttrs (
targetPath: file:
lib.hasPrefix "${agentLibSharedSkillsDir}/" targetPath
&& file ? source
&& file.source != null
)
agentLibHomeFiles;
linkHermesSkill = targetPath: file: let
skillName = lib.removePrefix "${agentLibSharedSkillsDir}/" targetPath;
in ''
cp -R ${sourceRoot source}/${source.root}/${item.path} $out/${skillName}
ln -s ${file.source} "$out"/${lib.escapeShellArg skillName}
'';
copySourceSkills = sourceName:
lib.concatMapStringsSep "\n" (copySkill sourceName) (selectedSkillNames sourceName);
# Build skills from the agent-lib lockfile instead of the legacy AGENTS flake.
hermesSkills = pkgs.runCommand "hermes-agent-lib-skills" {} ''
# Deterministic store renderer consumed directly by Hermes. Each entry is a
# symlink to the immutable skill directory selected by agent-lib, so
# `$out/<skill>/SKILL.md` exists without a mutable copy service.
hermesSkills =
if hermesSkillHomeFiles == {}
then throw "agent-lib: Hermes skill selection produced no skills"
else
pkgs.runCommand "hermes-agent-lib-skills" {} ''
mkdir -p $out
${lib.concatMapStringsSep "\n" copySourceSkills (builtins.attrNames agentSkillSelections)}
${lib.concatMapAttrsStringSep "\n" linkHermesSkill hermesSkillHomeFiles}
'';
in {
virtualisation.docker.enable = true;
@@ -63,18 +161,7 @@ in {
''}"
];
systemd.services.copy-hermes-skills = {
description = "Copy agent skills to hermes home directory";
wantedBy = ["hermes-agent.service"];
before = ["hermes-agent.service"];
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
script = ''
mkdir -p /var/lib/hermes/.agents
cp -rT ${hermesSkills} /var/lib/hermes/.agents/skills
chown -R hermes:hermes /var/lib/hermes/.agents
'';
};
systemd.services.hermes-agent.restartTriggers = [hermesSkills];
services.hermes-agent = {
enable = true;
@@ -175,7 +262,7 @@ in {
skills = {
external_dirs = [
"/var/lib/hermes/.agents/skills"
hermesSkills
];
};
+18 -1
View File
@@ -4,7 +4,6 @@
# m3ta-home via the profile mapping in hosts/common/users/m3tam3re.nix.
{
config,
inputs,
lib,
...
}:
@@ -15,6 +14,8 @@ with lib; {
config = mkMerge [
# ── XDG / MIME defaults ──
{
qt.platformTheme.name = mkForce "qtct";
xdg = {
enable = true;
configFile."mimeapps.list".force = true;
@@ -58,6 +59,22 @@ with lib; {
"6, monitor:DP-2"
"7, monitor:DP-2"
];
# m3ta-home sets QT_QPA_PLATFORMTHEME=gtk3 globally for Hyprland.
# ksnip crashes with duplicate GDK type registration under that Qt GTK
# platform theme, so use qtct for Qt apps on this host instead.
env = mkForce [
"XCURSOR_SIZE,32"
"HYPRCURSOR_THEME,Bibata-Modern-Ice"
"WLR_NO_HARDWARE_CURSORS,1"
"XDG_CURRENT_DESKTOP,Hyprland"
"XDG_SESSION_TYPE,wayland"
"XDG_SESSION_DESKTOP,Hyprland"
"XKB_DEFAULT_LAYOUT,de"
"NIXOS_OZONE_WL,1"
"QT_QPA_PLATFORM,wayland;xcb"
"QT_QPA_PLATFORMTHEME,qt5ct"
"QT_QPA_PLATFORMTHEME_QT6,qt6ct"
];
windowrule = [
"match:class dev.zed.Zed, workspace 1"
"match:class ^(com.obsproject.Studio)$, workspace 2"
+22 -23
View File
@@ -1,26 +1,25 @@
age-encryption.org/v1
-> ssh-ed25519 4NLKrw 2TwbZwX9SwWg4SVC0A2ICmyRjSfO+xtfBcBOK1lh3T4
DSf4DrOAvW7L49lh6cq5IqrMM7gqXv2+67rR3ttn+CE
-> ssh-ed25519 5kwcsA K1hqFOAxq2T+oLp3bQjLYpXtlQVkA7RHCM/8ETMGbwU
xIE4xz50LB5vbDTTLKVcx9vC2iXIsRLThHYYxGjcJyY
-> ssh-ed25519 9d4YIQ bXYb62OM/N+EXpMOZZ6zEbpfaH10Vz62PuUdGODXolw
j64kKzOn8CmSnykEuWnXHZ0nfqwOfOxX4FPR4GSouR0
-> ssh-ed25519 3Bcr1w C4alN6ud7q0K4I7NHuBgC77D6zeTfZVGjNS3EKpvL00
NpjOsg3eJ5LvX0lV7NYuVHLeqeYylHdmw60H+KeG1GY
-> ssh-ed25519 c4NQlA In5wsg4+LTIEbP75B83GMXPCItSPGwKWUW8QO+QjXyY
oK1kikhr4RMq6QMv9kjNjiKrf5srlGh7hGbU2qns2rM
-> ssh-ed25519 4NLKrw 42tBp6EbDJpC7EBt0++QxmF3N9rQJ/AP+7A/S174rCs
bRzpQku0GLEBvANvCdeH3L4Kf06k6w2C4FfZCOp2QWI
-> ssh-ed25519 5kwcsA YAYkQzsxfbHwrCPMW2eqLS9mRuuxr+EjHKl7MV3DDEo
dN3TitETbdPbXzBtIDBglienhY4oDsFGgfe0VYdsP1o
-> ssh-ed25519 9d4YIQ 2vTWMSuLrgpgaTWeu0ARoUOukLBKupCfMdqJhLvTqwA
Lzk2Uo2U3tUJiq29on/a5zYfuUjgOZvCHhZYuFGSDG4
-> ssh-ed25519 3Bcr1w x689Z0/TsOLLk1JNPXg2jj6y5ucaH37zRt46d/Z1l2w
Bkzg3umkDYFBemmgev/M5LUFuobFugXe0u85mLmsDSo
-> ssh-ed25519 c4NQlA 5Dn6e8bILaYl9FVt+ZwuZ6rOC0k0Kg1+KOSP4JakyWI
AT6LeCo+P7RjgNhRex04kJ/7NHD2DAWRqs33uOJ7e5E
-> ssh-rsa DQlE7w
tcP4yPgGWqHYeE1gw/KD6cswik+9WU2s2f7hg5mK78085sQ7npXRsBVAz2OCRn07
foeAAmnY4YmKriBh421JOVNBDOXHR5dfaIKY9b663L+rYj99ic0rfW26C+dqKitF
SnvveL3Zf16nqg6duSVA7LIcIFgkIlA+RXnHPVho+P4GwEH7W8nCf/4kUquuhB7B
F4Hx1qOknmGyNBJBFi27D04ZDDk/ZVxioYsO6P6TUu7MuaGmQCoVKREDl5RRh4zO
XD8/TFDRsJLqqcbCKIlU+6CN1+L0r4FN4K0UaTjwPNzGvn5EEjBKw9RpOhdvI28I
WlAQ+w6gdQiz9Ju4e5p7Doz2MbNb6894DimawHjzl968Xy5ifX2XA+FBdcW5hU9A
u+7VXKZmbfMyvRA7lmKRoi4SurJAyQd6iXBrVKfTwFc53V/tJi48bsKcE3yXxHH+
lKGuZFNGDDkqCruycjvz94WaIHy3fv5hhmBdgwoCZK1VGSLAnwdm1rG4B9m3t/K8
M9pUnzZDa1v6X5UbQOE6HILaGU36VkQtnfXaJJdxJSRQ/sE9R3ZQoLjRZAw+UhUf
09JwLkS55477xaar3bpvvOxeP4MrtTHLJ7593eEkFT3i45FfVmxutq6EYckZrCJB
WjrCG7Cbvc20o6s54PYiF4Xk8AuPxt+SElRxBtcOK+SPba84f+WWHqrBA1YRzTDK
fsM15eKWsJgzaz5y36grv4xSj4KbWMFtmEt5V5BEW32+zXBU5CPhonO59TxEQgh4
hI2+gNmAzKQja7xbuxCyr3jcXWJz7IuXcrklr+2ZjF1wx3BDll1z+vxSX0C88MCc
OLKDfnUiDa6BlgUfLK90dLIia8v0oIPXs4OWRfYs7SC/Z3QOPpSO62Ky9dKYRrod
PHvCgxX28QvROE4TekL9PV81AfAbMVJrnkRiybg6id8CscldtDmgaKqoaIoJlAuF
g5/LGd+FPfmlv2iNfGUn2Glhui8SkrBK1MzGJpeQw+l4CXLH33yQzHX0m6TdQBzr
-> ssh-ed25519 CSMyhg FNYYdEIJYcxkjMuM5lnIs9gIilvgD44uazZE8CjNeho
QHeghlsOOlYNMwhMHT4o7DeuyxGP/3wyqm94HUHjn44
--- zRG6aCTS+X18VpeN+tz38kaUoilk1kN5KrWTWYZ6pV4
ræX _qÔÁ’Ð껿H#p¯f™”}(žA(ã|»?ë0ªyJk¥SD‡\Jm&uõà &Ô9€ýÄ5Ù+çÊ…!v%Y˜ù~ãÁ$û“šZÇÓ° j„z–Â\ßá1,Vf˜
£’æ1zª»#Ó
-> ssh-ed25519 CSMyhg 5YHqBNbkkUFVhDEfOM4P2tAxT2t1rDn5KItUcjUs4DY
oWEKUGiIVkRQvEkY33PpOUcoqsmacgHAaX58H6sRpP4
--- KH+IYh4+bS3JMeEmFYakwIceMxOrlEZj0Fqt3VMgFRk
96¨ºà·ènÅϬuk!ß±1ÝNItŽNŸ8EçwĹ]3µ”S*¡õ«0>!ý9zc‡(”2OI.^jC”&$ºÚ\ÛËWtÇÃNÿ#Õ€Å3¾ÜøÞÌÏcMuÈAߢ•<¾)¬´¼a¥rdí'pÄggPä5’ÆõOQòNfà”×1AZ|1v\š4F›‡Ò 6;„T<l£
Binary file not shown.