# Skrift Produktions-Agent Schlanker lokaler Agent (Windows) neben dem Plotter. Steuerung läuft über Directus – der Agent macht nur: **Heartbeat → Job holen → drucken → melden**. ## Einrichtung 1. In Directus einen Nutzer der Rolle **Service** anlegen und einen **statischen Token** erzeugen. 2. Die Maschine in Directus unter **Einstellungen → Maschinen** anlegen (`base_url`, ggf. `mid`/Login). Die numerische ID der Maschine ist die `machine_id` für die Agent-Config. 3. `config.example.json` → `config.json` kopieren und ausfüllen (`directus_url`, `directus_token`, `machine_id`). 4. Abhängigkeiten installieren und starten: ```bat python -m venv .venv .venv\Scripts\pip install -r requirements.txt .venv\Scripts\python agent.py ``` ## Ablauf - Der Agent meldet zyklisch `machines.status` + `last_seen` (Heartbeat). - Er zieht den nächsten `jobs`-Eintrag seiner Maschine mit `status=queued` (sortiert nach `priority`, dann Alter). - Er lädt die SVGs des Auftrags passend zum Job-Typ (Schriftstück/Umschlag) über den Directus-Datei-Endpoint (`/skrift-orders/files/...`) und schickt sie mit den Template-Werten (Maße/Position/Rotation) an den Plotter. - Status zurück: `printing → printed` bzw. `failed` (+ Fehlermeldung). - Bei Maschinenfehler (z. B. Papierende) ruft er `recover_write` auf. ## Jobs entstehen Über den Admin-Trigger `POST /skrift-orders/enqueue { order, machine }` (bzw. später ein Button in der Webapp). Pro Auftrag entsteht ein Brief-Job und – falls Kuvert beschriftet – ein Umschlag-Job, jeweils mit aufgelöstem Template. ## Signaturen / AutoRecover Der Signatur-Service bleibt vorerst unberührt. Das win32-`AutoRecover` (klickt das Java-Fenster) kann weiter separat laufen; der Agent nutzt zusätzlich den API-`recover_write` der Maschine.