# Hugging Face token - needed for the leaderboard Dataset and any gated model downloads. HF_TOKEN= # Modal (modal.com) - guardian GPU backend. Get deploy creds via `modal token new`. MODAL_TOKEN_ID= MODAL_TOKEN_SECRET= MODAL_ENDPOINT= # MiniCPM Modal URL (after `modal deploy modal_app.py`) MODAL_API_KEY= # shared secret: set on Modal (`modal secret create`) + here on the Space NEMOTRON_MODAL_ENDPOINT= # Nemotron Modal URL (see modal_app.py deploy notes) MODAL_MIN_CONTAINERS=0 # 1 = keep one warm L4 replica for demos (~$0.80/hr); 0 = scale-to-zero GUARDIAN_BACKEND=modal # modal (primary) | llama_cpp (offline) | mock (no model) # Guardian models (override to retune). Ids verified on Hugging Face, Jun 2026. GUARDIAN_HF_MODEL=openbmb/MiniCPM4-8B # Modal GPU primary (OpenBMB) GUARDIAN_GGUF_REPO=openbmb/MiniCPM4-8B-GGUF # llama.cpp fallback / Offline Mode GUARDIAN_GGUF_FILE=MiniCPM4-8B-Q4_K_M.gguf # verified in openbmb/MiniCPM4-8B-GGUF NEMOTRON_GGUF_REPO=bartowski/nvidia_Nemotron-Mini-4B-Instruct-GGUF NEMOTRON_GGUF_FILE=Nemotron-Mini-4B-Instruct-Q4_K_M.gguf # Optional: Unplug ML classifier override. Leave unset to use the catalog (unplug-tiny at L5). UNPLUG_MODEL_PATH= # Datasets - leaderboard + attack-corpus flywheel (created on first run). LEADERBOARD_DATASET=chiruu12/jailbreak-dojo-leaderboard CORPUS_DATASET=chiruu12/jailbreak-dojo-corpus