From fd616d91005832c9133997871402c097a0b92b3c Mon Sep 17 00:00:00 2001 From: "Bernd (Hermes Agent)" Date: Tue, 5 May 2026 07:06:22 +0200 Subject: [PATCH] docs: add COMMUNITY_POST.md for public distribution --- COMMUNITY_POST.md | 163 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 COMMUNITY_POST.md diff --git a/COMMUNITY_POST.md b/COMMUNITY_POST.md new file mode 100644 index 0000000..3430a5c --- /dev/null +++ b/COMMUNITY_POST.md @@ -0,0 +1,163 @@ +# Hermes Rocket.Chat Plugin — Community Release + +> **Offizielles Platform-Plugin für [Hermes Agent](https://hermes-agent.nousresearch.com/)** +> Verbindet Hermes Agent mit einem selbst-gehosteten Rocket.Chat-Server. + +--- + +## Was ist das? + +Dieses Plugin verwandelt Hermes Agent in einen **nativen Rocket.Chat-Benutzer** — mit Echtzeit-Nachrichten, Präsenz-Status und interaktiven Buttons. + +Statt über ein separates Gateway-Binary zu kommunizieren, spricht Hermes Agent direkt mit Rocket.Chat: +- **Eingehend**: WebSocket/DDP für sofortige Nachrichten +- **Ausgehend**: REST-API für Antworten, Buttons, Dateien + +--- + +## Features + +| Feature | Beschreibung | +|---------|-------------| +| 🚀 Echtzeit-Streaming | DDP/WebSocket für instant eingehende Nachrichten | +| 🟢 Präsenz | Grüner Online-Status im Rocket.Chat | +| ✍️ Markdown | Fett, kursiv, `Code`, Blöcke, Links | +| 🔘 Interaktive Buttons | Ja/Nein, Bestätigen/Abbrechen, Mehrfachauswahl | +| 📢 Räume | Kanäle, private Gruppen, Direktnachrichten | +| 🔒 Allowlist | Nur erlaubte Benutzer dürfen den Bot nutzen | +| 📦 Zero-Dependency | Nutzt ausschließlich Python-Standardbibliothek | + +--- + +## Schnellstart + +### 1. Voraussetzungen + +- Hermes Agent installiert ([Setup-Guide](https://hermes-agent.nousresearch.com/docs)) +- Laufender Rocket.Chat-Server (v5+ empfohlen) +- Bot-Benutzer auf Rocket.Chat mit Login-Daten + +### 2. Plugin installieren + +```bash +# In das Hermes Agent Verzeichnis wechseln +cd ~/.hermes/hermes-agent + +# Plugin-Verzeichnis anlegen und Dateien hineinkopieren +mkdir -p plugins/platforms/rocketchat +cp plugin.yaml plugins/platforms/rocketchat/ +cp __init__.py plugins/platforms/rocketchat/ +cp adapter.py plugins/platforms/rocketchat/ +``` + +### 3. Konfigurieren + +**Variante A — Umgebungsvariablen:** + +```bash +export ROCKETCHAT_BASE_URL="https://rocketchat.example.com" +export ROCKETCHAT_USER="bernd" +export ROCKETCHAT_PASSWORD="dein-passwort" +export ROCKETCHAT_ROOM_ID="J3jvMyrKTMzKvKHSh" # optional +export ROCKETCHAT_ALLOWED_USERS="andreas,max" # optional +export ROCKETCHAT_ALLOW_ALL_USERS="false" # default +``` + +**Variante B — `config.yaml`:** + +```yaml +plugins: + platforms: + rocketchat: + enabled: true + base_url: "https://rocketchat.example.com" + user: "bernd" + password: "dein-passwort" + room_id: "J3jvMyrKTMzKvKHSh" + allowed_users: ["andreas", "max"] + allow_all_users: false +``` + +### 4. Starten + +```bash +hermes gateway start +``` + +Hermes Agent verbindet sich automatisch mit Rocket.Chat und erscheint als Online-Benutzer. + +--- + +## Architektur + +``` +┌─────────────┐ DDP/WebSocket ┌─────────────────┐ +│ Hermes Agent│ ◄────────────────────► │ Rocket.Chat │ +│ (Plugin) │ │ Server │ +│ │ REST API │ │ +│ │ ─────────────────────► │ (v5+) │ +└─────────────┘ └─────────────────┘ +``` + +- **Adapter.py** (~20 k LOC): DDP-Client, Session-Handling, Nachrichten-Parsing, Button-Rendering +- **__init__.py**: Plugin-Registrierung, Template-Definitionen für Buttons +- **plugin.yaml**: Metadaten, Env-Vars, Dependency-Check + +--- + +## Button-Templates + +Das Plugin bringt vordefinierte Interaktionen mit — kein YAML, keine Extra-Config: + +| Template | Nutzung | +|----------|---------| +| `yes_no` | ✅ Ja / ❌ Nein | +| `confirm_cancel` | ✅ Bestätigen / 🚫 Abbrechen | +| `ok` | 👍 OK | +| `multi_choice_3` | 1. Links / 2. Rechts / 3. Zwei Runden | + +Custom-Buttons werden aus reinen Label-Strings generiert (Rocket.Chat schneidet nach ~11–12 Zeichen ab — daher kurze Labels mit Emoji). + +--- + +## Aktueller Status + +- **Version**: 1.0.0 +- **Stabilität**: Produktiv im Einsatz (seit Mai 2026) +- **Getestet mit**: Rocket.Chat v5.x, Hermes Agent Gateway +- **Lizenz**: [Unlicense](LICENSE) — Public Domain + +--- + +## Roadmap / Offen + +- [ ] OAuth / Token-Auth neben Passwort-Login +- [ ] Threading-Unterstützung für Kanäle +- [ ] Datei-Upload (Bilder, Dokumente) +- [ ] Slash-Command-Integration auf Rocket.Chat-Seite +- [ ] Mehrsprachige Button-Templates + +--- + +## Mitmachen + +Da das Plugin reines Python und nur Standardbibliothek nutzt, ist der Einstieg niedrig: + +1. Repo clonen +2. `adapter.py` bearbeiten +3. Testen mit `hermes gateway start --debug` +4. Pull Request oder Patch schicken + +Kein Build-Step, keine Node-Dependencies, kein Docker nötig. + +--- + +## Links + +- **Hermes Agent**: https://hermes-agent.nousresearch.com/ +- **Rocket.Chat**: https://www.rocket.chat/ +- **Dieses Repo**: `http://localhost:3000/andreas/Hermes_rocket.chat_Plugin` *(Gitea-Instanz)* + +--- + +> *Erstellt von der Hermes Agent Community — für die Rocket.Chat Community.*