The frontier coding agent as a mixin -- Amp's own installer, the Amp credential, and its egress. ...
69
The frontier coding agent as a mixin -- Amp's own installer, the Amp credential, and its egress. Layer it onto a shell base and run `amp`.
| Name | Required | Default | Description |
|---|---|---|---|
version | Optional | 0.0.1789905635-g0f1dca | Amp release to install |
[email protected]| Type | Required | Description | |
|---|---|---|---|
com.docker.sandbox/network-policy@1 | Required | — | |
com.docker.sandbox/credential@1 | Optional | Amp API access | |
com.docker.sandbox/agent-context@1 | Required | — | |
sbx run <agent> --kit docker/sbx-kit-amp-mixin:latestRun the following command to install sbx on your machine.
brew install docker/tap/sbxwinget install Docker.sbxNote
Experimental: Sandbox Kit v3This kit uses the experimental Sandbox Kit specification, specifically v3. The format and runtime behavior may change before v3 is stable.
The mixin form of the amp kit: Amp layered onto a shell workload,
instead of a whole sandbox of its own.
A kind: mixin kit carrying the same declarations the workload makes — the
Amp credential, the ampcode.com runtime allow list, and the agent context
body — plus Amp itself in an overlay.
The overlay (amp-mixin.dockerfile) runs Amp's own
installer at build time with AMP_HOME=/opt/amp, which relocates the whole
install tree, and adds a /usr/local/bin/amp symlink so the binary resolves
on any base. Nothing lands under /home, so a mounted home volume on the
composing sandbox cannot cover it.
This kit used to be declaration-only, with an install hook doing the work at sandbox-create time — the shape a v2 mixin was stuck with, since v2 mixins could carry no content. Building the install instead means no download per sandbox create, no install-phase egress in the policy, and layers that are digest-pinned and scannable.
The Amp release is pinned: the descriptor's version arg holds it, the recipe
exports it as AMP_VERSION for Amp's installer, the kit publishes
provides: ["amp@<version>"] from the same arg, and the build fails if
amp --version reports anything else. Read
https://static.ampcode.com/cli/cli-version.txt to bump it, and bump
../amp in the same change — the two kits provide the same name and
must name the same release.
$ sbx create --kit <shell-workload> --kit ./amp-mixin
$ amp --dangerously-allow-all
ENTRYPOINT: the base workload's stays, and
amp is something you run from its shell — which is also where the
--dangerously-allow-all the standalone kit's entrypoint carries has to be
passed by hand.AGENTS.md profile. filename is workload-only; this kit
contributes a context body and the base workload owns the file it lands in.sbx@1 and the sandbox identity, and the platform floor — bash, the
agent user, git, a CA store.amp and amp-mixin both provide amp, so they are alternatives: composing
the two together is refused, one capability having one provider.
Pulls:
4
Last week