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_VERSIONand 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6fca59bd4beafbce58ef391bfcbc800fffceab4c518ce2467929f1eb085e64cb
|
|
| MD5 |
d2d4883452b512897eaf02635b346655
|
|
| BLAKE2b-256 |
9f36219a522436aa0b7f8598d3e1b297ec47272b481465eeb654018e000815a7
|
Provenance
The following attestation bundles were made for adapter_schemas-0.3.1.tar.gz:
Publisher:
package.yml on cymis/adapter-schemas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
adapter_schemas-0.3.1.tar.gz -
Subject digest:
6fca59bd4beafbce58ef391bfcbc800fffceab4c518ce2467929f1eb085e64cb - Sigstore transparency entry: 2704629164
- Sigstore integration time:
-
Permalink:
cymis/adapter-schemas@e8c75f3094d74e480310eafb00a271a95d25b1ae -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/cymis
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
package.yml@e8c75f3094d74e480310eafb00a271a95d25b1ae -
Trigger Event:
release
-
Statement type:
File details
Details for the file adapter_schemas-0.3.1-py3-none-any.whl.
File metadata
- Download URL: adapter_schemas-0.3.1-py3-none-any.whl
- Upload date:
- Size: 9.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
871888d158e7a765a89516ed58ab01e5fa1080d58363939a3d36b83e93280f02
|
|
| MD5 |
a1c4f3fac87e86bd95ee96a3408af43b
|
|
| BLAKE2b-256 |
c645f697dd3d05e8fcc12d2e04a0c6f902e45b52bcaa76333fa9943efe700874
|
Provenance
The following attestation bundles were made for adapter_schemas-0.3.1-py3-none-any.whl:
Publisher:
package.yml on cymis/adapter-schemas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
adapter_schemas-0.3.1-py3-none-any.whl -
Subject digest:
871888d158e7a765a89516ed58ab01e5fa1080d58363939a3d36b83e93280f02 - Sigstore transparency entry: 2704629178
- Sigstore integration time:
-
Permalink:
cymis/adapter-schemas@e8c75f3094d74e480310eafb00a271a95d25b1ae -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/cymis
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
package.yml@e8c75f3094d74e480310eafb00a271a95d25b1ae -
Trigger Event:
release
-
Statement type: