{
  "jobs": [
    {
      "id": "86e69460-df70-496b-83a7-11248c52d15a",
      "name": "autonomous-work",
      "enabled": true,
      "createdAtMs": 1772041568442,
      "updatedAtMs": 1773429082791,
      "schedule": {
        "kind": "cron",
        "expr": "0 */4 * * *",
        "staggerMs": 300000
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Read ~/.openclaw/workspace/memory/todo.md and today's daily notes. Pick the highest-value task you can complete independently. Do the work \u2014 write code, run backtests, build features. Commit results to git. Log what you did in today's memory/YYYY-MM-DD.md. Rules: no external actions, no spending money, code and research only, one task at a time."
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "telegram:5359211950"
      },
      "state": {
        "nextRunAtMs": 1773442945522,
        "lastRunAtMs": 1773428545535,
        "lastStatus": "ok",
        "lastDurationMs": 537256,
        "consecutiveErrors": 0,
        "lastRunStatus": "ok",
        "lastDeliveryStatus": "delivered",
        "lastDelivered": true,
        "runningAtMs": 1773443102088
      }
    },
    {
      "id": "84b3e741-21bc-4c7f-86a7-19eaed3e82a4",
      "name": "options-scanner-pm",
      "enabled": true,
      "createdAtMs": 1771911637821,
      "updatedAtMs": 1773357488562,
      "schedule": {
        "kind": "cron",
        "expr": "15 16 * * 1-5",
        "tz": "America/Los_Angeles"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run the end-of-day options scanner: cd ~/.openclaw/workspace && python3 scripts/options_scanner_v2.py 2>&1. After it completes, read memory/options-scan.json and provide a formatted summary of the top picks for tomorrow. Focus on: highest IV stocks, best premium selling setups, stocks with earnings this week, and unusual options volume. Include dashboard link: http://192.168.1.28:8888/options_scanner.html. Do NOT use the message tool to send \u2014 just output your summary as your reply.",
        "timeoutSeconds": 600
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "5359211950"
      },
      "state": {
        "nextRunAtMs": 1773443700000,
        "lastRunAtMs": 1773357300016,
        "lastStatus": "ok",
        "lastDurationMs": 188546,
        "consecutiveErrors": 0,
        "lastRunStatus": "ok",
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered"
      }
    },
    {
      "id": "0d3eb9ac-35ac-410b-8b56-a87d837477aa",
      "name": "trade-ideas-pm",
      "enabled": true,
      "createdAtMs": 1772100211179,
      "updatedAtMs": 1773358288860,
      "schedule": {
        "kind": "cron",
        "expr": "30 16 * * 1-5",
        "tz": "America/Los_Angeles",
        "staggerMs": 0
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run the trade idea generator: cd ~/.openclaw/workspace && python3 scripts/options_trade_ideas.py 2>&1. This runs after the PM options scanner. No need to message anyone \u2014 just run it and confirm output was written to memory/trade-ideas.json."
      },
      "delivery": {
        "mode": "announce",
        "channel": "last"
      },
      "state": {
        "nextRunAtMs": 1773444600000,
        "lastRunAtMs": 1773358200014,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 88846,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "05e6b57b-e3fd-4237-825a-5a1c6a005373",
      "name": "research-indicator-eod",
      "enabled": true,
      "createdAtMs": 1772175525764,
      "updatedAtMs": 1773359563249,
      "schedule": {
        "kind": "cron",
        "expr": "50 16 * * 1-5",
        "tz": "America/Los_Angeles",
        "staggerMs": 0
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run the EOD research indicator scan: cd ~/.openclaw/workspace && python3 scripts/research_paper_scanner.py 2>&1. Summarize any new papers found and their relevance scores. Do NOT use the message tool \u2014 just output your summary as your reply.",
        "timeoutSeconds": 600
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "5359211950"
      },
      "state": {
        "nextRunAtMs": 1773445800000,
        "lastRunAtMs": 1773359400016,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 163233,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "7af54b8c-ea02-48da-97a8-ec9dd526dcb3",
      "name": "hiro-nightly",
      "enabled": true,
      "createdAtMs": 1773111515051,
      "updatedAtMs": 1773443305772,
      "schedule": {
        "kind": "cron",
        "expr": "0 17 * * 1-5",
        "tz": "America/Los_Angeles",
        "staggerMs": 0
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run: python3 scripts/hiro_nightly_pull.py \u2014 Pull today's SpotGamma HIRO data. Report the summary (S&P 500 + S&P Equities, all/nextExp/retail delta totals, direction). If 401 error, tell Daniel the SpotGamma JWT expired.",
        "timeoutSeconds": 300
      },
      "delivery": {
        "mode": "announce",
        "channel": "last",
        "to": "5359211950"
      },
      "state": {
        "nextRunAtMs": 1773446400000,
        "lastRunAtMs": 1773360000012,
        "lastRunStatus": "error",
        "lastStatus": "error",
        "lastDurationMs": 120003,
        "lastDeliveryStatus": "unknown",
        "consecutiveErrors": 2,
        "lastError": "cron: job execution timed out"
      }
    },
    {
      "id": "02f98138-bad9-4dac-a1b1-5462161234d6",
      "name": "adaptive-weights",
      "enabled": true,
      "createdAtMs": 1772337902269,
      "updatedAtMs": 1773360709521,
      "schedule": {
        "kind": "cron",
        "expr": "10 17 * * 1-5",
        "tz": "America/Los_Angeles"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run adaptive weight engine: cd ~/.openclaw/workspace && python3 scripts/adaptive_weights.py. Log output to today's memory file."
      },
      "delivery": {
        "mode": "announce",
        "channel": "last"
      },
      "state": {
        "nextRunAtMs": 1773447000000,
        "lastRunAtMs": 1773360600013,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 109508,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "6a194fed-622d-42df-9a64-7dbd49419c94",
      "name": "research-scan",
      "description": "Scan for quant/trading research papers and extract indicator ideas",
      "enabled": true,
      "createdAtMs": 1771747867013,
      "updatedAtMs": 1773392541525,
      "schedule": {
        "kind": "cron",
        "expr": "0 2 * * *",
        "tz": "America/Los_Angeles"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "You are a quantitative research analyst. Your job is to find actionable trading edges for an ES futures day trader.\n\nScan these sources for new papers published in the last 7 days:\n- arXiv quantitative finance (q-fin): https://arxiv.org/list/q-fin/recent\n- arXiv statistical finance: https://arxiv.org/list/stat.AP/recent (finance-related)\n- SSRN finance: https://papers.ssrn.com/sol3/JELJOUR_Results.cfm?form_name=journalBrowse&journal_id=3526757\n\nUse web_fetch to pull paper listings and abstracts. Look for papers related to: market microstructure, order flow, volatility modeling, regime detection, momentum, mean reversion, options pricing anomalies, intraday patterns, ML applied to trading signals.\n\nFor each interesting paper (up to 3-5):\n1) Title and link\n2) One-paragraph summary\n3) TRADEABLE IDEA \u2014 how this becomes an indicator/signal\n4) Difficulty (easy/medium/hard)\n\nSave findings to ~/.openclaw/workspace/memory/research-papers.md (append, with date header). Format for Telegram (no markdown tables). Do NOT use the message tool \u2014 just output your summary as your reply.",
        "timeoutSeconds": 300
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "5359211950"
      },
      "state": {
        "nextRunAtMs": 1773478800000,
        "lastRunAtMs": 1773392400014,
        "lastStatus": "ok",
        "lastDurationMs": 141511,
        "consecutiveErrors": 0,
        "lastRunStatus": "ok",
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered"
      }
    },
    {
      "id": "40ea6512-2b3e-4edd-ab6c-3cbe5ac7e3aa",
      "name": "la-rain-check",
      "enabled": true,
      "createdAtMs": 1772086763326,
      "updatedAtMs": 1773396015329,
      "schedule": {
        "kind": "cron",
        "expr": "0 3 * * *",
        "tz": "America/Los_Angeles"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run: bash scripts/rain_check.sh \u2014 if it outputs rain info, send that to me on Telegram. If no output, reply NO_REPLY.",
        "timeoutSeconds": 60
      },
      "delivery": {
        "mode": "announce",
        "channel": "last"
      },
      "state": {
        "nextRunAtMs": 1773482400000,
        "lastRunAtMs": 1773396000018,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 15311,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0,
        "lastDelivered": true
      }
    },
    {
      "id": "3b1b210b-b6b4-4e5b-986c-ac8fff7f4108",
      "name": "weekly-review",
      "enabled": true,
      "createdAtMs": 1772374248990,
      "updatedAtMs": 1772978431823,
      "schedule": {
        "kind": "cron",
        "expr": "0 7 * * 0"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run: python3 scripts/weekly_trading_review.py. Summarize the output and deliver to Daniel. Log to memory/YYYY-MM-DD.md."
      },
      "delivery": {
        "mode": "announce",
        "channel": "last"
      },
      "state": {
        "nextRunAtMs": 1773583200000,
        "lastRunAtMs": 1772978400012,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 31811,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "7baad9c2-e697-44f6-bbbf-05c443f52b88",
      "name": "openclaw-auto-update",
      "enabled": true,
      "createdAtMs": 1772176826570,
      "updatedAtMs": 1773396053611,
      "schedule": {
        "kind": "cron",
        "expr": "0 3 */3 * *",
        "tz": "America/Los_Angeles"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run: npm update -g openclaw 2>&1. If the output shows openclaw was updated to a new version, message Daniel on Telegram with the new version number. If no update, reply HEARTBEAT_OK.",
        "timeoutSeconds": 120
      },
      "delivery": {
        "mode": "announce",
        "channel": "last"
      },
      "state": {
        "nextRunAtMs": 1773655200000,
        "lastRunAtMs": 1773396015329,
        "lastRunStatus": "error",
        "lastStatus": "error",
        "lastDurationMs": 38282,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 4,
        "lastError": "\u26a0\ufe0f \u2709\ufe0f Message failed"
      }
    },
    {
      "id": "6adc489a-f8e9-410f-92c4-06652e8921a3",
      "name": "research-indicator-scan",
      "enabled": true,
      "createdAtMs": 1772175517952,
      "updatedAtMs": 1773403495445,
      "schedule": {
        "kind": "cron",
        "expr": "0 5 * * 1-5",
        "tz": "America/Los_Angeles",
        "staggerMs": 0
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run the research indicator project: cd ~/.openclaw/workspace && python3 ResearchIndicatorProject/scripts/research_indicator.py 2>&1. After it completes, read ResearchIndicatorProject/Research\\ Papers.csv and summarize any NEW papers discovered or downloaded since yesterday. If any papers were summarized or have new findings, include the key takeaways relevant to ES/SPX trading. Keep it brief \u2014 just the highlights. If nothing new, say so.",
        "timeoutSeconds": 600
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "5359211950"
      },
      "state": {
        "nextRunAtMs": 1773662400000,
        "lastRunAtMs": 1773403200013,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 295432,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0,
        "lastDelivered": true
      }
    },
    {
      "id": "23699711-a6e4-499e-843a-40a20b5f174f",
      "agentId": "main",
      "sessionKey": "agent:main:cron:86e69460-df70-496b-83a7-11248c52d15a",
      "name": "finra-regsho-daily",
      "enabled": true,
      "createdAtMs": 1773414222803,
      "updatedAtMs": 1773414222803,
      "schedule": {
        "kind": "cron",
        "expr": "20 5 * * 1-5",
        "tz": "America/Los_Angeles"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run: cd /Users/daniel/.openclaw/workspace && python3 scripts/finra_regsho_daily.py 2>&1. Report any alerts (tickers with z-score > 1.5). If no alerts, reply with done.",
        "timeoutSeconds": 120
      },
      "delivery": {
        "mode": "none"
      },
      "state": {
        "nextRunAtMs": 1773663600000
      }
    },
    {
      "id": "9193d900-bae6-4497-ab4e-3023f041429b",
      "name": "daily-data-refresh",
      "enabled": true,
      "createdAtMs": 1772773587964,
      "updatedAtMs": 1773405026166,
      "schedule": {
        "kind": "cron",
        "expr": "30 5 * * 1-5",
        "tz": "America/Los_Angeles",
        "staggerMs": 0
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run: cd /Users/daniel/.openclaw/workspace && python3 scripts/refresh_daily_data.py && python3 scripts/vix_term_structure_signal.py && python3 scripts/signal_aggregator.py. Report any errors."
      },
      "delivery": {
        "mode": "announce",
        "channel": "last"
      },
      "state": {
        "nextRunAtMs": 1773664200000,
        "lastRunAtMs": 1773405000013,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 26153,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0,
        "lastDelivered": true
      }
    },
    {
      "id": "4294338f-49a3-4eff-a35d-16d96735e981",
      "name": "spotgamma-scrape",
      "enabled": true,
      "createdAtMs": 1771876785480,
      "updatedAtMs": 1773405988700,
      "schedule": {
        "kind": "cron",
        "expr": "45 5 * * 1-5",
        "tz": "America/Los_Angeles"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "SPOTGAMMA SCRAPE: Open SpotGamma dashboard via browser (profile=openclaw, already logged in). Navigate to Market Overview, scrape Index Levels table for SPX (Call Wall, Put Wall, Vol Trigger, Zero Gamma, Large Gamma, Combos). Then navigate to Founder's Notes page and get today's note text. Also get the SG metrics table (gamma index, implied moves, vol trigger, etc) and the historical gamma JSON. Save all data to memory/spotgamma-data.json in the same format as the existing file. This data will be used by the morning brief at 6 AM.",
        "timeoutSeconds": 300
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "5359211950"
      },
      "state": {
        "nextRunAtMs": 1773665100000,
        "lastRunAtMs": 1773405900013,
        "lastStatus": "ok",
        "lastDurationMs": 88687,
        "consecutiveErrors": 0,
        "lastRunStatus": "ok",
        "lastDeliveryStatus": "delivered",
        "lastDelivered": true
      }
    },
    {
      "id": "26a0ef67-81c2-4c59-8177-b356a08dcd7d",
      "name": "signal-extreme-alert",
      "enabled": true,
      "createdAtMs": 1772258695309,
      "updatedAtMs": 1773432016879,
      "schedule": {
        "kind": "cron",
        "expr": "0 6-13 * * 1-5",
        "staggerMs": 0
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run python3 scripts/signal_extreme_alert.py. If memory/signal-alert-pending.txt exists, read it and send the content to Daniel via Telegram, then delete the file. Otherwise reply HEARTBEAT_OK."
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram"
      },
      "state": {
        "nextRunAtMs": 1773666000000,
        "lastRunAtMs": 1773432000019,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 16860,
        "lastDeliveryStatus": "not-delivered",
        "consecutiveErrors": 0,
        "lastDelivered": false
      }
    },
    {
      "id": "dcad5212-2ac8-4547-b9f9-781ddcacdb85",
      "name": "morning-brief",
      "description": "Pre-market morning brief for ES trading",
      "enabled": true,
      "createdAtMs": 1771746878456,
      "updatedAtMs": 1773407232500,
      "schedule": {
        "kind": "cron",
        "expr": "0 6 * * 1-5",
        "tz": "America/Los_Angeles"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Deliver a pre-market morning brief . Use web_fetch, Finviz (finvizfinance python library), Yahoo Finance API, and Databento (API key in ~/.openclaw/workspace/.env) to gather real data.\n\nInclude:\n\n1) MACRO REGIME FRAMING \u2014 Set the tone for the day:\n   a) Fed Policy Regime: current state (rates, QT status, next FOMC date + days until). Reference memory/backtest-fed-policy.md for historical analog stats.\n   b) VIX Term Structure: pull VIX and VIX9D from Yahoo Finance, compute VIX9D/VIX ratio. Reference memory/backtest-discoveries.md for what ratio means:\n      - Below 0.90 = calm, fade setups ~80% WR, go aggressive\n      - 0.90-0.95 = good, ~77% WR\n      - 0.95-1.00 = danger zone, reduce size\n      - Above 1.00 = stress, only 2-day reversals work\n   c) VVIX check: pull VVIX from Yahoo. If >130 (90th pctl), flag \"VVIX ELEVATED \u2014 vol traders expect big move, contrarian buy signal, next day ES avg +0.28%\". Median ~97, range 73-173.\n   d) Bottom line: one sentence like \"Macro: QT pause + calm VIX (ratio 0.87) = favor fading dips, be aggressive on mean reversion\"\n\n2) BTC WEEKEND SIGNAL (Monday briefs only) \u2014 Pull BTC-USD from Yahoo Finance. Calculate weekend return (Friday close \u2192 current). Reference memory/backtest-discoveries.md Section 8:\n   - BTC up >2% over weekend \u2192 \"BTC WEEKEND BULLISH \u2014 76% WR Monday ES positive, avg +1.12%. Lean long.\"\n   - BTC down >2% over weekend \u2192 \"BTC WEEKEND BEARISH \u2014 Monday ES avg -0.78%. Defensive posture, do not buy the open.\"\n   - BTC flat (<2% either way) \u2192 \"BTC weekend neutral, no signal.\"\n\n3) OVERNIGHT ES ACTION \u2014 Globex high/low/range, Asia & Europe index moves. Use Databento GLBX.MDP3 for ES data.\n\n4) ECONOMIC CALENDAR \u2014 Key releases today with times (EST). Check forexfactory or similar.\n\n5) MAJOR EARNINGS \u2014 Companies reporting today (pre-market and after-hours).\n\n6) KEY NEWS \u2014 Anything that could move ES.\n\n7) ES KEY LEVELS \u2014 Prior day high/low/close, significant support/resistance.\n\n8) SPOTGAMMA LEVELS \u2014 Log into SpotGamma (credentials in ~/.openclaw/workspace/.env) via browser automation (profile=openclaw) at dashboard.spotgamma.com/login. Scrape the Index Levels table from the Market Overview page for SPX/ES levels (Call Wall, Put Wall, Vol Trigger, Zero Gamma, etc).\n\n9) GAMMA DASHBOARD \u2014 Run the GEX calculator script at ~/.openclaw/workspace/scripts/gex_calculator.py on these tickers with approximate spot prices (get current prices from Yahoo Finance first):\n   Core: SPX, TSLA, NVDA, AAPL, AMZN, META, AMD, GOOGL, MSFT, COIN\n   Volatile: CRWD, PLTR, NET, MSTR, SMCI, SNOW, SOFI, MARA\n   Show positive/negative gamma regime, call walls, put walls, and gamma flip levels for each.\n\n10) STOCK SCANNER \u2014 Use Finviz: gaps up >3%, new 52-week highs (mid+ cap), top gainers with volume. Use Yahoo Finance API for top gainers/most active.\n\n11) OPTIONS FLOW \u2014 Use Databento OPRA.PILLAR to pull highest volume options from previous session for top 15 liquid names.\n\n12) SIGNALS & ALERTS \u2014 Check ALL conditions from memory/backtest-discoveries.md:\n\n   Gap signals (check ES overnight/pre-market vs prior close):\n   - Gap down >0.3% AND VIX9D/VIX < 0.95? \u2192 \"FADE GAP DOWN \u2014 64-75% WR in calm regime\"\n   - Gap down >0.3% AND VIX9D/VIX > 1.0? \u2192 \"DO NOT FADE \u2014 stress regime, gaps keep going\"\n   - Gap up >0.3% AND VIX9D/VIX < 0.95? \u2192 \"RIDE GAP UP \u2014 69% WR, trend continues\"\n\n   Multi-day signals (check prior ES daily closes):\n   - 2 consecutive down closes? \u2192 \"2-DAY REVERSAL SETUP \u2014 56% WR, Sharpe 2.48, buy the bounce\"\n   \n   Intermarket divergences (pull prior day closes for ES, Russell/RTY, VIX, Gold/GC, DXY, ZN, NVDA from Yahoo Finance):\n   - ES down >0.5% but Russell UP yesterday? \u2192 \"BULLISH DIVERGENCE \u2014 Russell held up, 75% WR next day bounce\"\n   - ES down >0.5% but NVDA UP yesterday? \u2192 \"NVDA DIVERGENCE \u2014 growth bellwether held up, 60% WR ES bounces\"\n   - ES down >1% but Gold UP yesterday? \u2192 \"GOLD DIVERGENCE \u2014 flight to safety not panic, 57% WR ES recovers\"\n   - ES AND VIX both DOWN yesterday? \u2192 \"VIX DIVERGENCE \u2014 mechanical selling not real fear, ES +0.37% avg next day\"\n   - ES up >1% but bonds (ZN) DOWN yesterday? \u2192 \"BOND WARNING \u2014 rates concern, ES may pull back\"\n\n   FOMC proximity:\n   - Within 5 days of FOMC? \u2192 \"FOMC DRIFT ZONE \u2014 pre-FOMC drift +0.23% avg, favor longs\"\n   - FOMC day today? \u2192 \"FOMC DAY \u2014 current regime shows 20% up days, consider fading rally into announcement\"\n\n13) TOP TRADE IDEAS \u2014 Read memory/trade-ideas.json (generated by options_trade_ideas.py). Show top 3 ideas by score with:\n   - Strategy type, ticker, score\n   - Key metric (IV vs HV spread, IV percentile, etc)\n   - One-line setup description\n   If the file doesn'''t exist or is stale (>24h), skip this section.\n\nKeep it concise and actionable. Format for Telegram (no markdown tables, use bullet lists).\n\nDo NOT use the message tool to send \u2014 just output your summary as your reply.\n\n14) \ud83c\udfaf BAYESIAN EOD PROBABILITY FORECAST \u2014 Compute P(ES closes positive) using the calibrated Bayesian model.\n\nLoad model params from ~/.openclaw/workspace/data/bayesian_model_params.json. The model combines pre-market signals via log-odds:\n\nSteps:\na) Get base_rate from params (0.5159)\nb) Determine today's signal values:\n   - gap_direction: compute gap% from ES prior close vs current pre-market price (from Yahoo Finance or trading-data.json). >0.05% = gap_up, <-0.05% = gap_down, else flat\n   - dow: day of week name (Monday, Tuesday, etc)\n   - vix_ratio: VIX1D/VIX (or VIX9D/VIX if VIX1D unavailable). Bucket: <0.85=\"low<0.85\", 0.85-0.95=\"mid_0.85-0.95\", 0.95-1.0=\"high_0.95-1.0\", >1.0=\"very_high>1.0\"\n   - vix_level: VIX bucket: <15, 15-20, 20-25, >25\n   - prior_return: prior day's ES close-to-close return. big_down(<-1%), small_down(-1 to -0.3%), flat(-0.3 to 0.3%), small_up(0.3 to 1%), big_up(>1%)\n   - gap_size: tiny(<0.1%), small(0.1-0.3%), medium(0.3-0.5%), large(0.5-1%), huge(>1%)\n\nc) For each signal, look up win_rate from signal_winrates in params. Apply shrinkage: wr_shrunk = base_rate + (n/(n+30)) * (wr - base_rate). Compute log-odds shift = log(wr_shrunk/(1-wr_shrunk)) - log(base_rate/(1-base_rate)).\n   IMPORTANT: For weak signals (dow, prior_return, cum_5d), multiply the shift by 0.3 (calibration fix).\n\nd) Sum all shifts, add to base log-odds, convert back to probability.\n\ne) Apply Platt scaling: scaled_logodds = a * raw_logodds + b (a=0.726914, b=-0.011786)\n\nf) Apply regime check \u2014 if VIX > 25 OR VIX1D/VIX > 0.95: subtract 0.08 from probability (stress regime adjustment)\n\ng) Apply zone haircut \u2014 if probability is in [0.63, 0.72]: subtract 0.08 (overconfidence zone fix)\n\nh) Also compute gap fill probability from gap_fill_rates in params, and expected range from expected_ranges using current VIX bucket.\n\nFormat output:\n\ud83c\udfaf EOD Probability Forecast:\nP(closes positive): XX% \u2014 [ZONE] CONFIDENCE\n  [Signal]: [bucket] ([WR]% WR) [\u2705 if above base / \u274c if below]\n  ... (list each contributing signal)\n\nConditional:\n  Gap fills: XX% | Expected range: \u00b1XXpts\n  Confidence zone: [LOW/MODERATE/HIGH]\n\nZone labels:\n- <55% = LOW (weak edge)\n- 55-65% = MODERATE\n- >65% = HIGH (best calibrated zone)\n- If in 63-72% pre-haircut: note \"\u26a0\ufe0f Overconfidence zone \u2014 haircut applied\"\n- If stress regime active: note \"\u26a0\ufe0f Stress regime \u2014 probability reduced\"",
        "timeoutSeconds": 600
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "5359211950"
      },
      "state": {
        "nextRunAtMs": 1773666000000,
        "lastRunAtMs": 1773406800016,
        "lastStatus": "ok",
        "lastDurationMs": 432484,
        "consecutiveErrors": 0,
        "lastRunStatus": "ok",
        "lastDeliveryStatus": "delivered",
        "lastDelivered": true
      }
    },
    {
      "id": "8283f4ac-8992-49db-9691-12ca71edda53",
      "name": "gex-service-start",
      "description": "Start live GEX streaming service before market open",
      "enabled": true,
      "createdAtMs": 1771750225247,
      "updatedAtMs": 1773407708513,
      "schedule": {
        "kind": "cron",
        "expr": "15 6 * * 1-5",
        "tz": "America/Los_Angeles"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run this shell command to start the live GEX service: exec command 'bash ~/.openclaw/workspace/scripts/start_live_gex.sh'. Then reply with the output.",
        "timeoutSeconds": 30
      },
      "delivery": {
        "mode": "none",
        "channel": "last"
      },
      "state": {
        "nextRunAtMs": 1773666900000,
        "lastRunAtMs": 1773407700011,
        "lastStatus": "ok",
        "lastDurationMs": 8502,
        "consecutiveErrors": 0,
        "lastRunStatus": "ok",
        "lastDeliveryStatus": "not-delivered",
        "lastDelivered": false
      }
    },
    {
      "id": "d691b7bb-39f4-40fb-95c9-79cef912c4ae",
      "name": "gex-pattern-detect",
      "enabled": true,
      "createdAtMs": 1772208450383,
      "updatedAtMs": 1773429612565,
      "schedule": {
        "kind": "cron",
        "expr": "20 6,8,10,12 * * 1-5",
        "tz": "America/Los_Angeles"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run: cd /Users/daniel/.openclaw/workspace && python3 scripts/gex_pattern_tracker.py alert \u2014 If HIGH confidence pinning or negative gamma patterns fire, send the alert to Daniel. Otherwise reply with done."
      },
      "delivery": {
        "mode": "announce",
        "channel": "last"
      },
      "state": {
        "nextRunAtMs": 1773667200000,
        "lastRunAtMs": 1773429600013,
        "lastRunStatus": "error",
        "lastStatus": "error",
        "lastDurationMs": 12552,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 4,
        "lastError": "\u26a0\ufe0f \u2709\ufe0f Message failed"
      }
    },
    {
      "id": "37088332-48ee-4ca4-9276-14688c07044c",
      "name": "forward-test-snapshot",
      "enabled": true,
      "createdAtMs": 1772474972101,
      "updatedAtMs": 1773409236582,
      "schedule": {
        "kind": "cron",
        "expr": "30 6 * * 1-5",
        "tz": "America/Los_Angeles",
        "staggerMs": 0
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run: cd ~/.openclaw/workspace && python3 scripts/forward_test_logger.py --snapshot 2>&1. Report the output briefly."
      },
      "delivery": {
        "mode": "announce",
        "channel": "last"
      },
      "state": {
        "nextRunAtMs": 1773667800000,
        "lastRunAtMs": 1773409200023,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 36559,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "38ad2e82-bc1a-4ce2-adf5-2ba7a4954197",
      "agentId": "main",
      "sessionKey": "agent:main:cron:86e69460-df70-496b-83a7-11248c52d15a",
      "name": "gap-day-analysis",
      "enabled": true,
      "createdAtMs": 1773155525256,
      "updatedAtMs": 1773413106341,
      "schedule": {
        "kind": "cron",
        "expr": "30,45 6,7 * * 1-5",
        "tz": "America/Los_Angeles"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run the gap day analysis service: `python3 scripts/gap_day_service.py`. Check the output JSON and log any notable gap-day activation to today's daily notes. Do NOT send alerts \u2014 just update the data file.",
        "timeoutSeconds": 120
      },
      "delivery": {
        "mode": "none"
      },
      "state": {
        "nextRunAtMs": 1773667800000,
        "lastRunAtMs": 1773413100009,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 6332,
        "lastDelivered": false,
        "lastDeliveryStatus": "not-delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "a3a0ca10-9914-4ae5-93f5-773c93ede9d9",
      "name": "options-scanner-premarket",
      "enabled": true,
      "createdAtMs": 1772081369784,
      "updatedAtMs": 1773409200022,
      "schedule": {
        "kind": "cron",
        "expr": "30 6 * * 1-5"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run the premarket options scanner: cd ~/.openclaw/workspace && python3 scripts/options_scanner_v2.py --premarket 2>&1. After it completes, read memory/options-scan.json and provide a formatted summary of the top picks. Include dashboard link: https://quantyquant.com/options_scanner.html. Do NOT use the message tool to send \u2014 just output your summary as your reply.",
        "timeoutSeconds": 600
      },
      "delivery": {
        "mode": "announce",
        "channel": "last"
      },
      "state": {
        "nextRunAtMs": 1773667800000,
        "lastRunAtMs": 1773408600016,
        "lastRunStatus": "error",
        "lastStatus": "error",
        "lastDurationMs": 600006,
        "lastDeliveryStatus": "unknown",
        "consecutiveErrors": 1,
        "lastError": "cron: job execution timed out",
        "lastErrorReason": "timeout"
      }
    },
    {
      "id": "70191e8b-fab9-4730-99ac-af7049df9078",
      "name": "options-scanner-am",
      "enabled": true,
      "createdAtMs": 1771911632006,
      "updatedAtMs": 1773410100020,
      "schedule": {
        "kind": "cron",
        "expr": "45 6 * * 1-5"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run the options scanner: cd ~/.openclaw/workspace && python3 scripts/options_scanner_v2.py 2>&1. After it completes, read memory/options-scan.json and provide a formatted summary of the top picks. Include dashboard link: http://192.168.1.28:8888/options_scanner.html. Do NOT use the message tool to send \u2014 just output your summary as your reply.",
        "timeoutSeconds": 600
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "5359211950"
      },
      "state": {
        "nextRunAtMs": 1773668700000,
        "lastRunAtMs": 1773409500005,
        "lastStatus": "error",
        "lastDurationMs": 600015,
        "consecutiveErrors": 1,
        "lastRunStatus": "error",
        "lastDeliveryStatus": "unknown",
        "lastError": "cron: job execution timed out",
        "lastErrorReason": "timeout"
      }
    },
    {
      "id": "3735b7ce-4e5e-49df-ae6b-68ba8d075011",
      "name": "trade-ideas-am",
      "enabled": true,
      "createdAtMs": 1772100207292,
      "updatedAtMs": 1773410159699,
      "schedule": {
        "kind": "cron",
        "expr": "50 6 * * 1-5",
        "staggerMs": 0
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run the trade idea generator: cd ~/.openclaw/workspace && python3 scripts/options_trade_ideas.py 2>&1. This runs after the AM options scanner. No need to message anyone \u2014 just run it and confirm output was written to memory/trade-ideas.json."
      },
      "delivery": {
        "mode": "announce",
        "channel": "last"
      },
      "state": {
        "nextRunAtMs": 1773669000000,
        "lastRunAtMs": 1773410146203,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 13496,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "c461c752-839a-4e9e-99f3-1e7f0ea41e08",
      "name": "morning-down-check",
      "enabled": true,
      "createdAtMs": 1773028447763,
      "updatedAtMs": 1773415692970,
      "schedule": {
        "kind": "cron",
        "expr": "28 8 * * 1-5",
        "tz": "America/Los_Angeles",
        "staggerMs": 0
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run: cd /Users/daniel/.openclaw/workspace && python3 scripts/morning_down_alert.py. Report the output.",
        "timeoutSeconds": 60
      },
      "delivery": {
        "mode": "announce",
        "channel": "last"
      },
      "state": {
        "nextRunAtMs": 1773674880000,
        "lastRunAtMs": 1773415680014,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 12956,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "ddb8697e-ecf1-41ec-8b38-1a3e55dc4380",
      "name": "mm-shift-alert-1130",
      "enabled": true,
      "createdAtMs": 1773023525665,
      "updatedAtMs": 1773416236256,
      "schedule": {
        "kind": "cron",
        "expr": "37 8 * * 1-5",
        "tz": "America/Los_Angeles",
        "staggerMs": 0
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run: cd /Users/daniel/.openclaw/workspace && python3 scripts/mm_shift_alert.py. Report the output.",
        "timeoutSeconds": 120
      },
      "delivery": {
        "mode": "announce",
        "channel": "last"
      },
      "state": {
        "nextRunAtMs": 1773675420000,
        "lastRunAtMs": 1773416220016,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 16240,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "673e2182-82bd-45ac-9c70-3e5cb3ccaa96",
      "name": "eod-recap",
      "description": "End of day market recap",
      "enabled": true,
      "createdAtMs": 1771747853418,
      "updatedAtMs": 1773443299124,
      "schedule": {
        "kind": "cron",
        "expr": "15 13 * * 1-5",
        "tz": "America/Los_Angeles"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Deliver an end-of-day market recap. Use Finviz (finvizfinance python lib), Yahoo Finance API, and Databento (API key in ~/.openclaw/workspace/.env). Include:\n\n1) ES RECAP \u2014 How ES traded today, final close, high/low/range, key levels hit. Use Databento GLBX.MDP3.\n2) MARKET INTERNALS \u2014 SPY, QQQ, IWM performance. Sector leaders/laggards.\n3) TOP MOVERS \u2014 Biggest gainers/losers of the day (Finviz + Yahoo). Notable volume spikes.\n4) OPTIONS ACTIVITY \u2014 Highest volume options today from Databento OPRA.PILLAR for top 15 liquid names.\n5) AFTER-HOURS \u2014 Any notable AH movers or earnings just reported.\n6) TOMORROW PREVIEW \u2014 Earnings and economic data on deck for tomorrow.\n\nKeep it concise and actionable. Format for Telegram (no markdown tables). Do NOT use the message tool to send \u2014 just output your summary as your reply.",
        "timeoutSeconds": 600
      },
      "delivery": {
        "mode": "announce",
        "channel": "telegram",
        "to": "5359211950"
      },
      "state": {
        "nextRunAtMs": 1773692100000,
        "lastRunAtMs": 1773432900017,
        "lastStatus": "error",
        "lastDurationMs": 180006,
        "consecutiveErrors": 10,
        "lastRunStatus": "error",
        "lastDeliveryStatus": "unknown",
        "lastError": "cron: job execution timed out",
        "lastErrorReason": "timeout"
      }
    },
    {
      "id": "f2029a34-5714-4890-af78-d1cf9a93cd0a",
      "agentId": "main",
      "sessionKey": "agent:main:cron:86e69460-df70-496b-83a7-11248c52d15a",
      "name": "amihud-eod",
      "enabled": true,
      "createdAtMs": 1773150066883,
      "updatedAtMs": 1773433211439,
      "schedule": {
        "kind": "cron",
        "expr": "20 13 * * 1-5",
        "tz": "America/Los_Angeles"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run: cd /Users/daniel/.openclaw/workspace && python3 scripts/amihud_live_calculator.py. Report the output briefly (regime, z-score, vol multiplier).",
        "timeoutSeconds": 60
      },
      "delivery": {
        "mode": "none"
      },
      "state": {
        "nextRunAtMs": 1773692400000,
        "lastRunAtMs": 1773433200016,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 11423,
        "lastDeliveryStatus": "not-delivered",
        "consecutiveErrors": 0,
        "lastDelivered": false
      }
    },
    {
      "id": "b28b33f5-f931-4b08-880f-768c4c4c63a1",
      "name": "gex-service-stop",
      "description": "Stop live GEX streaming service after market close",
      "enabled": true,
      "createdAtMs": 1771750232071,
      "updatedAtMs": 1773433506505,
      "schedule": {
        "kind": "cron",
        "expr": "25 13 * * 1-5",
        "tz": "America/Los_Angeles"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run this shell command to stop the live GEX service: exec command 'bash ~/.openclaw/workspace/scripts/stop_live_gex.sh'. Then reply with the output.",
        "timeoutSeconds": 30
      },
      "delivery": {
        "mode": "none",
        "channel": "last"
      },
      "state": {
        "nextRunAtMs": 1773692700000,
        "lastRunAtMs": 1773433500012,
        "lastStatus": "ok",
        "lastDurationMs": 6493,
        "consecutiveErrors": 0,
        "lastRunStatus": "ok",
        "lastDeliveryStatus": "not-delivered",
        "lastDelivered": false
      }
    },
    {
      "id": "15e2c36d-271f-4e03-b54d-2bd232538250",
      "name": "forward-test-settle",
      "enabled": true,
      "createdAtMs": 1772474976483,
      "updatedAtMs": 1773434109270,
      "schedule": {
        "kind": "cron",
        "expr": "35 13 * * 1-5",
        "tz": "America/Los_Angeles",
        "staggerMs": 0
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run: cd ~/.openclaw/workspace && python3 scripts/forward_test_logger.py --all 2>&1. Report the output briefly."
      },
      "delivery": {
        "mode": "announce",
        "channel": "last"
      },
      "state": {
        "nextRunAtMs": 1773693300000,
        "lastRunAtMs": 1773434100016,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 9254,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "2e5f8788-368b-4ec8-95ac-4709cff3d0bc",
      "name": "gex-pattern-validate",
      "enabled": true,
      "createdAtMs": 1772208456186,
      "updatedAtMs": 1773434723483,
      "schedule": {
        "kind": "cron",
        "expr": "45 13 * * 1-5",
        "tz": "America/Los_Angeles"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run: cd /Users/daniel/.openclaw/workspace && python3 scripts/gex_pattern_tracker.py validate && python3 scripts/gex_pattern_tracker.py stats \u2014 Log results. If materialization rate drops below 50% after 10+ predictions, flag for review."
      },
      "delivery": {
        "mode": "announce",
        "channel": "last"
      },
      "state": {
        "nextRunAtMs": 1773693900000,
        "lastRunAtMs": 1773434700014,
        "lastRunStatus": "ok",
        "lastStatus": "ok",
        "lastDurationMs": 23469,
        "lastDelivered": true,
        "lastDeliveryStatus": "delivered",
        "consecutiveErrors": 0
      }
    },
    {
      "id": "018931ef-66fd-466b-8974-8c137dd697df",
      "name": "options-scanner-close",
      "enabled": true,
      "createdAtMs": 1772081376560,
      "updatedAtMs": 1773443100028,
      "schedule": {
        "kind": "cron",
        "expr": "55 15 * * 1-5"
      },
      "sessionTarget": "isolated",
      "wakeMode": "now",
      "payload": {
        "kind": "agentTurn",
        "message": "Run the options scanner: cd ~/.openclaw/workspace && python3 scripts/options_scanner_v2.py 2>&1. After it completes, read memory/options-scan.json and provide a formatted summary of the top picks. Include dashboard link: https://quantyquant.com/options_scanner.html. Do NOT use the message tool to send \u2014 just output your summary as your reply.",
        "timeoutSeconds": 600
      },
      "delivery": {
        "mode": "announce",
        "channel": "last"
      },
      "state": {
        "nextRunAtMs": 1773701700000,
        "lastRunAtMs": 1773442500015,
        "lastRunStatus": "error",
        "lastStatus": "error",
        "lastDurationMs": 600013,
        "lastDeliveryStatus": "unknown",
        "consecutiveErrors": 1,
        "lastError": "cron: job execution timed out",
        "lastErrorReason": "timeout"
      }
    }
  ],
  "total": 31,
  "offset": 0,
  "limit": 31,
  "hasMore": false,
  "nextOffset": null
}