dotfiles/agents/agent-env.zsh
mwiegand 38f07179c4
agents: Bootstrap-Logik ins Repo, ein Script für beide Maschinen-Keys
Die imperative Hälfte der Key-Architektur lag unversioniert in ~/.zshrc und
~/.local/bin, während die deklarative (.env.agents) getrackt war. Jetzt liegt
alles Agent-bezogene hier:

- agents/agent-env.zsh — SSH_AUTH_SOCK + agent-env(), gesourced von .zshrc
- agents/ensure-machine-agent — startet den Maschinen-Agent und stellt beide
  Keys sicher (ersetzt load-signing-key, das nur den Signing-Key kannte,
  während agent-env separat den Agent-Key lud)
- agents/README.md — Design-Doc, verschoben aus dem ai-Repo zum Code

.env.agents bleibt rein deklarativ, weil op run --env-file die Datei nur
parst und keinen Code ausführt — daher die Zweiteilung.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012aD7fG6BpN1HchyHeNXZb4
2026-08-04 23:37:45 +02:00

18 lines
837 B
Bash

# Agent-Sessions (Claude, OpenCode): Secrets aus 1Password und SSH-Identität
# des Agent-Users. Wird von dotfiles/.zshrc gesourced.
# Architektur und Begründungen: agents/README.md.
# Git-Signing und ssh-add greifen über SSH_AUTH_SOCK auf den geteilten
# Maschinen-Agent zu — interaktiv wie in Agent-Sessions. Fürs interaktive SSH
# ist die Variable irrelevant, weil ~/.ssh/config IdentityAgent explizit setzt
# (Haupt-Key via 1Password, Agent-User via diesem Socket).
export SSH_AUTH_SOCK="$HOME/.ssh/isac-agent.sock"
agent-env() {
# Agent + beide Maschinen-Keys sicherstellen; der op-read darin teilt sich
# die 1Password-Autorisierung mit dem op-run unten, also ein Prompt.
ensure-machine-agent || return 1
op run --account WHZOJQOJPZHTFPJC6JZAOCUCBI \
--env-file ~/.env.agents --no-masking -- "$@"
}