{ description = "Various packages for Nix"; nixConfig = { extra-substituters = [ "https://cache.nixos.org" ]; }; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; systems.url = "github:nix-systems/default"; blueprint = { url = "github:numtide/blueprint"; inputs.nixpkgs.follows = "nixpkgs"; inputs.systems.follows = "systems"; }; treefmt-nix = { url = "github:numtide/treefmt-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; flake-parts = { url = "github:hercules-ci/flake-parts"; inputs.nixpkgs-lib.follows = "nixpkgs"; }; bun2nix = { # TODO(#4001): drop the branch pin once catalog support # (nix-community/bun2nix#86) reaches the default branch. url = "github:nix-community/bun2nix/staging-2.1.0"; inputs.nixpkgs.follows = "nixpkgs"; inputs.systems.follows = "systems"; inputs.treefmt-nix.follows = "treefmt-nix"; inputs.flake-parts.follows = "flake-parts"; }; }; outputs = inputs: let blueprintOutputs = inputs.blueprint { inherit inputs; nixpkgs.config.allowUnfree = true; }; extraPackages = inputs.nixpkgs.lib.genAttrs (builtins.attrNames blueprintOutputs.packages) ( system: let pkgs = inputs.nixpkgs.legacyPackages.${system}; in { container-use = pkgs.callPackage ./packages/container-use/package.nix { }; } ); in blueprintOutputs // { packages = inputs.nixpkgs.lib.recursiveUpdate blueprintOutputs.packages extraPackages; nixosModules = { mcp-gateway = ./modules/mcp-gateway.nix; }; overlays = { default = import ./overlays { inherit (blueprintOutputs) packages; }; shared-nixpkgs = import ./overlays/shared-nixpkgs.nix { inherit (blueprintOutputs) mkPackagesFor; }; }; }; }