refactor: restructure config files
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
{ inputs, config, ... }:
|
||||
let
|
||||
account = config.repo.account;
|
||||
|
||||
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
|
||||
{
|
||||
flake.modules.nixos.ai = {
|
||||
nixpkgs.overlays = [ inputs.llm-agents.overlays.default ];
|
||||
|
||||
nix.settings = {
|
||||
extra-substituters = [ "https://cache.numtide.com" ];
|
||||
extra-trusted-public-keys = [
|
||||
"niks3.numtide.com-1:DTx8wZduET09hRmMtKdQDxNNthLQETkc/yaX7M4qK0g="
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
flake.modules.homeManager.ai =
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.sessionVariables.GEMINI_CONFIG_DIR = "${config.xdg.configHome}/gemini";
|
||||
|
||||
programs.mcp = {
|
||||
enable = true;
|
||||
servers.nixos = {
|
||||
command = "${pkgs.uv}/bin/uvx";
|
||||
args = [ "mcp-nixos" ];
|
||||
};
|
||||
};
|
||||
|
||||
programs.gemini-cli = {
|
||||
enable = false;
|
||||
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 = {
|
||||
enable = true;
|
||||
package = pkgs.llm-agents.codex;
|
||||
enableMcpIntegration = true;
|
||||
context = sharedContext;
|
||||
settings = {
|
||||
model = "gpt-5.5";
|
||||
model_reasoning_effort = "high";
|
||||
plan_mode_reasoning_effort = "high";
|
||||
tui.status_line = [
|
||||
"model-with-reasoning"
|
||||
"current-dir"
|
||||
"git-branch"
|
||||
"context-remaining"
|
||||
"five-hour-limit"
|
||||
];
|
||||
projects.${account.nixosConfigurationPath}.trust_level = "trusted";
|
||||
sandbox_mode = "workspace-write";
|
||||
personality = "pragmatic";
|
||||
features.undo = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user