a dotfile but it's really big
0
fork

Configure Feed

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

at 361e253208e7d078dfde43cfc5d42acd5ff81d21 131 lines 3.1 kB view raw
1{ 2 config, 3 lib, 4 pkgs, 5 self', 6 osConfig, 7 ... 8}: 9let 10 opencodePkg = pkgs.symlinkJoin { 11 name = "opencode-wrapped"; 12 paths = [ pkgs.opencode ]; 13 14 nativeBuildInputs = [ pkgs.makeWrapper ]; 15 16 postBuild = '' 17 wrapProgram $out/bin/opencode \ 18 --set OPENCODE_EXPERIMENTAL_LSP_TOOL true \ 19 --set OPENCODE_DISABLE_LSP_DOWNLOAD true \ 20 --set OPENCODE_DISABLE_AUTOUPDATE true \ 21 --set OPENCODE_EXPERIMENTAL_MARKDOWN true \ 22 --set SHELL "${lib.getExe pkgs.bash}" \ 23 --prefix PATH : "${ 24 lib.makeBinPath [ 25 pkgs.golangci-lint-langserver 26 pkgs.nixd 27 pkgs.marksman 28 pkgs.typescript-language-server 29 pkgs.vscode-langservers-extracted 30 pkgs.yaml-language-server 31 pkgs.typos-lsp 32 pkgs.nil 33 ] 34 }" 35 ''; 36 }; 37 38 cfg = config.dev.opencode; 39 osCfg = osConfig.dev.opencode; 40in 41lib.mkIf osCfg.enable { 42 xdg.configFile."opencode/skills".source = pkgs.symlinkJoin { 43 name = "opencode-skills"; 44 paths = [ 45 self'.packages.strands-sops-skills 46 ./skills 47 ]; 48 }; 49 50 programs.opencode = { 51 enable = true; 52 package = opencodePkg; 53 enableMcpIntegration = cfg.enableMcp; 54 context = ./AGENTS.md; 55 commands = ./commands; 56 agents = ./agents; 57 settings = { 58 plugin = [ "@mohak34/opencode-notifier@0.2.2" ]; 59 experimental = { 60 batch_tool = true; 61 }; 62 inherit (cfg) theme; 63 default_agent = "orchestrator"; 64 formatter = { 65 nixfmt = { 66 command = [ 67 "nixfmt" 68 "-s" 69 "-w" 70 "120" 71 "$FILE" 72 ]; 73 extensions = [ ".nix" ]; 74 }; 75 gofmt = { 76 disabled = true; 77 }; 78 goimports = { 79 command = [ 80 "goimports" 81 "-w" 82 "$FILE" 83 ]; 84 extensions = [ ".go" ]; 85 }; 86 sql-formatter = { 87 command = [ 88 "sql-formatter" 89 "-c" 90 (builtins.toJSON { 91 keywordCase = "upper"; 92 functionCase = "upper"; 93 dataTypeCase = "upper"; 94 identifierCase = "lower"; 95 language = "postgresql"; 96 expressionWidth = 80; 97 tabWidth = 2; 98 }) 99 "$FILE" 100 ]; 101 extensions = [ ".sql" ]; 102 }; 103 nufmt = { 104 command = [ 105 "nufmt" 106 "--stdin" 107 ]; 108 extensions = [ ".nu" ]; 109 }; 110 }; 111 permission = { 112 todoread = "deny"; 113 todowrite = "deny"; 114 external_directory = { 115 "~/*" = "allow"; # yolo. 116 "/tmp/*" = "allow"; 117 }; 118 }; 119 mcp = lib.mkIf cfg.enableMcp { 120 github = { 121 type = "remote"; 122 url = "https://api.githubcopilot.com/mcp/"; 123 headers = { 124 Authorization = "Bearer {env:GITHUB_TOKEN}"; 125 }; 126 enabled = false; 127 }; 128 }; 129 }; 130 }; 131}