/** * pm2 ecosystem entry for legal-chat-service — the host-side SSE bridge * to ``claude`` CLI that powers the /training chat tab. * * Why pm2: * - Auto-restart if the process dies (claude CLI subprocess failures * should never leave the service in a half-dead state). * - Log rotation matches paperclip's behavior so the chair sees * consistent log paths under ~/.pm2/logs/. * * Install (once): * pm2 start /home/chaim/legal-ai/scripts/legal-chat-service.config.cjs * pm2 save * * Smoke test: * curl http://127.0.0.1:8770/health * # → {"ok":true,"service":"legal-chat-service"} * * Update: * pm2 restart legal-chat-service * * Stop: * pm2 stop legal-chat-service */ module.exports = { apps: [ { name: "legal-chat-service", cwd: "/home/chaim/legal-ai/mcp-server", // Run the in-package server via the venv interpreter so all // imports (claude_session, etc) resolve. script: "/home/chaim/legal-ai/mcp-server/.venv/bin/python", args: "-m legal_mcp.chat_service.server --port 8770", // claude CLI looks up credentials under HOME — make sure it // sees Daphna's session, not an empty container HOME. env: { HOME: "/home/chaim", PATH: "/home/chaim/.local/bin:/usr/local/bin:/usr/bin:/bin", PYTHONUNBUFFERED: "1", }, restart_delay: 5000, max_restarts: 10, autorestart: true, max_memory_restart: "500M", }, ], };