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.
Metadata
Release files for menlo-rcs-types 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| menlo_rcs_types-0.1.2.tar.gz | 6.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| menlo_rcs_types-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 12.9 kB
Release files / menlo_rcs_types-0.1.2.tar.gz
| Download URL | menlo_rcs_types-0.1.2.tar.gz |
|---|---|
| Size | 6.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5e7c3c01915a655e0c79ef8f11be302d11e3536fc14e7f6afd292aea201ee41d
|
|
BLAKE2b-256 checksum How to use checksums |
75535a08aeb2bcd213f53cfe5950522efadd4a67ad8756ba61a496ab08cc5004
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 17, 2026.
Transparency logRelease files / menlo_rcs_types-0.1.2-py3-none-any.whl
| Download URL | menlo_rcs_types-0.1.2-py3-none-any.whl |
|---|---|
| Size | 6.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
af0e3b7f4a154c1b408b8824b6711af9022abcd0c50c79b39efad10ace6dc398
|
|
BLAKE2b-256 checksum How to use checksums |
49fb9584b33705d517a93e26418238d26c25c2e521756e1bf37bad712acbc9f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 17, 2026.
Transparency log