tai42-contract
Pure interface contracts for the TAI ecosystem: the protocols, ABCs, pydantic
models, and enums every other package builds against. At runtime this package
imports nothing but pydantic, and its behaviour is limited to a narrow
whitelisted surface — the tai42_app forwarding handle, model-level
validators/normalizers, the bind/read/reset accessors of the ambient run context
variables, the storage path guard, and Agent's default
astream/terminal-drain with its park conversion SuspendedFinal.to_suspended_interaction;
everything else is a pydantic model, Protocol, ABC, or
enum. Logic over this vocabulary that plugins, engines and the server share
lives in tai42-kit: park adoption and the chained-call notices
(tai42_kit.interactions.park_adoption), the park marker builder and reader
(park_marker), the whole-chain kill handlers (park_kill), the failed-outcome
text (outcome_text), and the inbound-media turn shaping and entry-params policy
(tai42_kit.conversations.inbound_media, tai42_kit.conversations.entry_params). Vendor types (fastmcp, starlette, mcp) appear only inside
TYPE_CHECKING blocks, so they are never loaded when the code runs.
Position in the ecosystem
TAI is an open-source runtime for MCP tools, agents, and workflows — the server that hosts a capability and supplies the operational layer around it (manifest loading, access control, OAuth connectors, background execution, monitoring, storage, and human-in-the-loop steps). Everything plugs in against the interfaces this package defines.
Four packages; each depends only on the ones to its left:
tai42-kit <--.
/ (helpers) \
tai42-contract <-+ +-- tai42-skeleton
(interfaces) \ / (the server)
tai42-cli <--'
(the remote client)
tai42-contract is the leaf: it depends on no other tai-* package, so anything —
the skeleton, the CLI, a plugin, a helper — can import it without pulling in an
implementation.
Install
Requires Python 3.13+. Install from PyPI into the environment that runs the
server. Usually pulled in transitively via tai42-kit / tai42-skeleton, but it
installs directly too:
uv add tai42-contract
Or from source — clone this repo and add it as an editable dependency:
git clone https://github.com/tai42ai/tai42 # next to your app checkout
cd /path/to/your/app
uv add --editable ../tai42/core/contract
Development
uv venv --python 3.13
uv pip install --no-sources --editable ".[dev]" # pydantic + tooling + vendor libs (for pyright)
uv run --no-sync ruff check .
uv run --no-sync ruff format --check .
uv run --no-sync pyright
uv run --no-sync pytest --cov --cov-report=term-missing # self-contained contract tests
Documentation
The whole platform — concepts, guides, and the generated reference — lives in the unified documentation site:
- Layering & the contract/kit/cli/skeleton split: https://tai42.ai/concepts/layering
- Python SDK reference (this package's public API): https://tai42.ai/reference/python-sdk
License
Apache-2.0. See LICENSE and NOTICE.
Metadata
Release files for tai42-contract 24.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| tai42_contract-24.0.0.tar.gz | 359.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tai42_contract-24.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 797.1 kB
Release files / tai42_contract-24.0.0.tar.gz
| Download URL | tai42_contract-24.0.0.tar.gz |
|---|---|
| Size | 359.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
233de45a5321f20fb9f2d78e4c762ec0a2fbd39cfc186b4b2bad388452c70b6f
|
|
BLAKE2b-256 checksum How to use checksums |
f9f0ff5f6c4cc4f2ac7a60b3c7bcc8a3da3e12f5533394776c76f18067ab1b1b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / tai42_contract-24.0.0-py3-none-any.whl
| Download URL | tai42_contract-24.0.0-py3-none-any.whl |
|---|---|
| Size | 437.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2779cd6230bfa9ff160a6d542b16542abdef3ae947c40a63ba5bd4a3fd28761a
|
|
BLAKE2b-256 checksum How to use checksums |
661da933bd12052fc58804196841980f8965de7a61fc68eb1c7d106fbdc82285
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for tai42-contract 24.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.