"""OS-level process restriction for child processes the agent spawns. Scope, stated before anything else, because this is the area of the project most likely to be over-read: * **Windows is implemented and tested.** :mod:`distinct_agent.isolation.windows` creates a real kernel Job Object, applies process-count, memory, CPU-time and UI limits, and assigns the child *before it runs a single instruction*. ``tests/test_agent_isolation.py`` proves each limit actually bites by launching real processes and watching them fail. * **Linux is design only and untested.** :mod:`distinct_agent.isolation.linux` contains no working implementation — only the intended namespace/seccomp/ cgroup design, marked as such. There is no Linux host in this development environment, so nothing there has ever been executed, and it must not be described as working. **What the Windows layer is and is not.** A Job Object is a resource-control and containment boundary: it stops a runaway or forking child, caps what it can consume, and guarantees no orphans survive the parent. It is *not* a full security sandbox. The child still runs with the operator's token and can read the files that token can read. Restricted tokens and AppContainer would narrow that further and are not implemented; see PLAN.md §12. """ from __future__ import annotations import sys from .base import ( IsolationUnavailable, ProcessRestriction, RestrictionReport, describe_support, spawn_restricted, ) from .request import RequestSandbox, SandboxReport, describe_request_isolation WINDOWS = sys.platform == "win32" __all__ = [ "WINDOWS", "IsolationUnavailable", "ProcessRestriction", "RequestSandbox", "RestrictionReport", "SandboxReport", "describe_request_isolation", "describe_support", "spawn_restricted", ]