ui

UI bus carriers exchanged between PipelineWorker and UIWorker.

class pipecat.bus.ui.BusUICommandMessage(command_name: str = '', payload: Any = None, *, source: str, target: str | None = None)[source]

Bases: BusUIDataMessage

A UI command sent from a server-side worker to the client.

Published by UIWorker.send_command(name, payload). PipelineWorker (in on_bus_message) translates this to an RTVIUICommandFrame(command=command_name, payload=payload) and pushes it through the pipeline.

Parameters:
  • command_name – App-defined command name.

  • payload – App-defined payload (already a plain dict by the time it lands on the bus).

command_name: str = ''
payload: Any = None
class pipecat.bus.ui.BusUIDataMessage(*, source: str, target: str | None = None)[source]

Bases: BusDataMessage

Base for all UI Worker protocol bus carriers.

PipelineWorker.on_bus_message dispatches on this type to translate a worker’s outbound UI carriers into RTVI frames, so every UI bus message below subclasses it.

class pipecat.bus.ui.BusUIEventMessage(event_name: str = '', payload: Any = None, *, source: str, target: str | None = None)[source]

Bases: BusUIDataMessage

A UI event sent from the client to a server-side worker.

Emitted by PipelineWorker when the client dispatches an event via PipecatClient.sendUIEvent(event, payload). UIWorker subclasses dispatch these to @ui_event(name) handlers.

Parameters:
  • event_name – App-defined event name.

  • payload – App-defined payload. Schemaless by design.

event_name: str = ''
payload: Any = None
class pipecat.bus.ui.BusUIJobCompletedMessage(job_id: str = '', worker_name: str = '', status: str = '', response: Any = None, at: int = 0, *, source: str, target: str | None = None)[source]

Bases: BusUIDataMessage

A worker in a user-facing job group has completed.

Forwarded by the UIWorker whenever a worker’s BusJobResponseMessage arrives for a registered user job group. PipelineWorker forwards to the client as a ui-job-group envelope with kind = "job_completed".

Parameters:
  • job_id – The shared job-group identifier.

  • worker_name – The worker that produced the response.

  • status – Completion status as a string (JobStatus value).

  • response – The worker’s response payload.

  • at – Epoch milliseconds when the response was received.

job_id: str = ''
worker_name: str = ''
status: str = ''
response: Any = None
at: int = 0
class pipecat.bus.ui.BusUIJobGroupCompletedMessage(job_id: str = '', at: int = 0, *, source: str, target: str | None = None)[source]

Bases: BusUIDataMessage

A user-facing job group has completed.

Published when UIWorker.ui_job_group(...) exits, after every worker has responded (or the group has been cancelled). PipelineWorker forwards to the client as a ui-job-group envelope with kind = "group_completed".

Parameters:
  • job_id – The shared job-group identifier.

  • at – Epoch milliseconds when the group completed.

job_id: str = ''
at: int = 0
class pipecat.bus.ui.BusUIJobGroupStartedMessage(job_id: str = '', workers: list[str] | None = None, label: str | None = None, cancellable: bool = True, at: int = 0, *, source: str, target: str | None = None)[source]

Bases: BusUIDataMessage

A user-facing job group has been dispatched.

Published by UIWorker.ui_job_group(...) on entry. PipelineWorker forwards it to the client as a ui-job-group envelope with kind = "group_started".

Parameters:
  • job_id – Shared job-group identifier for the group.

  • workers – Names of the workers the work was dispatched to.

  • label – Optional human-readable label for the group.

  • cancellable – Whether the client may request cancellation.

  • at – Epoch milliseconds when the group started.

job_id: str = ''
workers: list[str] | None = None
label: str | None = None
cancellable: bool = True
at: int = 0
class pipecat.bus.ui.BusUIJobUpdateMessage(job_id: str = '', worker_name: str = '', data: Any = None, at: int = 0, *, source: str, target: str | None = None)[source]

Bases: BusUIDataMessage

Per-worker progress for a user-facing job group.

Forwarded by the UIWorker whenever a worker emits a BusJobUpdateMessage whose job_id matches a registered user job group. PipelineWorker forwards to the client as a ui-job-group envelope with kind = "job_update".

Parameters:
  • job_id – The shared job-group identifier.

  • worker_name – The worker that produced the update.

  • data – The worker’s update payload, forwarded verbatim.

  • at – Epoch milliseconds when the update was emitted on the bus.

job_id: str = ''
worker_name: str = ''
data: Any = None
at: int = 0

Submodules