Seven HPP/2 SDKs
Generated sources are committed for C++, C#, Go, Java, JavaScript, Python, and Rust. Each contains protobuf message types plus the same minimal SessionState contract.
contracts/v2/sdk/├── cpp/├── csharp/├── go/├── java/├── javascript/├── python/└── rust/Generation versions and every artifact hash live in contracts/v2/sdk/GENERATION.json. Regenerate only with the pinned repository script:
cd contracts./scripts/generate-hpp2-sdks.shnpm testThe generated layer is the frozen cross-language wire surface. Rust production plugins additionally use formless_host::hpp2_sdk for the UDS gRPC session, bounded queues, provider dispatch, broker calls, subscriptions, cancellation, and lifecycle commands.
Request pattern
Section titled “Request pattern”- Allocate a unique correlation ID and next sequence.
- Register the request before sending its envelope.
- Accept zero or more non-terminal diagnostics/progress frames allowed by the contract.
- Complete exactly once on result, error, or cancellation.
- Record unknown or late terminals without mutating completed state.
Subscription pattern
Section titled “Subscription pattern”Subscriptions are long-lived and are not bounded by an arbitrary request timeout. They remain active until cancellation, generation teardown, provider withdrawal, or a terminal stream condition. Apply bounded buffering and explicit backpressure rather than silently dropping lifecycle ownership.