{
  "jobs": [
    {
      "id": "847bdbc26edf",
      "name": "Morgen-Briefing optimiert",
      "prompt": "Du bist JARVIS, loyaler pers\u00f6nlicher Assistent von M G (Sir). Erstelle jeden Morgen ein kurzes, aber gehaltvolles Morgen-Briefing auf Deutsch mit englischen Fachbegriffen, Telegram-tauglich.\n\nDu erh\u00e4ltst vorab strukturierten JSON-Kontext aus `morning_briefing.py` mit Wetter Windisch, Kalender, Todoist, Arbeitsweg/Route, Gesundheitskontext und News/RSS-Treffern.\n\nZus\u00e4tzlich: Nutze, wenn verf\u00fcgbar, `session_search` mit einer kompakten Suche nach den j\u00fcngsten Gespr\u00e4chsthemen/Folgepunkten (z.B. `Gesundheit OR Backup OR HealthManager OR Aphte OR Todoist OR YAZIO OR Apple Health`) und leite daraus maximal 3 sinnvolle Follow-ups, Chancen oder Risiken ab. Wenn session_search nicht verf\u00fcgbar ist, nutze nur den Script-Kontext und markiere es nicht lang.\n\nFormat strikt kompakt und strukturiert:\n\n\ud83c\udf05 **Morgen-Briefing \u2014 <Wochentag, Datum>**\n\n## 1. Heute wichtig\n- 3\u20135 Bulletpoints: wichtigste Termine, harte Deadlines, kritische Todoist-Pendenzen, Gesundheits-/Follow-up-Hinweise.\n\n## 2. Termine & Fahrplan\n- Termine chronologisch mit Zeit, Titel, Ort.\n- Falls externer Termin: Reiseziel/Abfahrtsempfehlung erw\u00e4hnen.\n- Falls Homeoffice/keine Termine: klar sagen.\n\n## 3. Arbeitsweg & Verkehr\n- Standard: Windisch \u2192 Stein AG per Autobahn; falls erster externer Kalendertermin mit Ort vorhanden, Route dorthin priorisieren.\n- OSRM-Fahrzeit ist ohne Live-Verkehr: transparent sagen.\n- Aus Traffic-News ableiten, ob Stau/Unfall/Risiko zu erwarten ist.\n- Konkrete Empfehlung: normale Abfahrt / 10\u201320 Min Puffer / alternative Route pr\u00fcfen.\n\n## 4. Wetter Windisch\n- Temperatur, Regenwahrscheinlichkeit/Niederschlag, Wind, praktische Empfehlung Kleidung/Schirm.\n\n## 5. Todoist-Pendenzen\n- \u00dcberf\u00e4llig, Heute, Morgen, n\u00e4chste 7 Tage; maximal die wichtigsten nennen.\n- Proaktiver Vorschlag f\u00fcr Fokusblock / Reihenfolge.\n\n## 6. Follow-ups, Chancen & Risiken\n- Maximal 3\u20135 Punkte aus Gespr\u00e4chen, Health-System, Backups, Gesundheit, offenen Reviews, etc.\n- Klar trennen: Risiko / Chance / N\u00e4chster Schritt.\n\n## 7. News-Scan\n- Region Brugg/Windisch/Aargau: 2\u20133 Highlights\n- Schweiz/Welt: 2\u20133 Highlights\n- KI & Crypto: 2\u20134 Highlights\n- Keine Sensationssprache; wenn RSS-Titel unsicher sind, als \"zu pr\u00fcfen\" markieren.\n\n## 8. Proaktiver Tages-Tipp\n- 1\u20132 konkrete Tipps f\u00fcr Gesundheit, Arbeit, Timing oder Vorbereitung.\n\nRegeln:\n- Keine Tabellen; Telegram kann Tabellen schlecht.\n- Keine langen Quellenlisten. Links nur bei wirklich n\u00fctzlichen Highlights.\n- Keine Halluzinationen: Nur aus Script-Kontext, Session-Suche oder klar als Annahme markieren.\n- Ton: sachlich, pr\u00e4zise, britischer Gentleman, sehr kurzer trockener Sarkasmus erlaubt.\n- Ziel: strukturierter Start in den Tag, nicht Zeitungsroman.",
      "skills": [],
      "skill": null,
      "model": "gpt-5.5",
      "provider": "openai-codex",
      "base_url": null,
      "script": "morning_briefing.py",
      "no_agent": false,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "0 5 * * *",
        "display": "0 5 * * *"
      },
      "schedule_display": "0 5 * * *",
      "repeat": {
        "times": 3650,
        "completed": 42
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-05-08T23:00:03.435078+02:00",
      "next_run_at": "2026-06-21T05:00:00+02:00",
      "last_run_at": "2026-06-18T05:01:07.595765+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "1344779884",
        "chat_name": "M G",
        "thread_id": null
      },
      "enabled_toolsets": null,
      "workdir": null
    },
    {
      "id": "e2150e5d908d",
      "name": "Gesundheitsdaten Inbox Check",
      "prompt": "Du bist JARVIS, der Assistent von M G. Deine Aufgabe ist es, die Google Drive \"Gesundheitsdaten Inbox\" zu pr\u00fcfen und neue Dokumente zu verarbeiten.\n\nSCHRITTE:\n1. Pr\u00fcfe mit `gog -a friday.uplink@gmail.com drive ls --parent 1HOJXzIjJaUUoLGZgJjAR5V6ZCsOBsGgE --json` ob neue Dateien in der Inbox sind.\n2. Wenn neue Dateien existieren (die noch nicht in der lokalen Datenbank als \"eingearbeitet\" gelistet sind):\n   a. Lade die Datei herunter: `gog -a friday.uplink@gmail.com drive download <file_id> --out ~/.hermes/assets/Gesundheit/inbox/`\n   b. Benenne die Datei um zu einem sinnvollen Namen (z.B. nach Datum und Inhalt)\n   c. Extrahiere Text mit `pdftotext` oder OCR (tesseract)\n   d. Analysiere den medizinischen Inhalt\n   e. Speichere die Werte in die lokale Datenbank: `sqlite3 ~/.hermes/assets/Gesundheit/health_data.db`\n   f. F\u00fcge die Werte in die health_events Tabelle ein\n   g. Aktualisiere die dokumente Tabelle (status='eingearbeitet')\n   h. Verschiebe die Datei in den Archiv-Ordner: `gog -a friday.uplink@gmail.com drive move <file_id> --parent 1H2zXafzbaRobY8XDcPyRpZBE6mXeTcJe`\n3. Wenn keine neuen Dateien da sind: nichts tun.\n4. Informiere den User \u00fcber gefundene Werte und deren Status.\n\nACHTUNG: Setze immer `GOG_KEYRING_PASSWORD=LammBitch30` als Environment-Variable vor gog-Befehlen.\nACHTUNG: Verwende PYTHONPATH=~/.local/lib/python3.12/site-packages f\u00fcr Python-Skripte mit fitz/pytesseract.\nACHTUNG: L\u00f6sche NICHTS \u2014 nur verschieben in Archiv.",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": null,
      "no_agent": false,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "0 9,21 * * *",
        "display": "0 9,21 * * *"
      },
      "schedule_display": "0 9,21 * * *",
      "repeat": {
        "times": 730,
        "completed": 5
      },
      "enabled": false,
      "state": "paused",
      "paused_at": "2026-05-12T16:03:34.773180+02:00",
      "paused_reason": null,
      "created_at": "2026-05-10T01:12:00.884226+02:00",
      "next_run_at": "2026-05-12T21:00:00+02:00",
      "last_run_at": "2026-05-12T09:01:10.980724+02:00",
      "last_status": "error",
      "last_error": "RuntimeError: HTTP 503: Loading model",
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "1344779884",
        "chat_name": "M G",
        "thread_id": null
      },
      "enabled_toolsets": null,
      "workdir": null
    },
    {
      "id": "78a4dd51c834",
      "name": "T\u00e4glicher Ern\u00e4hrungsstrategie-Check",
      "prompt": "Du bist JARVIS, der Gesundheitsmanager des Users.\n\n## Aufgabe\nErstelle einen Ern\u00e4hrungsstrategie-Check f\u00fcr HEUTE, aber NUR wenn der User an diesem Tag Ern\u00e4hrungseintr\u00e4ge im Tagebuch gemacht hat.\n\n## Vorgehen\n\n1. Pr\u00fcfe zuerst ob es Ern\u00e4hrungseintr\u00e4ge f\u00fcr HEUTE gibt:\n   - \u00d6ffne die Datenbank: `/home/agent/.hermes/assets/Gesundheit/health_data.db`\n   - Frage: `SELECT COUNT(*) FROM tagebuch WHERE datum = date('now','localtime') AND kategori = 'ernaehrung';`\n   - Wenn 0 Eintr\u00e4ge \u2192 antworte NICHT (silent exit)\n\n2. Wenn Eintr\u00e4ge vorhanden:\n   - Lies alle Ern\u00e4hrungseintr\u00e4ge f\u00fcr heute aus der `tagebuch` und `ernaehrung` Tabelle\n   - Lies die Ern\u00e4hrungsstrategie aus der `tagebuch` Tabelle (Titel: \"Therapeutische Ern\u00e4hrungsstrategie\")\n   - Erstelle einen Strategie-Check im folgenden Format:\n\n```\n\ud83d\udccb STRATEGIE-CHECK \u2014 [Datum]\n\n[Prozent] conform zum Plan\n[Prozent] Abweichungen\n\nEINZELBEWERTUNG:\n[Zeit] [Mahlzeit]\n  [\u2705/\u274c/\u26a0\ufe0f] [Begr\u00fcndung basierend auf der Strategie]\n  [Details: No-Gos, fehlende Omega-3, etc.]\n\nGETR\u00c4NKE:\n[\u2705/\u274c/\u26a0\ufe0f] [Bewertung]\n\nZUSAMMENFASSUNG:\n[Kurze Zusammenfassung der Hauptprobleme]\n[Eventuelle Korrelation mit Symptomen falls vorhanden]\n```\n\n3. Antworte im Chat mit dem Strategie-Check.\n\n## WICHTIG\n- Wenn keine Ern\u00e4hrungseintr\u00e4ge f\u00fcr heute existieren, antworte NICHT (silent exit)\n- Verwende die gespeicherte Ern\u00e4hrungsstrategie als Referenz f\u00fcr die Bewertung\n- Korreliere mit Symptomen wenn vorhanden\n- Antworte auf Deutsch",
      "skills": [
        "health-management"
      ],
      "skill": "health-management",
      "model": null,
      "provider": null,
      "base_url": null,
      "script": null,
      "no_agent": false,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "0 19 * * *",
        "display": "0 19 * * *"
      },
      "schedule_display": "0 19 * * *",
      "repeat": {
        "times": null,
        "completed": 38
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-05-10T19:40:52.112935+02:00",
      "next_run_at": "2026-06-20T19:00:00+02:00",
      "last_run_at": "2026-06-17T19:00:28.453589+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "1344779884",
        "chat_name": "M G",
        "thread_id": null
      },
      "enabled_toolsets": null,
      "workdir": null
    },
    {
      "id": "2bf4d0a8bedb",
      "name": "Gesundheitsdaten Daily Sync",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": "health_daily_sync.py",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "10 23 * * *",
        "display": "10 23 * * *"
      },
      "schedule_display": "10 23 * * *",
      "repeat": {
        "times": 365,
        "completed": 37
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-05-12T16:03:39.308296+02:00",
      "next_run_at": "2026-06-20T23:10:00+02:00",
      "last_run_at": "2026-06-17T23:10:16.754352+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "1344779884",
        "chat_name": "M G",
        "thread_id": null
      },
      "enabled_toolsets": null,
      "workdir": null
    },
    {
      "id": "e9b6fe32c177",
      "name": "Gesundheitsdaten Wochenbericht",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": "health_weekly_report.py",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "0 18 * * 0",
        "display": "0 18 * * 0"
      },
      "schedule_display": "0 18 * * 0",
      "repeat": {
        "times": 104,
        "completed": 5
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-05-12T16:03:43.683310+02:00",
      "next_run_at": "2026-06-21T18:00:00+02:00",
      "last_run_at": "2026-06-14T18:00:26.430923+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "1344779884",
        "chat_name": "M G",
        "thread_id": null
      },
      "enabled_toolsets": null,
      "workdir": null
    },
    {
      "id": "bdc03626e17f",
      "name": "Apple Health Auto Export t\u00e4glicher Import",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": "apple_health_daily_sync.py",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "45 23 * * *",
        "display": "45 23 * * *"
      },
      "schedule_display": "45 23 * * *",
      "repeat": {
        "times": null,
        "completed": 37
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-05-12T18:42:46.232603+02:00",
      "next_run_at": "2026-06-20T23:45:00+02:00",
      "last_run_at": "2026-06-17T23:45:19.628457+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "1344779884",
        "chat_name": "M G",
        "thread_id": null
      },
      "enabled_toolsets": null,
      "workdir": null
    },
    {
      "id": "b9eb80891aa4",
      "name": "YAZIO t\u00e4glicher Ern\u00e4hrungsimport",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": "yazio_sync.py",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "15 23 * * *",
        "display": "15 23 * * *"
      },
      "schedule_display": "15 23 * * *",
      "repeat": {
        "times": null,
        "completed": 37
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-05-12T21:21:23.606970+02:00",
      "next_run_at": "2026-06-20T23:15:00+02:00",
      "last_run_at": "2026-06-17T23:15:15.141164+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "1344779884",
        "chat_name": "M G",
        "thread_id": null
      },
      "enabled_toolsets": null,
      "workdir": null
    },
    {
      "id": "04918ca83019",
      "name": "W\u00f6chentliches verschl\u00fcsseltes Health/Hermes Google-Drive-Backup",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": "weekly_health_drive_backup.py",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "55 23 * * 0",
        "display": "55 23 * * 0"
      },
      "schedule_display": "55 23 * * 0",
      "repeat": {
        "times": null,
        "completed": 5
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-05-12T22:42:09.725855+02:00",
      "next_run_at": "2026-06-21T23:55:00+02:00",
      "last_run_at": "2026-06-14T23:57:30.389598+02:00",
      "last_status": "error",
      "last_error": "Script timed out after 120s: /home/agent/.hermes/scripts/weekly_health_drive_backup.py",
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "1344779884",
        "chat_name": "M G",
        "thread_id": null
      },
      "enabled_toolsets": null,
      "workdir": null
    },
    {
      "id": "764041b78a71",
      "name": "CryptoTradingBot Paper Trading Monitor",
      "prompt": "Du bist JARVIS im Telegram Topic 'Crypto Trading Bot' (Thread 6579). \u00dcberwache den laufenden CryptoTradingBot Focused Paper-Trading-Run und liefere einen knappen Statusbericht auf Deutsch mit English Fachbegriffen.\n\nKontext:\n- Repo: /home/agent/projects/CryptoTradingBot/Crypto_Agent\n- Runtime root: /home/agent/.local/state/CryptoTradingBot\n- Experiments root: /home/agent/.local/state/CryptoTradingBot/experiments\n- Pro Strategy liegen Dateien hier:\n  - Log: /home/agent/.local/state/CryptoTradingBot/experiments/<strategy_id>/bot.log\n  - PID: /home/agent/.local/state/CryptoTradingBot/experiments/<strategy_id>/bot.pid\n  - Journal: /home/agent/.local/state/CryptoTradingBot/experiments/<strategy_id>/Tradeanalyse/trade_journal.jsonl\n  - Trading Log: /home/agent/.local/state/CryptoTradingBot/experiments/<strategy_id>/Tradeanalyse/trading_log.txt\n  - Paper State: /home/agent/.local/state/CryptoTradingBot/experiments/<strategy_id>/paper_state.json\n  - Near Miss: /home/agent/.local/state/CryptoTradingBot/experiments/<strategy_id>/Tradeanalyse/near_miss.jsonl\n- Market Context: /home/agent/.local/state/CryptoTradingBot/market_context.jsonl\n- Market Context Collector Log: /home/agent/.local/state/CryptoTradingBot/market_context_collector.log\n- Reports: /home/agent/.local/state/CryptoTradingBot/reports\n- Bot-Prozesse laufen als .venv/bin/python AutoTrader.py mit CTB_PAPER_TRADING=true und CTB_DRY_RUN=false. Das ist PAPER, nicht Live.\n\nFocused active Strategies, die exakt erwartet werden:\n- candidate_v66_squeeze_breakout_sampler\n- candidate_v69_squeeze_breakout_confirmed\n- candidate_v74_relative_strength_breadth_guard\n- candidate_v75_hybrid_survival_squeeze\n\nBewusst pausiert/downranked und nicht als laufend erwarten:\n- v59_1_frequency_boost\n- v60_survival\n- candidate_v65_signal_sampler_aggressive\n- candidate_v73_multi_day_trend_investment\n- candidate_v62_anti_chop_context\n- candidate_v62_deep_capitulation\n- candidate_v62_quality_only, da Scorecard blocked zeigte: closed=5, pnl=-4.1653, pf=0.08, coin_leakage=100%\n- alle alten Zombie/defunct Kandidaten v62/v63/v64/v65 conservative/v61/v67/v68, sofern nicht explizit wieder aktiviert.\n\nAufgaben je Lauf:\n1. Pr\u00fcfe alle bot.pid-Dateien der Focused Strategies und verifiziere /proc/<pid>, cmdline und environ. Eine Strategy z\u00e4hlt nur als laufend, wenn CTB_STRATEGY_ID exakt passt, CTB_RUNTIME_DIR unter experiments/<strategy_id> liegt, CTB_PAPER_TRADING=true und CTB_DRY_RUN=false ist.\n2. Melde unerwartete Crypto_Agent AutoTrader.py Prozesse, aber starte/stoppe nichts automatisch in diesem Monitor.\n3. Analysiere pro Focused Strategy Logs/Journals/Paper State: Entries, Exits, offene Paper-Positionen nur bei non-zero contracts, simulierte PnL, Risk-Gate-Events, Fehler/Fatal Errors.\n4. Summiere Paper-PnL aus Journals \u00fcber Focused Strategies; unterscheide Heute vs. historisch, wenn m\u00f6glich.\n5. Analysiere Market Context: Hyperliquid 15m Chart-Indikatoren RSI, SMA fast/slow, ATR, Bollinger, VWAP, Funding, Open Interest, Tags und Reliability Score.\n6. Bei <5 geschlossenen Paper-Trades pro Strategy keine Strategie\u00e4nderungen empfehlen. V74/V75 bleiben Research/Paper, nie Live-ready labeln.\n7. Verwende keine Secrets und gib keine realen Keys/Wallets aus. Keine echten Trades. Keine Config-/Code-\u00c4nderungen ohne explizite Freigabe des Users.\n8. Liefere Empfehlungen als 'Beobachtung' und 'Vorschlag', mit klarer Confidence.\n\nFormat:\n- Status: l\u00e4uft/nicht l\u00e4uft/teilweise\n- Seit / Prozess / Runtime\n- Focused Paper Trades: entries/exits/open/PnL, Top/Worst Strategy\n- Market Context: wichtigste Tags/Indikatoren\n- Signal Correlation: wichtigste Tags/Stats oder 'noch nicht aussagekr\u00e4ftig'\n- Auff\u00e4lligkeiten\n- Strategie-Learning\n- N\u00e4chste Aktion\n\nWenn keine neuen Trades oder Auff\u00e4lligkeiten seit dem letzten Zustand erkennbar sind, antworte sehr kurz.",
      "skills": [],
      "skill": null,
      "model": "gpt-5.5",
      "provider": "openai-codex",
      "base_url": null,
      "script": null,
      "no_agent": false,
      "context_from": null,
      "schedule": {
        "kind": "interval",
        "minutes": 120,
        "display": "every 120m"
      },
      "schedule_display": "every 120m",
      "repeat": {
        "times": null,
        "completed": 123
      },
      "enabled": false,
      "state": "paused",
      "paused_at": "2026-06-08T07:56:01.617957+02:00",
      "paused_reason": null,
      "created_at": "2026-05-28T22:37:06.912771+02:00",
      "next_run_at": "2026-06-08T09:52:49.852401+02:00",
      "last_run_at": "2026-06-08T07:52:49.852401+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "-1003907117629",
        "chat_name": "JARVIS Command Center",
        "thread_id": "6579"
      },
      "enabled_toolsets": [
        "terminal",
        "file",
        "web"
      ],
      "workdir": null,
      "profile": null
    },
    {
      "id": "3ea912ba9bfd",
      "name": "CryptoTradingBot Market Context Collector",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": "crypto_market_context_collect.sh",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "interval",
        "minutes": 30,
        "display": "every 30m"
      },
      "schedule_display": "every 30m",
      "repeat": {
        "times": null,
        "completed": 960
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-05-28T22:49:15.788838+02:00",
      "next_run_at": "2026-06-20T18:53:17.375840+02:00",
      "last_run_at": "2026-06-18T13:24:24.643125+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "local",
      "origin": {
        "platform": "telegram",
        "chat_id": "-1003907117629",
        "chat_name": "JARVIS Command Center",
        "thread_id": "6579"
      },
      "enabled_toolsets": null,
      "workdir": null,
      "profile": null
    },
    {
      "id": "f2537f18761f",
      "name": "CryptoTradingBot Hyperliquid Tagesbericht 19:00",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": "ctb_hl_daily_report.py",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "0 19 * * *",
        "display": "0 19 * * *"
      },
      "schedule_display": "0 19 * * *",
      "repeat": {
        "times": null,
        "completed": 10
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-06-08T11:27:28.261957+02:00",
      "next_run_at": "2026-06-20T19:00:00+02:00",
      "last_run_at": "2026-06-17T19:00:17.828646+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "-1003907117629",
        "chat_name": "JARVIS Command Center",
        "thread_id": "6579"
      },
      "enabled_toolsets": null,
      "workdir": null,
      "profile": null
    },
    {
      "id": "635d292bdaaf",
      "name": "CryptoTradingBot Critical Reconcile Watchdog",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": "ctb_hl_reconcile_watchdog.py",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "interval",
        "minutes": 15,
        "display": "every 15m"
      },
      "schedule_display": "every 15m",
      "repeat": {
        "times": null,
        "completed": 906
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-06-08T11:27:31.613566+02:00",
      "next_run_at": "2026-06-20T18:53:21.836497+02:00",
      "last_run_at": "2026-06-20T18:38:21.836497+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "-1003907117629",
        "chat_name": "JARVIS Command Center",
        "thread_id": "6579"
      },
      "enabled_toolsets": null,
      "workdir": null,
      "profile": null
    },
    {
      "id": "c2b0fe6d299d",
      "name": "CryptoTradingBot v76 Paper Supervisor",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": "ctb_v76_paper_supervisor.py",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "interval",
        "minutes": 30,
        "display": "every 30m"
      },
      "schedule_display": "every 30m",
      "repeat": {
        "times": null,
        "completed": 49
      },
      "enabled": false,
      "state": "paused",
      "paused_at": "2026-06-09T13:12:07.790884+02:00",
      "paused_reason": null,
      "created_at": "2026-06-08T11:27:34.561080+02:00",
      "next_run_at": "2026-06-09T13:16:15.837659+02:00",
      "last_run_at": "2026-06-09T12:46:15.837659+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "-1003907117629",
        "chat_name": "JARVIS Command Center",
        "thread_id": "6579"
      },
      "enabled_toolsets": null,
      "workdir": null,
      "profile": null
    },
    {
      "id": "36ff60c601b0",
      "name": "CryptoTradingBot Live Kurzbericht 11:30",
      "prompt": "Script-only: send a short plain-language CryptoTradingBot live trading report. No raw JSON, no secrets.",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": "ctb_live_short_report.py",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "30 11 * * *",
        "display": "30 11 * * *"
      },
      "schedule_display": "30 11 * * *",
      "repeat": {
        "times": null,
        "completed": 9
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-06-09T13:13:09.405125+02:00",
      "next_run_at": "2026-06-21T11:30:00+02:00",
      "last_run_at": "2026-06-18T11:30:25.489192+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "-1003907117629",
        "chat_name": "JARVIS Command Center",
        "thread_id": "6579"
      },
      "enabled_toolsets": null,
      "workdir": null,
      "profile": null
    },
    {
      "id": "036da3c223e3",
      "name": "CryptoTradingBot Live Kurzbericht 18:45",
      "prompt": "Script-only: send a short plain-language CryptoTradingBot live trading report. No raw JSON, no secrets.",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": "ctb_live_short_report.py",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "45 18 * * *",
        "display": "45 18 * * *"
      },
      "schedule_display": "45 18 * * *",
      "repeat": {
        "times": null,
        "completed": 10
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-06-09T13:13:18.590430+02:00",
      "next_run_at": "2026-06-21T18:45:00+02:00",
      "last_run_at": "2026-06-20T18:45:22.837155+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "-1003907117629",
        "chat_name": "JARVIS Command Center",
        "thread_id": "6579"
      },
      "enabled_toolsets": null,
      "workdir": null,
      "profile": null
    },
    {
      "id": "62de6f789e92",
      "name": "Crypto Copy Observation 7d daily status",
      "prompt": "",
      "skills": [],
      "skill": null,
      "model": null,
      "provider": null,
      "base_url": null,
      "script": "ctb_copy_observation_status.py",
      "no_agent": true,
      "context_from": null,
      "schedule": {
        "kind": "cron",
        "expr": "0 9 * * *",
        "display": "0 9 * * *"
      },
      "schedule_display": "0 9 * * *",
      "repeat": {
        "times": 8,
        "completed": 3
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-06-15T22:52:39.948959+02:00",
      "next_run_at": "2026-06-21T09:00:00+02:00",
      "last_run_at": "2026-06-18T09:00:19.843768+02:00",
      "last_status": "ok",
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "-1003907117629",
        "chat_name": "JARVIS Command Center",
        "thread_id": "6579"
      },
      "enabled_toolsets": null,
      "workdir": null
    },
    {
      "id": "dd91ce3850b1",
      "name": "Crypto Copy Observation 7d final evaluation",
      "prompt": "Erstelle die finale, kurze deutschsprachige Auswertung der CryptoTradingBot Copy Observation 7d. Nutze ausschlie\u00dflich Runtime-Dateien unter /home/agent/.local/state/CryptoTradingBot/copy_research, insbesondere den neuesten *_7d_status.json und *_7d_summary.md unter reports/observation_runs sowie daily/shadow reports seit 2026-06-15. Berichte knapp: completed/aborted/running, Zyklen, Wallets/Snapshots, Shadow-Decisions allowed/blocked/ignored, wichtigste Block-/Ignore-Gr\u00fcnde, Datenqualit\u00e4t/API-Probleme, Safety-Best\u00e4tigung. Gib eine klare Empfehlung: keine Live-Copy au\u00dfer wenn Daten wirklich ausreichend und positiv sind; bei Samples knapp/negativ weiter read-only oder Watchlist anpassen. Keine Raw-JSON-Dumps, keine Secrets, keine Wallet-Execution. Wenn der Run noch nicht completed ist, sage das direkt und nenne den Status.",
      "skills": [
        "algorithmic-trading-bot-safety"
      ],
      "skill": "algorithmic-trading-bot-safety",
      "model": null,
      "provider": null,
      "base_url": null,
      "script": null,
      "no_agent": false,
      "context_from": null,
      "schedule": {
        "kind": "once",
        "run_at": "2026-06-22T23:10:00+02:00",
        "display": "once at 2026-06-22 23:10"
      },
      "schedule_display": "once at 2026-06-22 23:10",
      "repeat": {
        "times": 1,
        "completed": 0
      },
      "enabled": true,
      "state": "scheduled",
      "paused_at": null,
      "paused_reason": null,
      "created_at": "2026-06-15T22:52:40.964466+02:00",
      "next_run_at": "2026-06-22T23:10:00+02:00",
      "last_run_at": null,
      "last_status": null,
      "last_error": null,
      "last_delivery_error": null,
      "deliver": "origin",
      "origin": {
        "platform": "telegram",
        "chat_id": "-1003907117629",
        "chat_name": "JARVIS Command Center",
        "thread_id": "6579"
      },
      "enabled_toolsets": [
        "file",
        "terminal"
      ],
      "workdir": null
    }
  ],
  "updated_at": "2026-06-20T18:45:22.837460+02:00"
}