{"service":"CoreStepPrep Worker — Background Jobs & Admin APIs","version":"1.1.0","features":["scheduler","cron-jobs","batch-workflows","image-processing","apkg-export","apkg-import","concept-search","ai-ocr-questions","ai-analyze-performance","ai-blog-generation","ai-audio-generation","ai-seed-data-generation","ai-edit-question","admin-site-config-sync","admin-health-history","admin-sentry-summary","admin-cspce-digest","admin-run-jobs"],"endpoints":{"/healthz":"Health check","/scheduler/status":"View scheduled jobs","/scheduler/run/:jobName":"Trigger a cron job manually","/workflows/actions":"List available batch workflows","/workflows/trigger":"POST to start a workflow (async)","/workflows/run":"POST to run a workflow (sync, waits for completion)","/images/actions":"List available image processing actions","/images/stats":"GET image queue and catalog statistics","/images":"POST to run image processing action","/apkg-export":"POST to start Anki deck export (background job)","/apkg-export/:jobId":"GET export job status and download URL","/apkg-import":"POST to import Anki .apkg deck (admin, JWT auth)","/ai/ocr":"POST to OCR extract questions from images (admin, JWT auth)","/ai/analyze-performance":"POST to analyze performance data with code_interpreter (admin, JWT auth)","/ai/generate-audio":"POST to generate audio via TTS (admin, JWT auth)","/ai/generate-seed-data":"POST to generate USMLE seed questions (admin, JWT auth)","/blog/generate-from-concept":"POST to generate blog from core concept (admin, JWT auth)","/blog/generate-from-prompt":"POST to generate blog from prompt (admin, JWT auth)","/ai/edit-question":"POST to AI-edit a question (admin, JWT auth)","/concept-search":"GET conceptual search results for authenticated users","/admin/mail/ingest":"POST sync an inbound message into local Fly mailboxes (shared-key auth)","/admin/site-config/sync":"POST sync site_config from Supabase to Cloudflare KV via site cron endpoint (admin, JWT auth)","/admin/health-history":"GET recent health_check_log timeline entries (admin, JWT auth)","/admin/sentry-summary":"GET unresolved Sentry issue summary (admin, JWT auth)","/admin/cspce-digest/send-now":"POST queue CSPCE digest emails immediately (admin, JWT auth)","/admin/run/jobs":"GET corestepprep-run job list with status filters (admin, JWT auth)","/admin/logs-unified":"POST unified logs from Supabase, Fly, Stripe, Sentry, Resend, GitHub, OpenAI (admin, JWT auth)","/admin/ai-tools":"POST Gemini/Claude/Vertex admin actions (grounding, RAG, code-exec, Imagen, eval list)"},"timestamp":"2026-04-25T13:50:38.763Z"}