nix/home/agent-browser.nix
Hari 029ad0af21
Some checks are pending
quality / changes (push) Waiting to run
quality / Flake Check (push) Blocked by required conditions
quality / Nix Format Check (push) Blocked by required conditions
quality / Deploy netty (push) Blocked by required conditions
fix agent-browser (#38)
2026-04-02 04:42:58 +00:00

41 lines
1.3 KiB
Nix

{
config,
lib,
pkgs,
hostConfig,
...
}:
lib.mkIf (!hostConfig.isDarwin) {
# agent-browser user-level config: point at nix chromium, run headless
home.file.".agent-browser/config.json".text = builtins.toJSON {
executablePath = "${pkgs.chromium}/bin/chromium";
args = "--no-sandbox,--disable-gpu,--disable-dev-shm-usage";
};
# Install agent-browser globally via npm at activation time.
# npm's postinstall symlinks the glibc binary, which fails on NixOS
# (no /lib64/ld-linux-x86-64.so.2). Re-point the symlink at the
# statically-linked musl binary that works everywhere.
home.activation.installAgentBrowser = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
export PATH="${
lib.makeBinPath [
pkgs.nodejs_22
pkgs.coreutils
]
}:$PATH"
npm_prefix="$(npm prefix -g 2>/dev/null)"
npm_bin="$npm_prefix/bin"
pkg_bin="$npm_prefix/lib/node_modules/agent-browser/bin"
if [ ! -e "$pkg_bin/agent-browser-linux-musl-x64" ]; then
npm install -g agent-browser 2>/dev/null || true
fi
# Fix: replace glibc symlink with statically-linked musl binary
if [ -e "$pkg_bin/agent-browser-linux-musl-x64" ]; then
chmod +x "$pkg_bin/agent-browser-linux-musl-x64" 2>/dev/null || true
ln -sf "$pkg_bin/agent-browser-linux-musl-x64" "$npm_bin/agent-browser"
fi
'';
}