# silentchainai/silentchain architecture

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

- Interactive diagram: https://gitdiagram.com/silentchainai/silentchain
- Repository: https://github.com/silentchainai/silentchain

## Overview

SILENTCHAIN AI is a Burp Suite extension for passive, AI-assisted analysis of in-scope HTTP traffic, with on-demand request analysis as a second entry point. Burp traffic or a user action reaches the analysis orchestrator, which prepares sanitized prompts, calls an AI provider, parses findings, and hands issues to Burp or the UI. The repository also provides provider configuration, task/finding state, a dashboard, and CSV export. Some subsystem links are documented in the README; unsampled wiring is not inferred beyond indexed references.

Main entry points: [`src/main/java/com/sn1persecurity/silentchain/bapp/scan/AnalysisOrchestrator.java`](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/scan/AnalysisOrchestrator.java) (Analysis Orchestrator), [`src/main/java/com/sn1persecurity/silentchain/bapp/ui/main/MainTab.java`](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/ui/main/MainTab.java) (Dashboard), [`src/main/java/com/sn1persecurity/silentchain/bapp/ai/providers`](https://github.com/silentchainai/silentchain/tree/main/src/main/java/com/sn1persecurity/silentchain/bapp/ai/providers) (AI Providers), [`src/main/java/com/sn1persecurity/silentchain/bapp/config/Settings.java`](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/config/Settings.java) (Settings)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_integration["Burp Integration"]
  node_extension["Extension Setup"]
  node_passive["Passive Scan Check"]
end

subgraph group_analysis["Analysis Workflow"]
  node_orchestrator["Analysis Orchestrator"]
  node_sanitizer["Data Sanitizer<br/>[DataSanitizer.java]"]
  node_prompt_parser["Prompt and Parser"]
  node_handoff["Issue Handoff<br/>[ResultHandoff.java]"]
end

subgraph group_ai["AI Providers"]
  node_ai_service["AI Service<br/>[AiService.java]"]
  node_providers["AI Providers"]
  node_ai_gate["AI Permission Gate<br/>[AiGate.java]"]
  node_http_client["Provider HTTP Client"]
end

subgraph group_state["State and Reporting"]
  node_task_state["Task and Scan State"]
  node_findings[("Findings Registry")]
  node_csv["CSV Export<br/>[CsvExporter.java]"]
end

subgraph group_interface["Interface and Settings"]
  node_on_demand["Request Menu"]
  node_settings["Settings<br/>[Settings.java]"]
  node_persistence["Settings Persistence"]
  node_dashboard["Dashboard<br/>[MainTab.java]"]
end

node_burp(("Burp Suite"))
node_user(("Tester"))
node_external_ai{{"External AI Services"}}

node_burp -->|"loads extension"| node_extension
node_extension -->|"registers check"| node_passive
node_burp -.->|"supplies traffic"| node_passive
node_user -->|"selects request"| node_on_demand
node_on_demand -->|"queues analysis"| node_orchestrator
node_passive -.->|"submits analysis"| node_orchestrator
node_orchestrator -->|"sanitizes exchange"| node_sanitizer
node_orchestrator -->|"builds prompt"| node_prompt_parser
node_orchestrator -->|"requests analysis"| node_ai_service
node_ai_service -->|"dispatches prompt"| node_providers
node_providers -.->|"checks permission"| node_ai_gate
node_providers -.->|"sends third-party calls"| node_http_client
node_http_client -->|"sends HTTP requests"| node_external_ai
node_orchestrator -->|"tracks tasks"| node_task_state
node_orchestrator -->|"records findings"| node_findings
node_orchestrator -->|"hands off issues"| node_handoff
node_handoff -.->|"returns audit issues"| node_burp
node_user -->|"manages scanning"| node_dashboard
node_dashboard -->|"displays findings"| node_findings
node_dashboard -->|"shows task status"| node_task_state
node_dashboard -->|"exports findings"| node_csv
node_user -->|"configures provider"| node_settings
node_settings -->|"loads and saves"| node_persistence
node_settings -.->|"selects provider"| node_providers

click node_extension "https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/SilentchainExtension.java"
click node_passive "https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/scan/AiPassiveScanCheck.java"
click node_on_demand "https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/ui/ContextMenuProvider.java"
click node_orchestrator "https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/scan/AnalysisOrchestrator.java"
click node_sanitizer "https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/data/DataSanitizer.java"
click node_prompt_parser "https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/ai/ResponseParser.java"
click node_handoff "https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/scan/ResultHandoff.java"
click node_ai_service "https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/ai/AiService.java"
click node_providers "https://github.com/silentchainai/silentchain/tree/main/src/main/java/com/sn1persecurity/silentchain/bapp/ai/providers"
click node_ai_gate "https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/ai/AiGate.java"
click node_http_client "https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/net/MontoyaHttpClient.java"
click node_settings "https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/config/Settings.java"
click node_persistence "https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/config/SettingsPersistence.java"
click node_dashboard "https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/ui/main/MainTab.java"
click node_task_state "https://github.com/silentchainai/silentchain/tree/main/src/main/java/com/sn1persecurity/silentchain/bapp/state"
click node_findings "https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/state/FindingsRegistry.java"
click node_csv "https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/export/CsvExporter.java"

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_extension,node_passive toneBlue
class node_orchestrator,node_sanitizer,node_prompt_parser,node_handoff toneAmber
class node_ai_service,node_providers,node_ai_gate,node_http_client toneMint
class node_task_state,node_findings,node_csv toneRose
class node_on_demand,node_settings,node_persistence,node_dashboard,node_burp,node_user,node_external_ai toneIndigo
```

## Components

### Burp Integration

- [Extension Setup](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/SilentchainExtension.java): `src/main/java/com/sn1persecurity/silentchain/bapp/SilentchainExtension.java`
- [Passive Scan Check](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/scan/AiPassiveScanCheck.java): `src/main/java/com/sn1persecurity/silentchain/bapp/scan/AiPassiveScanCheck.java`

### Analysis Workflow

- [Analysis Orchestrator](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/scan/AnalysisOrchestrator.java): `src/main/java/com/sn1persecurity/silentchain/bapp/scan/AnalysisOrchestrator.java`
- [Data Sanitizer](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/data/DataSanitizer.java): `src/main/java/com/sn1persecurity/silentchain/bapp/data/DataSanitizer.java`
- [Prompt and Parser](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/ai/ResponseParser.java): `src/main/java/com/sn1persecurity/silentchain/bapp/ai/ResponseParser.java`
- [Issue Handoff](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/scan/ResultHandoff.java): `src/main/java/com/sn1persecurity/silentchain/bapp/scan/ResultHandoff.java`

### AI Providers

- [AI Service](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/ai/AiService.java): `src/main/java/com/sn1persecurity/silentchain/bapp/ai/AiService.java`
- [AI Providers](https://github.com/silentchainai/silentchain/tree/main/src/main/java/com/sn1persecurity/silentchain/bapp/ai/providers): `src/main/java/com/sn1persecurity/silentchain/bapp/ai/providers`
- [AI Permission Gate](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/ai/AiGate.java): `src/main/java/com/sn1persecurity/silentchain/bapp/ai/AiGate.java`
- [Provider HTTP Client](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/net/MontoyaHttpClient.java): `src/main/java/com/sn1persecurity/silentchain/bapp/net/MontoyaHttpClient.java`

### State and Reporting

- [Task and Scan State](https://github.com/silentchainai/silentchain/tree/main/src/main/java/com/sn1persecurity/silentchain/bapp/state): `src/main/java/com/sn1persecurity/silentchain/bapp/state`
- [Findings Registry](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/state/FindingsRegistry.java): `src/main/java/com/sn1persecurity/silentchain/bapp/state/FindingsRegistry.java`
- [CSV Export](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/export/CsvExporter.java): `src/main/java/com/sn1persecurity/silentchain/bapp/export/CsvExporter.java`

### Interface and Settings

- [Request Menu](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/ui/ContextMenuProvider.java): `src/main/java/com/sn1persecurity/silentchain/bapp/ui/ContextMenuProvider.java`
- [Settings](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/config/Settings.java): `src/main/java/com/sn1persecurity/silentchain/bapp/config/Settings.java`
- [Settings Persistence](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/config/SettingsPersistence.java): `src/main/java/com/sn1persecurity/silentchain/bapp/config/SettingsPersistence.java`
- [Dashboard](https://github.com/silentchainai/silentchain/blob/main/src/main/java/com/sn1persecurity/silentchain/bapp/ui/main/MainTab.java): `src/main/java/com/sn1persecurity/silentchain/bapp/ui/main/MainTab.java`

### Other components

- **Burp Suite**
- **Tester**
- **External AI Services**

## Connections

- Burp Suite → Extension Setup: loads extension (evidence: `src/main/java/com/sn1persecurity/silentchain/bapp/SilentchainExtension.java`)
- Extension Setup → Passive Scan Check: registers check (evidence: `src/main/java/com/sn1persecurity/silentchain/bapp/SilentchainExtension.java`)
- Burp Suite → Passive Scan Check: supplies traffic (evidence: `README.md`)
- Tester → Request Menu: selects request (evidence: `README.md`)
- Request Menu → Analysis Orchestrator: queues analysis (evidence: `src/main/java/com/sn1persecurity/silentchain/bapp/ui/ContextMenuProvider.java`)
- Passive Scan Check → Analysis Orchestrator: submits analysis (evidence: `README.md`)
- Analysis Orchestrator → Data Sanitizer: sanitizes exchange (evidence: `src/main/java/com/sn1persecurity/silentchain/bapp/scan/AnalysisOrchestrator.java`)
- Analysis Orchestrator → Prompt and Parser: builds prompt (evidence: `src/main/java/com/sn1persecurity/silentchain/bapp/scan/AnalysisOrchestrator.java`)
- Analysis Orchestrator → AI Service: requests analysis (evidence: `src/main/java/com/sn1persecurity/silentchain/bapp/scan/AnalysisOrchestrator.java`)
- AI Service → AI Providers: dispatches prompt (evidence: `src/main/java/com/sn1persecurity/silentchain/bapp/ai/AiService.java`)
- AI Providers → AI Permission Gate: checks permission (evidence: `src/main/java/com/sn1persecurity/silentchain/bapp/ai/providers/LlmProvider.java`)
- AI Providers → Provider HTTP Client: sends third-party calls (evidence: `src/main/java/com/sn1persecurity/silentchain/bapp/net/MontoyaHttpClient.java`)
- Provider HTTP Client → External AI Services: sends HTTP requests (evidence: `src/main/java/com/sn1persecurity/silentchain/bapp/net/MontoyaHttpClient.java`)
- Analysis Orchestrator → Task and Scan State: tracks tasks (evidence: `src/main/java/com/sn1persecurity/silentchain/bapp/scan/AnalysisOrchestrator.java`)
- Analysis Orchestrator → Findings Registry: records findings (evidence: `src/main/java/com/sn1persecurity/silentchain/bapp/scan/AnalysisOrchestrator.java`)
- Analysis Orchestrator → Issue Handoff: hands off issues (evidence: `src/main/java/com/sn1persecurity/silentchain/bapp/scan/AnalysisOrchestrator.java`)
- Issue Handoff → Burp Suite: returns audit issues (evidence: `README.md`)
- Tester → Dashboard: manages scanning (evidence: `README.md`)
- Dashboard → Findings Registry: displays findings (evidence: `src/main/java/com/sn1persecurity/silentchain/bapp/ui/main/MainTab.java`)
- Dashboard → Task and Scan State: shows task status (evidence: `src/main/java/com/sn1persecurity/silentchain/bapp/ui/main/MainTab.java`)
- Dashboard → CSV Export: exports findings (evidence: `src/main/java/com/sn1persecurity/silentchain/bapp/ui/main/MainTab.java`)
- Tester → Settings: configures provider (evidence: `README.md`)
- Settings → Settings Persistence: loads and saves (evidence: `src/main/java/com/sn1persecurity/silentchain/bapp/config/SettingsPersistence.java`)
- Settings → AI Providers: selects provider (evidence: `README.md`)
