shadowops-hackathon / backend-ml /schema_contract.json
ShadowOps Deploy
Final deploy: Monolithic ShadowOps app + Training Scripts
d064478
{
"name": "shadowops_openenv_contract",
"version": "1.0.0",
"environment": "ShadowOpsOpenEnvV1",
"entrypoint": "backend-ml/openenv_shadowops_env.py:ShadowOpsOpenEnvV1",
"deterministic_seed_support": true,
"action_space": {
"type": "discrete",
"mapping": {
"0": "ALLOW",
"1": "BLOCK",
"2": "FORK",
"3": "QUARANTINE"
},
"labels": ["ALLOW", "BLOCK", "FORK", "QUARANTINE"]
},
"observation": {
"type": "object",
"required": ["prompt", "risk_vector", "quarantine", "available_actions", "incident_state"],
"properties": {
"prompt": {"type": "string"},
"risk_vector": {"type": "array", "items": {"type": "number"}, "minItems": 16, "maxItems": 16},
"quarantine": {
"type": "object",
"required": ["active", "steps_remaining_normalized"]
},
"available_actions": {"type": "array", "items": {"type": "string"}},
"incident_state": {
"type": "object",
"required": ["domain", "intent", "payload", "tier", "ambiguity_score", "step_count", "health", "memory_context"]
}
}
},
"step_info": {
"required": [
"action",
"domain",
"intent",
"outcome",
"reward_rubric",
"memory_context",
"missing_evidence",
"evidence_plan",
"safe_outcome"
]
},
"reward_breakdown": [
"action_correctness_reward",
"safety_penalty",
"false_positive_penalty",
"evidence_completeness_reward",
"risk_chain_handling_reward",
"uncertainty_handling_reward"
],
"done_condition": "done is true when the configured episode_max_length is reached.",
"safe_defaults": {
"model_loading_required": false,
"hf_jobs_required": false,
"gpu_required": false
}
}