Skip to main content

a13n Envd Client

a13n-envd-client is the Python client for the Agent Environment Interaction Protocol (EIP). It belongs to the a13n-envd release group and is versioned and published together with a13n-envd.

Available surface

The package currently provides:

  • generated EIP 0.1 Pydantic wire models, canonical codecs, method metadata, and typed EIPClient methods for the complete protocol surface;
  • RequestCoordinator for bounded request IDs, concurrent response correlation, data-frame routing, typed errors, and no automatic ambiguous retry;
  • StdioTransport for multiplexed content-length control and binary data frames over trusted parent-supplied asyncio process pipes;
  • HttpTransport for authenticated Host-dialed control requests and raw streaming transfer bodies over HTTP(S);
  • AcceptedWebSocketTransport for EIP framing over an already-authenticated reverse-WebSocket ServerConnection accepted by the Host;
  • EIPSession for initialization, mandatory initial readiness validation, fresh bounded readiness observations, exact required-method/generation/descriptor validation, monotonic method-and-limit refresh that rejects topology/posture/feature changes or widening, and session close;
  • high-level EIPFileReader and EIPFileWriter async context managers, exposed by EIPSession.open_reader() and EIPSession.open_writer(), for bounded streaming file transfer.

Configured daemons can expose resource reads, atomic mutations, find, search, receipts, and port observation through the generated client. Trusted stdio, Host-dialed HTTP(S), and Host-accepted reverse WebSocket carry the same EIP method/session contract. Provider process creation, HTTP credential issuance, reverse-WebSocket listener authentication, and lifecycle policy remain outside this package.

Example

The process launch below is illustrative fixture code. Production launch configuration belongs to the provider/Host boundary.

import asyncio
import os

from a13n_envd_client import EIPSession, StdioTransport


async def main() -> None:
    process = await asyncio.create_subprocess_exec(
        "a13n-envd",
        stdin=asyncio.subprocess.PIPE,
        stdout=asyncio.subprocess.PIPE,
        stderr=asyncio.subprocess.PIPE,
        env={
            "PATH": os.environ["PATH"],
            "A13N_ENVD_ENVIRONMENT_ID": "env-provider-owned-id",
            # Use this only when an outer sandbox owns containment.
            "A13N_ENVD_EXECUTION_ISOLATION": "disabled",
        },
    )
    session = await EIPSession.initialize(
        StdioTransport.from_process(process),
        expected_environment_id="env-provider-owned-id",
        required_methods=("environment.describe", "environment.readiness", "session.close"),
    )
    readiness = await session.readiness()
    assert readiness.ready
    descriptor = await session.describe()
    print(descriptor.generation)
    await session.close()
    await process.wait()


asyncio.run(main())

An EIPMethodError contains the generated typed EIPError. Carrier timeouts and cancellation never claim that an already sent operation failed or was absent; the client does not retry a possibly dispatched mutation automatically. Mutation callers reconcile by reusing the same operation ID and semantic request while evidence remains, querying its receipt, or observing native state before starting another operation.

Versioning

The Python package and daemon artifacts share one stable X.Y.Z or RC X.Y.Z-rc.N a13n-envd release identity. Python package metadata represents the RC as the equivalent PEP 440 version X.Y.ZrcN; Cargo, binary archives, and container tags retain the canonical SemVer spelling. The negotiated EIP major and minor version remains an independent wire-compatibility identity.

The accepted protocol, generation, ownership, and compatibility design is documented in the a13n-envd specification.

License

Licensed under the Apache License 2.0.

Download files

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

Source Distribution

a13n_envd_client-0.0.5.tar.gz (75.5 kB view details)

Uploaded Source

Built Distribution

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

a13n_envd_client-0.0.5-py3-none-any.whl (50.8 kB view details)

Uploaded Python 3

File details

Details for the file a13n_envd_client-0.0.5.tar.gz.

File metadata

  • Download URL: a13n_envd_client-0.0.5.tar.gz
  • Upload date:
  • Size: 75.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for a13n_envd_client-0.0.5.tar.gz
Algorithm Hash digest
SHA256 d7c096d151fab41708ce11a0ce0c4d6c82e0df4dce59f2926a8a2cc45eae6286
MD5 44cec6532afcce6b36a586c3ec8d5889
BLAKE2b-256 365a0e8ae31ab0b88467961bd4c9bfb63cc99c81e7a4c8695ce716e71ece5366

See more details on using hashes here.

File details

Details for the file a13n_envd_client-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: a13n_envd_client-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 50.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for a13n_envd_client-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 c97af0a86d392be82c6417857f0291da97a9e62e7d46b5180102d944f30c4cc2
MD5 08d611c297f712a646a1a1bf549f7cbf
BLAKE2b-256 934370714e024fae98af76d91c136b545031d7179a1385ae2dd7a77e2baa3dae

See more details on using hashes here.

Release history Release notifications | RSS feed

0.0.10

2 files

0.0.6

2 files

This release

0.0.5 This release

2 files

0.0.4

2 files

0.0.3

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