Repository navigation
Gym env, Arena eval, and netforge CLI - #9
Merged
Merged
Conversation
Keep PettingZoo parallel and Gymnasium Blue as the public make() surface without stuffing trainers into this tree. Co-authored-by: Cursor <cursoragent@cursor.com>
Register DeployEDR so the mask matches the action table, and keep oracle graphs off the Blue observation path. Co-authored-by: Cursor <cursoragent@cursor.com>
Rank on mission/SLA/FPs/security/CVaR instead of mean reward, and keep Windows CLI catalog text ASCII. Co-authored-by: Cursor <cursoragent@cursor.com>
…rust. Community packs stay data, not bundled training algorithms. Co-authored-by: Cursor <cursoragent@cursor.com>
Pin the project to netforge-rl 4.0.0 with Gymnasium/PettingZoo as the gym, not a trainer repo. Co-authored-by: Cursor <cursoragent@cursor.com>
…xample. These sit around the gym so researchers can export trajectories and submissions without vendoring MAPPO or QMIX. Co-authored-by: Cursor <cursoragent@cursor.com>
3 of 7 tasks
elprofesoriqo
commented
Sep 20, 2026
elprofesoriqo
left a comment
Collaborator
Author
There was a problem hiding this comment.
Reviewed the gym/CLI stack (6 commits). Merge this first.
Looks good
- EnvConfig / tick / reset split is the right grain;
gym.make("NetForge/Blue-v4")andmake("parallel", "netforge/ransomware-v4")match the tests. - DeployEDR is actually registered, so the action-mask reachability test can pass.
- Questions catalog is ASCII, so
netforge questionsdoes not crash on Windows cp1252.
Notes (non-blocking)
- First commit subject has a UTF-8 BOM (
Split...). Harmless but ugly ingit log. - Until #11 lands, GitHub still runs
.github/workflows/python-app.yml(ruff check .on the whole tree). Expect that job to stay red on pre-existing simulator files; it is not a regression from this PR. python -m netforgeneeds thenetforgepackage, which is in this PR. Docs/README follow in #10.
Unindent the evaluate command in the docstring and construct FrameRecorder before asserting empty save. Co-authored-by: Cursor <cursoragent@cursor.com>
Ruff 0.16 treats a bare ignore list as a much larger rule set, which fails on the existing simulator files. Co-authored-by: Cursor <cursoragent@cursor.com>
elprofesoriqo
added a commit
that referenced
this pull request
Sep 20, 2026
## Summary - Replace MkDocs with Sphinx + Furo (FlowEdge parchment/wine, Excalidraw figures). - Rewrite README and docs around the cybersecurity RL gym: SIEM vs oracle, first run, Arena, packs. - No Light/Dark/Auto picker; theme follows the browser. Keep arXiv citation and CybORG/DSTG license notes. ## Test plan - [ ] `pip install -e ".[docs]"` - [ ] `sphinx-build -b html -W --keep-going docs docs/_build/html` - [ ] Open `docs/_build/html/index.html` and confirm nav has no Light/Dark/Auto controls ## Checklist - [x] One issue, one PR - [ ] Tests added or updated - [x] Did not vendor a training algorithm (MAPPO / QMIX / CT-GMARL stay out of tree) - [x] User-path docs updated only if the user path changed Stacked on #9. Retarget to `main` after #9 merges.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
EnvConfig, tick/reset split, and Gymnasium / PettingZoo ids (NetForge/Blue-v4,netforge/ransomware-v4).netforgeCLI (python -m netforge).make_blueexample. Trainers stay out of tree.Test plan
pytest tests/ -m fastpython -m netforge versionandpython -m netforge run ransomware --max-ticks 8python -c "import netforge_rl; from pettingzoo import make; make('parallel', 'netforge/ransomware-v4', max_ticks=4).reset(seed=0)"Checklist
Stacked: merge this before #docs and #ci PRs.