forked from Zakaria/hermes-agent
34 lines
958 B
Nix
34 lines
958 B
Nix
# nix/tui.nix — Hermes TUI (Ink/React) compiled with tsc and bundled
|
|
{ pkgs, hermesNpmLib, ... }:
|
|
let
|
|
npm = hermesNpmLib.mkNpmPassthru { folder = "ui-tui"; attr = "tui"; pname = "hermes-tui"; };
|
|
|
|
packageJson = builtins.fromJSON (builtins.readFile (npm.src + "/ui-tui/package.json"));
|
|
version = packageJson.version;
|
|
in
|
|
pkgs.buildNpmPackage (npm // {
|
|
pname = "hermes-tui";
|
|
inherit version;
|
|
|
|
doCheck = false;
|
|
|
|
buildPhase = ''
|
|
# esbuild bundles everything — no need for tsc or vite.
|
|
# Run from the workspace root where node_modules/ lives.
|
|
node ui-tui/scripts/build.mjs
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out/lib/hermes-tui
|
|
# esbuild writes to ui-tui/dist/ from the source root (no cd).
|
|
cp -r ui-tui/dist $out/lib/hermes-tui/dist
|
|
|
|
# package.json kept for "type": "module" resolution on `node dist/entry.js`.
|
|
cp ui-tui/package.json $out/lib/hermes-tui/
|
|
|
|
runHook postInstall
|
|
'';
|
|
})
|