Compare commits

...

2 Commits

Author SHA1 Message Date
kiri 54d9e45515 feat: make codex config no longer managed by nix 2026-06-23 15:59:03 +02:00
kiri 88c3be2344 feat: modify ai config 2026-06-19 13:09:38 +02:00
+29 -62
View File
@@ -2,23 +2,6 @@
let let
account = config.repo.account; account = config.repo.account;
hmModules = config.flake.modules.homeManager; hmModules = config.flake.modules.homeManager;
sharedContext = ''
# Global Agent Context
Be a concise technical thought partner. Check the premise before executing, optimize for the user's actual outcome, and make important assumptions or tradeoffs visible.
## Machine Environment
- This machine is Nix/NixOS-based. Standard Linux assumptions may be wrong: software is usually provided by flakes, dev shells, `devenv`, `direnv`, or the user's NixOS/Home Manager config rather than `apt`, `dnf`, or global installs.
- If a repo has `flake.nix`, `devenv.nix`, `shell.nix`, or `.envrc`, prefer entering or invoking its dev environment (`nix develop`, `devenv shell`, or `direnv exec . <cmd>`). `direnv` may not be loaded automatically inside agent shells.
- For NixOS/Home Manager/nixpkgs/packages/options, use the NixOS MCP when available instead of relying on memory.
## User Preferences
- The user values precision, minimalism, and conceptual clarity. Challenge weak premises, but explain why.
- For larger or ambiguous work, interview or plan before broad implementation. For small concrete requests, proceed with the obvious scoped change.
'';
in in
{ {
flake.modules.nixos.ai = { flake.modules.nixos.ai = {
@@ -42,8 +25,6 @@ in
... ...
}: }:
{ {
home.sessionVariables.GEMINI_CONFIG_DIR = "${config.xdg.configHome}/gemini";
programs.mcp = { programs.mcp = {
enable = true; enable = true;
servers.nixos = { servers.nixos = {
@@ -52,49 +33,35 @@ in
}; };
}; };
programs.gemini-cli = { home.packages = [
enable = false; pkgs.llm-agents.codex
package = pkgs.llm-agents.gemini-cli; ];
enableMcpIntegration = true;
context.AGENTS = sharedContext;
settings = {
context = {
fileName = [
"AGENTS.md"
"GEMINI.md"
];
loadMemoryFromIncludeDirectories = true;
};
model.name = "gemini-3.1-pro-preview";
};
};
programs.codex = { # programs.codex = {
enable = true; # enable = true;
package = pkgs.llm-agents.codex; # package = pkgs.llm-agents.codex;
enableMcpIntegration = true; # enableMcpIntegration = true;
context = sharedContext; # settings = {
settings = { # model = "gpt-5.5";
model = "gpt-5.5"; # model_reasoning_effort = "high";
model_reasoning_effort = "high"; # plan_mode_reasoning_effort = "high";
plan_mode_reasoning_effort = "high"; # tui.status_line = [
tui.status_line = [ # "model-with-reasoning"
"model-with-reasoning" # "current-dir"
"current-dir" # "git-branch"
"git-branch" # "context-remaining"
"context-remaining" # "five-hour-limit"
"five-hour-limit" # ];
]; # projects.${account.nixosConfigurationPath}.trust_level = "trusted";
projects.${account.nixosConfigurationPath}.trust_level = "trusted"; # projects."${config.home.homeDirectory}/work/repos/yookr-data-science".trust_level = "trusted";
projects."${config.home.homeDirectory}/work/repos/yookr_data_science".trust_level = "trusted"; # sandbox_mode = "workspace-write";
sandbox_mode = "workspace-write"; # personality = "pragmatic";
personality = "pragmatic"; # features.undo = true;
features.undo = true; # mcp_servers.nixos = config.programs.mcp.servers.nixos // {
mcp_servers.nixos = config.programs.mcp.servers.nixos // { # enabled = true;
enabled = true; # default_tools_approval_mode = "approve";
default_tools_approval_mode = "approve"; # };
}; # };
}; # };
};
}; };
} }