Skip to main content

tai42-contract

License: Apache 2.0

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:

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)

Source distribution for tai42-contract 24.0.0
File Size Uploaded Provenance
tai42_contract-24.0.0.tar.gz 359.6 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for tai42-contract 24.0.0
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

24.0.0 This release

2 release files No provenance

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