{
  "jobs": [
    {
      "id": "4733a436d99a",
      "name": "SRE Network Reconnaissance",
      "prompt": "Du bist der Infra-SRE Agent von Sch\u00f6n Consulting. F\u00fchre den w\u00f6chentlichen Network Reconnaissance Scan durch.\n\n1. Rufe den Scan-Skript auf: python3 /home/debian/.hermes/scripts/network-scan.py\n2. Lies die Ergebnisse aus /home/debian/.hermes/output/network_recon.json\n3. Erstelle einen professionellen SRE Report im CEO-Format f\u00fcr das Team.\n\nFormat:\n## \ud83d\udee1\ufe0f SRE Weekly Network Report \u2014 {date}\n\n### \ud83d\udd0d Summary\n- Total Hosts: X\n- Scan Duration: Xs\n- Segments: Hypervisor, Container, Smart Home\n\n### \ud83d\udccb Alive Hosts by Segment\n[compact table: IP | Ports | Service | Banner]\n\n### \u26a0\ufe0f Security Notes\n- [list any concerns like outdated SSH, open databases, unknown services]\n\n### \ud83c\udd95 New Services/Changes\n- [list notable changes from last week if detectable]\n\nHalte den Report knapp, datenbasiert und handlungsorientiert.",
      "skills": [
        "container-network-recon"
      ],
      "skill": "container-network-recon",
      "model": "vllm/release/glm-5-2",
      "provider": "noris",
      "base_url": null,
      "script": "network-scan.py",
      "schedule": {
        "kind": "cron",
        "expr": "0 8 * * 0",
        "display": "0 8 * * 0"
      },
      "schedule_display": "0 8 * * 0",
      "repeat": {
        "times": null,
        "completed": 11
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-04-21T07:27:10.049993+00:00",
      "next_run_at": "2026-07-12T08:00:00+00:00",
      "last_run_at": "2026-07-05T08:02:26.902217+00:00",
      "last_status": "error",
      "last_error": "RuntimeError: HTTP 403: Model 'moonshotai/kimi-k2.6' is not allowed for this virtual key",
      "last_delivery_error": null,
      "deliver": "telegram:-5265906503",
      "origin": {
        "platform": "telegram",
        "chat_id": "223926918",
        "chat_name": "D S",
        "thread_id": null
      },
      "fire_claim": null,
      "provider_snapshot": null,
      "model_snapshot": null
    },
    {
      "id": "f773f8c23230",
      "name": "Rechnungen-Organizer",
      "prompt": "# E-Mail-Organisator (Kompakt)\n\n[IMPORTANT: You are running as a scheduled cron job. DELIVERY: origin. SILENT: If nothing actionable found, respond with exactly \"[SILENT]\" and nothing else.]\n\n## 1. LESEN\nLade `~/.hermes/email-organizer/learning.json` (falls fehlend: initialisiere leeres JSON mit `{\"corrections\":[],\"patterns\":{\"structured_ignore_patterns\":[],\"last_scan\":\"\",\"total_scanned\":0}}`).\n\nHolt E-Mails:\n```bash\nhimalaya envelope list --folder INBOX --page-size 40 --output json 2>/dev/null\n```\n\n## 2. KLASSIFIZIERUNG (nur Betreff + Absender, KEIN body_preview - es ist leer)\n- **Rechnung**: Betreff oder Absender enth\u00e4lt \"rechnung\" (case-insensitive) \u2192 `Rechnungen_jjjj_mm`\n- **Bestellung**: Betreff enth\u00e4lt \"bestellt\", \"bestellung erfolgreich\" ODER Absender enth\u00e4lt \"bestellbestaetigung\" \u2192 `Rechnungen_jjjj_mm/Bestellungen_jjjj_mm`\n- **AMEX**: Absender `AmericanExpress@welcome.americanexpress.com` ODER Betreff enth\u00e4lt \"Online-Monatsabrechnung\" \u2192 `Rechnungen_jjjj_mm`\n- **Gutschrift**: Betreff enth\u00e4lt \"gutschrift\" \u2192 `Rechnungen_jjjj_mm/Gutschriften_jjjj_mm`\n- **Unsicher bei Absendern?** Body lesen: `himalaya message read ID 2>/dev/null` (nur bei Zweifeln)\n\n## 3. IGNORE-CHECK\nPr\u00fcfe `learning.json` \u2192 `patterns.structured_ignore_patterns`:\nWenn Absender matcht UND Betreff enth\u00e4lt ein keyword \u2192 **ignorieren**, Pattern nach M\u00f6glichkeit erweitern.\n\n## 4. AUSF\u00dcHREN\n```bash\n# Syntax: ZIEL zuerst, dann ID. Single-Quotes bei Pfaden mit \"/\"\nhimalaya message move 'Rechnungen_2026_06/Bestellungen_2026_06' 12345 2>/dev/null\n```\nHinweis: `move` erstellt fehlende Ordner automatisch.\n\n## 5. SELF-IMPROVEMENT \u2014 LERNEN\n**Unbedingt** `learning.json` aktualisieren und zur\u00fcckschreiben:\n- `last_scan`: heute (`date +%Y-%m-%d`)\n- `total_scanned`: Anzahl heute gescannter Mails\n- Neue ignorierte Absender (nicht in patterns vorhanden) \u2192 als neues `structured_ignore_patterns`-Objekt hinzuf\u00fcgen (name, sender, subject_keywords [], notes)\n- Neue Rechnungs-/Bestellungs-Absender \u2192 in `patterns.invoices` bzw. `patterns.orders` als neues Objekt (sender, subject_pattern, folder, note)\n\n## 6. AUSGABE (max. 5 Zeilen!)\n```\nGescannt: X | Rechnungen: Y | Bestellungen: Z | Ignoriert: B\nNeu gelernt: N Muster\n```\nWenn `X > 0` UND `Y=0` UND `Z=0`: Gib die Top-3 Absender der ignorierten Mails kurz an, damit der Nutzer bei Bedarf Patterns korrigieren kann.\n\nWenn `X=0` oder nichts passiert ist: `[SILENT]`",
      "skills": [],
      "skill": null,
      "model": "vllm/release/glm-5-2",
      "provider": "noris",
      "base_url": null,
      "script": null,
      "schedule": {
        "kind": "cron",
        "expr": "0 9 * * *",
        "display": "0 9 * * *"
      },
      "schedule_display": "0 9 * * *",
      "repeat": {
        "times": 500,
        "completed": 78
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-04-26T16:34:56.913960+00:00",
      "next_run_at": "2026-07-11T09:00:00+00:00",
      "last_run_at": "2026-07-10T09:02:27.803832+00:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "223926918",
        "chat_name": "D S",
        "thread_id": null
      },
      "fire_claim": null,
      "provider_snapshot": null,
      "model_snapshot": null
    },
    {
      "id": "722416c6ce96",
      "name": "memory-sync-daily",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": "memory-sync.sh",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "0 22 * * *",
        "display": "0 22 * * *"
      },
      "schedule_display": "0 22 * * *",
      "repeat": {
        "times": null,
        "completed": 63
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-05-08T18:04:31.119126+00:00",
      "next_run_at": "2026-07-10T22:00:00+00:00",
      "last_run_at": "2026-07-09T22:01:00.316393+00:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "223926918",
        "chat_name": "D S",
        "thread_id": null
      },
      "enabled_toolsets": null,
      "workdir": null,
      "fire_claim": null
    },
    {
      "id": "c77127dd9130",
      "name": "recipe-scraper-v8-pipeline",
      "prompt": "# Recipe Scraper v8 \u2014 International + Translation Pipeline\n\nDu bist der Recipe-Scraper-Agent. F\u00fchre die t\u00e4gliche Scraping-Pipeline aus.\n\n## WICHTIG: \u00dcbersetzungs-Modell\nF\u00fcr alle \u00dcbersetzungen (Englisch\u2192Deutsch) verwende IMMER das Modell `vllm/gemma-4-31b-it` \u00fcber ai.noris.de.\nNIEMALS glm-5-2-nvfp4 f\u00fcr \u00dcbersetzungen verwenden.\n\n## Pipeline-Schritte:\n1. Pr\u00fcfe welche Quellen noch ausstehen (BBC Good Food, etc.)\n2. Scrape neue Rezepte\n3. \u00dcbersetze mit gemma-4-31b-it\n4. Speichere in der Recipe-Datenbank\n5. Berichte Fortschritt\n\nF\u00fchre die Pipeline fortgesetzt aus bis alle Quellen abgearbeitet sind. Berichte kompakt am Ende.",
      "skills": [],
      "skill": null,
      "model": "vllm/release/glm-5-2",
      "provider": "noris",
      "base_url": null,
      "script": null,
      "no_agent": false,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "0 6 * * *",
        "display": "0 6 * * *"
      },
      "schedule_display": "0 6 * * *",
      "repeat": {
        "times": null,
        "completed": 28
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-06-18T05:23:21.427749+00:00",
      "next_run_at": "2026-07-11T06:00:00+00:00",
      "last_run_at": "2026-07-10T06:27:01.194799+00:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "223926918",
        "chat_name": "D S",
        "thread_id": null
      },
      "enabled_toolsets": [
        "terminal",
        "file"
      ],
      "workdir": null,
      "fire_claim": null,
      "provider_snapshot": null,
      "model_snapshot": null
    },
    {
      "id": "a74a96ad0c96",
      "name": "comfy-e2e-watcher",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": "comfy_e2e_watcher.sh",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "*/5 * * * *",
        "display": "*/5 * * * *"
      },
      "schedule_display": "*/5 * * * *",
      "repeat": {
        "times": null,
        "completed": 5200
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-06-22T18:34:14.816677+00:00",
      "next_run_at": "2026-07-10T21:10:00+00:00",
      "last_run_at": "2026-07-10T21:05:27.204931+00:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "223926918",
        "chat_name": "D S",
        "thread_id": null
      },
      "enabled_toolsets": null,
      "workdir": null,
      "fire_claim": null
    },
    {
      "id": "2259b8b23b73",
      "name": "Hindsight Meta-Memory Cleanup",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": "hindsight_meta_memory.py",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "0 3 1 * *",
        "display": "0 3 1 * *"
      },
      "schedule_display": "0 3 1 * *",
      "repeat": {
        "times": null,
        "completed": 1
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-06-27T20:10:59.402304+00:00",
      "next_run_at": "2026-08-01T03:00:00+00:00",
      "last_run_at": "2026-07-01T03:00:28.511632+00:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "223926918",
        "chat_name": "D S",
        "thread_id": null
      },
      "enabled_toolsets": null,
      "workdir": null,
      "fire_claim": null
    },
    {
      "id": "1050dcdca6f6",
      "name": "Hindsight Nightly Dream Cycle",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": "hindsight_nightly_dream.py",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "0 3 * * *",
        "display": "0 3 * * *"
      },
      "schedule_display": "0 3 * * *",
      "repeat": {
        "times": null,
        "completed": 13
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-06-27T20:21:43.902251+00:00",
      "next_run_at": "2026-07-11T03:00:00+00:00",
      "last_run_at": "2026-07-10T03:00:46.513613+00:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "223926918",
        "chat_name": "D S",
        "thread_id": null
      },
      "enabled_toolsets": null,
      "workdir": null,
      "fire_claim": null
    },
    {
      "id": "50ad50abe944",
      "name": "Hindsight Weekly Insight Digest",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": "hindsight_weekly_digest.py",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "0 8 * * 0",
        "display": "0 8 * * 0"
      },
      "schedule_display": "0 8 * * 0",
      "repeat": {
        "times": null,
        "completed": 2
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-06-27T20:21:44.944056+00:00",
      "next_run_at": "2026-07-12T08:00:00+00:00",
      "last_run_at": "2026-07-05T08:00:53.408302+00:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "223926918",
        "chat_name": "D S",
        "thread_id": null
      },
      "enabled_toolsets": null,
      "workdir": null,
      "fire_claim": null
    }
  ],
  "updated_at": "2026-07-10T21:05:27.205337+00:00"
}