Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

menlo_rcs_types-0.1.2.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

menlo_rcs_types-0.1.2-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

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

Hashes for menlo_rcs_types-0.1.2.tar.gz
Algorithm Hash digest
SHA256 5e7c3c01915a655e0c79ef8f11be302d11e3536fc14e7f6afd292aea201ee41d
MD5 257081662265d2c179159f95b8a7310e
BLAKE2b-256 75535a08aeb2bcd213f53cfe5950522efadd4a67ad8756ba61a496ab08cc5004

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file menlo_rcs_types-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for menlo_rcs_types-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 af0e3b7f4a154c1b408b8824b6711af9022abcd0c50c79b39efad10ace6dc398
MD5 4b3ad92733b936b63f8ece0e6d0fbfe1
BLAKE2b-256 49fb9584b33705d517a93e26418238d26c25c2e521756e1bf37bad712acbc9f0

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page