| { |
| description = "Apache Flagon — behavioral analytics monorepo"; |
| |
| inputs = { |
| nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; |
| flake-utils.url = "github:numtide/flake-utils"; |
| }; |
| |
| outputs = { self, nixpkgs, flake-utils }: |
| flake-utils.lib.eachDefaultSystem (system: |
| let |
| pkgs = nixpkgs.legacyPackages.${system}; |
| in |
| { |
| devShells.default = pkgs.mkShell { |
| packages = with pkgs; [ |
| # Node / TypeScript (UserALE.js) |
| nodejs_24 |
| pnpm |
| typescript |
| |
| # Python (Distill) |
| python313 |
| uv |
| |
| # Pre-commit hooks |
| lefthook |
| |
| # Protobuf (schema codegen — future use) |
| buf |
| |
| # Tools |
| git |
| jq |
| curl |
| nixpkgs-fmt |
| ]; |
| |
| shellHook = '' |
| echo "🔥 Apache Flagon dev shell" |
| echo " node: $(node --version)" |
| echo " pnpm: $(pnpm --version)" |
| echo " tsc: $(tsc --version)" |
| echo " python: $(python3 --version)" |
| echo " buf: $(buf --version 2>&1 | head -1)" |
| echo "" |
| |
| # Install lefthook git hooks on first entry |
| if [ ! -f .git/hooks/pre-commit ] || ! grep -q lefthook .git/hooks/pre-commit 2>/dev/null; then |
| echo "Installing lefthook git hooks..." |
| lefthook install |
| fi |
| |
| echo "Run 'pnpm install' in products/userale to get started" |
| ''; |
| }; |
| }); |
| } |