This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

superconfig / tools / pi / flake-module.nix
4.2 kB 121 lines
1{ self, inputs, ... }: 2{ 3 perSystem = 4 { pkgs, ... }: 5 let 6 pi = inputs.wrappers.lib.wrapModule { 7 imports = [ self.wrapperModules.pi ]; 8 inherit pkgs; 9 10 settings = { 11 packages = [ 12 { 13 source = "npm:pi-hooks"; 14 version = "1.0.3"; 15 hash = "sha256-jU3akfqsWgjvOG+8+Md2qEzkXp48LUaXVncpUMXxy7s="; 16 deps = [ 17 { 18 source = "npm:shell-quote"; 19 version = "1.8.3"; 20 hash = "sha256-32QLNUuvjigj1scqLlCVFTfgS3MHm9dBjPk9iVB+IsE="; 21 } 22 { 23 source = "npm:vscode-languageserver-protocol"; 24 version = "3.17.5"; 25 hash = "sha256-dHPrLSFj8/i+oJZE+dgDeJoZXllrZdOUbEFX5YPjzMg="; 26 deps = [ 27 { 28 source = "npm:vscode-jsonrpc"; 29 version = "8.2.0"; 30 hash = "sha256-PaRFMcOY8VRQdMtyjjWagi81ufiscXHIR/QvByi5x8s="; 31 } 32 { 33 source = "npm:vscode-languageserver-types"; 34 version = "3.17.5"; 35 hash = "sha256-1nP55/i75RNRvlHFjzLU3PqXpnDruGvGMzaDlMYJysA="; 36 } 37 ]; 38 } 39 ]; 40 } 41 { 42 source = "npm:shitty-extensions"; 43 version = "1.0.9"; 44 hash = "sha256-g26MZ5x4HUcDai4SXPaOEhqgGGqzAI68znnsCbKJv7E="; 45 extensions = [ "!extensions/resistance.ts" ]; 46 } 47 ]; 48 extensions = [ 49 ./questionnaire.ts 50 ./auto-theme.ts 51 ./websearch.ts 52 ./ollama.ts 53 ]; 54 defaultProvider = "openrouter"; 55 defaultModel = "deepseek/deepseek-v4-pro"; 56 defaultThinkingLevel = "medium"; 57 permissionLevel = "low"; 58 permissionMode = "ask"; 59 permissionConfig.overrides.minimal = [ 60 "nix build *" 61 "nix eval *" 62 "nix fmt *" 63 ]; 64 }; 65 66 extraPackages = [ 67 self.packages.${pkgs.system}.kagi-search 68 pkgs.curl 69 ]; 70 71 pluginOverrides = '' 72 # Fix keybinding conflicts in extension source 73 ${pkgs.gnused}/bin/sed -i 's/"ctrl+u"/"ctrl+shift+u"/' $out/lib/node_modules/shitty-extensions/extensions/ultrathink.ts 74 ${pkgs.gnused}/bin/sed -i 's/"ctrl+r"/"ctrl+shift+r"/' $out/lib/node_modules/shitty-extensions/extensions/speedreading.ts 75 76 # Remove a-nach-b skill 77 rm -rf $out/lib/node_modules/shitty-extensions/skills/a-nach-b 78 79 # Add hedgedoc skill 80 ln -s ${ 81 self.legacyPackages.${pkgs.system}.skills.hedgedoc 82 }/share/hedgedoc $out/lib/node_modules/shitty-extensions/skills/hedgedoc 83 84 # Add reverse-engineering skill 85 ln -s ${ 86 self.legacyPackages.${pkgs.system}.skills.reverse-engineering 87 }/share/reverse-engineering $out/lib/node_modules/shitty-extensions/skills/reverse-engineering 88 89 # Patch permission extension to use pw-play for peon sounds on Linux 90 ${pkgs.lib.optionalString pkgs.stdenv.hostPlatform.isLinux '' 91 ${pkgs.python3}/bin/python3 ${./patch-permission-sound.py} \ 92 $out/lib/node_modules/pi-hooks/permission/permission.ts \ 93 ${pkgs.pipewire}/bin/pw-play 94 ''} 95 ''; 96 }; 97 in 98 { 99 packages.pi = 100 let 101 pinentry = 102 if pkgs.stdenv.isDarwin then 103 "${pkgs.pinentry_mac}/${pkgs.pinentry_mac.binaryPath}" 104 else 105 "${self.packages.${pkgs.system}.pinentry-rofi}/bin/pinentry-rofi"; 106 in 107 pkgs.writeShellApplication { 108 name = "pi"; 109 runtimeInputs = [ pkgs.rbw ]; 110 text = '' 111 if [ -z "''${OPENROUTER_API_KEY:-}" ]; then 112 rbw config set pinentry ${pinentry} 113 rbw unlock 114 OPENROUTER_API_KEY=$(rbw get -f api_key openrouter.ai) 115 export OPENROUTER_API_KEY 116 fi 117 exec ${pi.wrapper}/bin/pi "$@" 118 ''; 119 }; 120 }; 121}