Skip to main content

adapter-schemas

The framework-free wire contract shared by Adagio's action backend and every execution adapter (adagio-server, Adagio Desktop, and future HPC/AWS/GCP adapters). It is the single source of truth for the pull-agent ↔ action boundary so the contract cannot drift between the backend and the adapters that talk to it.

It depends on nothing but pydantic — no FastAPI, no ORM, no adapter app code — so any service can install it cheaply and any language can consume the exported JSON Schema.

Install

After the 0.3.1 release is published to PyPI:

pip install adapter-schemas==0.3.1

Use

from adapter_schemas import ClaimedJob, NodeStatusReport, NodePhase, CONTRACT_VERSION

CONTRACT_VERSION is the wire protocol version ("2"). It is intentionally separate from this package's distribution version (0.3.1): the package can be repackaged/refactored without changing the on-the-wire contract, and vice-versa.

Layout

src/adapter_schemas/agent.py    the contract models (canonical)
src/adapter_schemas/__init__.py public API re-export + __all__
schema/adapter-schemas.json     JSON Schema projection (generated; lattice/TS source)
scripts/export_schema.py        regenerate schema/ from the models
tests/                          standalone-import + round-trip smoke tests

Regenerating the JSON Schema

The models are the source of truth; the JSON Schema is generated from them. After any model change:

python scripts/export_schema.py

Consumers in other languages (lattice's TypeScript) generate their types from schema/adapter-schemas.json — they must not hand-mirror the Python models. CI should run the export and fail if the checked-in schema is out of date.

Versioning / compatibility

  • Additive, backward-compatible changes → bump the minor package version.
  • Breaking wire changes → bump CONTRACT_VERSION and the package minor while the package is pre-1.0 (the package major after 1.0).
  • Adapters pin a compatible range (e.g. adapter-schemas~=0.3).

Action and the runner use synchronized vendored copies for development builds; published Python distributions use this package as an ordinary PyPI dependency. Storage transfer is deliberately outside this server-path execution contract.

Telemetry hardening (0.3.1)

Reports are bounded to one MiB of serialized JSON. Individual event/provenance metadata is limited to 64 KiB; traceback/error text to 65,536 characters; log entries to 4,096 characters; and log/event batches to 32 entries. These limits do not apply to pipeline input files or job counts. Runners split logs into bounded batches, retain full logs locally, and omit oversized optional metadata with a telemetry_truncated marker. Existing v2 runners should be updated before enforcing these bounds for workloads producing large reports.

A runner may report interrupted only for its own leased job (for example during shutdown). It is terminal and does not request a retry. Unknown event types are rejected for this wire version; forward-compatible event evolution is separate work.

The version above identifies the release candidate in this checkout; it does not assert that a package or Git release tag has been published. Verify publication and immutable consumer pins as part of release promotion.

Publishing

The GitHub repository can remain private. The MIT-licensed distributions on PyPI contain the Python contract code; the source archive also includes the generated JSON Schema and its tests. No Git history or application implementation is published.

See RELEASING.md in the repository for Trusted Publisher setup and release gates.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

adapter_schemas-0.3.1.tar.gz (17.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

adapter_schemas-0.3.1-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file adapter_schemas-0.3.1.tar.gz.

File metadata

  • Download URL: adapter_schemas-0.3.1.tar.gz
  • Upload date:
  • Size: 17.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for adapter_schemas-0.3.1.tar.gz
Algorithm Hash digest
SHA256 6fca59bd4beafbce58ef391bfcbc800fffceab4c518ce2467929f1eb085e64cb
MD5 d2d4883452b512897eaf02635b346655
BLAKE2b-256 9f36219a522436aa0b7f8598d3e1b297ec47272b481465eeb654018e000815a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for adapter_schemas-0.3.1.tar.gz:

Publisher: package.yml on cymis/adapter-schemas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file adapter_schemas-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for adapter_schemas-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 871888d158e7a765a89516ed58ab01e5fa1080d58363939a3d36b83e93280f02
MD5 a1c4f3fac87e86bd95ee96a3408af43b
BLAKE2b-256 c645f697dd3d05e8fcc12d2e04a0c6f902e45b52bcaa76333fa9943efe700874

See more details on using hashes here.

Provenance

The following attestation bundles were made for adapter_schemas-0.3.1-py3-none-any.whl:

Publisher: package.yml on cymis/adapter-schemas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page