Skip to content

Contributing an adapter

Use defineAdapter from @beachside/adapter to describe a provider. The definition connects through beachside using the public adapter contract. Implement only the operations the provider supports; the SDK handles resource references, validation, polling and public errors. Start with the adapter authoring guide and the copyable Acme example.

Use adapterSuite from @beachside/adapter/testing with a deterministic provider fixture. Include loss after effect, scope changes, binary output and recovery without another submission for every capability you claim. The fake provider is a simulation; it persists native effect evidence for these tests. Real-provider support requires separate native conformance evidence in the support matrix.

Develop from a checkout and use local packed artifacts for consumer qualification. Modal is a separate experimental @beachside/modal adapter with offline coverage; it is not a built-in SDK subpath or a live-qualified provider.

Maintenance Consumer import Distribution
Official Daytona / E2B @beachside/daytona / @beachside/e2b Separately installed alongside beachside
Third-party The author’s package name Separately installed; no SDK subpath

Follow the repository’s add-provider workflow and package conventions. The agent prompt provides a starting brief.

Run focused native-boundary tests, the conformance suite, package builds and type checks, and packed consumer tests. Packed checks must install the documented top-level packages and verify external TypeScript declarations and Node/Bun execution without workspace-only dependencies.

Live acceptance is separate. Follow the qualification workflow for an explicitly authorized run with finite resource limits, durable ownership records, and confirmed cleanup. Update the reviewed provider JSON and regenerate the evidence page; never turn fixture coverage into a live pass.