/** * pm2 ecosystem entry for legal-metadata-drain — scheduled (every 15 min) drain * of the precedent metadata-extraction queue (Gemini Flash). Keeps the * /precedents metadata queue from clogging (the prior agentic claude-CLI path * hit error_max_turns and nothing drained it autonomously). * * Pattern: cron_restart fires the script on schedule; autorestart:false → runs * once and exits (pm2 shows "stopped" between ticks — expected). Cheap no-op * when the queue is empty; Gemini Flash ≈ $0.10/1M tokens. * * Requires (host ~/.env via legal_mcp.config): GEMINI_API_KEY, POSTGRES_URL. * * Install (once): * pm2 start /home/chaim/legal-ai/scripts/legal-metadata-drain.config.cjs * pm2 save * Run now (manual): mcp-server/.venv/bin/python scripts/drain_metadata_queue.py * Schedule override: METADATA_DRAIN_CRON (default every 15 min). */ const cron = process.env.METADATA_DRAIN_CRON || "*/15 * * * *"; module.exports = { apps: [ { name: "legal-metadata-drain", cwd: "/home/chaim/legal-ai", script: "/home/chaim/legal-ai/mcp-server/.venv/bin/python", args: "scripts/drain_metadata_queue.py 10", env: { HOME: "/home/chaim", PYTHONUNBUFFERED: "1" }, autorestart: false, // one-shot per cron tick cron_restart: cron, max_memory_restart: "500M", }, ], };