feat: Nous Portal news summarizer, ticker flags, map pins #8

Merged
sirius merged 13 commits from feat/nous-news-summarizer into master 2026-08-28 17:43:41 -04:00
2 changed files with 6 additions and 6 deletions
Showing only changes of commit f50268ef81 - Show all commits

View file

@ -57,10 +57,10 @@ KEY_REGISTRY: dict[str, dict] = {
"pattern": r"^[0-9a-fA-F]{32}$",
"example": "32-char hex string (e.g. 5f3c…9a02)",
},
"GEMINI_API_KEY": {
"description": "Google Gemini API key — LLM event analysis / summarization.",
"pattern": r"^AIza[0-9A-Za-z_-]{35}$",
"example": "AIza… (Google API key, 39 chars)",
"NOUS_API_KEY": {
"description": "Nous Portal API key — hourly news summarizer (inference-api.nousresearch.com).",
"pattern": r"^.{16,}$",
"example": "key from https://portal.nousresearch.com (API keys page)",
},
"TELEGRAM_TOKEN": {
"description": "Telegram bot token — push alert notifications to a channel.",

View file

@ -955,7 +955,7 @@
<section class="view" id="view-keys" aria-label="API keys">
<div class="subview">
<h2><span class="tick"></span> API Keys</h2>
<p class="sub">Keys used by ingest services (FIRMS, Gemini, Telegram, …). Stored in Postgres, never shown again — only status + last 4 chars.</p>
<p class="sub">Keys used by ingest services (FIRMS, Nous Portal, Telegram, AIS, …). Stored in Postgres, never shown again — only status + last 4 chars.</p>
<div class="key-grid" id="keys-grid"></div>
</div>
</section>
@ -1486,7 +1486,7 @@ function sentimentBadge(label) {
/* ═══════════════ API KEYS ═══════════════ */
const KEY_PATTERNS = {
'FIRMS_MAP_KEY': /^[0-9a-fA-F]{32}$/,
'GEMINI_API_KEY': /^AIza[0-9A-Za-z_-]{35}$/,
'NOUS_API_KEY': /^.{16,}$/,
'TELEGRAM_TOKEN': /^\d{8,10}:[0-9A-Za-z_-]{35}$/,
};
async function loadKeys() {