first commit

This commit is contained in:
2026-05-29 08:20:56 +01:00
commit 949299f58d
6368 changed files with 527176 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
# @suaveplan/network-plugin-simulation - Deterministic virtual-network simulation framework for the Suaveplan mesh: NetworkSimulator (seeded RNG + time control + topology factories), VirtualNode, ScenarioRunner, NetworkConditionInjector, ChaosEngine. Dev/test only.
## Summary
Deterministic virtual-network simulation framework for the Suaveplan mesh. `NetworkSimulator` runs scenarios against a seeded RNG with simulated time (acceleration / deceleration vs wall clock) and four built-in topology factories (star / mesh / tiered / custom); `VirtualNode` wraps the same `NetworkNode` + plugin code that real peers use, so behaviour is bit-identical between simulation and production; `ScenarioRunner` executes declarative scenarios (setup → ordered events → success criteria → metric collection) with checkpointing for long runs; `NetworkConditionInjector` applies latency / loss / bandwidth / jitter / connection-disruption models per peer-pair; `ChaosEngine` injects random failures (peer crashes, transport faults, partitions, message drops) for chaos testing. Dev/test only — the production wrapper is a no-op when `NODE_ENV === "production"`.
<!-- begin:auto-docs -->
## Documentation tree
- [chaos](./src/chaos/chaos-engine.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [chaos-engine](./src/chaos/chaos-engine.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [conditions](./src/conditions/network-condition-injector.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [network-condition-injector](./src/conditions/network-condition-injector.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [plugin](./src/plugin/simulation-plugin.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [simulation-plugin](./src/plugin/simulation-plugin.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [scenario](./src/scenario/scenario-runner.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [scenario-runner](./src/scenario/scenario-runner.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [simulator](./src/simulator/network-simulator.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [network-simulator](./src/simulator/network-simulator.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [virtual-node](./src/virtual-node/virtual-node.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [virtual-node](./src/virtual-node/virtual-node.md) — <!-- begin:auto-docs --> _(no submodules)_ <!-- end:auto-docs -->
- [error-codes](./src/error-codes.md) — Frozen registry of every error code raised by the simulation package. Codes are namespaced under `NET_SIM` and register…
<!-- end:auto-docs --> - [chaos-engine](./src/chaos/chaos-engine.md) — <!-- begin:auto-docs --> _(no submodules)_- [conditions](./src/conditions/network-condition-injector.md) — <!-- begin:auto-docs --> _(no submodules)_- [network-condition-injector](./src/conditions/network-condition-injector.md) — <!-- begin:auto-docs --> _(no submodules)_- [plugin](./src/plugin/simulation-plugin.md) — <!-- begin:auto-docs --> _(no submodules)_- [simulation-plugin](./src/plugin/simulation-plugin.md) — <!-- begin:auto-docs --> _(no submodules)_- [scenario](./src/scenario/scenario-runner.md) — <!-- begin:auto-docs --> _(no submodules)_- [scenario-runner](./src/scenario/scenario-runner.md) — <!-- begin:auto-docs --> _(no submodules)_- [simulator](./src/simulator/network-simulator.md) — <!-- begin:auto-docs --> _(no submodules)_- [network-simulator](./src/simulator/network-simulator.md) — <!-- begin:auto-docs --> _(no submodules)_- [virtual-node](./src/virtual-node/virtual-node.md) — <!-- begin:auto-docs --> _(no submodules)_- [virtual-node](./src/virtual-node/virtual-node.md) — <!-- begin:auto-docs --> _(no submodules)_- [error-codes](./src/error-codes.md) — Frozen registry of every error code raised by the simulation package. Codes are namespaced under `NET_SIM` and register…
- [chaos-engine](./src/chaos/chaos-engine.md) — <!-- begin:auto-docs --> _(no submodules)_- [conditions](./src/conditions/network-condition-injector.md) — <!-- begin:auto-docs --> _(no submodules)_- [network-condition-injector](./src/conditions/network-condition-injector.md) — <!-- begin:auto-docs --> _(no submodules)_- [plugin](./src/plugin/simulation-plugin.md) — <!-- begin:auto-docs --> _(no submodules)_- [simulation-plugin](./src/plugin/simulation-plugin.md) — <!-- begin:auto-docs --> _(no submodules)_- [scenario](./src/scenario/scenario-runner.md) — <!-- begin:auto-docs --> _(no submodules)_- [scenario-runner](./src/scenario/scenario-runner.md) — <!-- begin:auto-docs --> _(no submodules)_- [simulator](./src/simulator/network-simulator.md) — <!-- begin:auto-docs --> _(no submodules)_- [network-simulator](./src/simulator/network-simulator.md) — <!-- begin:auto-docs --> _(no submodules)_- [virtual-node](./src/virtual-node/virtual-node.md) — <!-- begin:auto-docs --> _(no submodules)_- [virtual-node](./src/virtual-node/virtual-node.md) — <!-- begin:auto-docs --> _(no submodules)_- [error-codes](./src/error-codes.md) — Frozen registry of every error code raised by the simulation package. Codes are namespaced under `NET_SIM` and register…
- [chaos-engine](./src/chaos/chaos-engine.md) — <!-- begin:auto-docs --> _(no submodules)_- [conditions](./src/conditions/network-condition-injector.md) — <!-- begin:auto-docs --> _(no submodules)_- [network-condition-injector](./src/conditions/network-condition-injector.md) — <!-- begin:auto-docs --> _(no submodules)_- [plugin](./src/plugin/simulation-plugin.md) — <!-- begin:auto-docs --> _(no submodules)_- [simulation-plugin](./src/plugin/simulation-plugin.md) — <!-- begin:auto-docs --> _(no submodules)_- [scenario](./src/scenario/scenario-runner.md) — <!-- begin:auto-docs --> _(no submodules)_- [scenario-runner](./src/scenario/scenario-runner.md) — <!-- begin:auto-docs --> _(no submodules)_- [simulator](./src/simulator/network-simulator.md) — <!-- begin:auto-docs --> _(no submodules)_- [network-simulator](./src/simulator/network-simulator.md) — <!-- begin:auto-docs --> _(no submodules)_- [virtual-node](./src/virtual-node/virtual-node.md) — <!-- begin:auto-docs --> _(no submodules)_- [virtual-node](./src/virtual-node/virtual-node.md) — <!-- begin:auto-docs --> _(no submodules)_- [error-codes](./src/error-codes.md) — Frozen registry of every error code raised by the simulation package. Codes are namespaced under `NET_SIM` and register…
- [chaos-engine](./src/chaos/chaos-engine.md) — <!-- begin:auto-docs --> _(no submodules)_- [conditions](./src/conditions/network-condition-injector.md) — <!-- begin:auto-docs --> _(no submodules)_ - [network-condition-injector](./src/conditions/network-condition-injector.md) — <!-- begin:auto-docs --> _(no submodules)_- [plugin](./src/plugin/simulation-plugin.md) — <!-- begin:auto-docs --> _(no submodules)_ - [simulation-plugin](./src/plugin/simulation-plugin.md) — <!-- begin:auto-docs --> _(no submodules)_- [scenario](./src/scenario/scenario-runner.md) — <!-- begin:auto-docs --> _(no submodules)_ - [scenario-runner](./src/scenario/scenario-runner.md) — <!-- begin:auto-docs --> _(no submodules)_- [simulator](./src/simulator/network-simulator.md) — <!-- begin:auto-docs --> _(no submodules)_ - [network-simulator](./src/simulator/network-simulator.md) — <!-- begin:auto-docs --> _(no submodules)_- [virtual-node](./src/virtual-node/virtual-node.md) — <!-- begin:auto-docs --> _(no submodules)_ - [virtual-node](./src/virtual-node/virtual-node.md) — <!-- begin:auto-docs --> _(no submodules)_- [error-codes](./src/error-codes.md) — Frozen registry of every error code raised by the simulation package. Codes are namespaced under `NET_SIM` and register…