Adds docker_compose_restart/build/up, git_pull (guarded by
git_status_clean precondition), systemctl_restart (via sudo),
caddy_validate, caddy_reload, and caddy_write_config (atomic
stdin→Caddyfile.new→Caddyfile write).
- CommandDef gains preconditions[] and stdin_from_body fields
- exec route checks git_status_clean before git_pull; returns 409 on
dirty tree with a clear message
- stdin field in ExecBody is piped to child stdin for caddy_write_config
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>