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
EIPClientmethods for the complete protocol surface; RequestCoordinatorfor bounded request IDs, concurrent response correlation, data-frame routing, typed errors, and no automatic ambiguous retry;StdioTransportfor multiplexed content-length control and binary data frames over trusted parent-supplied asyncio process pipes;HttpTransportfor authenticated Host-dialed control requests and raw streaming transfer bodies over HTTP(S);AcceptedWebSocketTransportfor EIP framing over an already-authenticated reverse-WebSocketServerConnectionaccepted by the Host;EIPSessionfor 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
EIPFileReaderandEIPFileWriterasync context managers, exposed byEIPSession.open_reader()andEIPSession.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
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 a13n_envd_client-0.0.4.tar.gz.
File metadata
- Download URL: a13n_envd_client-0.0.4.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab1d653c354acb64957032fe1782dff17ef5cf65ee310f357662c7a10adce6be
|
|
| MD5 |
e1248ac81c30c06c57dff34ad4cbc8f8
|
|
| BLAKE2b-256 |
b27802ec73b88c2138ad3c943b4450459ced2896403fb24c43008915bf6a536d
|
File details
Details for the file a13n_envd_client-0.0.4-py3-none-any.whl.
File metadata
- Download URL: a13n_envd_client-0.0.4-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c77af1ad16272de341dd87b2db27f075d00ea1dcb5b44f2f3735ca8a8dd7d144
|
|
| MD5 |
bb954485481e779f0fc12f4d4740270f
|
|
| BLAKE2b-256 |
b8e395901cd92f23d8d47c07656d5d637485db832a2f9b97bf589c7a414b1b40
|