diff --git a/flake.nix b/flake.nix index 843b66a..55d1ad0 100644 --- a/flake.nix +++ b/flake.nix @@ -228,9 +228,16 @@ formatter = forEachSystem (system: (mkPkgs system).nixfmt); - checks = forEachSystem (system: { - inherit (self.packages.${system}) cf codex; - }); + checks = forEachSystem ( + system: + let + customPkgs = self.packages.${system}; + in + { + inherit (customPkgs) cf; + } + // lib.optionalAttrs (customPkgs ? codex) { inherit (customPkgs) codex; } + ); packages = forEachSystem ( system: diff --git a/packages/codex.nix b/packages/codex.nix index 8d38cf4..db037ba 100644 --- a/packages/codex.nix +++ b/packages/codex.nix @@ -1,6 +1,11 @@ { pkgs, llm-agents }: let - upstream = llm-agents.packages.${pkgs.stdenv.hostPlatform.system}.codex; + system = pkgs.stdenv.hostPlatform.system; + upstream = + if builtins.hasAttr system llm-agents.packages then + llm-agents.packages.${system}.codex + else + throw "codex: llm-agents does not provide packages.${system} (supported: ${builtins.concatStringsSep ", " (builtins.attrNames llm-agents.packages)})"; manifest = pkgs.writeText "codex-package.json" ( builtins.toJSON { layoutVersion = 1; diff --git a/packages/default.nix b/packages/default.nix index 78a16ed..109e621 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -1,6 +1,18 @@ -{ pkgs, llm-agents, ... }: +{ + pkgs, + lib, + llm-agents, + ... +}: +let + # llm-agents does not publish every platform (it dropped x86_64-darwin), so + # expose codex only where the input provides it. + hasCodex = builtins.hasAttr pkgs.stdenv.hostPlatform.system llm-agents.packages; +in { cf = pkgs.callPackage ./cf.nix { }; - codex = pkgs.callPackage ./codex.nix { inherit llm-agents; }; pikpak-cli = pkgs.callPackage ./pikpak-cli.nix { }; } +// lib.optionalAttrs hasCodex { + codex = pkgs.callPackage ./codex.nix { inherit llm-agents; }; +}