diff --git a/modules/ai-tools.nix b/modules/ai-tools.nix index 044cb11..30c1db4 100644 --- a/modules/ai-tools.nix +++ b/modules/ai-tools.nix @@ -7,6 +7,7 @@ }: { home.packages = [ inputs'.llm-agents.packages.claude-code + pkgs.cog-cli pkgs.nono ]; diff --git a/modules/overlays.nix b/modules/overlays.nix index ed6a841..5197fde 100644 --- a/modules/overlays.nix +++ b/modules/overlays.nix @@ -43,6 +43,49 @@ doCheck = false; }; }) + # cog-cli + (final: prev: let + version = "0.20.0"; + srcs = { + x86_64-linux = + prev.fetchurl { + url = "https://github.com/trycog/cog-cli/releases/download/v${version}/cog-linux-x86_64.tar.gz"; + hash = "sha256-tsuL2VntvG5AsWh8+CMAWtJqDJiaKu/pQ+xY516eiOY="; + }; + aarch64-darwin = + prev.fetchurl { + url = "https://github.com/trycog/cog-cli/releases/download/v${version}/cog-darwin-arm64.tar.gz"; + hash = "sha256-k6HsTQS6/MVduT9WstD77X+xPHPj3XlFIoS3qjfblZw="; + }; + }; + in { + cog-cli = + prev.stdenvNoCC.mkDerivation { + pname = "cog-cli"; + inherit version; + src = + srcs.${prev.stdenv.hostPlatform.system} + or (throw "Unsupported system for cog-cli: ${prev.stdenv.hostPlatform.system}"); + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + install -Dm755 cog "$out/bin/cog" + runHook postInstall + ''; + + meta = with prev.lib; { + description = "Memory, code intelligence, and debugging for AI agents"; + homepage = "https://github.com/trycog/cog-cli"; + license = licenses.mit; + mainProgram = "cog"; + platforms = builtins.attrNames srcs; + sourceProvenance = [sourceTypes.binaryNativeCode]; + }; + }; + }) # jj-starship (passes through upstream overlay) inputs.jj-starship.overlays.default # zjstatus diff --git a/modules/user.nix b/modules/user.nix index 6063b00..8e7dc79 100644 --- a/modules/user.nix +++ b/modules/user.nix @@ -1,4 +1,8 @@ -{den, lib, ...}: { +{ + den, + lib, + ... +}: { den.aspects.cschmatzler.includes = [ den.provides.primary-user den.aspects.shell @@ -12,9 +16,10 @@ den.aspects.secrets den.aspects.zellij den.aspects.zk - ({host, ...}: lib.optionalAttrs (host.class == "darwin") { - includes = [den.aspects.desktop]; - }) + ({host, ...}: + lib.optionalAttrs (host.class == "darwin") { + includes = [den.aspects.desktop]; + }) ]; den.aspects.cschmatzler.homeManager = {