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