Chokepoint 1 — the governor
environment is an input to every evaluate call (PROTOCOLS.md §1). The
governor decides, and its Verdict carries a target:
target: "live"— an allowed action routes to the real provider.target: "sandbox"— an allowed action routes to the sandbox adapter instead.
target: "sandbox".
The open, per-primitive sandbox adapters honor that verdict — they are
simply where a sandbox verdict is carried out, executing the documented
sandbox behavior of each primitive and writing synthetic resources stamped
sandbox. Policy still runs identically; approvals still freeze. The decision is
the governor’s; the adapter only obeys the target it is handed.
Per-primitive sandbox behavior
Other guarded primitives (verification, connections, browser, compute, mobile)
return synthetic acknowledgements the same way. None can touch a real provider,
because a
sandbox verdict never routes to the live adapter.
Chokepoint 2 — the egress gateway
The egress gateway is the only egress-capable process on a Tower, and it independently enforces the operator’s environment — which it resolves from the runtime token before asking the governor:- No real credential injection for sandbox. On a terminating provider endpoint, a sandbox operator gets a synthetic body — the gateway never fetches or injects the platform credential via vaultd. Injection is only ever applied at a named terminating provider endpoint for a production operator, never generally.
- A narrowed CONNECT allowlist. The governor decides the host/SNI allowlist per operator + environment, so a sandbox operator’s generic web egress is restricted to the sandbox-permitted set; anything else is refused (and audited by host + verdict only).
Why production is impossible before promotion
The two chokepoints compose into a closed guarantee:- Every operator starts in sandbox (the kit’s mode; the DB default is a
fail-safe
sandbox). - The governor takes
environmenton every verdict, so a sandbox operator never receives atarget: "live"for a guarded action. - The open adapters can only carry out the
sandboxtarget they are handed — they have no path to the real provider. - The gateway refuses real injection and narrows egress for sandbox, so the transport to a live provider is closed too.
- Promotion flips only the mode; it never re-stamps sandbox residue, and
the governor refuses to replay a sandbox-stamped approval in production
(
environment_mismatch) — the action must be re-requested.
Both chokepoints fail closed. Stop the governor and every gated action returns
403 enforcement_unavailable; the gateway treats the same condition as
deny-all. See Security model and
Open core.