Skip to content

Adapters and profiles

An adapter is one module in runner/adapters that translates a contract's neutral policy into one sandbox's configuration and command line. It never reads the attack. It does three things:

  • identity() records the sandbox's name, version, commit, license and the hash of the binary that ran.
  • check(contract) names the policy fields the sandbox cannot express (unsupported) or the lab cannot provide (needs-feature).
  • wrap(...) builds the command that runs a phase under the sandbox.

The engine, the contracts and the format do not change when a sandbox is added. Each sandbox has a page saying how its adapter maps every field: Sandboxes.

Profiles

The policy says what a contract asks for. A sandbox usually has options the policy does not mention, and the profile says how the adapter sets them. strict sets each to the most restrictive value the sandbox's own documentation supports that still lets the control run. default leaves the sandbox's defaults. Every published run so far is strict, and every row of All runs names its profile.