From 6d78c119c0f1a2a57151b5118900b01436891aad Mon Sep 17 00:00:00 2001 From: MrSphay Date: Fri, 3 Jul 2026 23:54:58 +0200 Subject: [PATCH] docs: synchronize README with production configuration --- README.md | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 219d1bb..a4f1dae 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,7 @@ npm run dev > ``` > This bypasses npm's script runner, which can swallow errors on some systems (particularly PowerShell on Windows). You can also run `node diag.mjs` to diagnose the exact issue — it checks your Node version, tests each module import individually, and verifies port availability. See [Troubleshooting](#troubleshooting) for more. -The dashboard opens automatically at `http://localhost:3117` and immediately begins its first intelligence sweep. This initial sweep queries all 27 sources in parallel and typically takes 30–60 seconds — the dashboard will appear empty until the sweep completes and pushes the first data update. After that, it auto-refreshes every 15 minutes via SSE (Server-Sent Events). No manual page refresh needed. +The server starts at `http://localhost:3117` and immediately begins its first intelligence sweep. Browser auto-open is disabled by default; open the URL yourself or explicitly set `AUTO_OPEN_BROWSER=true` for a supported desktop environment. The initial sweep queries all 27 sources in parallel and typically takes 30–60 seconds — the dashboard will appear empty until the sweep completes and pushes the first data update. After that, it auto-refreshes every 15 minutes via SSE (Server-Sent Events). No manual page refresh is needed. **Requirements:** Node.js 22+ (uses native `fetch`, top-level `await`, ESM) @@ -157,9 +157,13 @@ ACLED_EMAIL= ACLED_PASSWORD= CLOUDFLARE_API_TOKEN= BLS_API_KEY= +REDDIT_CLIENT_ID= +REDDIT_CLIENT_SECRET= TELEGRAM_BOT_TOKEN= TELEGRAM_CHAT_ID= +TELEGRAM_POLL_INTERVAL=5000 +TELEGRAM_CHANNELS= DISCORD_BOT_TOKEN= DISCORD_CHANNEL_ID= DISCORD_GUILD_ID= @@ -436,14 +440,18 @@ Reddit is OAuth-only in this fork. If the Reddit credentials are missing or reje ### LLM Provider (optional, for AI-enhanced ideas) -Set `LLM_PROVIDER` to one of: `anthropic`, `openai`, `gemini`, `codex`, `openrouter`, `minimax`, `mistral`, `grok` +Set `LLM_PROVIDER` to one of: `litellm`, `openrouter`, `openai-compatible`, `lmstudio`, `ollama`, `anthropic`, `openai`, `gemini`, `codex`, `minimax`, `mistral`, or `grok`. -| Provider | Key Required | Default Model | -|----------|-------------|---------------| +| Provider | Key Required | Default Model / Requirement | +|----------|--------------|-----------------------------| +| `litellm` | `LLM_API_KEY` | Explicit `LLM_BASE_URL` and `LLM_MODEL` required | +| `openrouter` | `LLM_API_KEY` | `openrouter/free` | +| `openai-compatible` | Endpoint-dependent | `local-model`; set `LLM_BASE_URL` | +| `lmstudio` | No | `local-model` | +| `ollama` | No | `llama3.1:8b` | | `anthropic` | `LLM_API_KEY` | claude-sonnet-4-6 | -| `openai` | `LLM_API_KEY` | gpt-5.4 | +| `openai` | `LLM_API_KEY` | `gpt-4o-mini` | | `gemini` | `LLM_API_KEY` | gemini-3.1-pro | -| `openrouter` | `LLM_API_KEY` | openrouter/auto | | `codex` | None (uses `~/.codex/auth.json`) | gpt-5.3-codex | | `minimax` | `LLM_API_KEY` | MiniMax-M2.5 | | `mistral` | `LLM_API_KEY` | mistral-large-latest | @@ -631,9 +639,22 @@ All settings are in `.env` with sensible defaults: | `STALE_DATA_MAX_AGE_MINUTES` | `60` | Data age threshold for stale health state | | `STALE_ALERT_COOLDOWN_MINUTES` | `60` | Minimum time between repeated operator stale-data alerts | | `DASHBOARD_URL` | local URL | Dashboard URL included in operator alerts | +| `AUTO_OPEN_BROWSER` | `false` | Open the dashboard in a host browser; keep disabled in Docker | +| `TERMINAL_ACTIONS_ENABLED` | environment-dependent | Enable guarded dashboard actions such as sweep and brief | +| `SWEEP_TOKEN` | disabled | Shared token required for remote action requests | +| `SSE_HEARTBEAT_INTERVAL_MS` | `25000` | Heartbeat interval for reverse-proxy SSE connections | +| `TERMINAL_ACTION_RATE_LIMIT_WINDOW_MS` | `60000` | Terminal action rate-limit window | +| `TERMINAL_ACTION_RATE_LIMIT_MAX` | `10` | Maximum terminal actions per client/window | +| `BRIEF_VERBOSITY` | `standard` | Briefing detail level | | `LLM_PROVIDER` | disabled | `litellm`, `openrouter`, `openai-compatible`, `lmstudio`, `ollama`, `anthropic`, `openai`, `gemini`, `codex`, `minimax`, `mistral`, or `grok` | -| `LLM_API_KEY` | — | API key (not needed for codex) | +| `LLM_BASE_URL` | provider default | API base URL; required for LiteLLM and custom endpoints | +| `LLM_API_KEY` | — | Provider or proxy API key; required for LiteLLM | | `LLM_MODEL` | per-provider default | Override model selection | +| `LLM_TEMPERATURE` | `0.2` | Sampling temperature for OpenAI-compatible providers | +| `LLM_MAX_TOKENS` | `2000` | Maximum completion token budget | +| `LLM_TIMEOUT_MS` | `90000` | LLM request timeout in milliseconds | +| `OPENROUTER_SITE_URL` | repository URL | OpenRouter attribution URL | +| `OPENROUTER_APP_NAME` | `Intelligence Terminal` | OpenRouter application title | | `TELEGRAM_BOT_TOKEN` | disabled | For Telegram alerts + bot commands | | `TELEGRAM_CHAT_ID` | — | Your Telegram chat ID | | `TELEGRAM_CHANNELS` | — | Extra channel IDs to monitor (comma-separated) |