# andreiolaru-ro/flash-mas architecture

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

- Interactive diagram: https://gitdiagram.com/andreiolaru-ro/flash-mas
- Repository: https://github.com/andreiolaru-ro/flash-mas

## Overview

FLASH-MAS is a Java framework for configuring, booting, and running multi-agent systems. Its principal workflow is to describe a deployment, load entities, attach agent behavior and messaging components, then run agents that exchange messages through a chosen pylon. The framework also supports composite and mobile agents, monitoring/control tools, and alternative communication integrations. The README documents the deployment workflow and feature areas; sampled implementation evidence is limited, so the graph omits uncertain internal call links and treats optional integrations as separate branches.

Main entry points: [`src/net/xqhs/flash/core/agent/Agent.java`](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/agent/Agent.java) (Agents and events), [`src/net/xqhs/flash/core/support/Pylon.java`](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/support/Pylon.java) (Messaging pylon), [`src/net/xqhs/flash/core/Entity.java`](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/Entity.java) (Entity lifecycle), [`src/net/xqhs/flash/core/composite/CompositeAgent.java`](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/composite/CompositeAgent.java) (Composite agents)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Runtime model"]
  node_entity["Entity lifecycle<br/>[Entity.java]"]
  node_agent["Agents and events<br/>[Agent.java]"]
  node_shards["Agent shards<br/>[AgentShard.java]"]
  node_composite["Composite agents"]
  node_mobile["Mobile agents"]
end

subgraph group_deployment["Deployment"]
  node_config["Deployment config"]
  node_boot["Boot entry<br/>[FlashBoot.java]"]
  node_loader["Entity loading<br/>[Loader.java]"]
end

subgraph group_communication["Communication"]
  node_messaging["Messaging shards"]
  node_pylon["Messaging pylon<br/>[Pylon.java]"]
  node_local["Local transport<br/>[LocalPylon.java]"]
  node_mpi["MPI transport<br/>[MPISupport.java]"]
  node_websocket["WebSocket transport"]
  node_ros["ROS transport<br/>[RosPylon.java]"]
end

subgraph group_extensions["Tools and extensions"]
  node_monitoring["Monitoring and control"]
  node_gui["GUI support<br/>[GuiShard.java]"]
  node_claim["S-CLAIM language<br/>[Parser.java]"]
end

node_developer(("System operator"))
node_operator(("External system"))

node_developer -->|"specifies"| node_config
node_config -->|"configures"| node_boot
node_boot -->|"boots entities"| node_loader
node_loader -->|"loads"| node_entity
node_entity -->|"specializes as"| node_agent
node_agent -->|"hosts"| node_shards
node_agent -->|"attaches"| node_messaging
node_messaging -->|"sends messages"| node_pylon
node_local -->|"implements"| node_pylon
node_mpi -.->|"implements"| node_pylon
node_websocket -.->|"implements"| node_pylon
node_ros -.->|"implements"| node_pylon
node_composite -->|"groups agents"| node_agent
node_mobile -->|"extends"| node_composite
node_monitoring -->|"exposes control"| node_operator
node_gui -->|"provides interface"| node_operator
node_claim -.->|"defines behavior"| node_agent

click node_config "https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/DeploymentConfiguration.java"
click node_boot "https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/FlashBoot.java"
click node_loader "https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/Loader.java"
click node_entity "https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/Entity.java"
click node_agent "https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/agent/Agent.java"
click node_shards "https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/shard/AgentShard.java"
click node_composite "https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/composite/CompositeAgent.java"
click node_mobile "https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/mobileComposite/MobileCompositeAgent.java"
click node_messaging "https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/support/MessagingShard.java"
click node_pylon "https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/support/Pylon.java"
click node_local "https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/local/LocalPylon.java"
click node_mpi "https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/mpi/MPISupport.java"
click node_websocket "https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/webSocket/WebSocketPylon.java"
click node_ros "https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/ros/RosPylon.java"
click node_monitoring "https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/monitoring/CentralMonitoringAndControlEntity.java"
click node_gui "https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/gui/GuiShard.java"
click node_claim "https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/sclaim/parser/Parser.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_entity,node_agent,node_shards,node_composite,node_mobile toneBlue
class node_config,node_boot,node_loader toneAmber
class node_messaging,node_pylon,node_local,node_mpi,node_websocket,node_ros toneMint
class node_monitoring,node_gui,node_claim toneRose
class node_developer,node_operator toneIndigo
```

## Components

### Runtime model

- [Entity lifecycle](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/Entity.java): `src/net/xqhs/flash/core/Entity.java`
- [Agents and events](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/agent/Agent.java): `src/net/xqhs/flash/core/agent/Agent.java`
- [Agent shards](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/shard/AgentShard.java): `src/net/xqhs/flash/core/shard/AgentShard.java`
- [Composite agents](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/composite/CompositeAgent.java): `src/net/xqhs/flash/core/composite/CompositeAgent.java`
- [Mobile agents](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/mobileComposite/MobileCompositeAgent.java): `src/net/xqhs/flash/core/mobileComposite/MobileCompositeAgent.java`

### Deployment

- [Deployment config](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/DeploymentConfiguration.java): `src/net/xqhs/flash/core/DeploymentConfiguration.java`
- [Boot entry](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/FlashBoot.java): `src/net/xqhs/flash/FlashBoot.java`
- [Entity loading](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/Loader.java): `src/net/xqhs/flash/core/Loader.java`

### Communication

- [Messaging shards](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/support/MessagingShard.java): `src/net/xqhs/flash/core/support/MessagingShard.java`
- [Messaging pylon](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/support/Pylon.java): `src/net/xqhs/flash/core/support/Pylon.java`
- [Local transport](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/local/LocalPylon.java): `src/net/xqhs/flash/local/LocalPylon.java`
- [MPI transport](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/mpi/MPISupport.java): `src/net/xqhs/flash/mpi/MPISupport.java`
- [WebSocket transport](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/webSocket/WebSocketPylon.java): `src/net/xqhs/flash/webSocket/WebSocketPylon.java`
- [ROS transport](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/ros/RosPylon.java): `src/net/xqhs/flash/ros/RosPylon.java`

### Tools and extensions

- [Monitoring and control](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/core/monitoring/CentralMonitoringAndControlEntity.java): `src/net/xqhs/flash/core/monitoring/CentralMonitoringAndControlEntity.java`
- [GUI support](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/gui/GuiShard.java): `src/net/xqhs/flash/gui/GuiShard.java`
- [S-CLAIM language](https://github.com/andreiolaru-ro/flash-mas/blob/master/src/net/xqhs/flash/sclaim/parser/Parser.java): `src/net/xqhs/flash/sclaim/parser/Parser.java`

### Other components

- **System operator**
- **External system**

## Connections

- System operator → Deployment config: specifies
- Deployment config → Boot entry: configures
- Boot entry → Entity loading: boots entities
- Entity loading → Entity lifecycle: loads
- Entity lifecycle → Agents and events: specializes as
- Agents and events → Agent shards: hosts
- Agents and events → Messaging shards: attaches
- Messaging shards → Messaging pylon: sends messages
- Local transport → Messaging pylon: implements
- MPI transport → Messaging pylon: implements
- WebSocket transport → Messaging pylon: implements
- ROS transport → Messaging pylon: implements
- Composite agents → Agents and events: groups agents
- Mobile agents → Composite agents: extends
- Monitoring and control → External system: exposes control
- GUI support → External system: provides interface
- S-CLAIM language → Agents and events: defines behavior
