# ganganidhanush-maker/aegis architecture

> Architecture diagram of the GitHub repository ganganidhanush-maker/aegis, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ganganidhanush-maker/aegis
- Repository: https://github.com/ganganidhanush-maker/aegis

## Overview

AEGIS is an OSINT threat-intelligence and media-forensics platform for analysts and citizens. Its analyst workflow gathers public-source evidence, synthesizes investigations and early warnings, then presents triage and response guidance; separate workspaces handle media analysis, AI assistance, and citizen reporting. Source excerpts confirm case orchestration and its evidence connectors, as well as context-to-case calls. Other branches are documented capabilities represented by their exact component paths; their internal wiring is not established by the sampled source.

Main entry points: [`src/services/case/caseEngine.ts`](https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/case/caseEngine.ts) (Case Investigation), [`src/App.tsx`](https://github.com/ganganidhanush-maker/aegis/blob/main/src/App.tsx) (AEGIS Interface), [`src/context/CaseContext.tsx`](https://github.com/ganganidhanush-maker/aegis/blob/main/src/context/CaseContext.tsx) (Case Context), [`src/services/topicInvestigationEngine.ts`](https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/topicInvestigationEngine.ts) (Topic Investigation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application"]
  node_app["AEGIS Interface<br/>[App.tsx]"]
  node_casecontext["Case Context<br/>[CaseContext.tsx]"]
end

subgraph group_intelligence["Intelligence Operations"]
  node_feed["Intelligence Feed"]
  node_earlywarning["Early Warning"]
  node_caseengine["Case Investigation<br/>[caseEngine.ts]"]
  node_investigationui["Investigation Workspace"]
  node_topicengine["Topic Investigation"]
  node_network["Network Analysis"]
  node_narrative["Narrative Tracking"]
  node_trends["Trend Analysis<br/>[trendEngine.ts]"]
end

subgraph group_forensics["Forensics &amp; Response"]
  node_forensicsui["Media Forensics Lab"]
  node_forensicsservice["Media Forensics"]
  node_aiadvisor["AI Cyber Advisor<br/>[AICyberAdvisor.tsx]"]
  node_harmful["Harmful Content Triage"]
  node_reports["Response Reports<br/>[ReportsView.tsx]"]
end

subgraph group_public["Citizen Services"]
  node_intake["Conversational Intake"]
  node_intakeservice["Intake Service"]
  node_factreview["Fact Review"]
  node_publicreport["Anonymous Reporting"]
  node_sanctuary["Citizen Hub"]
end

subgraph group_platform["Data &amp; Analysis"]
  node_ingestionui["Data Ingestion Studio"]
  node_ingestion["Dataset Parser"]
  node_news["News Connector<br/>[newsConnector.ts]"]
  node_youtube["YouTube Connector"]
  node_reddit["Reddit Connector<br/>[redditConnector.ts]"]
  node_socialcrawl["Social API Fallback"]
  node_newsservice["Live News Service<br/>[newsService.ts]"]
  node_youtubeservice["YouTube Service<br/>[youtubeService.ts]"]
end

node_analyst(("Analyst"))
node_citizen(("Citizen"))
node_groq{{"Groq Inference"}}
node_google{{"Google News"}}
node_youtubeext{{"YouTube Data API"}}
node_redditext{{"Reddit"}}

node_analyst -->|"uses"| node_app
node_citizen -->|"uses"| node_app
node_app -->|"hosts"| node_casecontext
node_app -->|"renders"| node_aiadvisor
node_app -->|"syncs case"| node_casecontext
node_casecontext -->|"fetches headlines"| node_newsservice
node_casecontext -->|"runs investigation"| node_caseengine
node_caseengine -->|"searches evidence"| node_news
node_caseengine -->|"searches evidence"| node_youtube
node_caseengine -->|"searches evidence"| node_reddit
node_caseengine -->|"fallback search"| node_socialcrawl
node_newsservice -.->|"fetches news"| node_google
node_youtube -.->|"searches"| node_youtubeext
node_reddit -.->|"searches"| node_redditext
node_topicengine -->|"fetches headlines"| node_newsservice
node_topicengine -->|"searches videos"| node_youtubeservice
node_topicengine -->|"fetches comments"| node_youtubeservice
node_youtubeservice -.->|"queries"| node_youtubeext
node_ingestionui -->|"parses uploads"| node_ingestion
node_intake -->|"submits intake"| node_intakeservice
node_factreview -->|"reviews facts"| node_intake

click node_app "https://github.com/ganganidhanush-maker/aegis/blob/main/src/App.tsx"
click node_casecontext "https://github.com/ganganidhanush-maker/aegis/blob/main/src/context/CaseContext.tsx"
click node_feed "https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/IntelligenceFeedView.tsx"
click node_earlywarning "https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/earlyWarningEngine.ts"
click node_caseengine "https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/case/caseEngine.ts"
click node_investigationui "https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/InvestigateWorkspace.tsx"
click node_topicengine "https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/topicInvestigationEngine.ts"
click node_network "https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/networkGraphService.ts"
click node_narrative "https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/NarrativeEvolutionView.tsx"
click node_trends "https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/trendEngine.ts"
click node_forensicsui "https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/MediaForensicsWorkspace.tsx"
click node_forensicsservice "https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/mediaForensicsService.ts"
click node_aiadvisor "https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/AICyberAdvisor.tsx"
click node_harmful "https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/harmfulContentEngine.ts"
click node_reports "https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/ReportsView.tsx"
click node_intake "https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/intake/ConversationalIntakeWizard.tsx"
click node_intakeservice "https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/conversationalIntakeService.ts"
click node_factreview "https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/intake/FactSheetReviewModal.tsx"
click node_publicreport "https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/public/AnonymousReportWizard.tsx"
click node_sanctuary "https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/public/PublicSanctuaryHome.tsx"
click node_ingestionui "https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/DataIngestionStudio.tsx"
click node_ingestion "https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/dataIngestionService.ts"
click node_news "https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/connectors/newsConnector.ts"
click node_youtube "https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/connectors/youtubeConnector.ts"
click node_reddit "https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/connectors/redditConnector.ts"
click node_socialcrawl "https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/socialCrawlService.ts"
click node_newsservice "https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/newsService.ts"
click node_youtubeservice "https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/youtubeService.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_casecontext toneBlue
class node_feed,node_earlywarning,node_caseengine,node_investigationui,node_topicengine,node_network,node_narrative,node_trends toneAmber
class node_forensicsui,node_forensicsservice,node_aiadvisor,node_harmful,node_reports,node_youtubeext toneMint
class node_intake,node_intakeservice,node_factreview,node_publicreport,node_sanctuary toneRose
class node_ingestionui,node_ingestion,node_news,node_youtube,node_reddit,node_socialcrawl,node_newsservice,node_youtubeservice,node_analyst,node_citizen,node_groq,node_google,node_redditext toneIndigo
```

## Components

### Application

- [AEGIS Interface](https://github.com/ganganidhanush-maker/aegis/blob/main/src/App.tsx): `src/App.tsx`
- [Case Context](https://github.com/ganganidhanush-maker/aegis/blob/main/src/context/CaseContext.tsx): `src/context/CaseContext.tsx`

### Intelligence Operations

- [Intelligence Feed](https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/IntelligenceFeedView.tsx): `src/components/IntelligenceFeedView.tsx`
- [Early Warning](https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/earlyWarningEngine.ts): `src/services/earlyWarningEngine.ts`
- [Case Investigation](https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/case/caseEngine.ts): `src/services/case/caseEngine.ts`
- [Investigation Workspace](https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/InvestigateWorkspace.tsx): `src/components/InvestigateWorkspace.tsx`
- [Topic Investigation](https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/topicInvestigationEngine.ts): `src/services/topicInvestigationEngine.ts`
- [Network Analysis](https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/networkGraphService.ts): `src/services/networkGraphService.ts`
- [Narrative Tracking](https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/NarrativeEvolutionView.tsx): `src/components/NarrativeEvolutionView.tsx`
- [Trend Analysis](https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/trendEngine.ts): `src/services/trendEngine.ts`

### Forensics & Response

- [Media Forensics Lab](https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/MediaForensicsWorkspace.tsx): `src/components/MediaForensicsWorkspace.tsx`
- [Media Forensics](https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/mediaForensicsService.ts): `src/services/mediaForensicsService.ts`
- [AI Cyber Advisor](https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/AICyberAdvisor.tsx): `src/components/AICyberAdvisor.tsx`
- [Harmful Content Triage](https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/harmfulContentEngine.ts): `src/services/harmfulContentEngine.ts`
- [Response Reports](https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/ReportsView.tsx): `src/components/ReportsView.tsx`

### Citizen Services

- [Conversational Intake](https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/intake/ConversationalIntakeWizard.tsx): `src/components/intake/ConversationalIntakeWizard.tsx`
- [Intake Service](https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/conversationalIntakeService.ts): `src/services/conversationalIntakeService.ts`
- [Fact Review](https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/intake/FactSheetReviewModal.tsx): `src/components/intake/FactSheetReviewModal.tsx`
- [Anonymous Reporting](https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/public/AnonymousReportWizard.tsx): `src/components/public/AnonymousReportWizard.tsx`
- [Citizen Hub](https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/public/PublicSanctuaryHome.tsx): `src/components/public/PublicSanctuaryHome.tsx`

### Data & Analysis

- [Data Ingestion Studio](https://github.com/ganganidhanush-maker/aegis/blob/main/src/components/DataIngestionStudio.tsx): `src/components/DataIngestionStudio.tsx`
- [Dataset Parser](https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/dataIngestionService.ts): `src/services/dataIngestionService.ts`
- [News Connector](https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/connectors/newsConnector.ts): `src/services/connectors/newsConnector.ts`
- [YouTube Connector](https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/connectors/youtubeConnector.ts): `src/services/connectors/youtubeConnector.ts`
- [Reddit Connector](https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/connectors/redditConnector.ts): `src/services/connectors/redditConnector.ts`
- [Social API Fallback](https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/socialCrawlService.ts): `src/services/socialCrawlService.ts`
- [Live News Service](https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/newsService.ts): `src/services/newsService.ts`
- [YouTube Service](https://github.com/ganganidhanush-maker/aegis/blob/main/src/services/youtubeService.ts): `src/services/youtubeService.ts`

### Other components

- **Analyst**
- **Citizen**
- **Groq Inference**
- **Google News**
- **YouTube Data API**
- **Reddit**

## Connections

- Analyst → AEGIS Interface: uses
- Citizen → AEGIS Interface: uses
- AEGIS Interface → Case Context: hosts
- AEGIS Interface → AI Cyber Advisor: renders
- AEGIS Interface → Case Context: syncs case
- Case Context → Live News Service: fetches headlines
- Case Context → Case Investigation: runs investigation
- Case Investigation → News Connector: searches evidence
- Case Investigation → YouTube Connector: searches evidence
- Case Investigation → Reddit Connector: searches evidence
- Case Investigation → Social API Fallback: fallback search
- Live News Service → Google News: fetches news
- YouTube Connector → YouTube Data API: searches
- Reddit Connector → Reddit: searches
- Topic Investigation → Live News Service: fetches headlines
- Topic Investigation → YouTube Service: searches videos
- Topic Investigation → YouTube Service: fetches comments
- YouTube Service → YouTube Data API: queries
- Data Ingestion Studio → Dataset Parser: parses uploads
- Conversational Intake → Intake Service: submits intake
- Fact Review → Conversational Intake: reviews facts
