import type { SandboxAdapter, SandboxMachine } from "../escalation/sandbox.js"; /** * The conformance app every harness must install in the box (on $PORT): * - `GET /conformance/env/` → 200, body = the box's value for env NAME * - `POST /fn/echo` → 200, body echoed back * - `GET /conformance/egress/` → 200 JSON `{"allowed": boolean}` — an * outbound `https://` attempt (real or provider-faithfully simulated) */ export interface SandboxConformanceHarness { makeAdapter(): SandboxAdapter | Promise; /** * Install the conformance app in a freshly created machine through * provider-private means (in production the in-box agent owns the inside of * the box; here it is test scaffolding — e.g. adapter-private exec for a * live provider, an in-process handler for the fake). */ bootstrap(machine: SandboxMachine): Promise; /** True when the adapter enforces create()'s allowedDomains; enables the egress case. */ enforcesAllowedDomains: boolean; /** * True when a DEFAULT request() (no explicit port) reaches the app on its * $PORT whatever that is (e2b). The Vendo Cloud relay defaults to the one * canonical box port instead — explicit ports route fine, but the * "$PORT by default" case is provider-specific and tested beside the * adapter. */ multiPort: boolean; /** * True when resume() mints an INDEPENDENT machine per call (e2b restores a * checkpoint into fresh sandboxes; Cloud's artifact model does the same). A * pause-model provider that revives the ONE machine a snapshot came from * would set this false and skip the independent-machines and fresh-id cases. */ resumeForks: boolean; /** * True when resume(ref, policy) can REPLACE the snapshot-time egress * allowlist — e2b via provider network rules, Cloud by stating the allowlist * on every resume. A provider that only takes the bare ref sets this false. */ resumeReplacesPolicy: boolean; } /** execution-v2 sandbox-seam conformance suite shared by the fake and live adapters. */ export declare const sandboxAdapterConformance: (name: string, harness: SandboxConformanceHarness) => void; //# sourceMappingURL=adapter-conformance.d.ts.map