Skip to main content

protocol_transport

The PGC transport boundary engine — a domain-neutral, protocol-neutral governed boundary between external interaction protocols (HTTP, RPC, CLI) and a PGC execution universe.

It knows how to transport. It declares nothing about what is transported: every route, operation, and workflow binding arrives as configuration the engine is pointed at, never hardcoded. The domain/platform declares what may be transported.

Semantic authority: TRANSPORT_STANDARD_V0.md (Phase-1 frozen). Read it first. For working in this repo, see CLAUDE.md.


The invariant

Many external protocols may bind to one Operation Identity; one Operation Identity resolves to one governed PGC invocation contract; the external protocol is replaceable, while the governed interaction remains stable.

HTTP / RPC / CLI
      │            (external protocol)
      ▼
  Protocol Adapter        ─ translates wire ↔ Canonical Transport Request/Response (owns no domain meaning)
      ▼
  Operation Identity      ─ stable public name (e.g. collatz.compute); NEVER a workflow id
      ▼
  TI  → handler → TE      ─ ingress contract → invocation → egress classification
      ▼
  Canonical Response      ─ protocol-neutral { outcome, result_class, result, evidence, errors }
      ▼
  Response Projection     ─ adapter maps Result Class → HTTP status / RPC error / CLI exit

TI/TE and the workflows they bind to are domain-governed and live outside this repo (in the platform/domain surface). This repo is only the engine.


Layout

Path Role
contracts/ Canonical, protocol-neutral interop objects — TRANSPORT_REQUEST_V0, TRANSPORT_RESPONSE_V0
pgc_transport/request.py The Canonical Transport Request every adapter builds. No protocol in it.
pgc_transport/resolver/ The generic resolution engine: operation → TI → handler → TE → Canonical Response. Zero domain knowledge.
pgc_transport/adapters/http/ HTTP mechanics: static mounts, the External Protocol Binding table (data), Response Projection
pgc_transport/adapters/cli/ The pgc_transport command: one request from the command line, and the HTTP adapter's launcher
TRANSPORT_STANDARD_V0.md The frozen semantic model
run_http.sh Domain-neutral launcher (env-provisioned; names no workload)

The acid test

The engine holds no domain knowledge. Grep pgc_transport/ for any workload or field name (collatz, number, steps, a route literal) and you find nothing. Everything domain-specific is data the engine is pointed at:

  • operations (TI/TE declarations) via PGC_OPERATIONS_ROOTS
  • routes → operations via the External Protocol Binding JSON (PGC_HTTP_BINDINGS)
  • static content via PGC_STATIC_MOUNTS

Adding an operation is additive — a new TI/TE pair plus a binding line — with no engine change.


Running

run_http.sh is generic and requires the environment to point it at roots. A concrete composition (the platform reference surface) lives at conformance_workloads/workloads/collatz/client/serve.sh, which supplies every PGC_* variable and execs this launcher:

./conformance_workloads/workloads/collatz/client/serve.sh      # serves the reference surface on :8000

Installed as pgc-transport, the same boundary is the pgc_transport command. It is pointed at a snapshot and an instance root, like the HTTP adapter:

export PGC_SNAPSHOT_ROOT=snapshot PGC_DATA_ROOT=data
pgc_transport call collatz.compute '{"number": 27}'    # prints the Canonical Transport Response
pgc_transport http                                     # serves the HTTP adapter, as run_http.sh does

call exits with the adapter's projection of the Result Class: 0 SUCCESS, 1 VIOLATION, 3 UNAUTHORIZED, 4 NOT_FOUND, 5 OPERATION_NOT_FOUND, 6 EXECUTION_FAILURE. 2 means the invocation itself was malformed and never reached the boundary.

See CLAUDE.md for the full configuration surface and architectural rules.


Layer position

external world  →  transport (adapter → resolver)  →  runtime (executes)  →  transport (TE → adapter)  →  external world

The engine's only cross-repo dependency is the runtime execution interface (runtime.api.invoke_workflow) — it never imports the compiler, protocol, or any domain.

Metadata

Release files for pgc-transport 6.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 pgc-transport 6.0.0
File Size Uploaded Provenance
pgc_transport-6.0.0.tar.gz 19.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pgc-transport 6.0.0
File Interpreter ABI Platform
pgc_transport-6.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 42.0 kB

Release files / pgc_transport-6.0.0.tar.gz

Download URL pgc_transport-6.0.0.tar.gz
Size 19.9 kB
Tags Source
SHA-256 checksum
How to use checksums
34ed986a1d4076d52fc6c14d8277eef6724b69c82ce596e3b6608f77d5ef79d8
BLAKE2b-256 checksum
How to use checksums
c35b8f05b2b0b0dd6668e3ebd1ac4b05ac186541080eede95a5a536339fc8300
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / pgc_transport-6.0.0-py3-none-any.whl

Download URL pgc_transport-6.0.0-py3-none-any.whl
Size 22.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fd409cf345cc4aa3257df3dd019deb2ffd1b26481e737d7f630f59279e74e8a2
BLAKE2b-256 checksum
How to use checksums
79f2076da6c2d80ac3a3261f18e9a365e9de5de5441c59c69d78e89af62bc435
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Security for pgc-transport 6.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.

Release history Release notifications | RSS feed

This release

6.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