diff --git a/module/home-manager.nix b/module/home-manager.nix index 470330f..6be2d66 100644 --- a/module/home-manager.nix +++ b/module/home-manager.nix @@ -1,4 +1,9 @@ -{ email }: { config, pkgs, ... }: { +{ email }: { config, pkgs, ... }: + +let + piFirecrawl = pkgs.callPackage ../pkgs/pi-firecrawl.nix { }; +in +{ home.file.".clojure/deps.edn".source = ../config/clojure/deps.edn; sops = { @@ -94,6 +99,18 @@ pi.coding-agent = { enable = true; + environment = { + FIRECRAWL_API_KEY = config.sops.secrets.firecrawl_api_key.path; + }; + settings = { + defaultProvider = "openai-codex"; + defaultModel = "gpt-5.5"; + defaultThinkingLevel = "medium"; + + packages = [ + "${piFirecrawl}/lib/pi-packages/@firecrawl/pi-firecrawl" + ]; + }; }; starship = { diff --git a/pkgs/pi-firecrawl.nix b/pkgs/pi-firecrawl.nix new file mode 100644 index 0000000..0f38440 --- /dev/null +++ b/pkgs/pi-firecrawl.nix @@ -0,0 +1,39 @@ +{ lib +, buildNpmPackage +, fetchFromGitHub +}: + +buildNpmPackage rec { + pname = "pi-firecrawl"; + version = "0.1.0"; + + src = fetchFromGitHub { + owner = "firecrawl"; + repo = "pi-firecrawl"; + rev = "2d7e8966ad63744fa7d5932f7bd5b4a78eddb894"; + hash = "sha256-1jbWRlQh72qoGUf2Bl220ZGKVzH/AsDgrS9weGgxb2I="; + }; + + npmDepsHash = "sha256-+ox5eIPBF9eY0yPw5IL4LypRSxZ1sz8JCFaDjmZ2DuU="; + + dontNpmBuild = true; + npmPackFlags = [ "--ignore-scripts" ]; + + installPhase = '' + runHook preInstall + + packageDir="$out/lib/pi-packages/@firecrawl/pi-firecrawl" + mkdir -p "$packageDir" + + cp -R package.json package-lock.json README.md LICENSE src node_modules "$packageDir"/ + + runHook postInstall + ''; + + meta = { + description = "Official Firecrawl extension for the Pi coding agent"; + homepage = "https://github.com/firecrawl/pi-firecrawl"; + license = lib.licenses.mit; + platforms = lib.platforms.unix; + }; +} diff --git a/secrets/secrets.yaml b/secrets/secrets.yaml index 6751570..3d58266 100644 --- a/secrets/secrets.yaml +++ b/secrets/secrets.yaml @@ -10,7 +10,7 @@ sops: ptUomL2W/we4iRbe1LnPHB1JqBuYZSEaXGgdFbGGf2iYw/jtEE5gTQ== -----END AGE ENCRYPTED FILE----- recipient: age106xkhmfrzqum2zkuxxfwjddesuwu6m99tqtt7s3pre4d4wejlp7qkhyfee - lastmodified: "2026-06-18T11:22:43Z" - mac: ENC[AES256_GCM,data:ygfrXMTTmKkY32r9kygw0zskyJ5uqBOU7l1xk6SHCGh2tJavWzJlVoltq+b4oyftSj6+QT6JWarcPNrNeG2Yc7AnQVnC3U3IBhTWbuUIcFiHj4X6O7ya6uT0o2qPb7jJnur0wUdXEL4iYy/6890vkCMkkSkxY4SQiDGCnINNjd8=,iv:xfh9f/e5xPaD7As06KDKM/IhS5g0zLfhUG7eD5HJKic=,tag:BhP71tZ2dOjs6g7OKPI+9A==,type:str] + lastmodified: "2026-06-19T11:46:02Z" + mac: ENC[AES256_GCM,data:NqmNt+NagD6Fg0KiXkvSIZq/c73F78u7bZfsTFiKqezhcipfsex+71wriLTB3E3fEV9L0YseXWqbaXJjQnE26GoLaqHB232N9BUSw676tetb+5n59oi13FbaZl77OMsh7QZGQ1oSKWccmGm9UVo7T9YBgJHGys/ucqVTqaOAIlg=,iv:7PhfpF9TqgZPVSdi7/sacMSDBOr6fseSERbVisef98M=,tag:Ci6sKjA70Jj13y1JwPPUBQ==,type:str] unencrypted_suffix: _unencrypted version: 3.13.1