{ description = "eve-agent — eve.dev agent for eve.boxd.sh"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils, }: flake-utils.lib.eachDefaultSystem ( system: let pkgs = import nixpkgs { inherit system; }; # Runtime CLIs for radio / stream-watch / YouTube (av-bridge demux). mediaTools = pkgs.symlinkJoin { name = "eve-media-tools"; paths = [ pkgs.ffmpeg pkgs.yt-dlp ]; }; in { packages = { media-tools = mediaTools; default = mediaTools; }; apps.media-tools = { type = "app"; program = "${mediaTools}/bin/ffmpeg"; }; devShells.default = pkgs.mkShell { packages = [ pkgs.nodejs_24 pkgs.typescript pkgs.curl pkgs.jq pkgs.ffmpeg pkgs.yt-dlp ]; shellHook = '' echo "eve-agent dev shell" echo " npm install # install deps" echo " npm run dev # local eve (needs model API keys in env)" echo " npm run typecheck" echo " npm run boxd:start # OpenBao key bridge + eve on :8000" echo " media: ffmpeg=$(command -v ffmpeg) yt-dlp=$(command -v yt-dlp)" ''; }; formatter = pkgs.nixfmt-rfc-style; } ); }