All notable changes to the runinfra Python SDK are documented here. This
project follows Semantic Versioning.
InsufficientCreditsErrornow exposescurrent_balance_cents,required_cents, andtopup_urlwhen the gateway includes them on a402response, so callers can render a precise top-up prompt without parsing the message string.
PermissionDeniedError.typenow preserves a specific gateway discriminator on403responses (for examplebyoc_plan_requiredwhen a workspace below the deploy tier calls a BYOC-deployed endpoint) instead of always reportingpermission_denied. Branch onerr.typerather than scrapingstr(err).
- Added examples for chat, Responses streaming, embeddings, model discovery, and webhook verification.
- Clarified deployment requirements for image, audio, and co-located voice pipeline helpers.
- Clarified webhook helpers as local signature verification APIs. Webhook delivery management remains outside the public SDK surface.
- Added typed helpers for chat completions, Responses, embeddings, image generation, text to speech, speech to text, model discovery, local webhook signature verification, and co-located voice pipelines.
- Added explicit OpenAI-style keyword parameters for chat, Responses,
embeddings, image generation, TTS, and ASR helpers, including
extra_bodyfor deliberate JSON gateway extensions. - Added Python overloads so
stream=Truecalls on chat completions and Responses narrow toRunInfraStreamwhile non-stream calls keep their typed response envelopes. - Added concrete asyncio and FastAPI background-task examples for using the sync client safely in async Python runtimes.
- Added typed gateway errors for authentication, permissions, rate limits, insufficient credits, deployment failures, missing models, timeouts, connection failures, and malformed streams.
- Kept the public
client.webhooksnamespace focused on local signature verification. Verification remains available throughverify_signature,construct_event,verify_webhook_signature, andconstruct_webhook_event. - Replaced arbitrary
**kwargson public request helpers with explicit keyword parameters plusextra_bodyfor deliberate JSON body extensions. - Closed ASR multipart requests around explicit file, filename, language, prompt, temperature, and response-format fields.
- Documented the Responses helper as a chat-completions compatibility adapter instead of full OpenAI Responses state.
- Kept charge-bearing retries conservative. Embeddings, images, streaming, binary TTS, multipart ASR, and voice-pipeline requests are sent once even when an idempotency key is provided.
- Hardened API-key redaction in transport errors, response body errors, stream read errors, traceback output, and exception chains.
- Limited the published package contents to the runtime SDK, type metadata, README, changelog, license, and package metadata.
UnsupportedOperationErrorremains exported for older v0.1.x consumers, but current public helpers do not raise it.
- Improved package content validation for installed SDK files.
- Improved install consistency across the TypeScript and Python packages.
- Aligned TypeScript and Python package metadata for the same release.
- Clarified that the voice pipeline helper is a pipeline-scoped preview surface.
- Switched Python license metadata to the non-deprecated
licenseandlicense-filesform.
- Updated repository and issue URLs to point at the public SDK repo.
- Clarified package status as beta while image and audio helpers remain deployment-dependent preview surfaces.
- Added the modality status section to the README.
- Added preview docstrings for deployment-dependent helpers.
Initial public release. See README for the API surface.