pkgs/h/hermes-agent: add hermes-agent 0.13.0

This commit is contained in:
Rongsong Shen 2026-05-09 17:06:20 +08:00
parent e6a8a34661
commit cc2dfc8747
4 changed files with 241 additions and 9 deletions

View file

@ -1,4 +1,4 @@
{pkgs,...}: {pkgs, uv2nix ? null, pyproject-nix ? null, pyproject-build-systems ? null, npm-lockfile-fix-pkg ? null, ...}:
with pkgs; with pkgs;
let let
cedro = callPackage ./pkgs/c/cedro/package.nix {}; cedro = callPackage ./pkgs/c/cedro/package.nix {};
@ -78,6 +78,12 @@ let
cetcd = callPackage ./pkgs/c/cetcd/package.nix {}; cetcd = callPackage ./pkgs/c/cetcd/package.nix {};
deepseek-tui = callPackage ./pkgs/d/deepseek-tui/package.nix {}; deepseek-tui = callPackage ./pkgs/d/deepseek-tui/package.nix {};
kiro-account-manager = callPackage ./pkgs/k/kiro-account-manager/package.nix {}; kiro-account-manager = callPackage ./pkgs/k/kiro-account-manager/package.nix {};
hermes-agent = callPackage ./pkgs/h/hermes-agent/package.nix {
uv2nix = uv2nix;
pyproject-nix = pyproject-nix;
pyproject-build-systems = pyproject-build-systems;
npm-lockfile-fix = npm-lockfile-fix-pkg;
};
struct2json = callPackage ./pkgs/s/struct2json/package.nix { struct2json = callPackage ./pkgs/s/struct2json/package.nix {
pkgs = pkgs; pkgs = pkgs;
}; };
@ -96,6 +102,7 @@ in
cetcd = cetcd; cetcd = cetcd;
deepseek-tui = deepseek-tui; deepseek-tui = deepseek-tui;
kiro-account-manager = kiro-account-manager; kiro-account-manager = kiro-account-manager;
hermes-agent = hermes-agent;
libcello_debug = libcello_debug; libcello_debug = libcello_debug;
packcc = packcc_main; packcc = packcc_main;
struct2json = struct2json; struct2json = struct2json;

162
flake.lock generated
View file

@ -20,11 +20,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1764667669, "lastModified": 1777954456,
"narHash": "sha256-7WUCZfmqLAssbDqwg9cUDAXrSoXN79eEEq17qhTNM/Y=", "narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "418468ac9527e799809c900eda37cbff999199b6", "rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -34,10 +34,118 @@
"type": "github" "type": "github"
} }
}, },
"npm-lockfile-fix": {
"inputs": {
"nixpkgs": [
"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"
}
},
"pyproject-build-systems": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"pyproject-nix": "pyproject-nix",
"uv2nix": "uv2nix"
},
"locked": {
"lastModified": 1776659114,
"narHash": "sha256-qapCOQmR++yZSY43dzrp3wCrkOTLpod+ONtJWBk6iKU=",
"owner": "pyproject-nix",
"repo": "build-system-pkgs",
"rev": "ffaa2161dd5d63e0e94591f86b54fc239660fb2e",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "build-system-pkgs",
"type": "github"
}
},
"pyproject-nix": {
"inputs": {
"nixpkgs": [
"pyproject-build-systems",
"nixpkgs"
]
},
"locked": {
"lastModified": 1776317425,
"narHash": "sha256-5iPq7MxKwAhKu76uGkRo/7RWfu9GCtsMdeacetTFINI=",
"owner": "nix-community",
"repo": "pyproject.nix",
"rev": "1b0021e93fa281f694510321514731086dbedd13",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "pyproject.nix",
"type": "github"
}
},
"pyproject-nix_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1776715674,
"narHash": "sha256-Gs1VnEkCkkRZxJQAC/Dhz0Jbfi22mFXChbtNg9w/Ybg=",
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"rev": "69f57f27e52a87c54e28138a75ec741cd46663c9",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"type": "github"
}
},
"pyproject-nix_3": {
"inputs": {
"nixpkgs": [
"uv2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1776715674,
"narHash": "sha256-Gs1VnEkCkkRZxJQAC/Dhz0Jbfi22mFXChbtNg9w/Ybg=",
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"rev": "69f57f27e52a87c54e28138a75ec741cd46663c9",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs",
"npm-lockfile-fix": "npm-lockfile-fix",
"pyproject-build-systems": "pyproject-build-systems",
"pyproject-nix": "pyproject-nix_2",
"uv2nix": "uv2nix_2"
} }
}, },
"systems": { "systems": {
@ -54,6 +162,52 @@
"repo": "default", "repo": "default",
"type": "github" "type": "github"
} }
},
"uv2nix": {
"inputs": {
"nixpkgs": [
"pyproject-build-systems",
"nixpkgs"
],
"pyproject-nix": [
"pyproject-build-systems",
"pyproject-nix"
]
},
"locked": {
"lastModified": 1776317509,
"narHash": "sha256-nSriomT9IJvyVY/mzyFz4Un6DHSjCfrVitcIfV+VHnY=",
"owner": "pyproject-nix",
"repo": "uv2nix",
"rev": "56cfeb9813150e1f900f13e4d6fe46e2845f82d5",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "uv2nix",
"type": "github"
}
},
"uv2nix_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"pyproject-nix": "pyproject-nix_3"
},
"locked": {
"lastModified": 1777895960,
"narHash": "sha256-KebDsQd+A7pm++Tp0744EjULttHvz1wbKqNKkMA/088=",
"owner": "pyproject-nix",
"repo": "uv2nix",
"rev": "5ad90d48b80ecc920ca2247d53f46beba302e186",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "uv2nix",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View file

@ -4,16 +4,35 @@
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
pyproject-nix = {
url = "github:pyproject-nix/pyproject.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
uv2nix = {
url = "github:pyproject-nix/uv2nix";
inputs.nixpkgs.follows = "nixpkgs";
};
pyproject-build-systems = {
url = "github:pyproject-nix/build-system-pkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
npm-lockfile-fix = {
url = "github:jeslie0/npm-lockfile-fix";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = { self, nixpkgs, flake-utils}: outputs = { self, nixpkgs, flake-utils, uv2nix, pyproject-nix, pyproject-build-systems, npm-lockfile-fix }:
let let
supportedSystems = [ "x86_64-linux" ]; supportedSystems = [ "x86_64-linux" ];
in in
flake-utils.lib.eachSystem supportedSystems ( flake-utils.lib.eachSystem supportedSystems (
system: let system: let
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
xpkgs = import ./default.nix { inherit pkgs; }; xpkgs = import ./default.nix {
inherit pkgs uv2nix pyproject-nix pyproject-build-systems;
npm-lockfile-fix-pkg = npm-lockfile-fix.packages.${system}.default;
};
in rec { in rec {
packages = xpkgs; packages = xpkgs;
defaultPackage = xpkgs.uem; defaultPackage = xpkgs.uem;
@ -25,5 +44,3 @@
} }
); );
} }

View file

@ -0,0 +1,54 @@
{
lib,
stdenv,
makeWrapper,
callPackage,
fetchFromGitHub,
python312,
nodejs_22,
ripgrep,
git,
openssh,
ffmpeg,
uv2nix,
pyproject-nix,
pyproject-build-systems,
npm-lockfile-fix,
}:
let
rev = "96dc2726232fc02c836b29968550d7dc5af03e36";
src = fetchFromGitHub {
owner = "NousResearch";
repo = "hermes-agent";
inherit rev;
hash = "sha256-pyqKp9gQLhHz0F8Gsw482CB6M8lRF5mW+Jvxj8sYP7k=";
};
# tirith is an optional security scanner that auto-downloads itself at runtime
# if not found on PATH; provide a stub so the nix package builds cleanly.
tirith = stdenv.mkDerivation {
pname = "tirith-stub";
version = "0";
dontUnpack = true;
installPhase = "mkdir -p $out/bin";
};
in
callPackage "${src}/nix/hermes-agent.nix" {
inherit
lib
stdenv
makeWrapper
python312
nodejs_22
ripgrep
git
openssh
ffmpeg
tirith
uv2nix
pyproject-nix
pyproject-build-systems
npm-lockfile-fix
;
}