feat: declare aoe config as a shared module

Vendors config.toml and moves the package into common/programs/aoe, so
any host that wants aoe imports one thing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
naps62
2026-08-17 06:46:15 +00:00
parent de79327942
commit 7dc2b581d3
3 changed files with 148 additions and 5 deletions
+123
View File
@@ -0,0 +1,123 @@
default_profile = "default"
[acp]
allow_agent_install = false
auto_stop_idle_secs = 0
default_agent = "claude"
max_concurrent_workers = 5
node_path = ""
rate_limit_auto_resume = false
replay_events = 0
show_tool_durations = true
silent_orphan_grace_secs = 120
[auth]
persist_sessions = true
[diff]
context_lines = 3
split_view = false
[hooks]
[host_hooks]
[logging]
default_level = "info"
file_path = "debug.log"
keep_count = 5
max_size_mib = 50
output = "file"
rotation = "size"
show_spans = false
[logging.targets]
[sandbox]
auto_cleanup = true
container_runtime = "docker"
default_image = "ghcr.io/agent-of-empires/aoe-sandbox:latest"
default_terminal_mode = "host"
enabled_by_default = false
environment = [
"TERM",
"COLORTERM",
"FORCE_COLOR",
"NO_COLOR",
]
extra_volumes = []
mount_ssh = false
selinux_relabel = false
volume_ignores = []
volume_ignores_strategy = "anonymous"
[session]
agent_status_hooks = true
auto_stop_idle_secs = 0
click_action = "live_send"
confirm_before_quit = false
confirm_delete = false
default_attach_mode = "tmux"
delete_to_trash = false
live_send_exit_chord = "C-q"
live_send_leader = "C-b"
merge_hooks_into_selected_agent = true
mouse_capture = true
restart_wake_message = "wake up: pick up what you were doing"
row_tag = "none"
show_tips = true
smart_rename = true
smart_rename_agent = ""
snooze_duration_minutes = 30
strict_hotkeys = false
tie_workdir_to_name = true
trash_retention_days = 30
unread_indicator = true
yolo_mode_default = true
[session.agent_detect_as]
kimiclaude = "claude"
synclaude = "claude"
[session.custom_agents]
kimiclaude = "kimiclaude"
synclaude = "synclaude"
[sound]
enabled = false
[status_hooks]
enabled = false
[telemetry]
enabled = false
[theme]
color_mode = "truecolor"
idle_decay_minutes = 0
name = ""
[tmux]
clipboard = "auto"
mouse = "auto"
status_bar = "auto"
[updates]
auto_update_plugins = false
update_check_mode = "notify"
[web]
notifications_enabled = true
notify_on_error = true
notify_on_idle = false
notify_on_waiting = true
notify_on_wake_fire = true
[worktree]
auto_cleanup = true
bare_repo_path_template = "./{branch}"
delete_branch_on_cleanup = false
enabled = true
init_submodules = true
path_template = "../{repo-name}-worktrees/{branch}"
workspace_path_template = "../{branch}-workspace-{session-id}"
+20
View File
@@ -0,0 +1,20 @@
{
pkgs,
inputs,
...
}:
# Agent of Empires: the agent session manager. Import this on any host that
# wants it — it brings both the package and the shared settings.
{
home.packages = [ inputs.agent-of-empires.packages.${pkgs.system}.default ];
# mutableFiles, not xdg.configFile: aoe rewrites this file itself (it keeps
# .bak-<epoch> copies), so a read-only store symlink would break it. The copy
# is change-detected — activation aborts and tells you to bring edits back
# here rather than silently reverting them.
#
# Only config.toml. The rest of ~/.config/agent-of-empires is per-machine
# state (state.toml, projects.json, tui-*, locks) or secret
# (serve.saved_passphrase).
home.mutableFiles.".config/agent-of-empires/config.toml".source = ./config.toml;
}