Skip to content

Add <ufo-intel-widget> embeddable UAP intelligence Web Component#5

Merged
DaScient merged 4 commits into
mainfrom
copilot/transform-ufo-release-dashboard
May 27, 2026
Merged

Add <ufo-intel-widget> embeddable UAP intelligence Web Component#5
DaScient merged 4 commits into
mainfrom
copilot/transform-ufo-release-dashboard

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 27, 2026

Transform the minimalist UFO-release dashboard concept into a plug-and-play, fully client-side Web Component — live feed, deep analytics, and a BYO-key agentic assistant — that any analyst can drop into an intranet portal with zero backend.

Lives at services/web-dashboard/public/widget/ and ships through the existing Pages workflow to https://dascient.github.io/UACP/widget/.

Changes

  • ufo-intel-widget.js — single-file ES module, ~1 600 LOC, no runtime deps. Shadow-DOM style isolation; observed attributes data-source, refresh-interval, theme, llm-provider, llm-model, api-key.
  • Live feed — JSON / RSS / Atom sources merged with analyst notes (IndexedDB-backed) and system alerts (new-tranche detection, source-down). Filterable, drill-in modal, clickable into the assistant.
  • Deep analytics tabs — hand-rolled SVG timeline (lane per agency), force-relaxed agency × keyword network graph, file-type composition bars, ISO-8601 weekly release cadence. All filter- and refresh-aware; no Chart.js / D3 dependency.
  • Agentic assistant — slide-out panel; OpenAI (SSE streaming), Anthropic, or any OpenAI-compatible local endpoint (Ollama / LM Studio / llama.cpp). Multi-turn with source citations. Slash commands /summarize /compare /report /risk /timeline /find. Client-side TF-IDF RAG keeps retrieval in-browser; only top-K snippets are sent to the LLM. Graceful credentials prompt when no key.
  • Resilience & hygiene — IndexedDB dataset cache + stale banner with last-fetch timestamp. Local-only audit log of fetches, queries, user actions. CSV/JSON dataset export + Markdown chat transcript export.
  • Security — API key kept only in localStorage (XOR + base64 obfuscation via TextEncoder/TextDecoder); ASCII-control-character strip before injection into Authorization / x-api-key headers; no telemetry, no external CDN, all output HTML-escaped.
  • Accessibility — ARIA roles/labels, prefers-reduced-motion, keyboard shortcuts (R refresh, / open assistant, Esc close modal), focusable feed items.
  • index.html demo — usage docs, configurable source/refresh controls, bundled offline sample fixture (ODNI, AARO, USN public releases) so the widget exercises every code path without network access.
  • README.md — embed snippet, attribute table, privacy notes, schema documentation.

Usage

<script type="module"
        src="https://dascient.github.io/UACP/widget/ufo-intel-widget.js"></script>

<ufo-intel-widget
  data-source="https://your-mirror.example/ufo/index.json"
  refresh-interval="30000"
  theme="dark"
  llm-provider="openai"
  llm-model="gpt-4o-mini"></ufo-intel-widget>

Schema

Loader normalises any of { pdfs, images, videos }, { items }, a top-level array, or RSS/Atom into:

{ id, title, agency, url, blurb, releaseDate, type }

Deployment

No workflow change needed — static_deploy.yml already copies services/web-dashboard/public/ through the Next.js export into the Pages root.

@DaScient DaScient marked this pull request as ready for review May 27, 2026 10:26
Copilot AI review requested due to automatic review settings May 27, 2026 10:26
@DaScient DaScient merged commit 3ca5d2a into main May 27, 2026
Copilot AI review requested due to automatic review settings May 27, 2026 10:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants