Commit Graph
12 Commits
Author SHA1 Message Date
Marc ShadeandClaude Opus 4.6 d5bf09f342 feat: add health, sanctions, elections, shipping, social, nuclear intelligence — Phase 7 (+10 = 55 tools)
New source modules: disease outbreaks (WHO/ProMED/CIDRAP), OFAC sanctions
search, election calendar with risk scoring, shipping stress index,
Reddit social signals, nuclear test site seismic monitor. Cross-domain
alert digest and weekly trend analysis. Registers orphaned space_weather
and ai_watch modules.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 20:06:05 -05:00
Marc ShadeandClaude Opus 4.6 9f7a81812b feat: add military & infrastructure intelligence — Phase 6 (+6 = 45 tools)
New analysis modules: surge detection (8 sensitive regions), cascade
simulation (6 cable corridors), hotspot escalation scoring (22 hotspots).
New tools: commodity quotes, unrest events, hotspot escalation, military
surge, vessel snapshot, cascade analysis.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 19:04:49 -05:00
Marc ShadeandClaude Opus 4.6 8d60a9a220 feat: add core analysis engine — focal points, temporal anomalies, CII v2
Phase 5 of world-intel-mcp: intelligence synthesis layer that makes raw
data actionable.

New modules:
- config/countries.py: 22 tier-1 countries with event multipliers, 22
  intel hotspots, 9 strategic waterways, 6 conflict zones
- analysis/focal_points.py: detect convergence of signals on entities
  using signal count, type diversity, and recency weighting
- analysis/temporal.py: Welford's algorithm + SQLite for streaming
  anomaly detection with seasonal baselines (weekday+month)

Upgraded modules:
- analysis/instability.py: CII v2 with 4 weighted domains (unrest 0.25,
  conflict 0.30, security 0.20, information 0.25), UCDP floors, event
  multipliers. Full v1 backward compat preserved.
- analysis/signals.py: v2 aggregator accepts 7 data sources (added
  outages, military, protests) with convergence scoring
- sources/intelligence.py: 3 new fetch functions (focal_points,
  signal_summary, temporal_anomalies), instability upgraded to CII v2

3 new MCP tools: intel_focal_points, intel_signal_summary,
intel_temporal_anomalies. Total: 39 tools.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 18:39:57 -05:00
Marc ShadeandClaude Opus 4.6 561ed8e277 feat: add space weather + AI watch feeds, fix data binding issues
- Add space_weather source (NOAA SWPC: Kp index, X-ray flux, alerts)
- Add ai_watch source (arXiv cs.AI/LG/CL, HuggingFace, lab trending)
- Fix RSS circuit breaker: per-feed source names prevent cascade trips
- Fix displacement field: internally_displaced (was reading idps)
- Fix energy prices: handle nested oil.brent/wti structure
- Fix climate anomalies: use temp_anomaly_c and precip_anomaly_pct
- Fix news ticker: add feed_name to source fallback chain
- Remove defunct Reuters RSS feed, update War Zone URL
- Disable HTML caching for dev-friendly reloads

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 13:28:38 -05:00
Marc ShadeandClaude Opus 4.6 affaf4b200 feat: redesign intelligence dashboard as map-first ops center
Complete v3 rewrite: full-viewport Leaflet map as primary interface
with glassmorphic floating panels. All geolocated events (earthquakes,
military aircraft, ACLED conflict, wildfire clusters, signal convergence)
are clickable map markers with detailed slide-in modals.

Design: Chakra Petch + Share Tech Mono typography, vignette overlay,
CSS custom properties, animated markers with pulse/glow on critical
events. Data drawer with sticky section headers for non-geospatial
data (markets, crypto, cyber, predictions, displacement). Scrolling
news ticker, HUD stat pills, layer toggle switches.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 13:08:09 -05:00
Marc ShadeandClaude Opus 4.6 15ecc8e3e1 feat: expand intelligence dashboard with 7 new feeds, tabbed UI, map, and charts
Backend: wire stablecoin_status, etf_flows, acled_events, ucdp_events,
displacement, risk_scores, and signal_convergence into the SSE overview
endpoint (23 total feeds, up from 16).

Frontend: complete rewrite with 7-tab navigation (Overview, Markets,
Security, Conflict & Humanitarian, Natural & Climate, Geospatial Map,
Trend Charts), Leaflet dark-tile map with toggleable layers, Chart.js
rolling time-series, feed health counter, and DOMPurify sanitization.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 12:49:11 -05:00
Marc ShadeandClaude Opus 4.6 5af243d7a5 fix: handle object-shaped climate anomaly data in dashboard
Climate API may return zones as {zone_name: data} object instead of
array. Added Object.values() fallback to normalize both shapes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 12:25:06 -05:00
Marc ShadeandClaude Opus 4.6 7a4036dc8d feat: add live intelligence dashboard with SSE streaming
Starlette app serving a real-time dashboard at http://127.0.0.1:8501.
17 intelligence domains updated every 30s via Server-Sent Events:
markets, crypto, sectors, macro, cyber, military, earthquakes,
wildfires, climate, news, predictions, energy, aviation, infra,
cables, nav warnings, trending keywords.

- DOMPurify for XSS-safe DOM updates
- Exponential backoff SSE reconnection
- Responsive dark-theme grid layout with Chart.js
- CLI: `intel dashboard [--port 8501]`

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 12:20:48 -05:00
Marc ShadeandClaude Opus 4.6 c12f45eaa8 fix: Jinja2 None-crash in report templates — |default(0) → or 0
Jinja2's |default(0) only replaces undefined, not None values from API
data. When used with comparison operators (>=) or format(), None causes
TypeError crashes. Replaced with Python `or` operator which handles
None correctly across market_overview.html (7 patterns) and
country_dossier.html (1 pattern).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 12:05:10 -05:00
Marc ShadeandClaude Opus 4.6 a4d2b546a3 refactor: replace Wingbits (paid) with hexdb.io (free) for aircraft lookups
hexdb.io provides ICAO hex aircraft details with no API key required,
eliminating the 30-day trial limitation of Wingbits.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 11:12:09 -05:00
Marc ShadeandClaude Opus 4.6 3131ccbcdc fix: wildfire parser uses dynamic CSV headers + cache key collision
- Parse FIRMS CSV column indices from header row instead of hardcoded
  offsets. FIRMS added 'instrument' column, shifting confidence/frp.
- Fix cache key collision: _fetch_region and fetch_wildfires both used
  'wildfire:fires:{region}' — now CSV uses 'wildfire:csv:{region}'.
- Add type guard for non-string input to _parse_fires_csv.
- Remove unused _CSV_COLUMNS constant.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 10:55:05 -05:00
Marc ShadeandClaude Opus 4.6 01cb4255ef feat: add world-intel-mcp server — 36 tools across 14 intelligence domains
New MCP server providing real-time global intelligence: financial markets
(Yahoo Finance, CoinGecko), economic indicators (FRED, EIA, World Bank),
conflict tracking (ACLED, UCDP, HDX), military flights (OpenSky),
infrastructure monitoring (Cloudflare Radar, NGA cable health), maritime
warnings (NGA), climate anomalies (Open-Meteo), news aggregation (RSS,
GDELT), prediction markets (Polymarket), displacement data (UNHCR),
aviation delays (FAA), cyber threats (Feodo, CISA KEV, SANS, URLhaus),
country intelligence briefs (Ollama LLM), and HTML report generation
(Jinja2 + Chart.js).

Includes: SQLite TTL cache, per-source circuit breakers, async HTTP
fetcher with retry/rate-limiting, Click CLI with 27 commands, 4 analysis
modules (instability scoring, geo-convergence, signal aggregation, news
clustering), 4 HTML report templates, and 28 unit tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 10:33:57 -05:00