Add FSP multi-agent architecture: Red Team LLM action space + alternating turns
Ajayyy00 +1: Claude Sonnet 4.6
Step 1 — models.py
• New Red action classes: LateralPivot, DeployPayload, EvadeDetection, PassTurn
• RedActionWrapper (mirrors SOCActionWrapper for WS/HTTP routing)
• RED_ACTION_TYPES frozenset for payload routing
• SOCObservation: active_turn + red_observation fields
• SOCState: active_turn field
Step 2 — play_environment.py
• fsp_mode=False constructor flag; True enables strict Blue/Red alternation
• step() dispatches to _step_blue() or _step_red() based on action type
• _step_blue(): executes Blue action; in fsp_mode auto-flips to red without
incrementing step_count; in legacy mode auto-PassTurns + increments (backward compat)
• _step_red(): executes Red action, increments step_count, flips to blue
• Red handlers: _handle_lateral_pivot, _handle_deploy_payload,
_handle_evade_detection, _handle_pass_turn
• _generate_red_observation(): compromised_hosts + blue_actions_detected
• Removed deterministic _execute_lateral_pivot and _maybe_reinfect;
_adve…