|
15 | 15 | curl |
16 | 16 | wget |
17 | 17 | git |
| 18 | + ripgrep |
18 | 19 | alacritty |
19 | 20 | python3Minimal |
20 | 21 | tmux |
|
23 | 24 | nix-direnv |
24 | 25 | asciinema |
25 | 26 | asciinema-agg |
| 27 | + unst.codex |
26 | 28 | unst.gemini-cli |
27 | 29 | ]; |
28 | 30 | }; |
29 | 31 | passwd = pkgs.writeTextFile { |
30 | 32 | name = "passwd"; |
31 | 33 | text = "vibe:x:1000:1000:vibe:/tmp:/bin/sh"; |
32 | 34 | }; |
| 35 | + agentsMd = pkgs.writeTextFile { |
| 36 | + name = "AGENTS.md"; |
| 37 | + text = '' |
| 38 | + Read the `README.md` file if available. Study the project source code. Write your code in a strictly functional style while ensuring high efficiency. Avoid mutable variables (`mut`), imperative constructs (e.g., `for`, `while`, `loop`, or `return`), and instead use functional iterators. Eliminate redundant closures and variables. Maximize method and function chaining. Avoid `.clone()`, unnecessary allocations, and extra dependencies. Prefer the standard library exclusively when possible. Follow the existing project code style. Use meaningful, context-clear identifiers with a preference for brevity, as in the original code. Do not include comments; the code must be self-explanatory. |
| 39 | + ''; |
| 40 | + }; |
| 41 | + codexToml = pkgs.writeTextFile { |
| 42 | + name = "codex"; |
| 43 | + text = '' |
| 44 | + profile = "lite" |
| 45 | + sandbox_mode = "danger-full-access" |
| 46 | +
|
| 47 | + [features] |
| 48 | + unified_exec = true |
| 49 | + streamable_shell = true |
| 50 | + apply_patch_freeform = true |
| 51 | + web_search_request = true |
| 52 | + ghost_commit = true |
| 53 | +
|
| 54 | + [profiles.lite] |
| 55 | + model = "gemini-2.5-flash-lite" |
| 56 | + model_provider = "gemini" |
| 57 | +
|
| 58 | + [profiles.std] |
| 59 | + model = "gemini-2.5-flash" |
| 60 | + model_provider = "gemini" |
| 61 | +
|
| 62 | + [profiles.pro] |
| 63 | + model = "gemini-2.5-pro" |
| 64 | + model_provider = "gemini" |
| 65 | +
|
| 66 | + [model_providers.gemini] |
| 67 | + name = "gemini" |
| 68 | + base_url = "https://generativelanguage.googleapis.com/v1beta/openai" |
| 69 | + env_key = "GEMINI_API_KEY" |
| 70 | + ''; |
| 71 | + }; |
33 | 72 | sandbox = mkNixPak { |
34 | 73 | config = {sloth, ...}: { |
35 | 74 | app.package = app; |
|
53 | 92 | "/run/current-system/sw/bin/bash" |
54 | 93 | "/run/current-system/sw/bin/less" |
55 | 94 | [(toString passwd) "/etc/passwd"] |
| 95 | + ["${pkgs.bash}/bin/bash" "/bin/bash"] |
56 | 96 | (sloth.concat' sloth.homeDir "/.bashrc") |
57 | 97 | (sloth.concat' sloth.homeDir "/.bash_profile") |
58 | 98 | (sloth.concat' sloth.homeDir "/.config/tmux") |
59 | 99 | (sloth.concat' sloth.homeDir "/.config/alacritty") |
60 | 100 | (sloth.concat' sloth.homeDir "/.config/nvim/coc-settings.json") |
| 101 | + [ |
| 102 | + (toString agentsMd) |
| 103 | + (sloth.concat' sloth.homeDir "/.codex/AGENTS.md") |
| 104 | + ] |
| 105 | + [ |
| 106 | + (toString codexToml) |
| 107 | + (sloth.concat' sloth.homeDir "/.codex/config.toml") |
| 108 | + ] |
| 109 | + [ |
| 110 | + (toString agentsMd) |
| 111 | + (sloth.concat' sloth.homeDir "/.gemini/GEMINI.md") |
| 112 | + ] |
61 | 113 | ]; |
62 | 114 | bind.rw = [ |
63 | 115 | [ |
|
0 commit comments