init: Hermes ProtonMail Plugin — structure, README, plan, LICENSE
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
# Hermes ProtonMail Plugin
|
||||
|
||||
> Nützliches Add-on für [Hermes Agent](https://hermes-agent.nousresearch.com/)
|
||||
> um ProtonMail als E-Mail-Plattform zu nutzen — direkt über die Proton REST API, ohne Bridge, ohne GUI, Headless.
|
||||
|
||||
Stellt einen nativen Mail-Client für das Hermes Agent Gateway bereit — mit end-to-end-verschlüsseltem Senden & Empfangen, lokalem Mail-Index und Event-gesteuertem Sync.
|
||||
|
||||
---
|
||||
|
||||
## Warum dieses Plugin?
|
||||
|
||||
| Anforderung | Lösung |
|
||||
|-------------|--------|
|
||||
| 🔐 End-to-End-Verschlüsselung | OpenPGP in Python (PGPy / python-gnupg) |
|
||||
| 🖥️ Headless-Betrieb auf VPS | Keine GUI, kein WireGuard, keine Bridge |
|
||||
| 🚀 Echtzeit-Push | gRPC Events oder intelligentes Polling |
|
||||
| 📦 Mail-Sync | Lokaler SQLite-Index mit inkrementellem Sync |
|
||||
| ✍️ Mail verfassen | Verschlüsselter Versand via Proton API |
|
||||
|
||||
---
|
||||
|
||||
## Status
|
||||
|
||||
| Phase | Fortschritt | Beschreibung |
|
||||
|-------|-------------|--------------|
|
||||
| 1 — Auth POC | 🔲 | SRP-6a Login + API-Zugriff |
|
||||
| 2 — Crypto POC | 🔲 | OpenPGP Entschlüsselung + Attachment-Handling |
|
||||
| 3 — Sync Engine | 🔲 | SQLite-Index + Senden/Empfangen |
|
||||
| 4 — Hermes Plugin | 🔲 | Gateway-Integration + Daemon |
|
||||
| 5 — Produktion | 🔲 | Resilienz + Tests + Monitoring |
|
||||
|
||||
> **Aktuell:** Phase 1 — Implementierungsplan steht, Setup-Phase läuft.
|
||||
|
||||
---
|
||||
|
||||
## Schnellstart (später)
|
||||
|
||||
> Hinweis: Dieses Plugin befindet sich noch in der Entwicklung.
|
||||
> Die ersten Releases erscheinen nach Abschluss der Phase 3 (Sync Engine).
|
||||
|
||||
```bash
|
||||
# (Später verfügbar)
|
||||
git clone https://gitea.thomander.de/andreas/Hermes_ProtonMail_Plugin.git
|
||||
cd Hermes_ProtonMail_Plugin
|
||||
./install.sh
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Features (geplant)
|
||||
|
||||
| Feature | Beschreibung |
|
||||
|---------|-------------|
|
||||
| 🔐 SRP-6a Auth | Sicheres Login ohne Passwort-Übertragung |
|
||||
| 🔑 OpenPGP Crypto | End-to-End Entschlüsselung im Agent |
|
||||
| 📨 Mail-Sync | Lokaler SQLite-Index mit Konversationen |
|
||||
| 📤 Mail senden | Automatisch verschlüsselter Versand |
|
||||
| 📎 Attachments | Verschlüsselte Anhänge senden & empfangen |
|
||||
| 🔔 Push / Poll | Echtzeit-Benachrichtigung oder intelligentes Polling |
|
||||
| 🏷️ Labels & Ordner | Proton-Labels synchronisieren |
|
||||
| 👥 Kontakte | Public-Key-Discovery für Empfänger |
|
||||
|
||||
---
|
||||
|
||||
## Architektur
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────┐
|
||||
│ Hermes Gateway (Agent Core) │
|
||||
│ └── Platform Adapter: ProtonMail │
|
||||
│ ├── Auth Manager (SRP-6a) │
|
||||
│ ├── Crypto Engine (OpenPGP) │
|
||||
│ ├── Sync Engine (SQLite) │
|
||||
│ └── Notifier (Push → Hermes) │
|
||||
└─────────────────────────────────────────┘
|
||||
│
|
||||
▼ HTTPS
|
||||
┌─────────────────────────────────────────┐
|
||||
│ ProtonMail API (mail.proton.me) │
|
||||
│ ├── REST: Auth, Messages, Labels │
|
||||
│ ├── gRPC: Events (neue Mail-Push) │
|
||||
│ └── Key Server: Public Key Discovery │
|
||||
└─────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Was ist im Paket?
|
||||
|
||||
```
|
||||
Hermes_ProtonMail_Plugin/
|
||||
├── README.md ← Diese Datei
|
||||
├── IMPLEMENTATION_PLAN.md ← 5-Phasen Entwicklungsplan
|
||||
├── plugin.yaml ← Plugin-Metadaten
|
||||
├── install.sh ← Interaktives Setup (später)
|
||||
├── lib/
|
||||
│ ├── __init__.py
|
||||
│ ├── auth.py ← SRP + Token Management
|
||||
│ ├── crypto.py ← PGP Wrapper
|
||||
│ ├── api.py ← HTTP Client
|
||||
│ ├── sync.py ← SQLite Sync Engine
|
||||
│ └── models.py ← Dataclasses
|
||||
├── scripts/
|
||||
│ └── proton_daemon.py ← Long-running Sync + Push
|
||||
├── tests/
|
||||
│ └── ... ← Unit + Integration Tests
|
||||
└── LICENSE ← Unlicense (Public Domain)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Lizenz
|
||||
|
||||
[Unlicense](LICENSE) — Public Domain
|
||||
Reference in New Issue
Block a user