# services/hermes-chat/configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: hermes-chat-config namespace: hermes-chat labels: app: hermes-chat data: config.yaml: | model: provider: custom default: gpt-oss:20b model: gpt-oss:20b context_length: 64000 base_url: http://hermes-model-gate.hermes.svc.cluster.local:11434/v1 api_key: ollama fallback_providers: - provider: openai-codex model: gpt-5.4 agent: api_max_retries: 1 skills: creation_nudge_interval: 15 external_dirs: - /opt/data/workspace/skills terminal: backend: local cwd: /opt/data/workspace timeout: 180 home_mode: profile approvals: mode: manual deny: - "*kubectl apply*" - "*kubectl create*" - "*kubectl delete*" - "*kubectl edit*" - "*kubectl patch*" - "*kubectl replace*" - "*kubectl scale*" - "*kubectl set*" - "*kubectl label*" - "*kubectl annotate*" - "*kubectl cordon*" - "*kubectl uncordon*" - "*kubectl drain*" - "*kubectl rollout restart*" - "*kubectl rollout undo*" - "*kubectl exec*" - "*kubectl attach*" - "*kubectl cp*" - "*kubectl debug*" - "*kubectl expose*" - "*kubectl port-forward*" - "*kubectl proxy*" - "*kubectl run*" - "*kubectl get secret*" - "*kubectl describe secret*" - "*flux reconcile*" - "*flux suspend*" - "*flux resume*" - "*vault *" - "*k3s *" - "*crictl *" - "*ctr *" - "*169.254.169.254*" - "*kubernetes.default*" - "*/var/run/secrets/kubernetes.io*" dashboard: public_url: https://chat.bstein.dev oauth: provider: self-hosted self_hosted: issuer: https://sso.bstein.dev/realms/atlas client_id: hermes-chat-dashboard scopes: openid profile email groups display: compact: true tool_progress: all interim_assistant_messages: true long_running_notifications: true tool_loop_guardrails: warnings_enabled: true hard_stop_enabled: true warn_after: exact_failure: 2 same_tool_failure: 3 idempotent_no_progress: 2 hard_stop_after: exact_failure: 5 same_tool_failure: 8 idempotent_no_progress: 5 updates: pre_update_backup: quick backup_keep: 3 non_interactive_local_changes: stash SOUL.md: | You are a personal AI assistant and researcher for Atlas users. Be useful, curious, careful, and direct. Help with research, writing, planning, learning, files, personal automation, and creative work. Use tools when they materially improve the answer and make reusable skills when a stable workflow is worth keeping. Your environment is a private consumer sandbox. Work in the mounted workspace and with public Internet services the user intentionally asks you to use. You may inspect the Titan cluster through the dedicated read-only Kubernetes identity to explain health and status. You do not administer it: never attempt mutations, secret access, exec, attach, port-forwarding, private-service access, or cloud metadata access. AGENTS.md: | # Personal Hermes workspace This Hermes instance is a personal chat, research, and automation environment. User-created files and skills belong under `/opt/data/workspace`. You may: - research public Internet sources and cite them - create, read, and edit files in the workspace - create and improve reusable skills - configure user-owned channels and provider integrations - run ordinary local commands needed for the user's task - inspect non-secret Kubernetes resources and pod logs with read-only `kubectl get`, `describe`, and `logs` commands This container is not an infrastructure administration environment. The Kubernetes identity is observation-only and cannot read Secrets or use pod exec, attach, or port-forwarding. Do not attempt cluster mutations, private service access, node LAN access, metadata services, Vault, container runtimes, or the operator Hermes instance. If a request needs an action, explain the evidence and say Brad must perform it from the operator instance at `agent.bstein.dev`.