Typed Pydantic models for the RCS → S1 (LiveKit dispatch worker) wire contract. Shared between RCS and any worker dispatched into a robot session.
Project description
menlo-rcs-types
Typed Pydantic models for the RCS → S1 (LiveKit dispatch worker) wire contract — the JSON payloads RCS attaches to LiveKit calls that any dispatched worker reads on connect.
Alpha: this package is in active development and may introduce breaking API changes between minor versions.
Install
uv add menlo-rcs-types
Models
DispatchMetadata (menlo_rcs_types.dispatch)
The JSON RCS passes to livekit.create_agent_dispatch(metadata=...). Each worker receives this on its JobContext.job.metadata.
class DispatchMetadata(BaseModel):
robot_id: str # the robot this session is for
user_id: str # who initiated the session
scene_id: str | None # optional scene tag
RoomMetadata (menlo_rcs_types.room)
The JSON RCS writes onto the LiveKit room itself. Visible to every participant; carries the orchestrator's view of room state.
class RoomMetadata(BaseModel):
robot_id: str
status: str
dispatched_agent_names: list[str]
required_participants: dict[str, RequiredParticipantSlot]
dispatches: dict[str, DispatchStatusEntry]
scene_id: str | None
created_at: datetime
Quick Example
# Worker side — parsing dispatch metadata
from menlo_rcs_types import DispatchMetadata
async def runtime_session(ctx: JobContext) -> None:
md = DispatchMetadata.model_validate_json(ctx.job.metadata or "{}")
print(f"Robot: {md.robot_id}, User: {md.user_id}")
Forward Compatibility
All models use model_config = ConfigDict(extra="allow"). New optional fields are safe to add; workers built against older versions will not break.
Project details
Release history Release notifications | RSS feed
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 menlo_rcs_types-0.1.2.tar.gz.
File metadata
- Download URL: menlo_rcs_types-0.1.2.tar.gz
- Upload date:
- Size: 6.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e7c3c01915a655e0c79ef8f11be302d11e3536fc14e7f6afd292aea201ee41d
|
|
| MD5 |
257081662265d2c179159f95b8a7310e
|
|
| BLAKE2b-256 |
75535a08aeb2bcd213f53cfe5950522efadd4a67ad8756ba61a496ab08cc5004
|
Provenance
The following attestation bundles were made for menlo_rcs_types-0.1.2.tar.gz:
Publisher:
menlo-rcs-types-publish.yml on menloresearch/mono
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
menlo_rcs_types-0.1.2.tar.gz -
Subject digest:
5e7c3c01915a655e0c79ef8f11be302d11e3536fc14e7f6afd292aea201ee41d - Sigstore transparency entry: 1846208368
- Sigstore integration time:
-
Permalink:
menloresearch/mono@5bb6bbc6d1bc8e285344dd0921fff4022585c4e0 -
Branch / Tag:
refs/tags/menlo-rcs-types-v0.1.2 - Owner: https://github.com/menloresearch
-
Access:
internal
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
menlo-rcs-types-publish.yml@5bb6bbc6d1bc8e285344dd0921fff4022585c4e0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file menlo_rcs_types-0.1.2-py3-none-any.whl.
File metadata
- Download URL: menlo_rcs_types-0.1.2-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af0e3b7f4a154c1b408b8824b6711af9022abcd0c50c79b39efad10ace6dc398
|
|
| MD5 |
4b3ad92733b936b63f8ece0e6d0fbfe1
|
|
| BLAKE2b-256 |
49fb9584b33705d517a93e26418238d26c25c2e521756e1bf37bad712acbc9f0
|
Provenance
The following attestation bundles were made for menlo_rcs_types-0.1.2-py3-none-any.whl:
Publisher:
menlo-rcs-types-publish.yml on menloresearch/mono
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
menlo_rcs_types-0.1.2-py3-none-any.whl -
Subject digest:
af0e3b7f4a154c1b408b8824b6711af9022abcd0c50c79b39efad10ace6dc398 - Sigstore transparency entry: 1846208612
- Sigstore integration time:
-
Permalink:
menloresearch/mono@5bb6bbc6d1bc8e285344dd0921fff4022585c4e0 -
Branch / Tag:
refs/tags/menlo-rcs-types-v0.1.2 - Owner: https://github.com/menloresearch
-
Access:
internal
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
menlo-rcs-types-publish.yml@5bb6bbc6d1bc8e285344dd0921fff4022585c4e0 -
Trigger Event:
push
-
Statement type: