manage shared Codex defaults

This commit is contained in:
kiri committed 2026-09-05 17:51:15 +02:00
1 parent 8d841863cb
commit 41bc61b363
2 files changed
+43 -8

No files matched your search

+6
View File
@@ -37,6 +37,9 @@ and add no abstraction without a demonstrated repeated need.
- Decide whether the one-time legacy dashboard BSON migration is still needed.
- Confirm whether the authoritative dashboard copy's `.env` and `.data` should
supersede the divergent private state in the sync copy.
- Rotate the exposed Context7 key and provide `CONTEXT7_API_KEY` through a
mode-0600 machine-local environment file on each workstation before removing
the static user-config header.
- Relocate the mode-0644 `/home/kiri/work/SECRETS` file to an approved private
owner and restrict it; its contents have not been inspected.
- Destructive cleanup, credentials, activation, and empirical pilot decisions
@@ -57,4 +60,7 @@ and add no abstraction without a demonstrated repeated need.
flake. Its exports, `.env`, and MongoDB state remain untouched and private.
- The obsolete `feat/echarts-domain` worktree path is absent; its branch remains
and its prunable metadata has not been removed.
- Shared Codex defaults and MCP endpoints are generated at
`/etc/codex/config.toml`; Context7 reads its header from the environment. The
unused generic `~/.config/mcp/mcp.json` owner is removed on next activation.
- Run independent pilots in parallel, but gate every retirement separately.
+37 -8
View File
@@ -6,11 +6,48 @@ in
{
flake.modules.nixos.ai =
{ pkgs, ... }:
let
codexConfig = (pkgs.formats.toml { }).generate "codex-config.toml" {
model = "gpt-5.6-sol";
model_reasoning_effort = "high";
plan_mode_reasoning_effort = "high";
service_tier = "default";
approvals_reviewer = "auto_review";
tui = {
status_line = [
"model-with-reasoning"
"current-dir"
"context-remaining"
"five-hour-limit"
"weekly-limit"
"git-branch"
];
status_line_use_colors = true;
};
mcp_servers = {
context7 = {
url = "https://mcp.context7.com/mcp";
env_http_headers.CONTEXT7_API_KEY = "CONTEXT7_API_KEY";
};
nixos = {
command = "${pkgs.uv}/bin/uvx";
args = [ "mcp-nixos" ];
startup_timeout_sec = 60.0;
tools.nix.approval_mode = "approve";
};
openaiDeveloperDocs.url = "https://developers.openai.com/mcp";
};
};
in
{
imports = [ nixosModules.podman ];
home-manager.sharedModules = [ hmModules.ai ];
environment.etc."codex/config.toml".source = codexConfig;
nixpkgs.overlays = [ inputs.llm-agents.overlays.shared-nixpkgs ];
nix.settings = {
@@ -54,14 +91,6 @@ in
};
};
programs.mcp = {
enable = true;
servers.nixos = {
command = "${pkgs.uv}/bin/uvx";
args = [ "mcp-nixos" ];
};
};
home.packages = [
pkgs.llm-agents.codex
pkgs.llm-agents.pi