{"policy_sha256":"450065b234ae1726feee3c459a8393ac623e9d8f8324b8cddc78374c25f27e12","policy":{"max_timeout_s":300,"max_mem_mb":512,"max_cpus":1.0,"max_pids":64,"network_allowlist":[],"allow_unknown_tools":false,"allowed_languages":["python","bash","sh"],"blast_radius_thresholds":{"allow":30,"approval":70}},"arena_caps":{"timeout_s":10,"mem_mb":128,"cpus":0.5,"pids":32},"task_caps":{"timeout_s":20,"mem_mb":256,"cpus":0.5,"pids":64},"runtime":"runsc","docker_create":["docker","create","--interactive","--name","airlock-<id>","--read-only","--tmpfs","/work:rw,noexec,nosuid,nodev,size=64m,uid=0,gid=0,mode=0755","--tmpfs","/tmp:rw,noexec,nosuid,nodev,size=16m,mode=1777","--tmpfs","/dev/shm:rw,noexec,nosuid,nodev,size=8m,mode=1777","--user","0:0","--cap-drop","ALL","--cap-add","SETUID","--cap-add","SETGID","--cap-add","SETPCAP","--security-opt","no-new-privileges","--pids-limit","512","--memory","128m","--memory-swap","128m","--cpus","0.5","--ulimit","nofile=256:256","--network","none","--runtime","runsc","-e","LANG=C.UTF-8","-e","LC_ALL=C.UTF-8","-w","/work","python@sha256:b18b261e1b4974b4f321451ad5251ded85abb22c2b8b262da527dda1d031ab30","python3","-c","<bootstrap>"],"process_limits":{"arena":{"job_nproc":32,"cgroup_pids_headroom":512},"task":{"job_nproc":64,"cgroup_pids_headroom":512},"note":"job_nproc is RLIMIT_NPROC for the job uid, the job-facing process cap and the pids value in the signed caps. cgroup_pids_headroom is docker --pids-limit: equal to job_nproc under runc, larger under runsc because there it counts sandbox kernel threads. Under runsc a fork-heavy job usually hits the memory cap (OOM kill) before RLIMIT_NPROC. policy.max_pids is only the ceiling for a requested pids cap."},"size_limits":{"body_bytes":98304,"code_bytes":8192,"input_bytes":32768,"log_bytes":32768},"rate_limits":{"arena_per_ip_per_min":6,"arena_per_ip_per_day":100,"task_per_ip_per_min":2,"task_per_ip_per_day":20,"llm_tasks_global_per_day":400,"concurrent_sandboxes":2},"rule_codes":["R-AWK-ARGV","R-AWK-ENV","R-AWK-FILE","R-AWK-GETLINE","R-AWK-REDIRECT","R-AWK-SYSTEM","R-BIN","R-BLAST-001","R-FORK-001","R-GZIP-INPLACE","R-JQ-ENV","R-JQ-FILE","R-LANG-001","R-PATH-DANGER","R-PY","R-PY-ATTR-DANGER","R-PY-ATTR-DENIED","R-PY-BUILTINS","R-PY-DUNDER-STR","R-PY-FORMAT-ATTR","R-PY-GETATTR","R-PY-GETATTR-DANGER","R-PY-GLOB-TRAVERSAL","R-PY-HUGE-ALLOC","R-PY-INFINITE-LOOP","R-PY-INTROSPECT","R-PY-MOD","R-PY-MOD-OS","R-PY-MOD-STAR","R-PY-MOD-UNKNOWN","R-PY-MODULE-ALIAS","R-PY-OPEN-ALIAS","R-PY-OPEN-FD","R-PY-OPEN-NONLITERAL","R-PY-OPEN-PATH","R-PY-OPEN-READ","R-PY-OPEN-TRAVERSAL","R-PY-OPEN-WRITE","R-PY-PATH-METHOD-REF","R-PY-PATHLIB-READ","R-PY-PATHLIB-WRITE","R-PY-SYNTAX","R-PY-SYS-ATTR","R-PY-SYS-MODULES","R-PY-TYPE","R-PY-URL-FILE","R-PY-ZIP-WRITE","R-SED-FLAG","R-SHELL-ASSIGN","R-SHELL-BIN-UNKNOWN","R-SHELL-CONTROL","R-SHELL-DEVICE","R-SHELL-DEVICE-SIZE","R-SHELL-DEVTCP","R-SHELL-EXEC-FILE","R-SHELL-GLOB-CMD","R-SHELL-INTERP","R-SHELL-OPTION","R-SHELL-PARSE","R-SHELL-PATH","R-SHELL-PATTERN","R-SHELL-PROCSUB","R-SHELL-PYTHON","R-SHELL-PYTHON-C","R-SHELL-REDIRECT","R-SHELL-SCRIPT-WRITE","R-SORT-COMPRESS","R-SORT-OUTPUT","R-TEE-PATH","R-TOOL-001"],"verifier_checks":["V-EXIT-OK","secret scan of stdout","container/network removed"],"default":"deny: anything the allow-lists do not understand"}