- name
- deskbird-automator
- description
- Steuert Deskbird ueber Telegram mit sicherem Auth-Handling, Discovery und Parkplatz-Status/Reservierung. Verwende diesen Skill, wenn ein OpenClaw-Agent Deskbird-Aufgaben ausfuehren oder eine wiederkehrende Cron-Session dafuer anlegen/aktualisieren soll, inklusive Rueckfrage zum Rhythmus und Reauth bei abgelaufener Auth.
Deskbird-Automator
Verwende diesen Skill, um Deskbird ueber das lokale CLI (scripts/deskbird_tool.py) sicher zu bedienen und optional als wiederkehrende Cron-Session laufen zu lassen.
Voraussetzungen
- Arbeite im Projektordner
<repo-root>. - Nutze bevorzugt diese CLI-Kommandos:
- ./scripts/deskbird.sh auth-check - ./scripts/deskbird.sh auth-refresh --format json - ./scripts/deskbird.sh auth-import --stdin --format json - ./scripts/deskbird.sh discovery - ./scripts/deskbird.sh parking-status - ./scripts/deskbird.sh parking-book-first - Setup bei frischem Upload: - python3 -m venv .venv - source .venv/bin/activate - pip install -r requirements.txt - python -m playwright install chromium - chmod +x scripts/deskbird.sh
- Halte den Schonmodus aktiv (
DESKBIRD_SAFE_MODE=true) und sende keine Request-Stuerme. - Fuer Telegram-Reauth standardmaessig nur DevTools-Paste +
auth-importverwenden. auth-pair-*undauth-capturenicht als Standard im Chat vorschlagen.
Deterministischer Env-Pfad
- Verwende fuer alle Skill-Aufrufe den Wrapper
./scripts/deskbird.sh. - Der Wrapper setzt automatisch
--env-file <skill-root>/.envund verhindert damit CWD-bedingte Auth-Fehler. - Nur bei gezieltem Debugging darfst du
--env-fileexplizit auf eine andere Datei setzen.
Empfohlene Dauer-Auth (Broker-Basis)
- Hinterlege nach einmaliger Ermittlung in der Skill-
.env:
- DESKBIRD_FIREBASE_API_KEY - DESKBIRD_FIREBASE_REFRESH_TOKEN
- Dann kann der Agent automatisch per
auth-refresheinen neuen Bearer holen, ohne jeden Login-Flow.
Pflichtdialog Vor Automatisierung
Wenn noch keine passende Cron-Session existiert, frage den Nutzer in genau dieser Reihenfolge:
Soll ich eine wiederkehrende Cron-Session dafuer anlegen?- Wenn ja:
Welcher Rhythmus? Default ist taeglich um 00:30 Uhr (Europe/Berlin), ein Lauf fuer den naechsten 24h-Blick. Was soll die Session pro Lauf genau tun?
Falls unklar, biete als Defaults an: - Nur Uebersicht ueber alle buchbaren Objekte senden - Uebersicht + Parkplatz automatisch buchen, wenn Regel erfuellt ist - Nur monitoren, nie buchen
- Fasse Name, Rhythmus und Session-Aufgabe zusammen und hole eine letzte Bestaetigung ein.
Wenn der Nutzer keinen Rhythmus nennt, setze den Default: taeglich 00:30 (Europe/Berlin).
Reauth-Protokoll (immer vor Deskbird-Calls)
Fuehre vor Discovery/Status/Buchung immer zuerst aus:
./scripts/deskbird.sh auth-check --format json --min-valid-minutes 90Auswertung:
- Wenn
requires_reauth=false: normal fortfahren. - Wenn
requires_reauth=true:
- Wenn DESKBIRD_FIREBASE_API_KEY und DESKBIRD_FIREBASE_REFRESH_TOKEN vorhanden sind: - zuerst automatisch ./scripts/deskbird.sh auth-refresh --format json --min-valid-minutes 90 ausfuehren. - nur wenn das fehlschlaegt, Nutzer um manuelle Reauth bitten. - Ohne Firebase-Refresh-Creds: Nutzer aktiv fragen, ob Reauth jetzt gestartet werden soll.
- Manueller Reauth-Standard ist Token/Header-Paste aus Chrome DevTools.
Office-Discovery Pflicht
- Vor jeder Detailabfrage (
parking-status,parking-check,parking-book-first) zuerstdiscoveryausfuehren. --office-idist optional: Das CLI loest das Office automatisch ueberinternalWorkspacesauf.- Nur wenn mehrere Offices vorhanden und der Default unklar ist:
- zuerst --office-name "<NAME_TEILSTRING>" verwenden, oder - DESKBIRD_DEFAULT_OFFICE_ID in der Skill-.env setzen.
- Der Agent soll den Nutzer nicht standardmaessig nach einer Office-ID fragen.
Reauth Via DevTools Paste
Wenn Reauth noetig ist, leite den Nutzer kurz an:
app.deskbird.comim Browser oeffnen und normal per SSO einloggen.- DevTools (
Network) oeffnen. - Einen
api.deskbird.comRequest anklicken. - Request-Header (
Authorization, optionalCookie,X-CSRF-Token,X-XSRF-Token) kopieren. - Header-Block in Telegram an den Bot senden.
Importiere den vom Nutzer gepasteten Block dann intern so:
cat <<'EOF' | ./scripts/deskbird.sh auth-import --stdin --format json
<PASTED_HEADER_BLOCK_OR_TOKEN>
EOFDanach immer nochmals pruefen:
./scripts/deskbird.sh auth-check --format json --min-valid-minutes 90Fallback:
- Nur wenn DevTools-Paste unmoeglich ist, manuelles
auth-captureanbieten.
Wenn Auth danach weiterhin ungueltig ist:
- Keine Buchungen ausfuehren.
- Klar melden, dass ohne erfolgreiche Reauth abgebrochen wird.
Verhalten In Cron-Laeufen
Cron-Laeufe muessen fehlertolerant und vorsichtig sein:
- Nie aggressive Retries oder enge Polling-Schleifen starten.
- Wenn Auth im Cron-Lauf nicht mehr gueltig ist, nicht blind weiterprobieren.
- Stattdessen eine Telegram-Nachricht senden mit klarer Handlungsaufforderung zur Reauth und den Lauf sauber beenden.
Cron-Session Erstellen/Aktualisieren
Nutze OpenClaw-Cron-Funktionen. Wenn Tooling verfuegbar ist, bevorzuge cron.add/cron.update; alternativ CLI:
openclaw cron add --name "Deskbird Daily" --schedule "30 0 * * *" --prompt "<SESSION_PROMPT>" --announceRegeln:
- Verwende lokale Zeit (Europe/Berlin) fuer den Standard.
- Lege pro Aufgabe genau eine Cron-Session an (keine Duplikate).
- Aktualisiere bestehende Sessions statt neue Kopien anzulegen.
Session-Prompt Bauen
Beim Erstellen des Cron-Prompts nutze die Vorlage aus references/cron-session-template.md und ersetze Platzhalter fuer Zone/Regeln.
Ausgabeformat Gegenueber Dem Nutzer
Bei jedem Lauf (manuell oder Cron) liefere kompakt:
- Auth-Status (
okoderreauth_noetig) - Was geprueft wurde (Datum/Zonen/Objekttypen)
- Wichtige Treffer (frei/belegt/gesperrt, wer belegt)
- Ob eine Buchung durchgefuehrt wurde oder warum nicht