opensoc-env / tasks /registry.py
shivam2k3's picture
OpenSOC v1
bb6a031
"""
tasks/registry.py — Curriculum stage registry for OpenSOC.
The four stages map onto the `tasks` block in `openenv.yaml`. Each entry
controls how `OpenSOCEnv` materializes incidents in `defender_only` mode
(SFT warmstart, eval, simple smoke tests). In `self_play` mode, the
attacker LLM drives the distribution and these defaults are unused.
"""
from __future__ import annotations
from typing import Dict, TypedDict
class StageConfig(TypedDict):
description: str
difficulty: str
seed_offset: int
STAGE_REGISTRY: Dict[str, StageConfig] = {
"stage1_basic": {
"description": (
"Single-event incidents from a small set of unambiguous templates. "
"Used to bootstrap defender format learning."
),
"difficulty": "easy",
"seed_offset": 1_000,
},
"stage2_multi": {
"description": (
"Multi-event incidents where the malicious signal is spread across "
"a short log window."
),
"difficulty": "medium",
"seed_offset": 2_000,
},
"stage3_mixed": {
"description": (
"Benign decoy events interleaved with malicious ones; tests "
"false-positive suppression."
),
"difficulty": "hard",
"seed_offset": 3_000,
},
"stage4_adversarial": {
"description": (
"Attacker-controlled distribution (self-play) or held-out "
"adversarial set (eval)."
),
"difficulty": "adversarial",
"seed_offset": 4_000,
},
}
__all__ = ["STAGE_REGISTRY", "StageConfig"]