This repository has no description
3.5 kB
100 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 ];
53 defaultProvider = "anthropic";
54 defaultModel = "claude-opus-4-6";
55 defaultThinkingLevel = "medium";
56 permissionLevel = "low";
57 permissionMode = "ask";
58 permissionConfig.overrides.minimal = [
59 "nix build *"
60 "nix eval *"
61 "nix fmt *"
62 ];
63 };
64
65 extraPackages = [
66 self.packages.${pkgs.system}.kagi-search
67 pkgs.curl
68 ];
69
70 pluginOverrides = ''
71 # Fix keybinding conflicts in extension source
72 ${pkgs.gnused}/bin/sed -i 's/"ctrl+u"/"ctrl+shift+u"/' $out/lib/node_modules/shitty-extensions/extensions/ultrathink.ts
73 ${pkgs.gnused}/bin/sed -i 's/"ctrl+r"/"ctrl+shift+r"/' $out/lib/node_modules/shitty-extensions/extensions/speedreading.ts
74
75 # Remove a-nach-b skill
76 rm -rf $out/lib/node_modules/shitty-extensions/skills/a-nach-b
77
78 # Add hedgedoc skill
79 ln -s ${
80 self.legacyPackages.${pkgs.system}.skills.hedgedoc
81 }/share/hedgedoc $out/lib/node_modules/shitty-extensions/skills/hedgedoc
82
83 # Add reverse-engineering skill
84 ln -s ${
85 self.legacyPackages.${pkgs.system}.skills.reverse-engineering
86 }/share/reverse-engineering $out/lib/node_modules/shitty-extensions/skills/reverse-engineering
87
88 # Patch permission extension to use pw-play for peon sounds on Linux
89 ${pkgs.lib.optionalString pkgs.stdenv.hostPlatform.isLinux ''
90 ${pkgs.python3}/bin/python3 ${./patch-permission-sound.py} \
91 $out/lib/node_modules/pi-hooks/permission/permission.ts \
92 ${pkgs.pipewire}/bin/pw-play
93 ''}
94 '';
95 };
96 in
97 {
98 packages.pi = pi.wrapper;
99 };
100}