docs: refresh README to current command and preference surface
Cover the AI workflows (summarize / reply / briefing / action-items / structured-data), the symmetrical depseudonymize commands, all preferences including the new close-after-action checkbox, and the Raycast 2.0 Beta workarounds the codebase relies on. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
89
README.md
89
README.md
@@ -1,35 +1,82 @@
|
||||
# Velum Raycast Extension
|
||||
|
||||
Raycast-Extension zum Pseudonymisieren und Wiederherstellen von Text mit Velum.
|
||||
Raycast-Extension für PII-sichere Text-Workflows mit Velum: Klarnamen werden lokal in Platzhalter überführt, bevor Text an externe KI-Modelle (Raycast AI), Übersetzer oder andere Tools weitergegeben wird. Originalwerte werden anschließend lokal anhand der Velum-Sitzungs-Zuordnung wiederhergestellt.
|
||||
|
||||
## Konfiguration
|
||||
|
||||
Öffne die Raycast-Einstellungen für die Extension und konfiguriere:
|
||||
Alle Werte sind in den Raycast-Einstellungen pro Extension einstellbar.
|
||||
|
||||
- Velum Basis-URL, z. B. `https://velum.example.com`
|
||||
- Authentik Token-URL, üblicherweise `https://auth.example.com/application/o/token/`
|
||||
- OAuth Client-ID
|
||||
- Dienstkonto-Benutzername
|
||||
- Dienstkonto App-Passwort
|
||||
- Optionaler OAuth-Scope, Standard `profile`
|
||||
**Velum & Authentik (Pflicht):**
|
||||
- `Velum Basis-URL` — z. B. `https://velum.example.com`
|
||||
- `Authentik Token-URL` — z. B. `https://auth.example.com/application/o/token/`
|
||||
- `OAuth Client-ID`
|
||||
- `Dienstkonto-Benutzername`
|
||||
- `Dienstkonto App-Passwort` (gespeichert als Raycast-Passwort-Preference)
|
||||
- `OAuth Scope` — optional, Standard `profile`
|
||||
|
||||
Das Dienstkonto-Passwort wird als Raycast-Passwort-Preference gespeichert. Access-Tokens und Velum-Sitzungen liegen im Raycast-LocalStorage.
|
||||
**Verhalten:**
|
||||
- `Standard-Sitzungsmodus` — `Aktive Sitzung wiederverwenden` (Default), `Neue Sitzung pro Anfrage`, `Tagessitzung`
|
||||
- `Ausgabe der Schnellbefehle` — `In die Zwischenablage kopieren` (Default) oder `Am Cursor einfügen`
|
||||
- `Standard-Modell für Zusammenfassungen` — Raycast-KI-Modell für AI-Befehle (benötigt Raycast Pro)
|
||||
- `Eigener Name` — Signatur für AI-generierte Email-Antworten
|
||||
- `Maximale Anzahl gespeicherter Sitzungen` — älteste werden geprunt (Default 20)
|
||||
- `Raycast nach Kopieren/Einfügen schließen` — Auto-Close und Pop-To-Root nach AI-Workflow-Abschluss (Default an)
|
||||
|
||||
Access-Tokens und Velum-Sitzungen liegen im Raycast-LocalStorage.
|
||||
|
||||
## Befehle
|
||||
|
||||
- `Email-Konversation zusammenfassen`: markierten Email-Verlauf pseudonymisieren, per Raycast-KI zusammenfassen und wiederherstellen.
|
||||
- `Text pseudonymisieren`: Text manuell eingeben oder markierten/Zwischenablage-Text laden, Sitzung wählen, Ergebnis kopieren oder einfügen.
|
||||
- `Markierten Text pseudonymisieren`: Schnellbefehl für markierten Text.
|
||||
- `Zwischenablage pseudonymisieren`: Schnellbefehl für die Zwischenablage.
|
||||
- `Text wiederherstellen`: Platzhalter mit einer gespeicherten Sitzungs-Zuordnung wiederherstellen.
|
||||
- `Sitzungen verwalten`: Zuordnungs-Sitzungen anlegen, aktivieren, ansehen, leeren oder löschen.
|
||||
### AI-Workflows (Pseudonymisieren → Raycast AI → Wiederherstellen)
|
||||
|
||||
## Sitzungsverhalten
|
||||
Jeder AI-Befehl pseudonymisiert die Eingabe via Velum, zeigt einen Confirm-Schritt (pseudonymisierter Text editierbar bevor er an die KI geht), streamt die AI-Antwort und ersetzt zum Schluss lokal alle Platzhalter mit den Originalen. Default-Output ist Rich Text (HTML, via osascript ans System-Pasteboard — siehe Raycast 2.0 Beta unten); zusätzlich gibt es eine Markdown-Copy-Action und eine Paste-Action.
|
||||
|
||||
Velum-Zuordnungen enthalten die Originalwerte. Sitzungen steuern, welche Anfragen sich eine Zuordnung teilen:
|
||||
- `Email-Konversation zusammenfassen` — strukturierte Markdown-Zusammenfassung eines Mailverlaufs (Teilnehmer, Anliegen, Verlauf, Action Items). HTML-Copy für Mail/Outlook.
|
||||
- `Email-Antwort generieren` — verfasst eine deutsche Antwort auf einen markierten Mailverlauf, mit anpassbarer Anrede, Schluss, Tonalität und optionalem Hinweis auf den AI-Ursprung. Nutzt OAuth-Personen-Platzhalter aus dem Verlauf.
|
||||
- `Briefing aus Notizen` — strukturiertes Briefing (Kontext, Teilnehmer, Entscheidungen, Action Items, Offene Punkte) aus Notizen, Stichpunkten oder Meeting-Transkripten.
|
||||
- `Action Items extrahieren` — Markdown-Tabelle (Aufgabe / Verantwortlich / Deadline / Status) aus Transkripten, Threads oder Notizen.
|
||||
- `Strukturierte Daten extrahieren` — JSON oder Markdown-Tabelle aus Freitext, gemäß einem frei beschriebenen Schema.
|
||||
|
||||
- `Aktive Sitzung wiederverwenden`: setzt die aktuelle Zuordnung fort.
|
||||
- `Neue Sitzung pro Anfrage`: isoliert jede Schnellbefehl-Anfrage.
|
||||
- `Tagessitzung`: nutzt eine Zuordnung pro Tag.
|
||||
### Pseudonymisieren
|
||||
|
||||
Der interaktive Befehl bietet immer eine explizite Sitzungs-Auswahl plus eine `Neue Sitzung`-Option.
|
||||
- `Text pseudonymisieren` (View) — Text manuell eingeben, Sitzung und Entitätstypen wählen, Mapping inspizieren.
|
||||
- `Markierten Text pseudonymisieren` (No-View) — Schnellbefehl: aktuelle Selektion wird pseudonymisiert und je nach Preference kopiert oder eingefügt.
|
||||
- `Zwischenablage pseudonymisieren` (No-View) — analog für den Zwischenablage-Inhalt.
|
||||
|
||||
### Wiederherstellen
|
||||
|
||||
- `Text wiederherstellen` (View) — Platzhalter-Text und Sitzung wählen, Originale per Velum oder lokal einsetzen.
|
||||
- `Markierten Text wiederherstellen` (No-View) — Selektion mit der aktiven Sitzung restaurieren.
|
||||
- `Zwischenablage wiederherstellen` (No-View) — analog für die Zwischenablage.
|
||||
|
||||
### Sitzungen
|
||||
|
||||
- `Sitzungen verwalten` — Sitzungen anlegen, aktivieren, ansehen, leeren oder löschen. Zeigt das Mapping je Sitzung als Markdown-Tabelle.
|
||||
|
||||
## Sitzungen
|
||||
|
||||
Eine Sitzung ist eine wachsende Velum-Zuordnung zwischen Platzhaltern (`<PERSON_1>`, `<ORG_2>`, …) und Originalwerten. Welche Sitzung ein Schnellbefehl benutzt, regelt der Sitzungsmodus:
|
||||
|
||||
- `Aktive Sitzung wiederverwenden` — Konsistenz über mehrere Anfragen, ideal für längere Korrespondenzen.
|
||||
- `Neue Sitzung pro Anfrage` — vollständige Isolation, jede Anfrage bekommt frische Platzhalter.
|
||||
- `Tagessitzung` — eine Sitzung pro Tag, ein Kompromiss aus Konsistenz und Isolation.
|
||||
|
||||
Die View-Befehle bieten zusätzlich eine explizite Sitzungs-Auswahl plus eine `Neue Sitzung`-Option.
|
||||
|
||||
## Raycast 2.0 Beta
|
||||
|
||||
Die Extension läuft auf der stabilen Raycast-Version sowie der 2.0 Beta. Für die 2.0 Beta sind drei Workarounds in `src/selection.ts` und `src/ai-views.tsx` enthalten:
|
||||
|
||||
- **Selektion erfassen** — `getSelectedText()` braucht in 2.0 Beta einen vorangestellten `Clipboard.clear()`-Trigger plus einen `readText`-Fallback für Outlook und ähnliche Electron-Apps. Der Helper `getSelectedTextSafely` deckt das ab.
|
||||
- **Rich Text Copy** — `Clipboard.copy({ html, text })` schreibt in 2.0 Beta nur Plain Text. `copyRichText` shellt aus zu `osascript -l JavaScript` und setzt `public.html` + `public.utf8-plain-text` direkt am NSPasteboard, sodass beim Einfügen in Word/Outlook eine echte gerenderte Tabelle landet.
|
||||
- **Pop-To-Root nach Abschluss** — nach Copy/Paste wird mit `closeMainWindow({ popToRootType: PopToRootType.Immediate })` der Navigations-Stack geleert, damit beim nächsten Raycast-Öffnen nicht das alte Result-View wieder hochkommt. Per Preference `Raycast nach Kopieren/Einfügen schließen` abschaltbar.
|
||||
|
||||
## Entwicklung
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm run dev # ray develop — live reload, lädt die Extension in den lokalen Raycast
|
||||
npm run lint
|
||||
npm run build # ray build -e dist
|
||||
```
|
||||
|
||||
Voraussetzungen: macOS, Node 22+, Raycast (Pro für die AI-Befehle).
|
||||
|
||||
Reference in New Issue
Block a user