# youngsecurity/pentest-agent-system architecture

> Architecture diagram of the GitHub repository youngsecurity/pentest-agent-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-06-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/youngsecurity/pentest-agent-system
- Repository: https://github.com/youngsecurity/pentest-agent-system

## Overview

1. This repository is a multi-part security tooling workspace, not a single app. The main production system described by the README is the “Nmap Real-time Visualization System,” but the tree also contains a separate Python-based security analyst/agent package and a small Deno area for experiments/tests.

2. The core runtime architecture is split into a FastAPI backend and a Svelte frontend. The backend owns scan execution, parsing, progress state, and WebSocket delivery; the frontend owns the interactive UI, real-time rendering, and client-side connection management.

3. In the backend, `app/main.py` is the application entrypoint and `app/core/config.py` holds runtime configuration. API routes are separated by responsibility: `health.py` for liveness checks, `nmap.py` for scan control and scan-related REST endpoints, and `websocket.py` for push-based scan updates.

4. The backend is organized as a service-oriented pipeline for Nmap processing. `app/services/nmap/runner.py` executes Nmap, `parser.py` turns raw output into structured data, `locator.py` handles discovery of the Nmap binary or related environment details, and `service.py` acts as the orchestration layer between routes and the lower-level execution/parsing logic.

5. The Nmap data model boundary is explicit. `app/models/nmap.py` defines the structured scan result objects that travel between parsing, API responses, and client-side visualization, keeping raw process output isolated from structured scan state.

6. Real-time delivery is handled by a dedicated WebSocket subsystem in `app/services/ws/manager.py`. This manager is the boundary between backend scan progress and connected clients: it tracks sessions/connections and broadcasts incremental updates as scans run, which is what enables live visualization instead of polling.

7. Progress and operational state are supported by utility modules rather than embedded in the routes. `app/utils/progress_tracker.py` and `app/utils/logging_utils.py` suggest centralized tracking/logging concerns, while `app/services/interfaces.py` and `exceptions.py` define service contracts and error boundaries. The tests in `backend/tests/unit/services/...` mirror this layering and verify the nmap and websocket subsystems independently.

8. The frontend is a Svelte application with a very small composition surface: `src/main.ts` bootstraps `App.svelte`, and the project-level README indicates the UI is built around real-time terminal-style output plus structured progress/port/vulnerability views. Vite is the build/runtime toolchain (`vite.config.js`, `package.json`), which matters because the frontend is a separate SPA served to the browser and connected back to FastAPI over WebSockets.

9. There is a second, distinct Python package under `python/src/pentest_agent_system` focused on AI-assisted security analysis rather than live Nmap visualization. Its architecture includes agents (`modules/agents`), a model handler, tool integration, a database manager, Metasploit integration, and UI components built around a chat/pentest/testing workflow.

10. The Python package is also layered around orchestration. `security_analyst_orchestrator_agent.py`, `security_analyst_agent.py`, `vulnerability_extractor_agent.py`, `mitre_attack_mapper_agent.py`, and `attack_plan_generator_agent.py` indicate an agent pipeline that transforms scan or exploit data into analysis, mapping, and attack planning outputs; `callbacks/`, `utils/`, and `models/` support that flow with reusable infrastructure.

11. External process and tool boundaries are important in both subsystems. The backend wraps the Nmap CLI as an external subprocess, while the Python security-analyst package appears to integrate with model inference and Metasploit as external dependencies. Those integrations are isolated behind service/module boundaries so the rest of the code can work with structured results rather than raw tool output.

12. Persistence appears lightweight and file-based in the main backend, with `storage/data.json` suggesting local state or result storage rather than a heavy database layer. This fits the README’s “stateless design with file-based progress tracking” and means the architecture is centered on streaming updates plus structured scan results, not on long-term backend persistence.

13. The test layout reinforces the system boundaries. Backend tests focus on websocket behavior and Nmap service internals; Python tests cover agent behavior, parsing, vulnerability detection, and end-to-end security analyst flows. For an architecture diagram, the key edges are: browser/UI ↔ WebSocket/API ↔ FastAPI service layer ↔ Nmap subprocess/parsers, plus a separate Python agent pipeline that consumes security data and produces analysis outputs.

Main entry points: [`backend/app/services/nmap/service.py`](https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/services/nmap/service.py) (Nmap service), [`python/src/pentest_agent_system/modules/agents/security_analyst_orchestrator_agent.py`](https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/modules/agents/security_analyst_orchestrator_agent.py) (Orchestrator), [`backend/app/main.py`](https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/main.py) (App entry), [`frontend/src/App.svelte`](https://github.com/youngsecurity/pentest-agent-system/blob/main/frontend/src/App.svelte) (App UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_backend["Backend"]
  node_backend_main["App entry<br/>FastAPI startup<br/>[main.py]"]
  node_backend_config["Config<br/>[config.py]"]
  node_backend_health["Health API<br/>route<br/>[health.py]"]
  node_backend_nmap_route["Nmap API<br/>route<br/>[nmap.py]"]
  node_backend_ws_route["WebSocket API<br/>route<br/>[websocket.py]"]
  node_backend_nmap_service{{"Nmap service<br/>orchestration<br/>[service.py]"}}
  node_backend_nmap_runner["Runner<br/>subprocess exec<br/>[runner.py]"]
  node_backend_nmap_parser["Parser<br/>[parser.py]"]
  node_backend_nmap_locator["Locator<br/>environment lookup<br/>[locator.py]"]
  node_backend_ws_manager["WS manager<br/>connection hub<br/>[manager.py]"]
  node_backend_models_nmap[("Scan model<br/>data model<br/>[nmap.py]")]
  node_backend_progress["Progress tracker<br/>state utility"]
  node_backend_logging["Logging utils<br/>logging utility<br/>[logging_utils.py]"]
  node_backend_interfaces["Interfaces<br/>service contracts<br/>[interfaces.py]"]
  node_backend_exceptions["Exceptions<br/>error boundary<br/>[exceptions.py]"]
end

subgraph group_frontend["Frontend"]
  node_frontend_bootstrap["Bootstrap<br/>SPA entry<br/>[main.ts]"]
  node_frontend_app["App UI<br/>Svelte app<br/>[App.svelte]"]
  node_frontend_vite["Vite build<br/>toolchain<br/>[vite.config.js]"]
end

subgraph group_python["Python agent"]
  node_python_main["Agent entry<br/>Python startup<br/>[main.py]"]
  node_python_orchestrator{{"Orchestrator<br/>agent pipeline"}}
  node_python_security_agent["Security analyst<br/>agent"]
  node_python_vuln_agent["Vuln extractor<br/>agent"]
  node_python_mitre_agent["MITRE mapper<br/>agent"]
  node_python_attack_plan["Attack planner<br/>agent"]
  node_python_model_handler[("Model handler<br/>model integration<br/>[model_handler.py]")]
  node_python_tools["Tools<br/>tool integration<br/>[tools.py]"]
  node_python_metasploit["Metasploit<br/>external tool"]
  node_python_db[("DB manager<br/>persistence<br/>[db_manager.py]")]
  node_python_result_schema["Result schema<br/>data schema<br/>[result_schema.py]"]
end

subgraph group_deno["Deno"]
  node_deno_main["Deno main<br/>script<br/>[main.ts]"]
  node_deno_test["Deno tests<br/>test script<br/>[main_test.ts]"]
end

subgraph group_shared["Shared"]
  node_storage_data[("Data file<br/>file storage<br/>[data.json]")]
  node_docs_readme["Docs<br/>documentation<br/>[README.md]"]
end

node_backend_main -->|"loads"| node_backend_config
node_backend_main -->|"mounts"| node_backend_health
node_backend_main -->|"mounts"| node_backend_nmap_route
node_backend_main -->|"mounts"| node_backend_ws_route
node_backend_nmap_route -->|"calls"| node_backend_nmap_service
node_backend_ws_route -->|"uses"| node_backend_ws_manager
node_backend_nmap_service -->|"resolves"| node_backend_nmap_locator
node_backend_nmap_service -->|"executes"| node_backend_nmap_runner
node_backend_nmap_service -->|"parses"| node_backend_nmap_parser
node_backend_nmap_parser -->|"builds"| node_backend_models_nmap
node_backend_nmap_runner -->|"feeds"| node_backend_models_nmap
node_backend_nmap_service -->|"updates"| node_backend_progress
node_backend_progress -->|"publishes"| node_backend_ws_manager
node_backend_ws_manager -->|"serves"| node_backend_ws_route
node_backend_nmap_service -.->|"implements"| node_backend_interfaces
node_backend_nmap_service -.->|"raises"| node_backend_exceptions
node_backend_nmap_service -.->|"persists"| node_storage_data
node_frontend_bootstrap -->|"mounts"| node_frontend_app
node_frontend_app -.->|"built by"| node_frontend_vite
node_frontend_app -->|"connects to"| node_backend_ws_route
node_frontend_app -->|"requests"| node_backend_nmap_route
node_python_main -->|"starts"| node_python_orchestrator
node_python_orchestrator -->|"delegates"| node_python_security_agent
node_python_orchestrator -->|"delegates"| node_python_vuln_agent
node_python_orchestrator -->|"delegates"| node_python_mitre_agent
node_python_orchestrator -->|"delegates"| node_python_attack_plan
node_python_security_agent -->|"uses"| node_python_model_handler
node_python_security_agent -->|"uses"| node_python_tools
node_python_tools -->|"bridges"| node_python_metasploit
node_python_security_agent -.->|"stores"| node_python_db
node_python_orchestrator -->|"formats"| node_python_result_schema
node_python_orchestrator -.->|"reads/writes"| node_storage_data
node_deno_main -.->|"verified by"| node_deno_test
node_docs_readme -.->|"describes"| node_backend_main
node_docs_readme -.->|"describes"| node_python_orchestrator

click node_backend_main "https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/main.py"
click node_backend_config "https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/core/config.py"
click node_backend_health "https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/api/routes/health.py"
click node_backend_nmap_route "https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/api/routes/nmap.py"
click node_backend_ws_route "https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/api/routes/websocket.py"
click node_backend_nmap_service "https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/services/nmap/service.py"
click node_backend_nmap_runner "https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/services/nmap/runner.py"
click node_backend_nmap_parser "https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/services/nmap/parser.py"
click node_backend_nmap_locator "https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/services/nmap/locator.py"
click node_backend_ws_manager "https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/services/ws/manager.py"
click node_backend_models_nmap "https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/models/nmap.py"
click node_backend_progress "https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/utils/progress_tracker.py"
click node_backend_logging "https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/utils/logging_utils.py"
click node_backend_interfaces "https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/services/interfaces.py"
click node_backend_exceptions "https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/services/exceptions.py"
click node_frontend_bootstrap "https://github.com/youngsecurity/pentest-agent-system/blob/main/frontend/src/main.ts"
click node_frontend_app "https://github.com/youngsecurity/pentest-agent-system/blob/main/frontend/src/App.svelte"
click node_frontend_vite "https://github.com/youngsecurity/pentest-agent-system/blob/main/frontend/vite.config.js"
click node_python_main "https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/main.py"
click node_python_orchestrator "https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/modules/agents/security_analyst_orchestrator_agent.py"
click node_python_security_agent "https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/modules/security_analyst_agent.py"
click node_python_vuln_agent "https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/modules/agents/vulnerability_extractor_agent.py"
click node_python_mitre_agent "https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/modules/agents/mitre_attack_mapper_agent.py"
click node_python_attack_plan "https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/modules/agents/attack_plan_generator_agent.py"
click node_python_model_handler "https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/models/model_handler.py"
click node_python_tools "https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/modules/tools.py"
click node_python_metasploit "https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/modules/metasploit_agent.py"
click node_python_db "https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/modules/db_manager.py"
click node_python_result_schema "https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/utils/result_schema.py"
click node_deno_main "https://github.com/youngsecurity/pentest-agent-system/blob/main/deno/main.ts"
click node_deno_test "https://github.com/youngsecurity/pentest-agent-system/blob/main/deno/main_test.ts"
click node_storage_data "https://github.com/youngsecurity/pentest-agent-system/blob/main/storage/data.json"
click node_docs_readme "https://github.com/youngsecurity/pentest-agent-system/blob/main/README.md"

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_backend_main,node_backend_config,node_backend_health,node_backend_nmap_route,node_backend_ws_route,node_backend_nmap_service,node_backend_nmap_runner,node_backend_nmap_parser,node_backend_nmap_locator,node_backend_ws_manager,node_backend_models_nmap,node_backend_progress,node_backend_logging,node_backend_interfaces,node_backend_exceptions toneBlue
class node_frontend_bootstrap,node_frontend_app,node_frontend_vite toneAmber
class node_python_main,node_python_orchestrator,node_python_security_agent,node_python_vuln_agent,node_python_mitre_agent,node_python_attack_plan,node_python_model_handler,node_python_tools,node_python_metasploit,node_python_db,node_python_result_schema toneMint
class node_deno_main,node_deno_test toneRose
class node_storage_data,node_docs_readme toneIndigo
```

## Components

### Backend

FastAPI runtime for Nmap execution, parsing, progress tracking, and WebSocket updates.

- [App entry](https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/main.py): FastAPI startup · Backend application entrypoint and wiring. · `backend/app/main.py`
- [Config](https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/core/config.py): runtime config · Backend environment and application settings. · `backend/app/core/config.py`
- [Health API](https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/api/routes/health.py): route · Liveness and readiness checks. · `backend/app/api/routes/health.py`
- [Nmap API](https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/api/routes/nmap.py): route · REST endpoints for scan control and scan-related operations. · `backend/app/api/routes/nmap.py`
- [WebSocket API](https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/api/routes/websocket.py): route · Push channel for live scan progress and updates. · `backend/app/api/routes/websocket.py`
- [Nmap service](https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/services/nmap/service.py): orchestration · Coordinates scan execution, parsing, and API-facing scan state. · `backend/app/services/nmap/service.py`
- [Runner](https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/services/nmap/runner.py): subprocess exec · Launches the Nmap CLI and captures output. · `backend/app/services/nmap/runner.py`
- [Parser](https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/services/nmap/parser.py): output parser · Converts raw Nmap output into structured scan data. · `backend/app/services/nmap/parser.py`
- [Locator](https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/services/nmap/locator.py): environment lookup · Finds the Nmap binary and related execution environment details. · `backend/app/services/nmap/locator.py`
- [WS manager](https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/services/ws/manager.py): connection hub · Tracks client sessions and broadcasts incremental scan progress. · `backend/app/services/ws/manager.py`
- [Scan model](https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/models/nmap.py): data model · Structured scan result objects shared across parsing, API, and UI boundaries. · `backend/app/models/nmap.py`
- [Progress tracker](https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/utils/progress_tracker.py): state utility · Centralized scan progress state management. · `backend/app/utils/progress_tracker.py`
- [Logging utils](https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/utils/logging_utils.py): logging utility · Centralized backend logging helpers. · `backend/app/utils/logging_utils.py`
- [Interfaces](https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/services/interfaces.py): service contracts · Shared service abstractions and boundaries. · `backend/app/services/interfaces.py`
- [Exceptions](https://github.com/youngsecurity/pentest-agent-system/blob/main/backend/app/services/exceptions.py): error boundary · Backend service error types and domain exceptions. · `backend/app/services/exceptions.py`

### Frontend

Svelte SPA that renders live scan results and manages browser connections.

- [Bootstrap](https://github.com/youngsecurity/pentest-agent-system/blob/main/frontend/src/main.ts): SPA entry · Browser entrypoint that mounts the Svelte app. · `frontend/src/main.ts`
- [App UI](https://github.com/youngsecurity/pentest-agent-system/blob/main/frontend/src/App.svelte): Svelte app · Main user interface for live visualization and scan views. · `frontend/src/App.svelte`
- [Vite build](https://github.com/youngsecurity/pentest-agent-system/blob/main/frontend/vite.config.js): toolchain · Frontend build and dev server configuration. · `frontend/vite.config.js`

### Python agent

Separate pentest/security analyst package with agent orchestration and tooling.

- [Agent entry](https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/main.py): Python startup · Entry point for the pentest agent package. · `python/src/pentest_agent_system/main.py`
- [Orchestrator](https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/modules/agents/security_analyst_orchestrator_agent.py): agent pipeline · Coordinates the security analyst workflow across specialized agents. · `python/src/pentest_agent_system/modules/agents/security_analyst_orchestrator_agent.py`
- [Security analyst](https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/modules/security_analyst_agent.py): agent · Primary analysis agent for security reasoning and synthesis. · `python/src/pentest_agent_system/modules/security_analyst_agent.py`
- [Vuln extractor](https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/modules/agents/vulnerability_extractor_agent.py): agent · Extracts vulnerabilities and evidence from scan or exploit data. · `python/src/pentest_agent_system/modules/agents/vulnerability_extractor_agent.py`
- [MITRE mapper](https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/modules/agents/mitre_attack_mapper_agent.py): agent · Maps findings to MITRE ATT&CK style techniques and patterns. · `python/src/pentest_agent_system/modules/agents/mitre_attack_mapper_agent.py`
- [Attack planner](https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/modules/agents/attack_plan_generator_agent.py): agent · Generates attack plan outputs from analysis context. · `python/src/pentest_agent_system/modules/agents/attack_plan_generator_agent.py`
- [Model handler](https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/models/model_handler.py): model integration · Wraps model inference and AI model access. · `python/src/pentest_agent_system/models/model_handler.py`
- [Tools](https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/modules/tools.py): tool integration · Common tool and external dependency integration layer. · `python/src/pentest_agent_system/modules/tools.py`
- [Metasploit](https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/modules/metasploit_agent.py): external tool · Metasploit integration boundary for exploitation-oriented workflows. · `python/src/pentest_agent_system/modules/metasploit_agent.py`
- [DB manager](https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/modules/db_manager.py): persistence · Lightweight persistence and data management for the agent system. · `python/src/pentest_agent_system/modules/db_manager.py`
- [Result schema](https://github.com/youngsecurity/pentest-agent-system/blob/main/python/src/pentest_agent_system/utils/result_schema.py): data schema · Structured output schema for agent results. · `python/src/pentest_agent_system/utils/result_schema.py`

### Deno

Small experimental area for Deno-based scripts and tests.

- [Deno main](https://github.com/youngsecurity/pentest-agent-system/blob/main/deno/main.ts): script · Deno runtime entrypoint for experiments or tests. · `deno/main.ts`
- [Deno tests](https://github.com/youngsecurity/pentest-agent-system/blob/main/deno/main_test.ts): test script · Deno test harness. · `deno/main_test.ts`

### Shared

Repository-level storage and documentation that support the main systems.

- [Data file](https://github.com/youngsecurity/pentest-agent-system/blob/main/storage/data.json): file storage · Repository-local JSON state or results store. · `storage/data.json`
- [Docs](https://github.com/youngsecurity/pentest-agent-system/blob/main/README.md): documentation · High-level documentation for system behavior and workflows. · `README.md`

## Connections

- App entry → Config: loads · Startup reads runtime configuration.
- App entry → Health API: mounts · Application wires health routes.
- App entry → Nmap API: mounts · Application wires scan control routes.
- App entry → WebSocket API: mounts · Application wires WebSocket routes.
- Nmap API → Nmap service: calls · REST endpoints delegate scan orchestration.
- WebSocket API → WS manager: uses · WebSocket endpoints rely on the connection hub.
- Nmap service → Locator: resolves · Service finds the Nmap executable/environment.
- Nmap service → Runner: executes · Service launches scans through the runner.
- Nmap service → Parser: parses · Service converts raw output into structured results.
- Parser → Scan model: builds · Parser produces structured scan models.
- Runner → Scan model: feeds · Runner output is normalized into scan data.
- Nmap service → Progress tracker: updates · Service advances scan progress state.
- Progress tracker → WS manager: publishes · Progress state is broadcast to connected clients.
- WS manager → WebSocket API: serves · Manager backs live delivery for WebSocket clients.
- Nmap service → Interfaces: implements · Service layer follows shared contracts.
- Nmap service → Exceptions: raises · Service boundary emits domain errors.
- Nmap service → Data file: persists · Scan state may be stored in local file-backed data.
- Bootstrap → App UI: mounts · Svelte bootstrap renders the main app.
- App UI → Vite build: built by · Frontend is packaged and served through Vite.
- App UI → WebSocket API: connects to · UI consumes live scan updates from backend WebSocket delivery.
- App UI → Nmap API: requests · UI triggers scan actions through REST endpoints.
- Agent entry → Orchestrator: starts · Package entrypoint launches the agent workflow.
- Orchestrator → Security analyst: delegates · Orchestrator coordinates the core analyst agent.
- Orchestrator → Vuln extractor: delegates · Workflow extracts vulnerabilities as a stage.
- Orchestrator → MITRE mapper: delegates · Workflow maps findings to ATT&CK style techniques.
- Orchestrator → Attack planner: delegates · Workflow generates attack planning outputs.
- Security analyst → Model handler: uses · Agent relies on model inference wrapper.
- Security analyst → Tools: uses · Agent accesses external tools and helpers.
- Tools → Metasploit: bridges · Tool layer isolates Metasploit integration.
- Security analyst → DB manager: stores · Agent uses persistence for results or context.
- Orchestrator → Result schema: formats · Workflow emits structured result objects.
- Orchestrator → Data file: reads/writes · Agent package can share lightweight file-backed state.
- Deno main → Deno tests: verified by · Deno script is covered by its test harness.
- Docs → App entry: describes · Documentation explains the main backend runtime.
- Docs → Orchestrator: describes · Documentation also covers the agent pipeline.
