From 31edab84e656f693126f5bcfac910f1852b17f63 Mon Sep 17 00:00:00 2001 From: Chenghao Mou Date: Wed, 4 Nov 2026 22:34:10 +0000 Subject: [PATCH 1/2] chore(protocol): bump livekit-protocol/protocol to 8da979b Picks up the AMD v2 agent session events (livekit/protocol#1880) for the multi-turn AMD in livekit/agents#6202, and releases livekit-protocol as a patch. --- .changeset/bump-protocol-amd-v2.md | 5 +++++ livekit-protocol/protocol | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .changeset/bump-protocol-amd-v2.md diff --git a/.changeset/bump-protocol-amd-v2.md b/.changeset/bump-protocol-amd-v2.md new file mode 100644 index 00000000..6205ff4f --- /dev/null +++ b/.changeset/bump-protocol-amd-v2.md @@ -0,0 +1,5 @@ +--- +"livekit-protocol": patch +--- + +Bump the protocol to livekit/protocol@8da979b: AMD v2 predictions and completion in agent session events (livekit/protocol#1880), the user turn length on the EOT inference start (livekit/protocol#1937), and multi-track video, data, and MCAP for MediaSource egress (livekit/protocol#1882). diff --git a/livekit-protocol/protocol b/livekit-protocol/protocol index 32f24249..8da979bf 160000 --- a/livekit-protocol/protocol +++ b/livekit-protocol/protocol @@ -1 +1 @@ -Subproject commit 32f242495a62e4d991c6bc6ea787eb6f2ba6d69b +Subproject commit 8da979bf8e43ca989b54ffe999ec393c1d556c1c From 5b6fb23c9be7745c1f38553f49d46147bb98c4ad Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 4 Nov 2026 22:34:48 +0000 Subject: [PATCH 2/2] generated protobuf --- .../protocol/agent_pb/agent_inference.py | 92 +++---- .../protocol/agent_pb/agent_inference.pyi | 6 +- .../protocol/agent_pb/agent_session.py | 230 +++++++++--------- .../protocol/agent_pb/agent_session.pyi | 31 ++- livekit-protocol/livekit/protocol/egress.py | 218 +++++++++-------- livekit-protocol/livekit/protocol/egress.pyi | 46 +++- 6 files changed, 345 insertions(+), 278 deletions(-) diff --git a/livekit-protocol/livekit/protocol/agent_pb/agent_inference.py b/livekit-protocol/livekit/protocol/agent_pb/agent_inference.py index c834163b..1ad79cf4 100644 --- a/livekit-protocol/livekit/protocol/agent_pb/agent_inference.py +++ b/livekit-protocol/livekit/protocol/agent_pb/agent_inference.py @@ -27,7 +27,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#agent/livekit_agent_inference.proto\x12\rlivekit.agent\x1a!agent/livekit_agent_session.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xe1\x01\n\x0fSessionSettings\x12\x13\n\x0bsample_rate\x18\x01 \x01(\r\x12.\n\x08\x65ncoding\x18\x02 \x01(\x0e\x32\x1c.livekit.agent.AudioEncoding\x12\x32\n\x0c\x65ot_settings\x18\x03 \x01(\x0b\x32\x1a.livekit.agent.EotSettingsH\x00\x12\x44\n\x15interruption_settings\x18\x04 \x01(\x0b\x32#.livekit.agent.InterruptionSettingsH\x00\x42\x0f\n\rtype_settings\"/\n\x0eInferenceError\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x0c\n\x04\x63ode\x18\x02 \x01(\r\"D\n\x0b\x45otSettings\x12\x35\n\x12\x64\x65tection_interval\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xe5\x01\n\x14InterruptionSettings\x12\x11\n\tthreshold\x18\x01 \x01(\x02\x12\x12\n\nmin_frames\x18\x02 \x01(\r\x12\x35\n\x12max_audio_duration\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15\x61udio_prefix_duration\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x12\x64\x65tection_interval\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\"A\n\rSessionCreate\x12\x30\n\x08settings\x18\x01 \x01(\x0b\x32\x1e.livekit.agent.SessionSettings\"`\n\nInputAudio\x12\r\n\x05\x61udio\x18\x01 \x01(\x0c\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0bnum_samples\x18\x03 \x01(\r\"C\n\x13\x45otInputChatContext\x12,\n\x08messages\x18\x01 \x03(\x0b\x32\x1a.livekit.agent.ChatMessage\"\x0e\n\x0cSessionFlush\"\x0e\n\x0cSessionClose\"$\n\x0eInferenceStart\x12\x12\n\nrequest_id\x18\x01 \x01(\t\"#\n\rInferenceStop\x12\x12\n\nrequest_id\x18\x01 \x01(\t\"\r\n\x0b\x42ufferStart\"\x0c\n\nBufferStop\"\xbe\x04\n\rClientMessage\x12.\n\ncreated_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x0esession_create\x18\x02 \x01(\x0b\x32\x1c.livekit.agent.SessionCreateH\x00\x12\x30\n\x0binput_audio\x18\x03 \x01(\x0b\x32\x19.livekit.agent.InputAudioH\x00\x12\x34\n\rsession_flush\x18\x04 \x01(\x0b\x32\x1b.livekit.agent.SessionFlushH\x00\x12\x34\n\rsession_close\x18\x05 \x01(\x0b\x32\x1b.livekit.agent.SessionCloseH\x00\x12\x38\n\x0finference_start\x18\x06 \x01(\x0b\x32\x1d.livekit.agent.InferenceStartH\x00\x12\x36\n\x0einference_stop\x18\x07 \x01(\x0b\x32\x1c.livekit.agent.InferenceStopH\x00\x12\x32\n\x0c\x62uffer_start\x18\x08 \x01(\x0b\x32\x1a.livekit.agent.BufferStartH\x00\x12\x30\n\x0b\x62uffer_stop\x18\t \x01(\x0b\x32\x19.livekit.agent.BufferStopH\x00\x12\x44\n\x16\x65ot_input_chat_context\x18\n \x01(\x0b\x32\".livekit.agent.EotInputChatContextH\x00\x42\t\n\x07message\"\x81\x01\n\x13\x45otInferenceRequest\x12\r\n\x05\x61udio\x18\x01 \x01(\x0c\x12\x16\n\x0e\x61ssistant_text\x18\x02 \x01(\t\x12.\n\x08\x65ncoding\x18\x03 \x01(\x0e\x32\x1c.livekit.agent.AudioEncoding\x12\x13\n\x0bsample_rate\x18\x04 \x01(\r\"r\n\x1cInterruptionInferenceRequest\x12\r\n\x05\x61udio\x18\x01 \x01(\x0c\x12.\n\x08\x65ncoding\x18\x02 \x01(\x0e\x32\x1c.livekit.agent.AudioEncoding\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\"\xb9\x01\n\x10InferenceRequest\x12\x43\n\x15\x65ot_inference_request\x18\x01 \x01(\x0b\x32\".livekit.agent.EotInferenceRequestH\x00\x12U\n\x1einterruption_inference_request\x18\x02 \x01(\x0b\x32+.livekit.agent.InterruptionInferenceRequestH\x00\x42\t\n\x07request\"\xd0\x03\n\x0eInferenceStats\x12\x43\n\x1a\x65\x61rliest_client_created_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x41\n\x18latest_client_created_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x12:\n\x12\x63lient_e2e_latency\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\x35\n\x12server_e2e_latency\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16preprocessing_duration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x12inference_duration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationB\x1d\n\x1b_earliest_client_created_atB\x1b\n\x19_latest_client_created_atB\x15\n\x13_client_e2e_latency\"Y\n\x14\x45otInferenceResponse\x12\x13\n\x0bprobability\x18\x01 \x01(\x02\x12,\n\x05stats\x18\x02 \x01(\x0b\x32\x1d.livekit.agent.InferenceStats\"}\n\x1dInterruptionInferenceResponse\x12\x17\n\x0fis_interruption\x18\x01 \x01(\x08\x12\x15\n\rprobabilities\x18\x02 \x03(\x02\x12,\n\x05stats\x18\x03 \x01(\x0b\x32\x1d.livekit.agent.InferenceStats\"\xbf\x01\n\x11InferenceResponse\x12\x45\n\x16\x65ot_inference_response\x18\x01 \x01(\x0b\x32#.livekit.agent.EotInferenceResponseH\x00\x12W\n\x1finterruption_inference_response\x18\x02 \x01(\x0b\x32,.livekit.agent.InterruptionInferenceResponseH\x00\x42\n\n\x08response\"\x8c\x03\n\x0eSessionCreated\x12P\n\x12\x64\x65\x66\x61ult_thresholds\x18\x01 \x03(\x0b\x32\x34.livekit.agent.SessionCreated.DefaultThresholdsEntry\x12\x19\n\x11\x64\x65\x66\x61ult_threshold\x18\x02 \x01(\x02\x12g\n\x1e\x64\x65\x66\x61ult_backchannel_thresholds\x18\x03 \x03(\x0b\x32?.livekit.agent.SessionCreated.DefaultBackchannelThresholdsEntry\x12%\n\x1d\x64\x65\x66\x61ult_backchannel_threshold\x18\x04 \x01(\x02\x1a\x38\n\x16\x44\x65\x66\x61ultThresholdsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x43\n!DefaultBackchannelThresholdsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\"\x12\n\x10InferenceStarted\"\x12\n\x10InferenceStopped\"\x0f\n\rSessionClosed\"\x90\x02\n\rEotPrediction\x12\x13\n\x0bprobability\x18\x01 \x01(\x02\x12\x36\n\x0finference_stats\x18\x02 \x01(\x0b\x32\x1d.livekit.agent.InferenceStats\x12\x38\n\x07\x62\x61\x63kend\x18\x03 \x01(\x0e\x32\'.livekit.agent.EotPrediction.EotBackend\x12\x1f\n\x17\x62\x61\x63kchannel_probability\x18\x04 \x01(\x02\"W\n\nEotBackend\x12\x17\n\x13\x45OT_BACKEND_UNKNOWN\x10\x00\x12\x1a\n\x16\x45OT_BACKEND_MULTIMODAL\x10\x01\x12\x14\n\x10\x45OT_BACKEND_TEXT\x10\x02\"\x80\x01\n\x16InterruptionPrediction\x12\x17\n\x0fis_interruption\x18\x01 \x01(\x08\x12\x15\n\rprobabilities\x18\x02 \x03(\x02\x12\x36\n\x0finference_stats\x18\x03 \x01(\x0b\x32\x1d.livekit.agent.InferenceStats\"\xeb\x04\n\rServerMessage\x12\x35\n\x11server_created_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x17\n\nrequest_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12:\n\x11\x63lient_created_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x38\n\x0fsession_created\x18\x04 \x01(\x0b\x32\x1d.livekit.agent.SessionCreatedH\x00\x12<\n\x11inference_started\x18\x05 \x01(\x0b\x32\x1f.livekit.agent.InferenceStartedH\x00\x12<\n\x11inference_stopped\x18\x06 \x01(\x0b\x32\x1f.livekit.agent.InferenceStoppedH\x00\x12\x36\n\x0esession_closed\x18\x07 \x01(\x0b\x32\x1c.livekit.agent.SessionClosedH\x00\x12.\n\x05\x65rror\x18\x08 \x01(\x0b\x32\x1d.livekit.agent.InferenceErrorH\x00\x12\x36\n\x0e\x65ot_prediction\x18\t \x01(\x0b\x32\x1c.livekit.agent.EotPredictionH\x00\x12H\n\x17interruption_prediction\x18\n \x01(\x0b\x32%.livekit.agent.InterruptionPredictionH\x00\x42\t\n\x07messageB\r\n\x0b_request_idB\x14\n\x12_client_created_at*F\n\rAudioEncoding\x12\x1c\n\x18\x41UDIO_ENCODING_PCM_S16LE\x10\x00\x12\x17\n\x13\x41UDIO_ENCODING_OPUS\x10\x01\x42NH\x01Z)github.com/livekit/protocol/livekit/agent\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#agent/livekit_agent_inference.proto\x12\rlivekit.agent\x1a!agent/livekit_agent_session.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xe1\x01\n\x0fSessionSettings\x12\x13\n\x0bsample_rate\x18\x01 \x01(\r\x12.\n\x08\x65ncoding\x18\x02 \x01(\x0e\x32\x1c.livekit.agent.AudioEncoding\x12\x32\n\x0c\x65ot_settings\x18\x03 \x01(\x0b\x32\x1a.livekit.agent.EotSettingsH\x00\x12\x44\n\x15interruption_settings\x18\x04 \x01(\x0b\x32#.livekit.agent.InterruptionSettingsH\x00\x42\x0f\n\rtype_settings\"/\n\x0eInferenceError\x12\x0f\n\x07message\x18\x01 \x01(\t\x12\x0c\n\x04\x63ode\x18\x02 \x01(\r\"D\n\x0b\x45otSettings\x12\x35\n\x12\x64\x65tection_interval\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\"\xe5\x01\n\x14InterruptionSettings\x12\x11\n\tthreshold\x18\x01 \x01(\x02\x12\x12\n\nmin_frames\x18\x02 \x01(\r\x12\x35\n\x12max_audio_duration\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x38\n\x15\x61udio_prefix_duration\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x12\x64\x65tection_interval\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\"A\n\rSessionCreate\x12\x30\n\x08settings\x18\x01 \x01(\x0b\x32\x1e.livekit.agent.SessionSettings\"`\n\nInputAudio\x12\r\n\x05\x61udio\x18\x01 \x01(\x0c\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0bnum_samples\x18\x03 \x01(\r\"C\n\x13\x45otInputChatContext\x12,\n\x08messages\x18\x01 \x03(\x0b\x32\x1a.livekit.agent.ChatMessage\"\x0e\n\x0cSessionFlush\"\x0e\n\x0cSessionClose\":\n\x0eInferenceStart\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x14\n\x0cturn_samples\x18\x02 \x01(\r\"#\n\rInferenceStop\x12\x12\n\nrequest_id\x18\x01 \x01(\t\"\r\n\x0b\x42ufferStart\"\x0c\n\nBufferStop\"\xbe\x04\n\rClientMessage\x12.\n\ncreated_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x36\n\x0esession_create\x18\x02 \x01(\x0b\x32\x1c.livekit.agent.SessionCreateH\x00\x12\x30\n\x0binput_audio\x18\x03 \x01(\x0b\x32\x19.livekit.agent.InputAudioH\x00\x12\x34\n\rsession_flush\x18\x04 \x01(\x0b\x32\x1b.livekit.agent.SessionFlushH\x00\x12\x34\n\rsession_close\x18\x05 \x01(\x0b\x32\x1b.livekit.agent.SessionCloseH\x00\x12\x38\n\x0finference_start\x18\x06 \x01(\x0b\x32\x1d.livekit.agent.InferenceStartH\x00\x12\x36\n\x0einference_stop\x18\x07 \x01(\x0b\x32\x1c.livekit.agent.InferenceStopH\x00\x12\x32\n\x0c\x62uffer_start\x18\x08 \x01(\x0b\x32\x1a.livekit.agent.BufferStartH\x00\x12\x30\n\x0b\x62uffer_stop\x18\t \x01(\x0b\x32\x19.livekit.agent.BufferStopH\x00\x12\x44\n\x16\x65ot_input_chat_context\x18\n \x01(\x0b\x32\".livekit.agent.EotInputChatContextH\x00\x42\t\n\x07message\"\x81\x01\n\x13\x45otInferenceRequest\x12\r\n\x05\x61udio\x18\x01 \x01(\x0c\x12\x16\n\x0e\x61ssistant_text\x18\x02 \x01(\t\x12.\n\x08\x65ncoding\x18\x03 \x01(\x0e\x32\x1c.livekit.agent.AudioEncoding\x12\x13\n\x0bsample_rate\x18\x04 \x01(\r\"r\n\x1cInterruptionInferenceRequest\x12\r\n\x05\x61udio\x18\x01 \x01(\x0c\x12.\n\x08\x65ncoding\x18\x02 \x01(\x0e\x32\x1c.livekit.agent.AudioEncoding\x12\x13\n\x0bsample_rate\x18\x03 \x01(\r\"\xb9\x01\n\x10InferenceRequest\x12\x43\n\x15\x65ot_inference_request\x18\x01 \x01(\x0b\x32\".livekit.agent.EotInferenceRequestH\x00\x12U\n\x1einterruption_inference_request\x18\x02 \x01(\x0b\x32+.livekit.agent.InterruptionInferenceRequestH\x00\x42\t\n\x07request\"\xd0\x03\n\x0eInferenceStats\x12\x43\n\x1a\x65\x61rliest_client_created_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x41\n\x18latest_client_created_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01\x88\x01\x01\x12:\n\x12\x63lient_e2e_latency\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationH\x02\x88\x01\x01\x12\x35\n\x12server_e2e_latency\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x39\n\x16preprocessing_duration\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x35\n\x12inference_duration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationB\x1d\n\x1b_earliest_client_created_atB\x1b\n\x19_latest_client_created_atB\x15\n\x13_client_e2e_latency\"Y\n\x14\x45otInferenceResponse\x12\x13\n\x0bprobability\x18\x01 \x01(\x02\x12,\n\x05stats\x18\x02 \x01(\x0b\x32\x1d.livekit.agent.InferenceStats\"}\n\x1dInterruptionInferenceResponse\x12\x17\n\x0fis_interruption\x18\x01 \x01(\x08\x12\x15\n\rprobabilities\x18\x02 \x03(\x02\x12,\n\x05stats\x18\x03 \x01(\x0b\x32\x1d.livekit.agent.InferenceStats\"\xbf\x01\n\x11InferenceResponse\x12\x45\n\x16\x65ot_inference_response\x18\x01 \x01(\x0b\x32#.livekit.agent.EotInferenceResponseH\x00\x12W\n\x1finterruption_inference_response\x18\x02 \x01(\x0b\x32,.livekit.agent.InterruptionInferenceResponseH\x00\x42\n\n\x08response\"\x8c\x03\n\x0eSessionCreated\x12P\n\x12\x64\x65\x66\x61ult_thresholds\x18\x01 \x03(\x0b\x32\x34.livekit.agent.SessionCreated.DefaultThresholdsEntry\x12\x19\n\x11\x64\x65\x66\x61ult_threshold\x18\x02 \x01(\x02\x12g\n\x1e\x64\x65\x66\x61ult_backchannel_thresholds\x18\x03 \x03(\x0b\x32?.livekit.agent.SessionCreated.DefaultBackchannelThresholdsEntry\x12%\n\x1d\x64\x65\x66\x61ult_backchannel_threshold\x18\x04 \x01(\x02\x1a\x38\n\x16\x44\x65\x66\x61ultThresholdsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a\x43\n!DefaultBackchannelThresholdsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\"\x12\n\x10InferenceStarted\"\x12\n\x10InferenceStopped\"\x0f\n\rSessionClosed\"\x90\x02\n\rEotPrediction\x12\x13\n\x0bprobability\x18\x01 \x01(\x02\x12\x36\n\x0finference_stats\x18\x02 \x01(\x0b\x32\x1d.livekit.agent.InferenceStats\x12\x38\n\x07\x62\x61\x63kend\x18\x03 \x01(\x0e\x32\'.livekit.agent.EotPrediction.EotBackend\x12\x1f\n\x17\x62\x61\x63kchannel_probability\x18\x04 \x01(\x02\"W\n\nEotBackend\x12\x17\n\x13\x45OT_BACKEND_UNKNOWN\x10\x00\x12\x1a\n\x16\x45OT_BACKEND_MULTIMODAL\x10\x01\x12\x14\n\x10\x45OT_BACKEND_TEXT\x10\x02\"\x80\x01\n\x16InterruptionPrediction\x12\x17\n\x0fis_interruption\x18\x01 \x01(\x08\x12\x15\n\rprobabilities\x18\x02 \x03(\x02\x12\x36\n\x0finference_stats\x18\x03 \x01(\x0b\x32\x1d.livekit.agent.InferenceStats\"\xeb\x04\n\rServerMessage\x12\x35\n\x11server_created_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x17\n\nrequest_id\x18\x02 \x01(\tH\x01\x88\x01\x01\x12:\n\x11\x63lient_created_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x38\n\x0fsession_created\x18\x04 \x01(\x0b\x32\x1d.livekit.agent.SessionCreatedH\x00\x12<\n\x11inference_started\x18\x05 \x01(\x0b\x32\x1f.livekit.agent.InferenceStartedH\x00\x12<\n\x11inference_stopped\x18\x06 \x01(\x0b\x32\x1f.livekit.agent.InferenceStoppedH\x00\x12\x36\n\x0esession_closed\x18\x07 \x01(\x0b\x32\x1c.livekit.agent.SessionClosedH\x00\x12.\n\x05\x65rror\x18\x08 \x01(\x0b\x32\x1d.livekit.agent.InferenceErrorH\x00\x12\x36\n\x0e\x65ot_prediction\x18\t \x01(\x0b\x32\x1c.livekit.agent.EotPredictionH\x00\x12H\n\x17interruption_prediction\x18\n \x01(\x0b\x32%.livekit.agent.InterruptionPredictionH\x00\x42\t\n\x07messageB\r\n\x0b_request_idB\x14\n\x12_client_created_at*F\n\rAudioEncoding\x12\x1c\n\x18\x41UDIO_ENCODING_PCM_S16LE\x10\x00\x12\x17\n\x13\x41UDIO_ENCODING_OPUS\x10\x01\x42NH\x01Z)github.com/livekit/protocol/livekit/agent\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -39,8 +39,8 @@ _globals['_SESSIONCREATED_DEFAULTTHRESHOLDSENTRY']._serialized_options = b'8\001' _globals['_SESSIONCREATED_DEFAULTBACKCHANNELTHRESHOLDSENTRY']._loaded_options = None _globals['_SESSIONCREATED_DEFAULTBACKCHANNELTHRESHOLDSENTRY']._serialized_options = b'8\001' - _globals['_AUDIOENCODING']._serialized_start=4479 - _globals['_AUDIOENCODING']._serialized_end=4549 + _globals['_AUDIOENCODING']._serialized_start=4501 + _globals['_AUDIOENCODING']._serialized_end=4571 _globals['_SESSIONSETTINGS']._serialized_start=155 _globals['_SESSIONSETTINGS']._serialized_end=380 _globals['_INFERENCEERROR']._serialized_start=382 @@ -60,47 +60,47 @@ _globals['_SESSIONCLOSE']._serialized_start=983 _globals['_SESSIONCLOSE']._serialized_end=997 _globals['_INFERENCESTART']._serialized_start=999 - _globals['_INFERENCESTART']._serialized_end=1035 - _globals['_INFERENCESTOP']._serialized_start=1037 - _globals['_INFERENCESTOP']._serialized_end=1072 - _globals['_BUFFERSTART']._serialized_start=1074 - _globals['_BUFFERSTART']._serialized_end=1087 - _globals['_BUFFERSTOP']._serialized_start=1089 - _globals['_BUFFERSTOP']._serialized_end=1101 - _globals['_CLIENTMESSAGE']._serialized_start=1104 - _globals['_CLIENTMESSAGE']._serialized_end=1678 - _globals['_EOTINFERENCEREQUEST']._serialized_start=1681 - _globals['_EOTINFERENCEREQUEST']._serialized_end=1810 - _globals['_INTERRUPTIONINFERENCEREQUEST']._serialized_start=1812 - _globals['_INTERRUPTIONINFERENCEREQUEST']._serialized_end=1926 - _globals['_INFERENCEREQUEST']._serialized_start=1929 - _globals['_INFERENCEREQUEST']._serialized_end=2114 - _globals['_INFERENCESTATS']._serialized_start=2117 - _globals['_INFERENCESTATS']._serialized_end=2581 - _globals['_EOTINFERENCERESPONSE']._serialized_start=2583 - _globals['_EOTINFERENCERESPONSE']._serialized_end=2672 - _globals['_INTERRUPTIONINFERENCERESPONSE']._serialized_start=2674 - _globals['_INTERRUPTIONINFERENCERESPONSE']._serialized_end=2799 - _globals['_INFERENCERESPONSE']._serialized_start=2802 - _globals['_INFERENCERESPONSE']._serialized_end=2993 - _globals['_SESSIONCREATED']._serialized_start=2996 - _globals['_SESSIONCREATED']._serialized_end=3392 - _globals['_SESSIONCREATED_DEFAULTTHRESHOLDSENTRY']._serialized_start=3267 - _globals['_SESSIONCREATED_DEFAULTTHRESHOLDSENTRY']._serialized_end=3323 - _globals['_SESSIONCREATED_DEFAULTBACKCHANNELTHRESHOLDSENTRY']._serialized_start=3325 - _globals['_SESSIONCREATED_DEFAULTBACKCHANNELTHRESHOLDSENTRY']._serialized_end=3392 - _globals['_INFERENCESTARTED']._serialized_start=3394 - _globals['_INFERENCESTARTED']._serialized_end=3412 - _globals['_INFERENCESTOPPED']._serialized_start=3414 - _globals['_INFERENCESTOPPED']._serialized_end=3432 - _globals['_SESSIONCLOSED']._serialized_start=3434 - _globals['_SESSIONCLOSED']._serialized_end=3449 - _globals['_EOTPREDICTION']._serialized_start=3452 - _globals['_EOTPREDICTION']._serialized_end=3724 - _globals['_EOTPREDICTION_EOTBACKEND']._serialized_start=3637 - _globals['_EOTPREDICTION_EOTBACKEND']._serialized_end=3724 - _globals['_INTERRUPTIONPREDICTION']._serialized_start=3727 - _globals['_INTERRUPTIONPREDICTION']._serialized_end=3855 - _globals['_SERVERMESSAGE']._serialized_start=3858 - _globals['_SERVERMESSAGE']._serialized_end=4477 + _globals['_INFERENCESTART']._serialized_end=1057 + _globals['_INFERENCESTOP']._serialized_start=1059 + _globals['_INFERENCESTOP']._serialized_end=1094 + _globals['_BUFFERSTART']._serialized_start=1096 + _globals['_BUFFERSTART']._serialized_end=1109 + _globals['_BUFFERSTOP']._serialized_start=1111 + _globals['_BUFFERSTOP']._serialized_end=1123 + _globals['_CLIENTMESSAGE']._serialized_start=1126 + _globals['_CLIENTMESSAGE']._serialized_end=1700 + _globals['_EOTINFERENCEREQUEST']._serialized_start=1703 + _globals['_EOTINFERENCEREQUEST']._serialized_end=1832 + _globals['_INTERRUPTIONINFERENCEREQUEST']._serialized_start=1834 + _globals['_INTERRUPTIONINFERENCEREQUEST']._serialized_end=1948 + _globals['_INFERENCEREQUEST']._serialized_start=1951 + _globals['_INFERENCEREQUEST']._serialized_end=2136 + _globals['_INFERENCESTATS']._serialized_start=2139 + _globals['_INFERENCESTATS']._serialized_end=2603 + _globals['_EOTINFERENCERESPONSE']._serialized_start=2605 + _globals['_EOTINFERENCERESPONSE']._serialized_end=2694 + _globals['_INTERRUPTIONINFERENCERESPONSE']._serialized_start=2696 + _globals['_INTERRUPTIONINFERENCERESPONSE']._serialized_end=2821 + _globals['_INFERENCERESPONSE']._serialized_start=2824 + _globals['_INFERENCERESPONSE']._serialized_end=3015 + _globals['_SESSIONCREATED']._serialized_start=3018 + _globals['_SESSIONCREATED']._serialized_end=3414 + _globals['_SESSIONCREATED_DEFAULTTHRESHOLDSENTRY']._serialized_start=3289 + _globals['_SESSIONCREATED_DEFAULTTHRESHOLDSENTRY']._serialized_end=3345 + _globals['_SESSIONCREATED_DEFAULTBACKCHANNELTHRESHOLDSENTRY']._serialized_start=3347 + _globals['_SESSIONCREATED_DEFAULTBACKCHANNELTHRESHOLDSENTRY']._serialized_end=3414 + _globals['_INFERENCESTARTED']._serialized_start=3416 + _globals['_INFERENCESTARTED']._serialized_end=3434 + _globals['_INFERENCESTOPPED']._serialized_start=3436 + _globals['_INFERENCESTOPPED']._serialized_end=3454 + _globals['_SESSIONCLOSED']._serialized_start=3456 + _globals['_SESSIONCLOSED']._serialized_end=3471 + _globals['_EOTPREDICTION']._serialized_start=3474 + _globals['_EOTPREDICTION']._serialized_end=3746 + _globals['_EOTPREDICTION_EOTBACKEND']._serialized_start=3659 + _globals['_EOTPREDICTION_EOTBACKEND']._serialized_end=3746 + _globals['_INTERRUPTIONPREDICTION']._serialized_start=3749 + _globals['_INTERRUPTIONPREDICTION']._serialized_end=3877 + _globals['_SERVERMESSAGE']._serialized_start=3880 + _globals['_SERVERMESSAGE']._serialized_end=4499 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agent_pb/agent_inference.pyi b/livekit-protocol/livekit/protocol/agent_pb/agent_inference.pyi index b61d4f55..2585f7c6 100644 --- a/livekit-protocol/livekit/protocol/agent_pb/agent_inference.pyi +++ b/livekit-protocol/livekit/protocol/agent_pb/agent_inference.pyi @@ -87,10 +87,12 @@ class SessionClose(_message.Message): def __init__(self) -> None: ... class InferenceStart(_message.Message): - __slots__ = ("request_id",) + __slots__ = ("request_id", "turn_samples") REQUEST_ID_FIELD_NUMBER: _ClassVar[int] + TURN_SAMPLES_FIELD_NUMBER: _ClassVar[int] request_id: str - def __init__(self, request_id: _Optional[str] = ...) -> None: ... + turn_samples: int + def __init__(self, request_id: _Optional[str] = ..., turn_samples: _Optional[int] = ...) -> None: ... class InferenceStop(_message.Message): __slots__ = ("request_id",) diff --git a/livekit-protocol/livekit/protocol/agent_pb/agent_session.py b/livekit-protocol/livekit/protocol/agent_pb/agent_session.py index 566ed393..65b56172 100644 --- a/livekit-protocol/livekit/protocol/agent_pb/agent_session.py +++ b/livekit-protocol/livekit/protocol/agent_pb/agent_session.py @@ -28,7 +28,7 @@ from ..logger_pb import options as logger_dot_options__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!agent/livekit_agent_session.proto\x12\rlivekit.agent\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x14logger/options.proto\"\x9d\x04\n\rMetricsReport\x12\x37\n\x13started_speaking_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\x13stopped_speaking_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12 \n\x13transcription_delay\x18\x03 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11\x65nd_of_turn_delay\x18\x04 \x01(\x01H\x01\x88\x01\x01\x12)\n\x1con_user_turn_completed_delay\x18\x05 \x01(\x01H\x02\x88\x01\x01\x12\x1a\n\rllm_node_ttft\x18\x06 \x01(\x01H\x03\x88\x01\x01\x12\x1a\n\rtts_node_ttfb\x18\x07 \x01(\x01H\x04\x88\x01\x01\x12\x18\n\x0b\x65\x32\x65_latency\x18\x08 \x01(\x01H\x05\x88\x01\x01\x12\x19\n\x0cllm_node_tps\x18\t \x01(\x01H\x06\x88\x01\x01\x12\x1a\n\rllm_node_ttfs\x18\n \x01(\x01H\x07\x88\x01\x01\x42\x16\n\x14_transcription_delayB\x14\n\x12_end_of_turn_delayB\x1f\n\x1d_on_user_turn_completed_delayB\x10\n\x0e_llm_node_ttftB\x10\n\x0e_tts_node_ttfbB\x0e\n\x0c_e2e_latencyB\x0f\n\r_llm_node_tpsB\x10\n\x0e_llm_node_ttfs\"\xed\x01\n\x0bTimedString\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x17\n\nstart_time\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x65nd_time\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\nconfidence\x18\x04 \x01(\x01H\x02\x88\x01\x01\x12\x1e\n\x11start_time_offset\x18\x05 \x01(\x01H\x03\x88\x01\x01\x12\x17\n\nspeaker_id\x18\x06 \x01(\tH\x04\x88\x01\x01\x42\r\n\x0b_start_timeB\x0b\n\t_end_timeB\r\n\x0b_confidenceB\x14\n\x12_start_time_offsetB\r\n\x0b_speaker_id\"\xb9\x03\n\x0b\x43hatMessage\x12\n\n\x02id\x18\x01 \x01(\t\x12%\n\x04role\x18\x02 \x01(\x0e\x32\x17.livekit.agent.ChatRole\x12\x37\n\x07\x63ontent\x18\x03 \x03(\x0b\x32&.livekit.agent.ChatMessage.ChatContent\x12\x13\n\x0binterrupted\x18\x04 \x01(\x08\x12\"\n\x15transcript_confidence\x18\x05 \x01(\x01H\x00\x88\x01\x01\x12\x34\n\x05\x65xtra\x18\x06 \x03(\x0b\x32%.livekit.agent.ChatMessage.ExtraEntry\x12-\n\x07metrics\x18\x07 \x01(\x0b\x32\x1c.livekit.agent.MetricsReport\x12.\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a(\n\x0b\x43hatContent\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x42\t\n\x07payload\x1a,\n\nExtraEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x18\n\x16_transcript_confidence\"\xec\x01\n\x0c\x46unctionCall\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1a\n\x07\x63\x61ll_id\x18\x02 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x11\n\targuments\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x05\x65xtra\x18\x06 \x03(\x0b\x32&.livekit.agent.FunctionCall.ExtraEntry\x1a,\n\nExtraEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9c\x01\n\x12\x46unctionCallOutput\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1a\n\x07\x63\x61ll_id\x18\x03 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x0e\n\x06output\x18\x04 \x01(\t\x12\x10\n\x08is_error\x18\x05 \x01(\x08\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xaa\x01\n\x0c\x41gentHandoff\x12\n\n\x02id\x18\x01 \x01(\t\x12(\n\x0cold_agent_id\x18\x02 \x01(\tB\r\xbaP\noldAgentIDH\x00\x88\x01\x01\x12#\n\x0cnew_agent_id\x18\x03 \x01(\tB\r\xbaP\nnewAgentID\x12.\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\n\r_old_agent_id\"\xa7\x01\n\x11\x41gentConfigUpdate\x12\n\n\x02id\x18\x01 \x01(\t\x12\x19\n\x0cinstructions\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x0btools_added\x18\x03 \x03(\t\x12\x15\n\rtools_removed\x18\x04 \x03(\t\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\n\r_instructions\"\xf5\x02\n\x0b\x43hatContext\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a\xb1\x02\n\x08\x43hatItem\x12-\n\x07message\x18\x01 \x01(\x0b\x32\x1a.livekit.agent.ChatMessageH\x00\x12\x34\n\rfunction_call\x18\x02 \x01(\x0b\x32\x1b.livekit.agent.FunctionCallH\x00\x12\x41\n\x14\x66unction_call_output\x18\x03 \x01(\x0b\x32!.livekit.agent.FunctionCallOutputH\x00\x12\x34\n\ragent_handoff\x18\x04 \x01(\x0b\x32\x1b.livekit.agent.AgentHandoffH\x00\x12?\n\x13\x61gent_config_update\x18\x05 \x01(\x0b\x32 .livekit.agent.AgentConfigUpdateH\x00\x42\x06\n\x04item\"\x88\x03\n\rLLMModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x14\n\x0cinput_tokens\x18\x03 \x01(\x05\x12\x1b\n\x13input_cached_tokens\x18\x04 \x01(\x05\x12\x1a\n\x12input_audio_tokens\x18\x05 \x01(\x05\x12!\n\x19input_cached_audio_tokens\x18\x06 \x01(\x05\x12\x19\n\x11input_text_tokens\x18\x07 \x01(\x05\x12 \n\x18input_cached_text_tokens\x18\x08 \x01(\x05\x12\x1a\n\x12input_image_tokens\x18\t \x01(\x05\x12!\n\x19input_cached_image_tokens\x18\n \x01(\x05\x12\x15\n\routput_tokens\x18\x0b \x01(\x05\x12\x1b\n\x13output_audio_tokens\x18\x0c \x01(\x05\x12\x1a\n\x12output_text_tokens\x18\r \x01(\x05\x12\x18\n\x10session_duration\x18\x0e \x01(\x01\"\x8f\x01\n\rTTSModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x14\n\x0cinput_tokens\x18\x03 \x01(\x05\x12\x15\n\routput_tokens\x18\x04 \x01(\x05\x12\x18\n\x10\x63haracters_count\x18\x05 \x01(\x05\x12\x16\n\x0e\x61udio_duration\x18\x06 \x01(\x01\"u\n\rSTTModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x14\n\x0cinput_tokens\x18\x03 \x01(\x05\x12\x15\n\routput_tokens\x18\x04 \x01(\x05\x12\x16\n\x0e\x61udio_duration\x18\x05 \x01(\x01\"Q\n\x16InterruptionModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x16\n\x0etotal_requests\x18\x03 \x01(\x05\"H\n\rEotModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x16\n\x0etotal_requests\x18\x03 \x01(\x05\"\x88\x02\n\nModelUsage\x12+\n\x03llm\x18\x01 \x01(\x0b\x32\x1c.livekit.agent.LLMModelUsageH\x00\x12+\n\x03tts\x18\x02 \x01(\x0b\x32\x1c.livekit.agent.TTSModelUsageH\x00\x12+\n\x03stt\x18\x03 \x01(\x0b\x32\x1c.livekit.agent.STTModelUsageH\x00\x12=\n\x0cinterruption\x18\x04 \x01(\x0b\x32%.livekit.agent.InterruptionModelUsageH\x00\x12+\n\x03\x65ot\x18\x05 \x01(\x0b\x32\x1c.livekit.agent.EotModelUsageH\x00\x42\x07\n\x05usage\"C\n\x11\x41gentSessionUsage\x12.\n\x0bmodel_usage\x18\x01 \x03(\x0b\x32\x19.livekit.agent.ModelUsage\"8\n\x0c\x44\x65\x62ugMessage\x12(\n\x07payload\x18\x01 \x01(\x0b\x32\x17.google.protobuf.Struct\"\xf2\x19\n\x11\x41gentSessionEvent\x12.\n\ncreated_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12Q\n\x13\x61gent_state_changed\x18\n \x01(\x0b\x32\x32.livekit.agent.AgentSessionEvent.AgentStateChangedH\x00\x12O\n\x12user_state_changed\x18\x0b \x01(\x0b\x32\x31.livekit.agent.AgentSessionEvent.UserStateChangedH\x00\x12Y\n\x17\x63onversation_item_added\x18\x0c \x01(\x0b\x32\x36.livekit.agent.AgentSessionEvent.ConversationItemAddedH\x00\x12W\n\x16user_input_transcribed\x18\r \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.UserInputTranscribedH\x00\x12Y\n\x17\x66unction_tools_executed\x18\x0e \x01(\x0b\x32\x36.livekit.agent.AgentSessionEvent.FunctionToolsExecutedH\x00\x12\x37\n\x05\x65rror\x18\x0f \x01(\x0b\x32&.livekit.agent.AgentSessionEvent.ErrorH\x00\x12P\n\x12overlapping_speech\x18\x10 \x01(\x0b\x32\x32.livekit.agent.AgentSessionEvent.OverlappingSpeechH\x00\x12U\n\x15session_usage_updated\x18\x11 \x01(\x0b\x32\x34.livekit.agent.AgentSessionEvent.SessionUsageUpdatedH\x00\x12H\n\x0e\x61md_prediction\x18\x12 \x01(\x0b\x32..livekit.agent.AgentSessionEvent.AmdPredictionH\x00\x12H\n\x0e\x65ot_prediction\x18\x13 \x01(\x0b\x32..livekit.agent.AgentSessionEvent.EotPredictionH\x00\x12W\n\x16\x66unction_tools_started\x18\x14 \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.FunctionToolsStartedH\x00\x12\x34\n\rdebug_message\x18\x15 \x01(\x0b\x32\x1b.livekit.agent.DebugMessageH\x00\x12W\n\x16tool_execution_updated\x18\x16 \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.ToolExecutionUpdatedH\x00\x12[\n\x18\x61gent_false_interruption\x18\x17 \x01(\x0b\x32\x37.livekit.agent.AgentSessionEvent.AgentFalseInterruptionH\x00\x1ao\n\x11\x41gentStateChanged\x12,\n\told_state\x18\x01 \x01(\x0e\x32\x19.livekit.agent.AgentState\x12,\n\tnew_state\x18\x02 \x01(\x0e\x32\x19.livekit.agent.AgentState\x1al\n\x10UserStateChanged\x12+\n\told_state\x18\x01 \x01(\x0e\x32\x18.livekit.agent.UserState\x12+\n\tnew_state\x18\x02 \x01(\x0e\x32\x18.livekit.agent.UserState\x1aJ\n\x15\x43onversationItemAdded\x12\x31\n\x04item\x18\x01 \x01(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a`\n\x14UserInputTranscribed\x12\x12\n\ntranscript\x18\x01 \x01(\t\x12\x10\n\x08is_final\x18\x02 \x01(\x08\x12\x15\n\x08language\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_language\x1aK\n\x14\x46unctionToolsStarted\x12\x33\n\x0e\x66unction_calls\x18\x01 \x03(\x0b\x32\x1b.livekit.agent.FunctionCall\x1a\x8e\x01\n\x15\x46unctionToolsExecuted\x12\x33\n\x0e\x66unction_calls\x18\x01 \x03(\x0b\x32\x1b.livekit.agent.FunctionCall\x12@\n\x15\x66unction_call_outputs\x18\x02 \x03(\x0b\x32!.livekit.agent.FunctionCallOutput\x1a\x18\n\x05\x45rror\x12\x0f\n\x07message\x18\x01 \x01(\t\x1a\xca\x01\n\x11OverlappingSpeech\x12\x17\n\x0fis_interruption\x18\x01 \x01(\x08\x12;\n\x12overlap_started_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x17\n\x0f\x64\x65tection_delay\x18\x03 \x01(\x01\x12/\n\x0b\x64\x65tected_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x15\n\x13_overlap_started_at\x1a\xbf\x01\n\rAmdPrediction\x12\x32\n\x0fspeech_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12,\n\x08\x63\x61tegory\x18\x02 \x01(\x0e\x32\x1a.livekit.agent.AmdCategory\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x12\n\ntranscript\x18\x04 \x01(\t\x12(\n\x05\x64\x65lay\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x98\x01\n\rEotPrediction\x12\x13\n\x0bprobability\x18\x01 \x01(\x02\x12\x11\n\tthreshold\x18\x02 \x01(\x02\x12\x35\n\x12inference_duration\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12(\n\x05\x64\x65lay\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x46\n\x13SessionUsageUpdated\x12/\n\x05usage\x18\x01 \x01(\x0b\x32 .livekit.agent.AgentSessionUsage\x1a\x93\x06\n\x14ToolExecutionUpdated\x12P\n\x07started\x18\x01 \x01(\x0b\x32=.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.StartedH\x00\x12Y\n\x0c\x63\x61ll_updated\x18\x02 \x01(\x0b\x32\x41.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.CallUpdatedH\x00\x12[\n\rreply_updated\x18\x03 \x01(\x0b\x32\x42.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.ReplyUpdatedH\x00\x12L\n\x05\x65nded\x18\x04 \x01(\x0b\x32;.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.EndedH\x00\x1a=\n\x07Started\x12\x32\n\rfunction_call\x18\x01 \x01(\x0b\x32\x1b.livekit.agent.FunctionCall\x1aM\n\x0b\x43\x61llUpdated\x12\x11\n\x02id\x18\x01 \x01(\tB\x05\xbaP\x02ID\x12\x1a\n\x07\x63\x61ll_id\x18\x02 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x0f\n\x07message\x18\x03 \x01(\t\x1a\x87\x01\n\x05\x45nded\x12\x11\n\x02id\x18\x01 \x01(\tB\x05\xbaP\x02ID\x12\x1a\n\x07\x63\x61ll_id\x18\x02 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x14\n\x07message\x18\x03 \x01(\tH\x00\x88\x01\x01\x12-\n\x06status\x18\x04 \x01(\x0e\x32\x1d.livekit.agent.ToolCallStatusB\n\n\x08_message\x1a\x80\x01\n\x0cReplyUpdated\x12 \n\nupdate_ids\x18\x01 \x03(\tB\x0c\xbaP\tupdateIDs\x12.\n\x06status\x18\x02 \x01(\x0e\x32\x1e.livekit.agent.ToolReplyStatus\x12\x1e\n\tspeech_id\x18\x03 \x01(\tB\x0b\xbaP\x08speechIDB\x08\n\x06update\x1a)\n\x16\x41gentFalseInterruption\x12\x0f\n\x07resumed\x18\x01 \x01(\x08\x42\x07\n\x05\x65vent\"\xf6\n\n\x0eSessionRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x32\n\x04ping\x18\x02 \x01(\x0b\x32\".livekit.agent.SessionRequest.PingH\x00\x12H\n\x10get_chat_history\x18\x04 \x01(\x0b\x32,.livekit.agent.SessionRequest.GetChatHistoryH\x00\x12;\n\trun_input\x18\x05 \x01(\x0b\x32&.livekit.agent.SessionRequest.RunInputH\x00\x12\x44\n\x0eget_agent_info\x18\x06 \x01(\x0b\x32*.livekit.agent.SessionRequest.GetAgentInfoH\x00\x12J\n\x11get_session_state\x18\x07 \x01(\x0b\x32-.livekit.agent.SessionRequest.GetSessionStateH\x00\x12\x42\n\rget_rtc_stats\x18\x08 \x01(\x0b\x32).livekit.agent.SessionRequest.GetRTCStatsH\x00\x12J\n\x11get_session_usage\x18\t \x01(\x0b\x32-.livekit.agent.SessionRequest.GetSessionUsageH\x00\x12L\n\x12get_framework_info\x18\n \x01(\x0b\x32..livekit.agent.SessionRequest.GetFrameworkInfoH\x00\x12;\n\tupdate_io\x18\x0b \x01(\x0b\x32&.livekit.agent.SessionRequest.UpdateIOH\x00\x12O\n\x13\x66inalize_simulation\x18\x0c \x01(\x0b\x32\x30.livekit.agent.SessionRequest.FinalizeSimulationH\x00\x1a\x06\n\x04Ping\x1a\x10\n\x0eGetChatHistory\x1a\x18\n\x08RunInput\x12\x0c\n\x04text\x18\x01 \x01(\t\x1a\x0e\n\x0cGetAgentInfo\x1a\x11\n\x0fGetSessionState\x1a\r\n\x0bGetRTCStats\x1a\x11\n\x0fGetSessionUsage\x1a\x12\n\x10GetFrameworkInfo\x1a\xaf\x03\n\x08UpdateIO\x12@\n\x05input\x18\x01 \x01(\x0b\x32,.livekit.agent.SessionRequest.UpdateIO.InputH\x00\x88\x01\x01\x12\x42\n\x06output\x18\x02 \x01(\x0b\x32-.livekit.agent.SessionRequest.UpdateIO.OutputH\x01\x88\x01\x01\x1a\x63\n\x05Input\x12\x1a\n\raudio_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rvideo_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x10\n\x0e_audio_enabledB\x10\n\x0e_video_enabled\x1a\xa2\x01\n\x06Output\x12\x1a\n\raudio_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rvideo_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15transcription_enabled\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x10\n\x0e_audio_enabledB\x10\n\x0e_video_enabledB\x18\n\x16_transcription_enabledB\x08\n\x06_inputB\t\n\x07_output\x1aM\n\x12\x46inalizeSimulation\x12\x1b\n\x13provisional_success\x18\x01 \x01(\x08\x12\x1a\n\x12provisional_reason\x18\x02 \x01(\tB\t\n\x07request\"\xd3\x0f\n\x0fSessionResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x33\n\x04pong\x18\x03 \x01(\x0b\x32#.livekit.agent.SessionResponse.PongH\x00\x12Q\n\x10get_chat_history\x18\x05 \x01(\x0b\x32\x35.livekit.agent.SessionResponse.GetChatHistoryResponseH\x00\x12\x44\n\trun_input\x18\x06 \x01(\x0b\x32/.livekit.agent.SessionResponse.RunInputResponseH\x00\x12M\n\x0eget_agent_info\x18\x07 \x01(\x0b\x32\x33.livekit.agent.SessionResponse.GetAgentInfoResponseH\x00\x12S\n\x11get_session_state\x18\x08 \x01(\x0b\x32\x36.livekit.agent.SessionResponse.GetSessionStateResponseH\x00\x12K\n\rget_rtc_stats\x18\t \x01(\x0b\x32\x32.livekit.agent.SessionResponse.GetRTCStatsResponseH\x00\x12S\n\x11get_session_usage\x18\n \x01(\x0b\x32\x36.livekit.agent.SessionResponse.GetSessionUsageResponseH\x00\x12U\n\x12get_framework_info\x18\x0b \x01(\x0b\x32\x37.livekit.agent.SessionResponse.GetFrameworkInfoResponseH\x00\x12\x44\n\tupdate_io\x18\x0c \x01(\x0b\x32/.livekit.agent.SessionResponse.UpdateIOResponseH\x00\x12X\n\x13\x66inalize_simulation\x18\r \x01(\x0b\x32\x39.livekit.agent.SessionResponse.FinalizeSimulationResponseH\x00\x1a\x06\n\x04Pong\x1aL\n\x16GetChatHistoryResponse\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a\x94\x01\n\x14GetAgentInfoResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x19\n\x0cinstructions\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05tools\x18\x03 \x03(\t\x12\x35\n\x08\x63hat_ctx\x18\x04 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItemB\x0f\n\r_instructions\x1a\x46\n\x10RunInputResponse\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a\xbf\x02\n\x17GetSessionStateResponse\x12.\n\x0b\x61gent_state\x18\x01 \x01(\x0e\x32\x19.livekit.agent.AgentState\x12,\n\nuser_state\x18\x02 \x01(\x0e\x32\x18.livekit.agent.UserState\x12\x10\n\x08\x61gent_id\x18\x03 \x01(\t\x12T\n\x07options\x18\x04 \x03(\x0b\x32\x43.livekit.agent.SessionResponse.GetSessionStateResponse.OptionsEntry\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1az\n\x13GetRTCStatsResponse\x12\x30\n\x0fpublisher_stats\x18\x01 \x03(\x0b\x32\x17.google.protobuf.Struct\x12\x31\n\x10subscriber_stats\x18\x02 \x03(\x0b\x32\x17.google.protobuf.Struct\x1az\n\x17GetSessionUsageResponse\x12/\n\x05usage\x18\x01 \x01(\x0b\x32 .livekit.agent.AgentSessionUsage\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a<\n\x18GetFrameworkInfoResponse\x12\x0b\n\x03sdk\x18\x01 \x01(\t\x12\x13\n\x0bsdk_version\x18\x02 \x01(\t\x1a\x12\n\x10UpdateIOResponse\x1a\xb5\x01\n\x1a\x46inalizeSimulationResponse\x12\x61\n\x0cuser_verdict\x18\x01 \x01(\x0b\x32K.livekit.agent.SessionResponse.FinalizeSimulationResponse.SimulationVerdict\x1a\x34\n\x11SimulationVerdict\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0e\n\x06reason\x18\x02 \x01(\tB\n\n\x08responseB\x08\n\x06_error\"\xba\x06\n\x13\x41gentSessionMessage\x12N\n\x0b\x61udio_input\x18\x01 \x01(\x0b\x32\x37.livekit.agent.AgentSessionMessage.ConsoleIO.AudioFrameH\x00\x12O\n\x0c\x61udio_output\x18\x02 \x01(\x0b\x32\x37.livekit.agent.AgentSessionMessage.ConsoleIO.AudioFrameH\x00\x12\x31\n\x05\x65vent\x18\x03 \x01(\x0b\x32 .livekit.agent.AgentSessionEventH\x00\x12\x30\n\x07request\x18\x04 \x01(\x0b\x32\x1d.livekit.agent.SessionRequestH\x00\x12\x32\n\x08response\x18\x05 \x01(\x0b\x32\x1e.livekit.agent.SessionResponseH\x00\x12_\n\x14\x61udio_playback_flush\x18\x06 \x01(\x0b\x32?.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackFlushH\x00\x12_\n\x14\x61udio_playback_clear\x18\x07 \x01(\x0b\x32?.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackClearH\x00\x12\x65\n\x17\x61udio_playback_finished\x18\x08 \x01(\x0b\x32\x42.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackFinishedH\x00\x1a\xb4\x01\n\tConsoleIO\x1a\x62\n\nAudioFrame\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x13\n\x0bsample_rate\x18\x02 \x01(\r\x12\x14\n\x0cnum_channels\x18\x03 \x01(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x01(\r\x1a\x14\n\x12\x41udioPlaybackFlush\x1a\x14\n\x12\x41udioPlaybackClear\x1a\x17\n\x15\x41udioPlaybackFinishedB\t\n\x07message*>\n\x08\x43hatRole\x12\r\n\tDEVELOPER\x10\x00\x12\n\n\x06SYSTEM\x10\x01\x12\x08\n\x04USER\x10\x02\x12\r\n\tASSISTANT\x10\x03*b\n\nAgentState\x12\x13\n\x0f\x41S_INITIALIZING\x10\x00\x12\x0b\n\x07\x41S_IDLE\x10\x01\x12\x10\n\x0c\x41S_LISTENING\x10\x02\x12\x0f\n\x0b\x41S_THINKING\x10\x03\x12\x0f\n\x0b\x41S_SPEAKING\x10\x04*;\n\tUserState\x12\x0f\n\x0bUS_SPEAKING\x10\x00\x12\x10\n\x0cUS_LISTENING\x10\x01\x12\x0b\n\x07US_AWAY\x10\x02*M\n\x0eToolCallStatus\x12\x0e\n\nTC_RUNNING\x10\x00\x12\x0b\n\x07TC_DONE\x10\x01\x12\x0c\n\x08TC_ERROR\x10\x02\x12\x10\n\x0cTC_CANCELLED\x10\x03*Y\n\x0fToolReplyStatus\x12\x10\n\x0cTR_SCHEDULED\x10\x00\x12\x10\n\x0cTR_COMPLETED\x10\x01\x12\x12\n\x0eTR_INTERRUPTED\x10\x02\x12\x0e\n\nTR_SKIPPED\x10\x03*\x8a\x01\n\x0b\x43loseReason\x12\x0e\n\nCR_UNKNOWN\x10\x00\x12\x0c\n\x08\x43R_ERROR\x10\x01\x12\x13\n\x0f\x43R_JOB_SHUTDOWN\x10\x02\x12\x1f\n\x1b\x43R_PARTICIPANT_DISCONNECTED\x10\x03\x12\x15\n\x11\x43R_USER_INITIATED\x10\x04\x12\x10\n\x0c\x43R_COMPLETED\x10\x05*\x86\x01\n\x0b\x41mdCategory\x12\x0f\n\x0b\x41MD_UNKNOWN\x10\x00\x12\r\n\tAMD_HUMAN\x10\x01\x12\x13\n\x0f\x41MD_MACHINE_IVR\x10\x02\x12\x12\n\x0e\x41MD_MACHINE_VM\x10\x03\x12\x1b\n\x17\x41MD_MACHINE_UNAVAILABLE\x10\x04\x12\x11\n\rAMD_UNCERTAIN\x10\x05\x42+Z)github.com/livekit/protocol/livekit/agentb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!agent/livekit_agent_session.proto\x12\rlivekit.agent\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x14logger/options.proto\"\x9d\x04\n\rMetricsReport\x12\x37\n\x13started_speaking_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\x13stopped_speaking_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12 \n\x13transcription_delay\x18\x03 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11\x65nd_of_turn_delay\x18\x04 \x01(\x01H\x01\x88\x01\x01\x12)\n\x1con_user_turn_completed_delay\x18\x05 \x01(\x01H\x02\x88\x01\x01\x12\x1a\n\rllm_node_ttft\x18\x06 \x01(\x01H\x03\x88\x01\x01\x12\x1a\n\rtts_node_ttfb\x18\x07 \x01(\x01H\x04\x88\x01\x01\x12\x18\n\x0b\x65\x32\x65_latency\x18\x08 \x01(\x01H\x05\x88\x01\x01\x12\x19\n\x0cllm_node_tps\x18\t \x01(\x01H\x06\x88\x01\x01\x12\x1a\n\rllm_node_ttfs\x18\n \x01(\x01H\x07\x88\x01\x01\x42\x16\n\x14_transcription_delayB\x14\n\x12_end_of_turn_delayB\x1f\n\x1d_on_user_turn_completed_delayB\x10\n\x0e_llm_node_ttftB\x10\n\x0e_tts_node_ttfbB\x0e\n\x0c_e2e_latencyB\x0f\n\r_llm_node_tpsB\x10\n\x0e_llm_node_ttfs\"\xed\x01\n\x0bTimedString\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x17\n\nstart_time\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x65nd_time\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\nconfidence\x18\x04 \x01(\x01H\x02\x88\x01\x01\x12\x1e\n\x11start_time_offset\x18\x05 \x01(\x01H\x03\x88\x01\x01\x12\x17\n\nspeaker_id\x18\x06 \x01(\tH\x04\x88\x01\x01\x42\r\n\x0b_start_timeB\x0b\n\t_end_timeB\r\n\x0b_confidenceB\x14\n\x12_start_time_offsetB\r\n\x0b_speaker_id\"\xb9\x03\n\x0b\x43hatMessage\x12\n\n\x02id\x18\x01 \x01(\t\x12%\n\x04role\x18\x02 \x01(\x0e\x32\x17.livekit.agent.ChatRole\x12\x37\n\x07\x63ontent\x18\x03 \x03(\x0b\x32&.livekit.agent.ChatMessage.ChatContent\x12\x13\n\x0binterrupted\x18\x04 \x01(\x08\x12\"\n\x15transcript_confidence\x18\x05 \x01(\x01H\x00\x88\x01\x01\x12\x34\n\x05\x65xtra\x18\x06 \x03(\x0b\x32%.livekit.agent.ChatMessage.ExtraEntry\x12-\n\x07metrics\x18\x07 \x01(\x0b\x32\x1c.livekit.agent.MetricsReport\x12.\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a(\n\x0b\x43hatContent\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x42\t\n\x07payload\x1a,\n\nExtraEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x18\n\x16_transcript_confidence\"\xec\x01\n\x0c\x46unctionCall\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1a\n\x07\x63\x61ll_id\x18\x02 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x11\n\targuments\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x05\x65xtra\x18\x06 \x03(\x0b\x32&.livekit.agent.FunctionCall.ExtraEntry\x1a,\n\nExtraEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9c\x01\n\x12\x46unctionCallOutput\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1a\n\x07\x63\x61ll_id\x18\x03 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x0e\n\x06output\x18\x04 \x01(\t\x12\x10\n\x08is_error\x18\x05 \x01(\x08\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xaa\x01\n\x0c\x41gentHandoff\x12\n\n\x02id\x18\x01 \x01(\t\x12(\n\x0cold_agent_id\x18\x02 \x01(\tB\r\xbaP\noldAgentIDH\x00\x88\x01\x01\x12#\n\x0cnew_agent_id\x18\x03 \x01(\tB\r\xbaP\nnewAgentID\x12.\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\n\r_old_agent_id\"\xa7\x01\n\x11\x41gentConfigUpdate\x12\n\n\x02id\x18\x01 \x01(\t\x12\x19\n\x0cinstructions\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x0btools_added\x18\x03 \x03(\t\x12\x15\n\rtools_removed\x18\x04 \x03(\t\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\n\r_instructions\"\xf5\x02\n\x0b\x43hatContext\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a\xb1\x02\n\x08\x43hatItem\x12-\n\x07message\x18\x01 \x01(\x0b\x32\x1a.livekit.agent.ChatMessageH\x00\x12\x34\n\rfunction_call\x18\x02 \x01(\x0b\x32\x1b.livekit.agent.FunctionCallH\x00\x12\x41\n\x14\x66unction_call_output\x18\x03 \x01(\x0b\x32!.livekit.agent.FunctionCallOutputH\x00\x12\x34\n\ragent_handoff\x18\x04 \x01(\x0b\x32\x1b.livekit.agent.AgentHandoffH\x00\x12?\n\x13\x61gent_config_update\x18\x05 \x01(\x0b\x32 .livekit.agent.AgentConfigUpdateH\x00\x42\x06\n\x04item\"\x88\x03\n\rLLMModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x14\n\x0cinput_tokens\x18\x03 \x01(\x05\x12\x1b\n\x13input_cached_tokens\x18\x04 \x01(\x05\x12\x1a\n\x12input_audio_tokens\x18\x05 \x01(\x05\x12!\n\x19input_cached_audio_tokens\x18\x06 \x01(\x05\x12\x19\n\x11input_text_tokens\x18\x07 \x01(\x05\x12 \n\x18input_cached_text_tokens\x18\x08 \x01(\x05\x12\x1a\n\x12input_image_tokens\x18\t \x01(\x05\x12!\n\x19input_cached_image_tokens\x18\n \x01(\x05\x12\x15\n\routput_tokens\x18\x0b \x01(\x05\x12\x1b\n\x13output_audio_tokens\x18\x0c \x01(\x05\x12\x1a\n\x12output_text_tokens\x18\r \x01(\x05\x12\x18\n\x10session_duration\x18\x0e \x01(\x01\"\x8f\x01\n\rTTSModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x14\n\x0cinput_tokens\x18\x03 \x01(\x05\x12\x15\n\routput_tokens\x18\x04 \x01(\x05\x12\x18\n\x10\x63haracters_count\x18\x05 \x01(\x05\x12\x16\n\x0e\x61udio_duration\x18\x06 \x01(\x01\"u\n\rSTTModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x14\n\x0cinput_tokens\x18\x03 \x01(\x05\x12\x15\n\routput_tokens\x18\x04 \x01(\x05\x12\x16\n\x0e\x61udio_duration\x18\x05 \x01(\x01\"Q\n\x16InterruptionModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x16\n\x0etotal_requests\x18\x03 \x01(\x05\"H\n\rEotModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x16\n\x0etotal_requests\x18\x03 \x01(\x05\"\x88\x02\n\nModelUsage\x12+\n\x03llm\x18\x01 \x01(\x0b\x32\x1c.livekit.agent.LLMModelUsageH\x00\x12+\n\x03tts\x18\x02 \x01(\x0b\x32\x1c.livekit.agent.TTSModelUsageH\x00\x12+\n\x03stt\x18\x03 \x01(\x0b\x32\x1c.livekit.agent.STTModelUsageH\x00\x12=\n\x0cinterruption\x18\x04 \x01(\x0b\x32%.livekit.agent.InterruptionModelUsageH\x00\x12+\n\x03\x65ot\x18\x05 \x01(\x0b\x32\x1c.livekit.agent.EotModelUsageH\x00\x42\x07\n\x05usage\"C\n\x11\x41gentSessionUsage\x12.\n\x0bmodel_usage\x18\x01 \x03(\x0b\x32\x19.livekit.agent.ModelUsage\"8\n\x0c\x44\x65\x62ugMessage\x12(\n\x07payload\x18\x01 \x01(\x0b\x32\x17.google.protobuf.Struct\"\xe2\x1c\n\x11\x41gentSessionEvent\x12.\n\ncreated_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12Q\n\x13\x61gent_state_changed\x18\n \x01(\x0b\x32\x32.livekit.agent.AgentSessionEvent.AgentStateChangedH\x00\x12O\n\x12user_state_changed\x18\x0b \x01(\x0b\x32\x31.livekit.agent.AgentSessionEvent.UserStateChangedH\x00\x12Y\n\x17\x63onversation_item_added\x18\x0c \x01(\x0b\x32\x36.livekit.agent.AgentSessionEvent.ConversationItemAddedH\x00\x12W\n\x16user_input_transcribed\x18\r \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.UserInputTranscribedH\x00\x12Y\n\x17\x66unction_tools_executed\x18\x0e \x01(\x0b\x32\x36.livekit.agent.AgentSessionEvent.FunctionToolsExecutedH\x00\x12\x37\n\x05\x65rror\x18\x0f \x01(\x0b\x32&.livekit.agent.AgentSessionEvent.ErrorH\x00\x12P\n\x12overlapping_speech\x18\x10 \x01(\x0b\x32\x32.livekit.agent.AgentSessionEvent.OverlappingSpeechH\x00\x12U\n\x15session_usage_updated\x18\x11 \x01(\x0b\x32\x34.livekit.agent.AgentSessionEvent.SessionUsageUpdatedH\x00\x12H\n\x0e\x61md_prediction\x18\x12 \x01(\x0b\x32..livekit.agent.AgentSessionEvent.AmdPredictionH\x00\x12H\n\x0e\x65ot_prediction\x18\x13 \x01(\x0b\x32..livekit.agent.AgentSessionEvent.EotPredictionH\x00\x12W\n\x16\x66unction_tools_started\x18\x14 \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.FunctionToolsStartedH\x00\x12\x34\n\rdebug_message\x18\x15 \x01(\x0b\x32\x1b.livekit.agent.DebugMessageH\x00\x12W\n\x16tool_execution_updated\x18\x16 \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.ToolExecutionUpdatedH\x00\x12[\n\x18\x61gent_false_interruption\x18\x17 \x01(\x0b\x32\x37.livekit.agent.AgentSessionEvent.AgentFalseInterruptionH\x00\x12\x46\n\ramd_completed\x18\x18 \x01(\x0b\x32-.livekit.agent.AgentSessionEvent.AmdCompletedH\x00\x1ao\n\x11\x41gentStateChanged\x12,\n\told_state\x18\x01 \x01(\x0e\x32\x19.livekit.agent.AgentState\x12,\n\tnew_state\x18\x02 \x01(\x0e\x32\x19.livekit.agent.AgentState\x1al\n\x10UserStateChanged\x12+\n\told_state\x18\x01 \x01(\x0e\x32\x18.livekit.agent.UserState\x12+\n\tnew_state\x18\x02 \x01(\x0e\x32\x18.livekit.agent.UserState\x1aJ\n\x15\x43onversationItemAdded\x12\x31\n\x04item\x18\x01 \x01(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a`\n\x14UserInputTranscribed\x12\x12\n\ntranscript\x18\x01 \x01(\t\x12\x10\n\x08is_final\x18\x02 \x01(\x08\x12\x15\n\x08language\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_language\x1aK\n\x14\x46unctionToolsStarted\x12\x33\n\x0e\x66unction_calls\x18\x01 \x03(\x0b\x32\x1b.livekit.agent.FunctionCall\x1a\x8e\x01\n\x15\x46unctionToolsExecuted\x12\x33\n\x0e\x66unction_calls\x18\x01 \x03(\x0b\x32\x1b.livekit.agent.FunctionCall\x12@\n\x15\x66unction_call_outputs\x18\x02 \x03(\x0b\x32!.livekit.agent.FunctionCallOutput\x1a\x18\n\x05\x45rror\x12\x0f\n\x07message\x18\x01 \x01(\t\x1a\xca\x01\n\x11OverlappingSpeech\x12\x17\n\x0fis_interruption\x18\x01 \x01(\x08\x12;\n\x12overlap_started_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x17\n\x0f\x64\x65tection_delay\x18\x03 \x01(\x01\x12/\n\x0b\x64\x65tected_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x15\n\x13_overlap_started_at\x1a\xb2\x02\n\rAmdPrediction\x12\x32\n\x0fspeech_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12,\n\x08\x63\x61tegory\x18\x02 \x01(\x0e\x32\x1a.livekit.agent.AmdCategory\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x12\n\ntranscript\x18\x04 \x01(\t\x12(\n\x05\x64\x65lay\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x0f\n\x07turn_id\x18\x06 \x01(\r\x12)\n\x05stage\x18\x07 \x01(\x0e\x32\x1a.livekit.agent.AmdCategory\x12\x35\n\x12inference_duration\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\xb2\x01\n\x0c\x41mdCompleted\x12,\n\x08\x63\x61tegory\x18\x01 \x01(\x0e\x32\x1a.livekit.agent.AmdCategory\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12 \n\x18voicemail_message_played\x18\x03 \x01(\x08\x12\x42\n\nprediction\x18\x04 \x01(\x0b\x32..livekit.agent.AgentSessionEvent.AmdPrediction\x1a\x98\x01\n\rEotPrediction\x12\x13\n\x0bprobability\x18\x01 \x01(\x02\x12\x11\n\tthreshold\x18\x02 \x01(\x02\x12\x35\n\x12inference_duration\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12(\n\x05\x64\x65lay\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x46\n\x13SessionUsageUpdated\x12/\n\x05usage\x18\x01 \x01(\x0b\x32 .livekit.agent.AgentSessionUsage\x1a\x93\x06\n\x14ToolExecutionUpdated\x12P\n\x07started\x18\x01 \x01(\x0b\x32=.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.StartedH\x00\x12Y\n\x0c\x63\x61ll_updated\x18\x02 \x01(\x0b\x32\x41.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.CallUpdatedH\x00\x12[\n\rreply_updated\x18\x03 \x01(\x0b\x32\x42.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.ReplyUpdatedH\x00\x12L\n\x05\x65nded\x18\x04 \x01(\x0b\x32;.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.EndedH\x00\x1a=\n\x07Started\x12\x32\n\rfunction_call\x18\x01 \x01(\x0b\x32\x1b.livekit.agent.FunctionCall\x1aM\n\x0b\x43\x61llUpdated\x12\x11\n\x02id\x18\x01 \x01(\tB\x05\xbaP\x02ID\x12\x1a\n\x07\x63\x61ll_id\x18\x02 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x0f\n\x07message\x18\x03 \x01(\t\x1a\x87\x01\n\x05\x45nded\x12\x11\n\x02id\x18\x01 \x01(\tB\x05\xbaP\x02ID\x12\x1a\n\x07\x63\x61ll_id\x18\x02 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x14\n\x07message\x18\x03 \x01(\tH\x00\x88\x01\x01\x12-\n\x06status\x18\x04 \x01(\x0e\x32\x1d.livekit.agent.ToolCallStatusB\n\n\x08_message\x1a\x80\x01\n\x0cReplyUpdated\x12 \n\nupdate_ids\x18\x01 \x03(\tB\x0c\xbaP\tupdateIDs\x12.\n\x06status\x18\x02 \x01(\x0e\x32\x1e.livekit.agent.ToolReplyStatus\x12\x1e\n\tspeech_id\x18\x03 \x01(\tB\x0b\xbaP\x08speechIDB\x08\n\x06update\x1a)\n\x16\x41gentFalseInterruption\x12\x0f\n\x07resumed\x18\x01 \x01(\x08\x42\x07\n\x05\x65vent\"\xf6\n\n\x0eSessionRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x32\n\x04ping\x18\x02 \x01(\x0b\x32\".livekit.agent.SessionRequest.PingH\x00\x12H\n\x10get_chat_history\x18\x04 \x01(\x0b\x32,.livekit.agent.SessionRequest.GetChatHistoryH\x00\x12;\n\trun_input\x18\x05 \x01(\x0b\x32&.livekit.agent.SessionRequest.RunInputH\x00\x12\x44\n\x0eget_agent_info\x18\x06 \x01(\x0b\x32*.livekit.agent.SessionRequest.GetAgentInfoH\x00\x12J\n\x11get_session_state\x18\x07 \x01(\x0b\x32-.livekit.agent.SessionRequest.GetSessionStateH\x00\x12\x42\n\rget_rtc_stats\x18\x08 \x01(\x0b\x32).livekit.agent.SessionRequest.GetRTCStatsH\x00\x12J\n\x11get_session_usage\x18\t \x01(\x0b\x32-.livekit.agent.SessionRequest.GetSessionUsageH\x00\x12L\n\x12get_framework_info\x18\n \x01(\x0b\x32..livekit.agent.SessionRequest.GetFrameworkInfoH\x00\x12;\n\tupdate_io\x18\x0b \x01(\x0b\x32&.livekit.agent.SessionRequest.UpdateIOH\x00\x12O\n\x13\x66inalize_simulation\x18\x0c \x01(\x0b\x32\x30.livekit.agent.SessionRequest.FinalizeSimulationH\x00\x1a\x06\n\x04Ping\x1a\x10\n\x0eGetChatHistory\x1a\x18\n\x08RunInput\x12\x0c\n\x04text\x18\x01 \x01(\t\x1a\x0e\n\x0cGetAgentInfo\x1a\x11\n\x0fGetSessionState\x1a\r\n\x0bGetRTCStats\x1a\x11\n\x0fGetSessionUsage\x1a\x12\n\x10GetFrameworkInfo\x1a\xaf\x03\n\x08UpdateIO\x12@\n\x05input\x18\x01 \x01(\x0b\x32,.livekit.agent.SessionRequest.UpdateIO.InputH\x00\x88\x01\x01\x12\x42\n\x06output\x18\x02 \x01(\x0b\x32-.livekit.agent.SessionRequest.UpdateIO.OutputH\x01\x88\x01\x01\x1a\x63\n\x05Input\x12\x1a\n\raudio_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rvideo_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x10\n\x0e_audio_enabledB\x10\n\x0e_video_enabled\x1a\xa2\x01\n\x06Output\x12\x1a\n\raudio_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rvideo_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15transcription_enabled\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x10\n\x0e_audio_enabledB\x10\n\x0e_video_enabledB\x18\n\x16_transcription_enabledB\x08\n\x06_inputB\t\n\x07_output\x1aM\n\x12\x46inalizeSimulation\x12\x1b\n\x13provisional_success\x18\x01 \x01(\x08\x12\x1a\n\x12provisional_reason\x18\x02 \x01(\tB\t\n\x07request\"\xd3\x0f\n\x0fSessionResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x33\n\x04pong\x18\x03 \x01(\x0b\x32#.livekit.agent.SessionResponse.PongH\x00\x12Q\n\x10get_chat_history\x18\x05 \x01(\x0b\x32\x35.livekit.agent.SessionResponse.GetChatHistoryResponseH\x00\x12\x44\n\trun_input\x18\x06 \x01(\x0b\x32/.livekit.agent.SessionResponse.RunInputResponseH\x00\x12M\n\x0eget_agent_info\x18\x07 \x01(\x0b\x32\x33.livekit.agent.SessionResponse.GetAgentInfoResponseH\x00\x12S\n\x11get_session_state\x18\x08 \x01(\x0b\x32\x36.livekit.agent.SessionResponse.GetSessionStateResponseH\x00\x12K\n\rget_rtc_stats\x18\t \x01(\x0b\x32\x32.livekit.agent.SessionResponse.GetRTCStatsResponseH\x00\x12S\n\x11get_session_usage\x18\n \x01(\x0b\x32\x36.livekit.agent.SessionResponse.GetSessionUsageResponseH\x00\x12U\n\x12get_framework_info\x18\x0b \x01(\x0b\x32\x37.livekit.agent.SessionResponse.GetFrameworkInfoResponseH\x00\x12\x44\n\tupdate_io\x18\x0c \x01(\x0b\x32/.livekit.agent.SessionResponse.UpdateIOResponseH\x00\x12X\n\x13\x66inalize_simulation\x18\r \x01(\x0b\x32\x39.livekit.agent.SessionResponse.FinalizeSimulationResponseH\x00\x1a\x06\n\x04Pong\x1aL\n\x16GetChatHistoryResponse\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a\x94\x01\n\x14GetAgentInfoResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x19\n\x0cinstructions\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05tools\x18\x03 \x03(\t\x12\x35\n\x08\x63hat_ctx\x18\x04 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItemB\x0f\n\r_instructions\x1a\x46\n\x10RunInputResponse\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a\xbf\x02\n\x17GetSessionStateResponse\x12.\n\x0b\x61gent_state\x18\x01 \x01(\x0e\x32\x19.livekit.agent.AgentState\x12,\n\nuser_state\x18\x02 \x01(\x0e\x32\x18.livekit.agent.UserState\x12\x10\n\x08\x61gent_id\x18\x03 \x01(\t\x12T\n\x07options\x18\x04 \x03(\x0b\x32\x43.livekit.agent.SessionResponse.GetSessionStateResponse.OptionsEntry\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1az\n\x13GetRTCStatsResponse\x12\x30\n\x0fpublisher_stats\x18\x01 \x03(\x0b\x32\x17.google.protobuf.Struct\x12\x31\n\x10subscriber_stats\x18\x02 \x03(\x0b\x32\x17.google.protobuf.Struct\x1az\n\x17GetSessionUsageResponse\x12/\n\x05usage\x18\x01 \x01(\x0b\x32 .livekit.agent.AgentSessionUsage\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a<\n\x18GetFrameworkInfoResponse\x12\x0b\n\x03sdk\x18\x01 \x01(\t\x12\x13\n\x0bsdk_version\x18\x02 \x01(\t\x1a\x12\n\x10UpdateIOResponse\x1a\xb5\x01\n\x1a\x46inalizeSimulationResponse\x12\x61\n\x0cuser_verdict\x18\x01 \x01(\x0b\x32K.livekit.agent.SessionResponse.FinalizeSimulationResponse.SimulationVerdict\x1a\x34\n\x11SimulationVerdict\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0e\n\x06reason\x18\x02 \x01(\tB\n\n\x08responseB\x08\n\x06_error\"\xba\x06\n\x13\x41gentSessionMessage\x12N\n\x0b\x61udio_input\x18\x01 \x01(\x0b\x32\x37.livekit.agent.AgentSessionMessage.ConsoleIO.AudioFrameH\x00\x12O\n\x0c\x61udio_output\x18\x02 \x01(\x0b\x32\x37.livekit.agent.AgentSessionMessage.ConsoleIO.AudioFrameH\x00\x12\x31\n\x05\x65vent\x18\x03 \x01(\x0b\x32 .livekit.agent.AgentSessionEventH\x00\x12\x30\n\x07request\x18\x04 \x01(\x0b\x32\x1d.livekit.agent.SessionRequestH\x00\x12\x32\n\x08response\x18\x05 \x01(\x0b\x32\x1e.livekit.agent.SessionResponseH\x00\x12_\n\x14\x61udio_playback_flush\x18\x06 \x01(\x0b\x32?.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackFlushH\x00\x12_\n\x14\x61udio_playback_clear\x18\x07 \x01(\x0b\x32?.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackClearH\x00\x12\x65\n\x17\x61udio_playback_finished\x18\x08 \x01(\x0b\x32\x42.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackFinishedH\x00\x1a\xb4\x01\n\tConsoleIO\x1a\x62\n\nAudioFrame\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x13\n\x0bsample_rate\x18\x02 \x01(\r\x12\x14\n\x0cnum_channels\x18\x03 \x01(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x01(\r\x1a\x14\n\x12\x41udioPlaybackFlush\x1a\x14\n\x12\x41udioPlaybackClear\x1a\x17\n\x15\x41udioPlaybackFinishedB\t\n\x07message*>\n\x08\x43hatRole\x12\r\n\tDEVELOPER\x10\x00\x12\n\n\x06SYSTEM\x10\x01\x12\x08\n\x04USER\x10\x02\x12\r\n\tASSISTANT\x10\x03*b\n\nAgentState\x12\x13\n\x0f\x41S_INITIALIZING\x10\x00\x12\x0b\n\x07\x41S_IDLE\x10\x01\x12\x10\n\x0c\x41S_LISTENING\x10\x02\x12\x0f\n\x0b\x41S_THINKING\x10\x03\x12\x0f\n\x0b\x41S_SPEAKING\x10\x04*;\n\tUserState\x12\x0f\n\x0bUS_SPEAKING\x10\x00\x12\x10\n\x0cUS_LISTENING\x10\x01\x12\x0b\n\x07US_AWAY\x10\x02*M\n\x0eToolCallStatus\x12\x0e\n\nTC_RUNNING\x10\x00\x12\x0b\n\x07TC_DONE\x10\x01\x12\x0c\n\x08TC_ERROR\x10\x02\x12\x10\n\x0cTC_CANCELLED\x10\x03*Y\n\x0fToolReplyStatus\x12\x10\n\x0cTR_SCHEDULED\x10\x00\x12\x10\n\x0cTR_COMPLETED\x10\x01\x12\x12\n\x0eTR_INTERRUPTED\x10\x02\x12\x0e\n\nTR_SKIPPED\x10\x03*\x8a\x01\n\x0b\x43loseReason\x12\x0e\n\nCR_UNKNOWN\x10\x00\x12\x0c\n\x08\x43R_ERROR\x10\x01\x12\x13\n\x0f\x43R_JOB_SHUTDOWN\x10\x02\x12\x1f\n\x1b\x43R_PARTICIPANT_DISCONNECTED\x10\x03\x12\x15\n\x11\x43R_USER_INITIATED\x10\x04\x12\x10\n\x0c\x43R_COMPLETED\x10\x05*\xaf\x01\n\x0b\x41mdCategory\x12\x0f\n\x0b\x41MD_UNKNOWN\x10\x00\x12\r\n\tAMD_HUMAN\x10\x01\x12\x13\n\x0f\x41MD_MACHINE_IVR\x10\x02\x12\x12\n\x0e\x41MD_MACHINE_VM\x10\x03\x12\x1b\n\x17\x41MD_MACHINE_UNAVAILABLE\x10\x04\x12\x11\n\rAMD_UNCERTAIN\x10\x05\x12\x19\n\x15\x41MD_MACHINE_SCREENING\x10\x06\x12\x0c\n\x08\x41MD_WAIT\x10\x07\x42+Z)github.com/livekit/protocol/livekit/agentb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -62,20 +62,20 @@ _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_REPLYUPDATED'].fields_by_name['speech_id']._serialized_options = b'\272P\010speechID' _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._loaded_options = None _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_options = b'8\001' - _globals['_CHATROLE']._serialized_start=11278 - _globals['_CHATROLE']._serialized_end=11340 - _globals['_AGENTSTATE']._serialized_start=11342 - _globals['_AGENTSTATE']._serialized_end=11440 - _globals['_USERSTATE']._serialized_start=11442 - _globals['_USERSTATE']._serialized_end=11501 - _globals['_TOOLCALLSTATUS']._serialized_start=11503 - _globals['_TOOLCALLSTATUS']._serialized_end=11580 - _globals['_TOOLREPLYSTATUS']._serialized_start=11582 - _globals['_TOOLREPLYSTATUS']._serialized_end=11671 - _globals['_CLOSEREASON']._serialized_start=11674 - _globals['_CLOSEREASON']._serialized_end=11812 - _globals['_AMDCATEGORY']._serialized_start=11815 - _globals['_AMDCATEGORY']._serialized_end=11949 + _globals['_CHATROLE']._serialized_start=11646 + _globals['_CHATROLE']._serialized_end=11708 + _globals['_AGENTSTATE']._serialized_start=11710 + _globals['_AGENTSTATE']._serialized_end=11808 + _globals['_USERSTATE']._serialized_start=11810 + _globals['_USERSTATE']._serialized_end=11869 + _globals['_TOOLCALLSTATUS']._serialized_start=11871 + _globals['_TOOLCALLSTATUS']._serialized_end=11948 + _globals['_TOOLREPLYSTATUS']._serialized_start=11950 + _globals['_TOOLREPLYSTATUS']._serialized_end=12039 + _globals['_CLOSEREASON']._serialized_start=12042 + _globals['_CLOSEREASON']._serialized_end=12180 + _globals['_AMDCATEGORY']._serialized_start=12183 + _globals['_AMDCATEGORY']._serialized_end=12358 _globals['_METRICSREPORT']._serialized_start=170 _globals['_METRICSREPORT']._serialized_end=711 _globals['_TIMEDSTRING']._serialized_start=714 @@ -117,103 +117,105 @@ _globals['_DEBUGMESSAGE']._serialized_start=3667 _globals['_DEBUGMESSAGE']._serialized_end=3723 _globals['_AGENTSESSIONEVENT']._serialized_start=3726 - _globals['_AGENTSESSIONEVENT']._serialized_end=7040 - _globals['_AGENTSESSIONEVENT_AGENTSTATECHANGED']._serialized_start=4929 - _globals['_AGENTSESSIONEVENT_AGENTSTATECHANGED']._serialized_end=5040 - _globals['_AGENTSESSIONEVENT_USERSTATECHANGED']._serialized_start=5042 - _globals['_AGENTSESSIONEVENT_USERSTATECHANGED']._serialized_end=5150 - _globals['_AGENTSESSIONEVENT_CONVERSATIONITEMADDED']._serialized_start=5152 - _globals['_AGENTSESSIONEVENT_CONVERSATIONITEMADDED']._serialized_end=5226 - _globals['_AGENTSESSIONEVENT_USERINPUTTRANSCRIBED']._serialized_start=5228 - _globals['_AGENTSESSIONEVENT_USERINPUTTRANSCRIBED']._serialized_end=5324 - _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSSTARTED']._serialized_start=5326 - _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSSTARTED']._serialized_end=5401 - _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSEXECUTED']._serialized_start=5404 - _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSEXECUTED']._serialized_end=5546 - _globals['_AGENTSESSIONEVENT_ERROR']._serialized_start=5548 - _globals['_AGENTSESSIONEVENT_ERROR']._serialized_end=5572 - _globals['_AGENTSESSIONEVENT_OVERLAPPINGSPEECH']._serialized_start=5575 - _globals['_AGENTSESSIONEVENT_OVERLAPPINGSPEECH']._serialized_end=5777 - _globals['_AGENTSESSIONEVENT_AMDPREDICTION']._serialized_start=5780 - _globals['_AGENTSESSIONEVENT_AMDPREDICTION']._serialized_end=5971 - _globals['_AGENTSESSIONEVENT_EOTPREDICTION']._serialized_start=5974 - _globals['_AGENTSESSIONEVENT_EOTPREDICTION']._serialized_end=6126 - _globals['_AGENTSESSIONEVENT_SESSIONUSAGEUPDATED']._serialized_start=6128 - _globals['_AGENTSESSIONEVENT_SESSIONUSAGEUPDATED']._serialized_end=6198 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED']._serialized_start=6201 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED']._serialized_end=6988 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_STARTED']._serialized_start=6569 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_STARTED']._serialized_end=6630 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_CALLUPDATED']._serialized_start=6632 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_CALLUPDATED']._serialized_end=6709 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_ENDED']._serialized_start=6712 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_ENDED']._serialized_end=6847 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_REPLYUPDATED']._serialized_start=6850 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_REPLYUPDATED']._serialized_end=6978 - _globals['_AGENTSESSIONEVENT_AGENTFALSEINTERRUPTION']._serialized_start=6990 - _globals['_AGENTSESSIONEVENT_AGENTFALSEINTERRUPTION']._serialized_end=7031 - _globals['_SESSIONREQUEST']._serialized_start=7043 - _globals['_SESSIONREQUEST']._serialized_end=8441 - _globals['_SESSIONREQUEST_PING']._serialized_start=7778 - _globals['_SESSIONREQUEST_PING']._serialized_end=7784 - _globals['_SESSIONREQUEST_GETCHATHISTORY']._serialized_start=7786 - _globals['_SESSIONREQUEST_GETCHATHISTORY']._serialized_end=7802 - _globals['_SESSIONREQUEST_RUNINPUT']._serialized_start=7804 - _globals['_SESSIONREQUEST_RUNINPUT']._serialized_end=7828 - _globals['_SESSIONREQUEST_GETAGENTINFO']._serialized_start=7830 - _globals['_SESSIONREQUEST_GETAGENTINFO']._serialized_end=7844 - _globals['_SESSIONREQUEST_GETSESSIONSTATE']._serialized_start=7846 - _globals['_SESSIONREQUEST_GETSESSIONSTATE']._serialized_end=7863 - _globals['_SESSIONREQUEST_GETRTCSTATS']._serialized_start=7865 - _globals['_SESSIONREQUEST_GETRTCSTATS']._serialized_end=7878 - _globals['_SESSIONREQUEST_GETSESSIONUSAGE']._serialized_start=7880 - _globals['_SESSIONREQUEST_GETSESSIONUSAGE']._serialized_end=7897 - _globals['_SESSIONREQUEST_GETFRAMEWORKINFO']._serialized_start=7899 - _globals['_SESSIONREQUEST_GETFRAMEWORKINFO']._serialized_end=7917 - _globals['_SESSIONREQUEST_UPDATEIO']._serialized_start=7920 - _globals['_SESSIONREQUEST_UPDATEIO']._serialized_end=8351 - _globals['_SESSIONREQUEST_UPDATEIO_INPUT']._serialized_start=8066 - _globals['_SESSIONREQUEST_UPDATEIO_INPUT']._serialized_end=8165 - _globals['_SESSIONREQUEST_UPDATEIO_OUTPUT']._serialized_start=8168 - _globals['_SESSIONREQUEST_UPDATEIO_OUTPUT']._serialized_end=8330 - _globals['_SESSIONREQUEST_FINALIZESIMULATION']._serialized_start=8353 - _globals['_SESSIONREQUEST_FINALIZESIMULATION']._serialized_end=8430 - _globals['_SESSIONRESPONSE']._serialized_start=8444 - _globals['_SESSIONRESPONSE']._serialized_end=10447 - _globals['_SESSIONRESPONSE_PONG']._serialized_start=9282 - _globals['_SESSIONRESPONSE_PONG']._serialized_end=9288 - _globals['_SESSIONRESPONSE_GETCHATHISTORYRESPONSE']._serialized_start=9290 - _globals['_SESSIONRESPONSE_GETCHATHISTORYRESPONSE']._serialized_end=9366 - _globals['_SESSIONRESPONSE_GETAGENTINFORESPONSE']._serialized_start=9369 - _globals['_SESSIONRESPONSE_GETAGENTINFORESPONSE']._serialized_end=9517 - _globals['_SESSIONRESPONSE_RUNINPUTRESPONSE']._serialized_start=9519 - _globals['_SESSIONRESPONSE_RUNINPUTRESPONSE']._serialized_end=9589 - _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE']._serialized_start=9592 - _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE']._serialized_end=9911 - _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_start=9865 - _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_end=9911 - _globals['_SESSIONRESPONSE_GETRTCSTATSRESPONSE']._serialized_start=9913 - _globals['_SESSIONRESPONSE_GETRTCSTATSRESPONSE']._serialized_end=10035 - _globals['_SESSIONRESPONSE_GETSESSIONUSAGERESPONSE']._serialized_start=10037 - _globals['_SESSIONRESPONSE_GETSESSIONUSAGERESPONSE']._serialized_end=10159 - _globals['_SESSIONRESPONSE_GETFRAMEWORKINFORESPONSE']._serialized_start=10161 - _globals['_SESSIONRESPONSE_GETFRAMEWORKINFORESPONSE']._serialized_end=10221 - _globals['_SESSIONRESPONSE_UPDATEIORESPONSE']._serialized_start=10223 - _globals['_SESSIONRESPONSE_UPDATEIORESPONSE']._serialized_end=10241 - _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE']._serialized_start=10244 - _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE']._serialized_end=10425 - _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE_SIMULATIONVERDICT']._serialized_start=10373 - _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE_SIMULATIONVERDICT']._serialized_end=10425 - _globals['_AGENTSESSIONMESSAGE']._serialized_start=10450 - _globals['_AGENTSESSIONMESSAGE']._serialized_end=11276 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO']._serialized_start=11085 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO']._serialized_end=11265 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOFRAME']._serialized_start=11098 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOFRAME']._serialized_end=11196 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFLUSH']._serialized_start=11198 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFLUSH']._serialized_end=11218 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKCLEAR']._serialized_start=11220 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKCLEAR']._serialized_end=11240 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFINISHED']._serialized_start=11242 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFINISHED']._serialized_end=11265 + _globals['_AGENTSESSIONEVENT']._serialized_end=7408 + _globals['_AGENTSESSIONEVENT_AGENTSTATECHANGED']._serialized_start=5001 + _globals['_AGENTSESSIONEVENT_AGENTSTATECHANGED']._serialized_end=5112 + _globals['_AGENTSESSIONEVENT_USERSTATECHANGED']._serialized_start=5114 + _globals['_AGENTSESSIONEVENT_USERSTATECHANGED']._serialized_end=5222 + _globals['_AGENTSESSIONEVENT_CONVERSATIONITEMADDED']._serialized_start=5224 + _globals['_AGENTSESSIONEVENT_CONVERSATIONITEMADDED']._serialized_end=5298 + _globals['_AGENTSESSIONEVENT_USERINPUTTRANSCRIBED']._serialized_start=5300 + _globals['_AGENTSESSIONEVENT_USERINPUTTRANSCRIBED']._serialized_end=5396 + _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSSTARTED']._serialized_start=5398 + _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSSTARTED']._serialized_end=5473 + _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSEXECUTED']._serialized_start=5476 + _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSEXECUTED']._serialized_end=5618 + _globals['_AGENTSESSIONEVENT_ERROR']._serialized_start=5620 + _globals['_AGENTSESSIONEVENT_ERROR']._serialized_end=5644 + _globals['_AGENTSESSIONEVENT_OVERLAPPINGSPEECH']._serialized_start=5647 + _globals['_AGENTSESSIONEVENT_OVERLAPPINGSPEECH']._serialized_end=5849 + _globals['_AGENTSESSIONEVENT_AMDPREDICTION']._serialized_start=5852 + _globals['_AGENTSESSIONEVENT_AMDPREDICTION']._serialized_end=6158 + _globals['_AGENTSESSIONEVENT_AMDCOMPLETED']._serialized_start=6161 + _globals['_AGENTSESSIONEVENT_AMDCOMPLETED']._serialized_end=6339 + _globals['_AGENTSESSIONEVENT_EOTPREDICTION']._serialized_start=6342 + _globals['_AGENTSESSIONEVENT_EOTPREDICTION']._serialized_end=6494 + _globals['_AGENTSESSIONEVENT_SESSIONUSAGEUPDATED']._serialized_start=6496 + _globals['_AGENTSESSIONEVENT_SESSIONUSAGEUPDATED']._serialized_end=6566 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED']._serialized_start=6569 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED']._serialized_end=7356 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_STARTED']._serialized_start=6937 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_STARTED']._serialized_end=6998 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_CALLUPDATED']._serialized_start=7000 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_CALLUPDATED']._serialized_end=7077 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_ENDED']._serialized_start=7080 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_ENDED']._serialized_end=7215 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_REPLYUPDATED']._serialized_start=7218 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_REPLYUPDATED']._serialized_end=7346 + _globals['_AGENTSESSIONEVENT_AGENTFALSEINTERRUPTION']._serialized_start=7358 + _globals['_AGENTSESSIONEVENT_AGENTFALSEINTERRUPTION']._serialized_end=7399 + _globals['_SESSIONREQUEST']._serialized_start=7411 + _globals['_SESSIONREQUEST']._serialized_end=8809 + _globals['_SESSIONREQUEST_PING']._serialized_start=8146 + _globals['_SESSIONREQUEST_PING']._serialized_end=8152 + _globals['_SESSIONREQUEST_GETCHATHISTORY']._serialized_start=8154 + _globals['_SESSIONREQUEST_GETCHATHISTORY']._serialized_end=8170 + _globals['_SESSIONREQUEST_RUNINPUT']._serialized_start=8172 + _globals['_SESSIONREQUEST_RUNINPUT']._serialized_end=8196 + _globals['_SESSIONREQUEST_GETAGENTINFO']._serialized_start=8198 + _globals['_SESSIONREQUEST_GETAGENTINFO']._serialized_end=8212 + _globals['_SESSIONREQUEST_GETSESSIONSTATE']._serialized_start=8214 + _globals['_SESSIONREQUEST_GETSESSIONSTATE']._serialized_end=8231 + _globals['_SESSIONREQUEST_GETRTCSTATS']._serialized_start=8233 + _globals['_SESSIONREQUEST_GETRTCSTATS']._serialized_end=8246 + _globals['_SESSIONREQUEST_GETSESSIONUSAGE']._serialized_start=8248 + _globals['_SESSIONREQUEST_GETSESSIONUSAGE']._serialized_end=8265 + _globals['_SESSIONREQUEST_GETFRAMEWORKINFO']._serialized_start=8267 + _globals['_SESSIONREQUEST_GETFRAMEWORKINFO']._serialized_end=8285 + _globals['_SESSIONREQUEST_UPDATEIO']._serialized_start=8288 + _globals['_SESSIONREQUEST_UPDATEIO']._serialized_end=8719 + _globals['_SESSIONREQUEST_UPDATEIO_INPUT']._serialized_start=8434 + _globals['_SESSIONREQUEST_UPDATEIO_INPUT']._serialized_end=8533 + _globals['_SESSIONREQUEST_UPDATEIO_OUTPUT']._serialized_start=8536 + _globals['_SESSIONREQUEST_UPDATEIO_OUTPUT']._serialized_end=8698 + _globals['_SESSIONREQUEST_FINALIZESIMULATION']._serialized_start=8721 + _globals['_SESSIONREQUEST_FINALIZESIMULATION']._serialized_end=8798 + _globals['_SESSIONRESPONSE']._serialized_start=8812 + _globals['_SESSIONRESPONSE']._serialized_end=10815 + _globals['_SESSIONRESPONSE_PONG']._serialized_start=9650 + _globals['_SESSIONRESPONSE_PONG']._serialized_end=9656 + _globals['_SESSIONRESPONSE_GETCHATHISTORYRESPONSE']._serialized_start=9658 + _globals['_SESSIONRESPONSE_GETCHATHISTORYRESPONSE']._serialized_end=9734 + _globals['_SESSIONRESPONSE_GETAGENTINFORESPONSE']._serialized_start=9737 + _globals['_SESSIONRESPONSE_GETAGENTINFORESPONSE']._serialized_end=9885 + _globals['_SESSIONRESPONSE_RUNINPUTRESPONSE']._serialized_start=9887 + _globals['_SESSIONRESPONSE_RUNINPUTRESPONSE']._serialized_end=9957 + _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE']._serialized_start=9960 + _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE']._serialized_end=10279 + _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_start=10233 + _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_end=10279 + _globals['_SESSIONRESPONSE_GETRTCSTATSRESPONSE']._serialized_start=10281 + _globals['_SESSIONRESPONSE_GETRTCSTATSRESPONSE']._serialized_end=10403 + _globals['_SESSIONRESPONSE_GETSESSIONUSAGERESPONSE']._serialized_start=10405 + _globals['_SESSIONRESPONSE_GETSESSIONUSAGERESPONSE']._serialized_end=10527 + _globals['_SESSIONRESPONSE_GETFRAMEWORKINFORESPONSE']._serialized_start=10529 + _globals['_SESSIONRESPONSE_GETFRAMEWORKINFORESPONSE']._serialized_end=10589 + _globals['_SESSIONRESPONSE_UPDATEIORESPONSE']._serialized_start=10591 + _globals['_SESSIONRESPONSE_UPDATEIORESPONSE']._serialized_end=10609 + _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE']._serialized_start=10612 + _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE']._serialized_end=10793 + _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE_SIMULATIONVERDICT']._serialized_start=10741 + _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE_SIMULATIONVERDICT']._serialized_end=10793 + _globals['_AGENTSESSIONMESSAGE']._serialized_start=10818 + _globals['_AGENTSESSIONMESSAGE']._serialized_end=11644 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO']._serialized_start=11453 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO']._serialized_end=11633 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOFRAME']._serialized_start=11466 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOFRAME']._serialized_end=11564 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFLUSH']._serialized_start=11566 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFLUSH']._serialized_end=11586 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKCLEAR']._serialized_start=11588 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKCLEAR']._serialized_end=11608 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFINISHED']._serialized_start=11610 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFINISHED']._serialized_end=11633 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agent_pb/agent_session.pyi b/livekit-protocol/livekit/protocol/agent_pb/agent_session.pyi index 4550478e..8101494f 100644 --- a/livekit-protocol/livekit/protocol/agent_pb/agent_session.pyi +++ b/livekit-protocol/livekit/protocol/agent_pb/agent_session.pyi @@ -62,6 +62,8 @@ class AmdCategory(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): AMD_MACHINE_VM: _ClassVar[AmdCategory] AMD_MACHINE_UNAVAILABLE: _ClassVar[AmdCategory] AMD_UNCERTAIN: _ClassVar[AmdCategory] + AMD_MACHINE_SCREENING: _ClassVar[AmdCategory] + AMD_WAIT: _ClassVar[AmdCategory] DEVELOPER: ChatRole SYSTEM: ChatRole USER: ChatRole @@ -94,6 +96,8 @@ AMD_MACHINE_IVR: AmdCategory AMD_MACHINE_VM: AmdCategory AMD_MACHINE_UNAVAILABLE: AmdCategory AMD_UNCERTAIN: AmdCategory +AMD_MACHINE_SCREENING: AmdCategory +AMD_WAIT: AmdCategory class MetricsReport(_message.Message): __slots__ = ("started_speaking_at", "stopped_speaking_at", "transcription_delay", "end_of_turn_delay", "on_user_turn_completed_delay", "llm_node_ttft", "tts_node_ttfb", "e2e_latency", "llm_node_tps", "llm_node_ttfs") @@ -360,7 +364,7 @@ class DebugMessage(_message.Message): def __init__(self, payload: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... class AgentSessionEvent(_message.Message): - __slots__ = ("created_at", "agent_state_changed", "user_state_changed", "conversation_item_added", "user_input_transcribed", "function_tools_executed", "error", "overlapping_speech", "session_usage_updated", "amd_prediction", "eot_prediction", "function_tools_started", "debug_message", "tool_execution_updated", "agent_false_interruption") + __slots__ = ("created_at", "agent_state_changed", "user_state_changed", "conversation_item_added", "user_input_transcribed", "function_tools_executed", "error", "overlapping_speech", "session_usage_updated", "amd_prediction", "eot_prediction", "function_tools_started", "debug_message", "tool_execution_updated", "agent_false_interruption", "amd_completed") class AgentStateChanged(_message.Message): __slots__ = ("old_state", "new_state") OLD_STATE_FIELD_NUMBER: _ClassVar[int] @@ -418,18 +422,35 @@ class AgentSessionEvent(_message.Message): detected_at: _timestamp_pb2.Timestamp def __init__(self, is_interruption: bool = ..., overlap_started_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., detection_delay: _Optional[float] = ..., detected_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... class AmdPrediction(_message.Message): - __slots__ = ("speech_duration", "category", "reason", "transcript", "delay") + __slots__ = ("speech_duration", "category", "reason", "transcript", "delay", "turn_id", "stage", "inference_duration") SPEECH_DURATION_FIELD_NUMBER: _ClassVar[int] CATEGORY_FIELD_NUMBER: _ClassVar[int] REASON_FIELD_NUMBER: _ClassVar[int] TRANSCRIPT_FIELD_NUMBER: _ClassVar[int] DELAY_FIELD_NUMBER: _ClassVar[int] + TURN_ID_FIELD_NUMBER: _ClassVar[int] + STAGE_FIELD_NUMBER: _ClassVar[int] + INFERENCE_DURATION_FIELD_NUMBER: _ClassVar[int] speech_duration: _duration_pb2.Duration category: AmdCategory reason: str transcript: str delay: _duration_pb2.Duration - def __init__(self, speech_duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., category: _Optional[_Union[AmdCategory, str]] = ..., reason: _Optional[str] = ..., transcript: _Optional[str] = ..., delay: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...) -> None: ... + turn_id: int + stage: AmdCategory + inference_duration: _duration_pb2.Duration + def __init__(self, speech_duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., category: _Optional[_Union[AmdCategory, str]] = ..., reason: _Optional[str] = ..., transcript: _Optional[str] = ..., delay: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ..., turn_id: _Optional[int] = ..., stage: _Optional[_Union[AmdCategory, str]] = ..., inference_duration: _Optional[_Union[_duration_pb2.Duration, _Mapping]] = ...) -> None: ... + class AmdCompleted(_message.Message): + __slots__ = ("category", "reason", "voicemail_message_played", "prediction") + CATEGORY_FIELD_NUMBER: _ClassVar[int] + REASON_FIELD_NUMBER: _ClassVar[int] + VOICEMAIL_MESSAGE_PLAYED_FIELD_NUMBER: _ClassVar[int] + PREDICTION_FIELD_NUMBER: _ClassVar[int] + category: AmdCategory + reason: str + voicemail_message_played: bool + prediction: AgentSessionEvent.AmdPrediction + def __init__(self, category: _Optional[_Union[AmdCategory, str]] = ..., reason: _Optional[str] = ..., voicemail_message_played: bool = ..., prediction: _Optional[_Union[AgentSessionEvent.AmdPrediction, _Mapping]] = ...) -> None: ... class EotPrediction(_message.Message): __slots__ = ("probability", "threshold", "inference_duration", "delay") PROBABILITY_FIELD_NUMBER: _ClassVar[int] @@ -511,6 +532,7 @@ class AgentSessionEvent(_message.Message): DEBUG_MESSAGE_FIELD_NUMBER: _ClassVar[int] TOOL_EXECUTION_UPDATED_FIELD_NUMBER: _ClassVar[int] AGENT_FALSE_INTERRUPTION_FIELD_NUMBER: _ClassVar[int] + AMD_COMPLETED_FIELD_NUMBER: _ClassVar[int] created_at: _timestamp_pb2.Timestamp agent_state_changed: AgentSessionEvent.AgentStateChanged user_state_changed: AgentSessionEvent.UserStateChanged @@ -526,7 +548,8 @@ class AgentSessionEvent(_message.Message): debug_message: DebugMessage tool_execution_updated: AgentSessionEvent.ToolExecutionUpdated agent_false_interruption: AgentSessionEvent.AgentFalseInterruption - def __init__(self, created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., agent_state_changed: _Optional[_Union[AgentSessionEvent.AgentStateChanged, _Mapping]] = ..., user_state_changed: _Optional[_Union[AgentSessionEvent.UserStateChanged, _Mapping]] = ..., conversation_item_added: _Optional[_Union[AgentSessionEvent.ConversationItemAdded, _Mapping]] = ..., user_input_transcribed: _Optional[_Union[AgentSessionEvent.UserInputTranscribed, _Mapping]] = ..., function_tools_executed: _Optional[_Union[AgentSessionEvent.FunctionToolsExecuted, _Mapping]] = ..., error: _Optional[_Union[AgentSessionEvent.Error, _Mapping]] = ..., overlapping_speech: _Optional[_Union[AgentSessionEvent.OverlappingSpeech, _Mapping]] = ..., session_usage_updated: _Optional[_Union[AgentSessionEvent.SessionUsageUpdated, _Mapping]] = ..., amd_prediction: _Optional[_Union[AgentSessionEvent.AmdPrediction, _Mapping]] = ..., eot_prediction: _Optional[_Union[AgentSessionEvent.EotPrediction, _Mapping]] = ..., function_tools_started: _Optional[_Union[AgentSessionEvent.FunctionToolsStarted, _Mapping]] = ..., debug_message: _Optional[_Union[DebugMessage, _Mapping]] = ..., tool_execution_updated: _Optional[_Union[AgentSessionEvent.ToolExecutionUpdated, _Mapping]] = ..., agent_false_interruption: _Optional[_Union[AgentSessionEvent.AgentFalseInterruption, _Mapping]] = ...) -> None: ... + amd_completed: AgentSessionEvent.AmdCompleted + def __init__(self, created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., agent_state_changed: _Optional[_Union[AgentSessionEvent.AgentStateChanged, _Mapping]] = ..., user_state_changed: _Optional[_Union[AgentSessionEvent.UserStateChanged, _Mapping]] = ..., conversation_item_added: _Optional[_Union[AgentSessionEvent.ConversationItemAdded, _Mapping]] = ..., user_input_transcribed: _Optional[_Union[AgentSessionEvent.UserInputTranscribed, _Mapping]] = ..., function_tools_executed: _Optional[_Union[AgentSessionEvent.FunctionToolsExecuted, _Mapping]] = ..., error: _Optional[_Union[AgentSessionEvent.Error, _Mapping]] = ..., overlapping_speech: _Optional[_Union[AgentSessionEvent.OverlappingSpeech, _Mapping]] = ..., session_usage_updated: _Optional[_Union[AgentSessionEvent.SessionUsageUpdated, _Mapping]] = ..., amd_prediction: _Optional[_Union[AgentSessionEvent.AmdPrediction, _Mapping]] = ..., eot_prediction: _Optional[_Union[AgentSessionEvent.EotPrediction, _Mapping]] = ..., function_tools_started: _Optional[_Union[AgentSessionEvent.FunctionToolsStarted, _Mapping]] = ..., debug_message: _Optional[_Union[DebugMessage, _Mapping]] = ..., tool_execution_updated: _Optional[_Union[AgentSessionEvent.ToolExecutionUpdated, _Mapping]] = ..., agent_false_interruption: _Optional[_Union[AgentSessionEvent.AgentFalseInterruption, _Mapping]] = ..., amd_completed: _Optional[_Union[AgentSessionEvent.AmdCompleted, _Mapping]] = ...) -> None: ... class SessionRequest(_message.Message): __slots__ = ("request_id", "ping", "get_chat_history", "run_input", "get_agent_info", "get_session_state", "get_rtc_stats", "get_session_usage", "get_framework_info", "update_io", "finalize_simulation") diff --git a/livekit-protocol/livekit/protocol/egress.py b/livekit-protocol/livekit/protocol/egress.py index 4199f80c..06ee7d6f 100644 --- a/livekit-protocol/livekit/protocol/egress.py +++ b/livekit-protocol/livekit/protocol/egress.py @@ -26,7 +26,7 @@ from .logger_pb import options as logger_dot_options__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14livekit_egress.proto\x12\x07livekit\x1a\x14livekit_models.proto\x1a\x14logger/options.proto\"\x89\x03\n\x12StartEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12+\n\x08template\x18\x02 \x01(\x0b\x32\x17.livekit.TemplateSourceH\x00\x12!\n\x03web\x18\x03 \x01(\x0b\x32\x12.livekit.WebSourceH\x00\x12%\n\x05media\x18\x04 \x01(\x0b\x32\x14.livekit.MediaSourceH\x00\x12\x30\n\x06preset\x18\x05 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12 \n\x07outputs\x18\x07 \x03(\x0b\x32\x0f.livekit.Output\x12\'\n\x07storage\x18\x08 \x01(\x0b\x32\x16.livekit.StorageConfig\x12(\n\x08webhooks\x18\t \x03(\x0b\x32\x16.livekit.WebhookConfigB\x08\n\x06sourceB\n\n\x08\x65ncoding\"a\n\x0eTemplateSource\x12\x0e\n\x06layout\x18\x01 \x01(\t\x12\x12\n\naudio_only\x18\x02 \x01(\x08\x12\x12\n\nvideo_only\x18\x03 \x01(\x08\x12\x17\n\x0f\x63ustom_base_url\x18\x04 \x01(\t\"\\\n\tWebSource\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\naudio_only\x18\x02 \x01(\x08\x12\x12\n\nvideo_only\x18\x03 \x01(\x08\x12\x1a\n\x12\x61wait_start_signal\x18\x04 \x01(\x08\"\x9e\x01\n\x0bMediaSource\x12)\n\x0evideo_track_id\x18\x01 \x01(\tB\x0f\xbaP\x0cvideoTrackIDH\x00\x12\x36\n\x11participant_video\x18\x02 \x01(\x0b\x32\x19.livekit.ParticipantVideoH\x00\x12#\n\x05\x61udio\x18\x03 \x01(\x0b\x32\x14.livekit.AudioConfigB\x07\n\x05video\"A\n\x10ParticipantVideo\x12\x10\n\x08identity\x18\x01 \x01(\t\x12\x1b\n\x13prefer_screen_share\x18\x02 \x01(\x08\"G\n\x0b\x41udioConfig\x12\x13\n\x0b\x63\x61pture_all\x18\x01 \x01(\x08\x12#\n\x06routes\x18\x02 \x03(\x0b\x32\x13.livekit.AudioRoute\"\xb8\x01\n\nAudioRoute\x12\x1e\n\x08track_id\x18\x01 \x01(\tB\n\xbaP\x07trackIDH\x00\x12\x1e\n\x14participant_identity\x18\x02 \x01(\tH\x00\x12\x39\n\x10participant_kind\x18\x03 \x01(\x0e\x32\x1d.livekit.ParticipantInfo.KindH\x00\x12&\n\x07\x63hannel\x18\x04 \x01(\x0e\x32\x15.livekit.AudioChannelB\x07\n\x05match\"K\n\nDataConfig\x12\x13\n\x0b\x63\x61pture_all\x18\x01 \x01(\x08\x12(\n\tselectors\x18\x02 \x03(\x0b\x32\x15.livekit.DataSelector\"W\n\x0c\x44\x61taSelector\x12\x1e\n\x08track_id\x18\x01 \x01(\tB\n\xbaP\x07trackIDH\x00\x12\x1e\n\x14participant_identity\x18\x02 \x01(\tH\x00\x42\x07\n\x05match\"\xbf\x02\n\x0f\x45ncodingOptions\x12\r\n\x05width\x18\x01 \x01(\x05\x12\x0e\n\x06height\x18\x02 \x01(\x05\x12\r\n\x05\x64\x65pth\x18\x03 \x01(\x05\x12\x11\n\tframerate\x18\x04 \x01(\x05\x12(\n\x0b\x61udio_codec\x18\x05 \x01(\x0e\x32\x13.livekit.AudioCodec\x12\x15\n\raudio_bitrate\x18\x06 \x01(\x05\x12\x17\n\x0f\x61udio_frequency\x18\x07 \x01(\x05\x12(\n\x0bvideo_codec\x18\x08 \x01(\x0e\x32\x13.livekit.VideoCodec\x12\x15\n\rvideo_bitrate\x18\t \x01(\x05\x12\x1a\n\x12key_frame_interval\x18\n \x01(\x01\x12\x19\n\raudio_quality\x18\x0b \x01(\x05\x42\x02\x18\x01\x12\x19\n\rvideo_quality\x18\x0c \x01(\x05\x42\x02\x18\x01\"\xe3\x01\n\x06Output\x12#\n\x04\x66ile\x18\x01 \x01(\x0b\x32\x13.livekit.FileOutputH\x00\x12\'\n\x06stream\x18\x02 \x01(\x0b\x32\x15.livekit.StreamOutputH\x00\x12\x30\n\x08segments\x18\x03 \x01(\x0b\x32\x1c.livekit.SegmentedFileOutputH\x00\x12&\n\x06images\x18\x04 \x01(\x0b\x32\x14.livekit.ImageOutputH\x00\x12\'\n\x07storage\x18\x06 \x01(\x0b\x32\x16.livekit.StorageConfigB\x08\n\x06\x63onfig\"e\n\nFileOutput\x12+\n\tfile_type\x18\x01 \x01(\x0e\x32\x18.livekit.EncodedFileType\x12\x10\n\x08\x66ilepath\x18\x02 \x01(\t\x12\x18\n\x10\x64isable_manifest\x18\x03 \x01(\x08\"y\n\x0cStreamOutput\x12)\n\x08protocol\x18\x01 \x01(\x0e\x32\x17.livekit.StreamProtocol\x12\x0c\n\x04urls\x18\x02 \x03(\t\x12\x30\n\x0c\x64\x65stinations\x18\x03 \x03(\x0b\x32\x1a.livekit.StreamDestination\",\n\x11StreamDestination\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\"\xa0\x03\n\x13SegmentedFileOutput\x12\x30\n\x08protocol\x18\x01 \x01(\x0e\x32\x1e.livekit.SegmentedFileProtocol\x12\x17\n\x0f\x66ilename_prefix\x18\x02 \x01(\t\x12\x15\n\rplaylist_name\x18\x03 \x01(\t\x12\x1a\n\x12live_playlist_name\x18\x0b \x01(\t\x12\x18\n\x10segment_duration\x18\x04 \x01(\r\x12\x35\n\x0f\x66ilename_suffix\x18\n \x01(\x0e\x32\x1c.livekit.SegmentedFileSuffix\x12\x18\n\x10\x64isable_manifest\x18\x08 \x01(\x08\x12\x1f\n\x02s3\x18\x05 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x06 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x07 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\t \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xf8\x02\n\x0bImageOutput\x12\x18\n\x10\x63\x61pture_interval\x18\x01 \x01(\r\x12\r\n\x05width\x18\x02 \x01(\x05\x12\x0e\n\x06height\x18\x03 \x01(\x05\x12\x17\n\x0f\x66ilename_prefix\x18\x04 \x01(\t\x12\x31\n\x0f\x66ilename_suffix\x18\x05 \x01(\x0e\x32\x18.livekit.ImageFileSuffix\x12(\n\x0bimage_codec\x18\x06 \x01(\x0e\x32\x13.livekit.ImageCodec\x12\x18\n\x10\x64isable_manifest\x18\x07 \x01(\x08\x12\x1f\n\x02s3\x18\x08 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\t \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\n \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x0b \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xb3\x01\n\rStorageConfig\x12\x1f\n\x02s3\x18\x01 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x02 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x03 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x04 \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\n\n\x08provider\"\xc1\x03\n\x08S3Upload\x12\x17\n\naccess_key\x18\x01 \x01(\tB\x03\xc0P\x02\x12\x13\n\x06secret\x18\x02 \x01(\tB\x03\xc0P\x02\x12\x1a\n\rsession_token\x18\x0b \x01(\tB\x03\xc0P\x02\x12\x1c\n\x0f\x61ssume_role_arn\x18\x0c \x01(\tB\x03\xc0P\x01\x12;\n\x17\x61ssume_role_external_id\x18\r \x01(\tB\x1a\xbaP\x14\x61ssumeRoleExternalID\xc0P\x02\x12\x0e\n\x06region\x18\x03 \x01(\t\x12\x10\n\x08\x65ndpoint\x18\x04 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x05 \x01(\t\x12\x18\n\x10\x66orce_path_style\x18\x06 \x01(\x08\x12\x36\n\x08metadata\x18\x07 \x03(\x0b\x32\x1f.livekit.S3Upload.MetadataEntryB\x03\xc0P\x01\x12\x14\n\x07tagging\x18\x08 \x01(\tB\x03\xc0P\x01\x12 \n\x13\x63ontent_disposition\x18\t \x01(\tB\x03\xc0P\x01\x12#\n\x05proxy\x18\n \x01(\x0b\x32\x14.livekit.ProxyConfig\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"Z\n\tGCPUpload\x12\x18\n\x0b\x63redentials\x18\x01 \x01(\tB\x03\xc0P\x02\x12\x0e\n\x06\x62ucket\x18\x02 \x01(\t\x12#\n\x05proxy\x18\x03 \x01(\x0b\x32\x14.livekit.ProxyConfig\"^\n\x0f\x41zureBlobUpload\x12\x19\n\x0c\x61\x63\x63ount_name\x18\x01 \x01(\tB\x03\xc0P\x01\x12\x18\n\x0b\x61\x63\x63ount_key\x18\x02 \x01(\tB\x03\xc0P\x02\x12\x16\n\x0e\x63ontainer_name\x18\x03 \x01(\t\"n\n\x0c\x41liOSSUpload\x12\x17\n\naccess_key\x18\x01 \x01(\tB\x03\xc0P\x02\x12\x13\n\x06secret\x18\x02 \x01(\tB\x03\xc0P\x02\x12\x0e\n\x06region\x18\x03 \x01(\t\x12\x10\n\x08\x65ndpoint\x18\x04 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x05 \x01(\t\"C\n\x0bProxyConfig\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x15\n\x08password\x18\x03 \x01(\tB\x03\xc0P\x02\"\x84\x01\n\x11ListEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x1e\n\tegress_id\x18\x02 \x01(\tB\x0b\xbaP\x08\x65gressID\x12\x0e\n\x06\x61\x63tive\x18\x03 \x01(\x08\x12,\n\npage_token\x18\x04 \x01(\x0b\x32\x18.livekit.TokenPagination\"k\n\x12ListEgressResponse\x12\"\n\x05items\x18\x01 \x03(\x0b\x32\x13.livekit.EgressInfo\x12\x31\n\x0fnext_page_token\x18\x02 \x01(\x0b\x32\x18.livekit.TokenPagination\"3\n\x11StopEgressRequest\x12\x1e\n\tegress_id\x18\x01 \x01(\tB\x0b\xbaP\x08\x65gressID\"\xaa\x08\n\nEgressInfo\x12\x1e\n\tegress_id\x18\x01 \x01(\tB\x0b\xbaP\x08\x65gressID\x12\x1a\n\x07room_id\x18\x02 \x01(\tB\t\xbaP\x06roomID\x12\x11\n\troom_name\x18\r \x01(\t\x12.\n\x0bsource_type\x18\x1a \x01(\x0e\x32\x19.livekit.EgressSourceType\x12%\n\x06status\x18\x03 \x01(\x0e\x32\x15.livekit.EgressStatus\x12\x12\n\nstarted_at\x18\n \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x0b \x01(\x03\x12\x12\n\nupdated_at\x18\x12 \x01(\x03\x12-\n\x06\x65gress\x18\x1d \x01(\x0b\x32\x1b.livekit.StartEgressRequestH\x00\x12.\n\x06replay\x18\x1e \x01(\x0b\x32\x1c.livekit.ExportReplayRequestH\x00\x12=\n\x0eroom_composite\x18\x04 \x01(\x0b\x32#.livekit.RoomCompositeEgressRequestH\x00\x12(\n\x03web\x18\x0e \x01(\x0b\x32\x19.livekit.WebEgressRequestH\x00\x12\x38\n\x0bparticipant\x18\x13 \x01(\x0b\x32!.livekit.ParticipantEgressRequestH\x00\x12?\n\x0ftrack_composite\x18\x05 \x01(\x0b\x32$.livekit.TrackCompositeEgressRequestH\x00\x12,\n\x05track\x18\x06 \x01(\x0b\x32\x1b.livekit.TrackEgressRequestH\x00\x12+\n\x0estream_results\x18\x0f \x03(\x0b\x32\x13.livekit.StreamInfo\x12\'\n\x0c\x66ile_results\x18\x10 \x03(\x0b\x32\x11.livekit.FileInfo\x12.\n\x0fsegment_results\x18\x11 \x03(\x0b\x32\x15.livekit.SegmentsInfo\x12*\n\rimage_results\x18\x14 \x03(\x0b\x32\x13.livekit.ImagesInfo\x12\r\n\x05\x65rror\x18\t \x01(\t\x12\x12\n\nerror_code\x18\x16 \x01(\x05\x12\x0f\n\x07\x64\x65tails\x18\x15 \x01(\t\x12\x19\n\x11manifest_location\x18\x17 \x01(\t\x12\x1b\n\x13\x62\x61\x63kup_storage_used\x18\x19 \x01(\x08\x12\x13\n\x0bretry_count\x18\x1b \x01(\x05\x12-\n\x06stream\x18\x07 \x01(\x0b\x32\x17.livekit.StreamInfoListB\x02\x18\x01H\x01\x12%\n\x04\x66ile\x18\x08 \x01(\x0b\x32\x11.livekit.FileInfoB\x02\x18\x01H\x01\x12-\n\x08segments\x18\x0c \x01(\x0b\x32\x15.livekit.SegmentsInfoB\x02\x18\x01H\x01\x42\t\n\x07requestB\x08\n\x06result\"\xf0\x01\n\nStreamInfo\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\nstarted_at\x18\x02 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x03 \x01(\x03\x12\x10\n\x08\x64uration\x18\x04 \x01(\x03\x12*\n\x06status\x18\x05 \x01(\x0e\x32\x1a.livekit.StreamInfo.Status\x12\r\n\x05\x65rror\x18\x06 \x01(\t\x12\x15\n\rlast_retry_at\x18\x07 \x01(\x03\x12\x0f\n\x07retries\x18\x08 \x01(\r\x12\n\n\x02id\x18\t \x01(\t\".\n\x06Status\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x46INISHED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"t\n\x08\x46ileInfo\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x12\n\nstarted_at\x18\x02 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x03 \x01(\x03\x12\x10\n\x08\x64uration\x18\x06 \x01(\x03\x12\x0c\n\x04size\x18\x04 \x01(\x03\x12\x10\n\x08location\x18\x05 \x01(\t\"\xd9\x01\n\x0cSegmentsInfo\x12\x15\n\rplaylist_name\x18\x01 \x01(\t\x12\x1a\n\x12live_playlist_name\x18\x08 \x01(\t\x12\x10\n\x08\x64uration\x18\x02 \x01(\x03\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x19\n\x11playlist_location\x18\x04 \x01(\t\x12\x1e\n\x16live_playlist_location\x18\t \x01(\t\x12\x15\n\rsegment_count\x18\x05 \x01(\x03\x12\x12\n\nstarted_at\x18\x06 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x07 \x01(\x03\"`\n\nImagesInfo\x12\x17\n\x0f\x66ilename_prefix\x18\x04 \x01(\t\x12\x13\n\x0bimage_count\x18\x01 \x01(\x03\x12\x12\n\nstarted_at\x18\x02 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x03 \x01(\x03\"\xeb\x01\n\x15\x41utoParticipantEgress\x12\x30\n\x06preset\x18\x01 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x00\x12,\n\x08\x61\x64vanced\x18\x02 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x00\x12\x30\n\x0c\x66ile_outputs\x18\x03 \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12\x35\n\x0fsegment_outputs\x18\x04 \x03(\x0b\x32\x1c.livekit.SegmentedFileOutputB\t\n\x07options\"\xdf\x01\n\x0f\x41utoTrackEgress\x12\x10\n\x08\x66ilepath\x18\x01 \x01(\t\x12\x18\n\x10\x64isable_manifest\x18\x05 \x01(\x08\x12\x1f\n\x02s3\x18\x02 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x03 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x04 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x06 \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xc7\x03\n\x13\x45xportReplayRequest\x12\x1e\n\treplay_id\x18\x01 \x01(\tB\x0b\xbaP\x08replayID\x12\x17\n\x0fstart_offset_ms\x18\x02 \x01(\x03\x12\x15\n\rend_offset_ms\x18\x03 \x01(\x03\x12+\n\x08template\x18\x04 \x01(\x0b\x32\x17.livekit.TemplateSourceH\x00\x12!\n\x03web\x18\x05 \x01(\x0b\x32\x12.livekit.WebSourceH\x00\x12%\n\x05media\x18\x06 \x01(\x0b\x32\x14.livekit.MediaSourceH\x00\x12\x30\n\x06preset\x18\x07 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12 \n\x07outputs\x18\t \x03(\x0b\x32\x0f.livekit.Output\x12\'\n\x07storage\x18\n \x01(\x0b\x32\x16.livekit.StorageConfig\x12(\n\x08webhooks\x18\x0b \x03(\x0b\x32\x16.livekit.WebhookConfigB\x08\n\x06sourceB\n\n\x08\x65ncoding\"\xa3\x05\n\x1aRoomCompositeEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x0e\n\x06layout\x18\x02 \x01(\t\x12\x12\n\naudio_only\x18\x03 \x01(\x08\x12*\n\x0c\x61udio_mixing\x18\x0f \x01(\x0e\x32\x14.livekit.AudioMixing\x12\x12\n\nvideo_only\x18\x04 \x01(\x08\x12\x17\n\x0f\x63ustom_base_url\x18\x05 \x01(\t\x12.\n\x04\x66ile\x18\x06 \x01(\x0b\x32\x1a.livekit.EncodedFileOutputB\x02\x18\x01H\x00\x12+\n\x06stream\x18\x07 \x01(\x0b\x32\x15.livekit.StreamOutputB\x02\x18\x01H\x00\x12\x34\n\x08segments\x18\n \x01(\x0b\x32\x1c.livekit.SegmentedFileOutputB\x02\x18\x01H\x00\x12\x30\n\x06preset\x18\x08 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\t \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12\x30\n\x0c\x66ile_outputs\x18\x0b \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\x0c \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\r \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\x0e \x03(\x0b\x32\x14.livekit.ImageOutput\x12(\n\x08webhooks\x18\x10 \x03(\x0b\x32\x16.livekit.WebhookConfigB\x08\n\x06outputB\t\n\x07options\"\xda\x04\n\x10WebEgressRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\naudio_only\x18\x02 \x01(\x08\x12\x12\n\nvideo_only\x18\x03 \x01(\x08\x12\x1a\n\x12\x61wait_start_signal\x18\x0c \x01(\x08\x12.\n\x04\x66ile\x18\x04 \x01(\x0b\x32\x1a.livekit.EncodedFileOutputB\x02\x18\x01H\x00\x12+\n\x06stream\x18\x05 \x01(\x0b\x32\x15.livekit.StreamOutputB\x02\x18\x01H\x00\x12\x34\n\x08segments\x18\x06 \x01(\x0b\x32\x1c.livekit.SegmentedFileOutputB\x02\x18\x01H\x00\x12\x30\n\x06preset\x18\x07 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12\x30\n\x0c\x66ile_outputs\x18\t \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\n \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\x0b \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\r \x03(\x0b\x32\x14.livekit.ImageOutput\x12(\n\x08webhooks\x18\x0e \x03(\x0b\x32\x16.livekit.WebhookConfigB\x08\n\x06outputB\t\n\x07options\"\xaf\x03\n\x18ParticipantEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x14\n\x0cscreen_share\x18\x03 \x01(\x08\x12\x30\n\x06preset\x18\x04 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x00\x12,\n\x08\x61\x64vanced\x18\x05 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x00\x12\x30\n\x0c\x66ile_outputs\x18\x06 \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\x07 \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\x08 \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\t \x03(\x0b\x32\x14.livekit.ImageOutput\x12(\n\x08webhooks\x18\n \x03(\x0b\x32\x16.livekit.WebhookConfigB\t\n\x07options\"\xf9\x04\n\x1bTrackCompositeEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\'\n\x0e\x61udio_track_id\x18\x02 \x01(\tB\x0f\xbaP\x0c\x61udioTrackID\x12\'\n\x0evideo_track_id\x18\x03 \x01(\tB\x0f\xbaP\x0cvideoTrackID\x12.\n\x04\x66ile\x18\x04 \x01(\x0b\x32\x1a.livekit.EncodedFileOutputB\x02\x18\x01H\x00\x12+\n\x06stream\x18\x05 \x01(\x0b\x32\x15.livekit.StreamOutputB\x02\x18\x01H\x00\x12\x34\n\x08segments\x18\x08 \x01(\x0b\x32\x1c.livekit.SegmentedFileOutputB\x02\x18\x01H\x00\x12\x30\n\x06preset\x18\x06 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12\x30\n\x0c\x66ile_outputs\x18\x0b \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\x0c \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\r \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\x0e \x03(\x0b\x32\x14.livekit.ImageOutput\x12(\n\x08webhooks\x18\x0f \x03(\x0b\x32\x16.livekit.WebhookConfigB\x08\n\x06outputB\t\n\x07options\"\xbd\x01\n\x12TrackEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x1c\n\x08track_id\x18\x02 \x01(\tB\n\xbaP\x07trackID\x12)\n\x04\x66ile\x18\x03 \x01(\x0b\x32\x19.livekit.DirectFileOutputH\x00\x12\x17\n\rwebsocket_url\x18\x04 \x01(\tH\x00\x12(\n\x08webhooks\x18\x05 \x03(\x0b\x32\x16.livekit.WebhookConfigB\x08\n\x06output\"\xe0\x01\n\x10\x44irectFileOutput\x12\x10\n\x08\x66ilepath\x18\x01 \x01(\t\x12\x18\n\x10\x64isable_manifest\x18\x05 \x01(\x08\x12\x1f\n\x02s3\x18\x02 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x03 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x04 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x06 \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\x8e\x02\n\x11\x45ncodedFileOutput\x12+\n\tfile_type\x18\x01 \x01(\x0e\x32\x18.livekit.EncodedFileType\x12\x10\n\x08\x66ilepath\x18\x02 \x01(\t\x12\x18\n\x10\x64isable_manifest\x18\x06 \x01(\x08\x12\x1f\n\x02s3\x18\x03 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x04 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x05 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x07 \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"E\n\x13UpdateLayoutRequest\x12\x1e\n\tegress_id\x18\x01 \x01(\tB\x0b\xbaP\x08\x65gressID\x12\x0e\n\x06layout\x18\x02 \x01(\t\"\xa0\x01\n\x13UpdateStreamRequest\x12\x1e\n\tegress_id\x18\x01 \x01(\tB\x0b\xbaP\x08\x65gressID\x12\x17\n\x0f\x61\x64\x64_output_urls\x18\x02 \x03(\t\x12\x1a\n\x12remove_output_urls\x18\x03 \x03(\t\x12\x34\n\x10\x61\x64\x64_destinations\x18\x04 \x03(\x0b\x32\x1a.livekit.StreamDestination\"3\n\x0eStreamInfoList\x12!\n\x04info\x18\x01 \x03(\x0b\x32\x13.livekit.StreamInfo*W\n\x0c\x41udioChannel\x12\x16\n\x12\x41UDIO_CHANNEL_BOTH\x10\x00\x12\x16\n\x12\x41UDIO_CHANNEL_LEFT\x10\x01\x12\x17\n\x13\x41UDIO_CHANNEL_RIGHT\x10\x02*\xe0\x01\n\x15\x45ncodingOptionsPreset\x12\x10\n\x0cH264_720P_30\x10\x00\x12\x10\n\x0cH264_720P_60\x10\x01\x12\x11\n\rH264_1080P_30\x10\x02\x12\x11\n\rH264_1080P_60\x10\x03\x12\x19\n\x15PORTRAIT_H264_720P_30\x10\x04\x12\x19\n\x15PORTRAIT_H264_720P_60\x10\x05\x12\x1a\n\x16PORTRAIT_H264_1080P_30\x10\x06\x12\x1a\n\x16PORTRAIT_H264_1080P_60\x10\x07\x12\x0f\n\x0bPASSTHROUGH\x10\x08*B\n\x0f\x45ncodedFileType\x12\x14\n\x10\x44\x45\x46\x41ULT_FILETYPE\x10\x00\x12\x07\n\x03MP4\x10\x01\x12\x07\n\x03OGG\x10\x02\x12\x07\n\x03MP3\x10\x03*H\n\x0eStreamProtocol\x12\x14\n\x10\x44\x45\x46\x41ULT_PROTOCOL\x10\x00\x12\x08\n\x04RTMP\x10\x01\x12\x07\n\x03SRT\x10\x02\x12\r\n\tWEBSOCKET\x10\x03*e\n\x15SegmentedFileProtocol\x12#\n\x1f\x44\x45\x46\x41ULT_SEGMENTED_FILE_PROTOCOL\x10\x00\x12\x10\n\x0cHLS_PROTOCOL\x10\x01\x12\x15\n\x11HLS_FMP4_PROTOCOL\x10\x02*/\n\x13SegmentedFileSuffix\x12\t\n\x05INDEX\x10\x00\x12\r\n\tTIMESTAMP\x10\x01*f\n\x0fImageFileSuffix\x12\x16\n\x12IMAGE_SUFFIX_INDEX\x10\x00\x12\x1a\n\x16IMAGE_SUFFIX_TIMESTAMP\x10\x01\x12\x1f\n\x1bIMAGE_SUFFIX_NONE_OVERWRITE\x10\x02*J\n\x10\x45gressSourceType\x12\x1a\n\x16\x45GRESS_SOURCE_TYPE_WEB\x10\x00\x12\x1a\n\x16\x45GRESS_SOURCE_TYPE_SDK\x10\x01*\x9f\x01\n\x0c\x45gressStatus\x12\x13\n\x0f\x45GRESS_STARTING\x10\x00\x12\x11\n\rEGRESS_ACTIVE\x10\x01\x12\x11\n\rEGRESS_ENDING\x10\x02\x12\x13\n\x0f\x45GRESS_COMPLETE\x10\x03\x12\x11\n\rEGRESS_FAILED\x10\x04\x12\x12\n\x0e\x45GRESS_ABORTED\x10\x05\x12\x18\n\x14\x45GRESS_LIMIT_REACHED\x10\x06*U\n\x0b\x41udioMixing\x12\x12\n\x0e\x44\x45\x46\x41ULT_MIXING\x10\x00\x12\x16\n\x12\x44UAL_CHANNEL_AGENT\x10\x01\x12\x1a\n\x16\x44UAL_CHANNEL_ALTERNATE\x10\x02\x32\xdd\x05\n\x06\x45gress\x12?\n\x0bStartEgress\x12\x1b.livekit.StartEgressRequest\x1a\x13.livekit.EgressInfo\x12\x41\n\x0cUpdateLayout\x12\x1c.livekit.UpdateLayoutRequest\x1a\x13.livekit.EgressInfo\x12\x41\n\x0cUpdateStream\x12\x1c.livekit.UpdateStreamRequest\x1a\x13.livekit.EgressInfo\x12\x45\n\nListEgress\x12\x1a.livekit.ListEgressRequest\x1a\x1b.livekit.ListEgressResponse\x12=\n\nStopEgress\x12\x1a.livekit.StopEgressRequest\x1a\x13.livekit.EgressInfo\x12T\n\x18StartRoomCompositeEgress\x12#.livekit.RoomCompositeEgressRequest\x1a\x13.livekit.EgressInfo\x12@\n\x0eStartWebEgress\x12\x19.livekit.WebEgressRequest\x1a\x13.livekit.EgressInfo\x12P\n\x16StartParticipantEgress\x12!.livekit.ParticipantEgressRequest\x1a\x13.livekit.EgressInfo\x12V\n\x19StartTrackCompositeEgress\x12$.livekit.TrackCompositeEgressRequest\x1a\x13.livekit.EgressInfo\x12\x44\n\x10StartTrackEgress\x12\x1b.livekit.TrackEgressRequest\x1a\x13.livekit.EgressInfoBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14livekit_egress.proto\x12\x07livekit\x1a\x14livekit_models.proto\x1a\x14logger/options.proto\"\x89\x03\n\x12StartEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12+\n\x08template\x18\x02 \x01(\x0b\x32\x17.livekit.TemplateSourceH\x00\x12!\n\x03web\x18\x03 \x01(\x0b\x32\x12.livekit.WebSourceH\x00\x12%\n\x05media\x18\x04 \x01(\x0b\x32\x14.livekit.MediaSourceH\x00\x12\x30\n\x06preset\x18\x05 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12 \n\x07outputs\x18\x07 \x03(\x0b\x32\x0f.livekit.Output\x12\'\n\x07storage\x18\x08 \x01(\x0b\x32\x16.livekit.StorageConfig\x12(\n\x08webhooks\x18\t \x03(\x0b\x32\x16.livekit.WebhookConfigB\x08\n\x06sourceB\n\n\x08\x65ncoding\"a\n\x0eTemplateSource\x12\x0e\n\x06layout\x18\x01 \x01(\t\x12\x12\n\naudio_only\x18\x02 \x01(\x08\x12\x12\n\nvideo_only\x18\x03 \x01(\x08\x12\x17\n\x0f\x63ustom_base_url\x18\x04 \x01(\t\"\\\n\tWebSource\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\naudio_only\x18\x02 \x01(\x08\x12\x12\n\nvideo_only\x18\x03 \x01(\x08\x12\x1a\n\x12\x61wait_start_signal\x18\x04 \x01(\x08\"\xe9\x01\n\x0bMediaSource\x12)\n\x0evideo_track_id\x18\x01 \x01(\tB\x0f\xbaP\x0cvideoTrackIDH\x00\x12\x36\n\x11participant_video\x18\x02 \x01(\x0b\x32\x19.livekit.ParticipantVideoH\x00\x12&\n\x06videos\x18\x05 \x01(\x0b\x32\x14.livekit.VideoConfigH\x00\x12#\n\x05\x61udio\x18\x03 \x01(\x0b\x32\x14.livekit.AudioConfig\x12!\n\x04\x64\x61ta\x18\x04 \x01(\x0b\x32\x13.livekit.DataConfigB\x07\n\x05video\"A\n\x10ParticipantVideo\x12\x10\n\x08identity\x18\x01 \x01(\t\x12\x1b\n\x13prefer_screen_share\x18\x02 \x01(\x08\"M\n\x0bVideoConfig\x12\x13\n\x0b\x63\x61pture_all\x18\x01 \x01(\x08\x12)\n\tselectors\x18\x02 \x03(\x0b\x32\x16.livekit.VideoSelector\"}\n\rVideoSelector\x12\x1e\n\x08track_id\x18\x01 \x01(\tB\n\xbaP\x07trackIDH\x00\x12\x1e\n\x14participant_identity\x18\x02 \x01(\tH\x00\x12\x12\n\ntrack_name\x18\x03 \x01(\t\x12\x0f\n\x07\x65xclude\x18\x04 \x01(\x08\x42\x07\n\x05match\"G\n\x0b\x41udioConfig\x12\x13\n\x0b\x63\x61pture_all\x18\x01 \x01(\x08\x12#\n\x06routes\x18\x02 \x03(\x0b\x32\x13.livekit.AudioRoute\"\xdd\x01\n\nAudioRoute\x12\x1e\n\x08track_id\x18\x01 \x01(\tB\n\xbaP\x07trackIDH\x00\x12\x1e\n\x14participant_identity\x18\x02 \x01(\tH\x00\x12\x39\n\x10participant_kind\x18\x03 \x01(\x0e\x32\x1d.livekit.ParticipantInfo.KindH\x00\x12\x12\n\ntrack_name\x18\x05 \x01(\t\x12\x0f\n\x07\x65xclude\x18\x06 \x01(\x08\x12&\n\x07\x63hannel\x18\x04 \x01(\x0e\x32\x15.livekit.AudioChannelB\x07\n\x05match\"K\n\nDataConfig\x12\x13\n\x0b\x63\x61pture_all\x18\x01 \x01(\x08\x12(\n\tselectors\x18\x02 \x03(\x0b\x32\x15.livekit.DataSelector\"|\n\x0c\x44\x61taSelector\x12\x1e\n\x08track_id\x18\x01 \x01(\tB\n\xbaP\x07trackIDH\x00\x12\x1e\n\x14participant_identity\x18\x02 \x01(\tH\x00\x12\x12\n\ntrack_name\x18\x03 \x01(\t\x12\x0f\n\x07\x65xclude\x18\x04 \x01(\x08\x42\x07\n\x05match\"\xbf\x02\n\x0f\x45ncodingOptions\x12\r\n\x05width\x18\x01 \x01(\x05\x12\x0e\n\x06height\x18\x02 \x01(\x05\x12\r\n\x05\x64\x65pth\x18\x03 \x01(\x05\x12\x11\n\tframerate\x18\x04 \x01(\x05\x12(\n\x0b\x61udio_codec\x18\x05 \x01(\x0e\x32\x13.livekit.AudioCodec\x12\x15\n\raudio_bitrate\x18\x06 \x01(\x05\x12\x17\n\x0f\x61udio_frequency\x18\x07 \x01(\x05\x12(\n\x0bvideo_codec\x18\x08 \x01(\x0e\x32\x13.livekit.VideoCodec\x12\x15\n\rvideo_bitrate\x18\t \x01(\x05\x12\x1a\n\x12key_frame_interval\x18\n \x01(\x01\x12\x19\n\raudio_quality\x18\x0b \x01(\x05\x42\x02\x18\x01\x12\x19\n\rvideo_quality\x18\x0c \x01(\x05\x42\x02\x18\x01\"\xe3\x01\n\x06Output\x12#\n\x04\x66ile\x18\x01 \x01(\x0b\x32\x13.livekit.FileOutputH\x00\x12\'\n\x06stream\x18\x02 \x01(\x0b\x32\x15.livekit.StreamOutputH\x00\x12\x30\n\x08segments\x18\x03 \x01(\x0b\x32\x1c.livekit.SegmentedFileOutputH\x00\x12&\n\x06images\x18\x04 \x01(\x0b\x32\x14.livekit.ImageOutputH\x00\x12\'\n\x07storage\x18\x06 \x01(\x0b\x32\x16.livekit.StorageConfigB\x08\n\x06\x63onfig\"e\n\nFileOutput\x12+\n\tfile_type\x18\x01 \x01(\x0e\x32\x18.livekit.EncodedFileType\x12\x10\n\x08\x66ilepath\x18\x02 \x01(\t\x12\x18\n\x10\x64isable_manifest\x18\x03 \x01(\x08\"y\n\x0cStreamOutput\x12)\n\x08protocol\x18\x01 \x01(\x0e\x32\x17.livekit.StreamProtocol\x12\x0c\n\x04urls\x18\x02 \x03(\t\x12\x30\n\x0c\x64\x65stinations\x18\x03 \x03(\x0b\x32\x1a.livekit.StreamDestination\",\n\x11StreamDestination\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\"\xa0\x03\n\x13SegmentedFileOutput\x12\x30\n\x08protocol\x18\x01 \x01(\x0e\x32\x1e.livekit.SegmentedFileProtocol\x12\x17\n\x0f\x66ilename_prefix\x18\x02 \x01(\t\x12\x15\n\rplaylist_name\x18\x03 \x01(\t\x12\x1a\n\x12live_playlist_name\x18\x0b \x01(\t\x12\x18\n\x10segment_duration\x18\x04 \x01(\r\x12\x35\n\x0f\x66ilename_suffix\x18\n \x01(\x0e\x32\x1c.livekit.SegmentedFileSuffix\x12\x18\n\x10\x64isable_manifest\x18\x08 \x01(\x08\x12\x1f\n\x02s3\x18\x05 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x06 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x07 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\t \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xf8\x02\n\x0bImageOutput\x12\x18\n\x10\x63\x61pture_interval\x18\x01 \x01(\r\x12\r\n\x05width\x18\x02 \x01(\x05\x12\x0e\n\x06height\x18\x03 \x01(\x05\x12\x17\n\x0f\x66ilename_prefix\x18\x04 \x01(\t\x12\x31\n\x0f\x66ilename_suffix\x18\x05 \x01(\x0e\x32\x18.livekit.ImageFileSuffix\x12(\n\x0bimage_codec\x18\x06 \x01(\x0e\x32\x13.livekit.ImageCodec\x12\x18\n\x10\x64isable_manifest\x18\x07 \x01(\x08\x12\x1f\n\x02s3\x18\x08 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\t \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\n \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x0b \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xb3\x01\n\rStorageConfig\x12\x1f\n\x02s3\x18\x01 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x02 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x03 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x04 \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\n\n\x08provider\"\xc1\x03\n\x08S3Upload\x12\x17\n\naccess_key\x18\x01 \x01(\tB\x03\xc0P\x02\x12\x13\n\x06secret\x18\x02 \x01(\tB\x03\xc0P\x02\x12\x1a\n\rsession_token\x18\x0b \x01(\tB\x03\xc0P\x02\x12\x1c\n\x0f\x61ssume_role_arn\x18\x0c \x01(\tB\x03\xc0P\x01\x12;\n\x17\x61ssume_role_external_id\x18\r \x01(\tB\x1a\xbaP\x14\x61ssumeRoleExternalID\xc0P\x02\x12\x0e\n\x06region\x18\x03 \x01(\t\x12\x10\n\x08\x65ndpoint\x18\x04 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x05 \x01(\t\x12\x18\n\x10\x66orce_path_style\x18\x06 \x01(\x08\x12\x36\n\x08metadata\x18\x07 \x03(\x0b\x32\x1f.livekit.S3Upload.MetadataEntryB\x03\xc0P\x01\x12\x14\n\x07tagging\x18\x08 \x01(\tB\x03\xc0P\x01\x12 \n\x13\x63ontent_disposition\x18\t \x01(\tB\x03\xc0P\x01\x12#\n\x05proxy\x18\n \x01(\x0b\x32\x14.livekit.ProxyConfig\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"Z\n\tGCPUpload\x12\x18\n\x0b\x63redentials\x18\x01 \x01(\tB\x03\xc0P\x02\x12\x0e\n\x06\x62ucket\x18\x02 \x01(\t\x12#\n\x05proxy\x18\x03 \x01(\x0b\x32\x14.livekit.ProxyConfig\"^\n\x0f\x41zureBlobUpload\x12\x19\n\x0c\x61\x63\x63ount_name\x18\x01 \x01(\tB\x03\xc0P\x01\x12\x18\n\x0b\x61\x63\x63ount_key\x18\x02 \x01(\tB\x03\xc0P\x02\x12\x16\n\x0e\x63ontainer_name\x18\x03 \x01(\t\"n\n\x0c\x41liOSSUpload\x12\x17\n\naccess_key\x18\x01 \x01(\tB\x03\xc0P\x02\x12\x13\n\x06secret\x18\x02 \x01(\tB\x03\xc0P\x02\x12\x0e\n\x06region\x18\x03 \x01(\t\x12\x10\n\x08\x65ndpoint\x18\x04 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x05 \x01(\t\"C\n\x0bProxyConfig\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x15\n\x08password\x18\x03 \x01(\tB\x03\xc0P\x02\"\x84\x01\n\x11ListEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x1e\n\tegress_id\x18\x02 \x01(\tB\x0b\xbaP\x08\x65gressID\x12\x0e\n\x06\x61\x63tive\x18\x03 \x01(\x08\x12,\n\npage_token\x18\x04 \x01(\x0b\x32\x18.livekit.TokenPagination\"k\n\x12ListEgressResponse\x12\"\n\x05items\x18\x01 \x03(\x0b\x32\x13.livekit.EgressInfo\x12\x31\n\x0fnext_page_token\x18\x02 \x01(\x0b\x32\x18.livekit.TokenPagination\"3\n\x11StopEgressRequest\x12\x1e\n\tegress_id\x18\x01 \x01(\tB\x0b\xbaP\x08\x65gressID\"\xaa\x08\n\nEgressInfo\x12\x1e\n\tegress_id\x18\x01 \x01(\tB\x0b\xbaP\x08\x65gressID\x12\x1a\n\x07room_id\x18\x02 \x01(\tB\t\xbaP\x06roomID\x12\x11\n\troom_name\x18\r \x01(\t\x12.\n\x0bsource_type\x18\x1a \x01(\x0e\x32\x19.livekit.EgressSourceType\x12%\n\x06status\x18\x03 \x01(\x0e\x32\x15.livekit.EgressStatus\x12\x12\n\nstarted_at\x18\n \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x0b \x01(\x03\x12\x12\n\nupdated_at\x18\x12 \x01(\x03\x12-\n\x06\x65gress\x18\x1d \x01(\x0b\x32\x1b.livekit.StartEgressRequestH\x00\x12.\n\x06replay\x18\x1e \x01(\x0b\x32\x1c.livekit.ExportReplayRequestH\x00\x12=\n\x0eroom_composite\x18\x04 \x01(\x0b\x32#.livekit.RoomCompositeEgressRequestH\x00\x12(\n\x03web\x18\x0e \x01(\x0b\x32\x19.livekit.WebEgressRequestH\x00\x12\x38\n\x0bparticipant\x18\x13 \x01(\x0b\x32!.livekit.ParticipantEgressRequestH\x00\x12?\n\x0ftrack_composite\x18\x05 \x01(\x0b\x32$.livekit.TrackCompositeEgressRequestH\x00\x12,\n\x05track\x18\x06 \x01(\x0b\x32\x1b.livekit.TrackEgressRequestH\x00\x12+\n\x0estream_results\x18\x0f \x03(\x0b\x32\x13.livekit.StreamInfo\x12\'\n\x0c\x66ile_results\x18\x10 \x03(\x0b\x32\x11.livekit.FileInfo\x12.\n\x0fsegment_results\x18\x11 \x03(\x0b\x32\x15.livekit.SegmentsInfo\x12*\n\rimage_results\x18\x14 \x03(\x0b\x32\x13.livekit.ImagesInfo\x12\r\n\x05\x65rror\x18\t \x01(\t\x12\x12\n\nerror_code\x18\x16 \x01(\x05\x12\x0f\n\x07\x64\x65tails\x18\x15 \x01(\t\x12\x19\n\x11manifest_location\x18\x17 \x01(\t\x12\x1b\n\x13\x62\x61\x63kup_storage_used\x18\x19 \x01(\x08\x12\x13\n\x0bretry_count\x18\x1b \x01(\x05\x12-\n\x06stream\x18\x07 \x01(\x0b\x32\x17.livekit.StreamInfoListB\x02\x18\x01H\x01\x12%\n\x04\x66ile\x18\x08 \x01(\x0b\x32\x11.livekit.FileInfoB\x02\x18\x01H\x01\x12-\n\x08segments\x18\x0c \x01(\x0b\x32\x15.livekit.SegmentsInfoB\x02\x18\x01H\x01\x42\t\n\x07requestB\x08\n\x06result\"\xf0\x01\n\nStreamInfo\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\nstarted_at\x18\x02 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x03 \x01(\x03\x12\x10\n\x08\x64uration\x18\x04 \x01(\x03\x12*\n\x06status\x18\x05 \x01(\x0e\x32\x1a.livekit.StreamInfo.Status\x12\r\n\x05\x65rror\x18\x06 \x01(\t\x12\x15\n\rlast_retry_at\x18\x07 \x01(\x03\x12\x0f\n\x07retries\x18\x08 \x01(\r\x12\n\n\x02id\x18\t \x01(\t\".\n\x06Status\x12\n\n\x06\x41\x43TIVE\x10\x00\x12\x0c\n\x08\x46INISHED\x10\x01\x12\n\n\x06\x46\x41ILED\x10\x02\"t\n\x08\x46ileInfo\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x12\n\nstarted_at\x18\x02 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x03 \x01(\x03\x12\x10\n\x08\x64uration\x18\x06 \x01(\x03\x12\x0c\n\x04size\x18\x04 \x01(\x03\x12\x10\n\x08location\x18\x05 \x01(\t\"\xd9\x01\n\x0cSegmentsInfo\x12\x15\n\rplaylist_name\x18\x01 \x01(\t\x12\x1a\n\x12live_playlist_name\x18\x08 \x01(\t\x12\x10\n\x08\x64uration\x18\x02 \x01(\x03\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12\x19\n\x11playlist_location\x18\x04 \x01(\t\x12\x1e\n\x16live_playlist_location\x18\t \x01(\t\x12\x15\n\rsegment_count\x18\x05 \x01(\x03\x12\x12\n\nstarted_at\x18\x06 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x07 \x01(\x03\"`\n\nImagesInfo\x12\x17\n\x0f\x66ilename_prefix\x18\x04 \x01(\t\x12\x13\n\x0bimage_count\x18\x01 \x01(\x03\x12\x12\n\nstarted_at\x18\x02 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x03 \x01(\x03\"\xeb\x01\n\x15\x41utoParticipantEgress\x12\x30\n\x06preset\x18\x01 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x00\x12,\n\x08\x61\x64vanced\x18\x02 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x00\x12\x30\n\x0c\x66ile_outputs\x18\x03 \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12\x35\n\x0fsegment_outputs\x18\x04 \x03(\x0b\x32\x1c.livekit.SegmentedFileOutputB\t\n\x07options\"\xdf\x01\n\x0f\x41utoTrackEgress\x12\x10\n\x08\x66ilepath\x18\x01 \x01(\t\x12\x18\n\x10\x64isable_manifest\x18\x05 \x01(\x08\x12\x1f\n\x02s3\x18\x02 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x03 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x04 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x06 \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\xc7\x03\n\x13\x45xportReplayRequest\x12\x1e\n\treplay_id\x18\x01 \x01(\tB\x0b\xbaP\x08replayID\x12\x17\n\x0fstart_offset_ms\x18\x02 \x01(\x03\x12\x15\n\rend_offset_ms\x18\x03 \x01(\x03\x12+\n\x08template\x18\x04 \x01(\x0b\x32\x17.livekit.TemplateSourceH\x00\x12!\n\x03web\x18\x05 \x01(\x0b\x32\x12.livekit.WebSourceH\x00\x12%\n\x05media\x18\x06 \x01(\x0b\x32\x14.livekit.MediaSourceH\x00\x12\x30\n\x06preset\x18\x07 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12 \n\x07outputs\x18\t \x03(\x0b\x32\x0f.livekit.Output\x12\'\n\x07storage\x18\n \x01(\x0b\x32\x16.livekit.StorageConfig\x12(\n\x08webhooks\x18\x0b \x03(\x0b\x32\x16.livekit.WebhookConfigB\x08\n\x06sourceB\n\n\x08\x65ncoding\"\xa3\x05\n\x1aRoomCompositeEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x0e\n\x06layout\x18\x02 \x01(\t\x12\x12\n\naudio_only\x18\x03 \x01(\x08\x12*\n\x0c\x61udio_mixing\x18\x0f \x01(\x0e\x32\x14.livekit.AudioMixing\x12\x12\n\nvideo_only\x18\x04 \x01(\x08\x12\x17\n\x0f\x63ustom_base_url\x18\x05 \x01(\t\x12.\n\x04\x66ile\x18\x06 \x01(\x0b\x32\x1a.livekit.EncodedFileOutputB\x02\x18\x01H\x00\x12+\n\x06stream\x18\x07 \x01(\x0b\x32\x15.livekit.StreamOutputB\x02\x18\x01H\x00\x12\x34\n\x08segments\x18\n \x01(\x0b\x32\x1c.livekit.SegmentedFileOutputB\x02\x18\x01H\x00\x12\x30\n\x06preset\x18\x08 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\t \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12\x30\n\x0c\x66ile_outputs\x18\x0b \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\x0c \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\r \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\x0e \x03(\x0b\x32\x14.livekit.ImageOutput\x12(\n\x08webhooks\x18\x10 \x03(\x0b\x32\x16.livekit.WebhookConfigB\x08\n\x06outputB\t\n\x07options\"\xda\x04\n\x10WebEgressRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x12\n\naudio_only\x18\x02 \x01(\x08\x12\x12\n\nvideo_only\x18\x03 \x01(\x08\x12\x1a\n\x12\x61wait_start_signal\x18\x0c \x01(\x08\x12.\n\x04\x66ile\x18\x04 \x01(\x0b\x32\x1a.livekit.EncodedFileOutputB\x02\x18\x01H\x00\x12+\n\x06stream\x18\x05 \x01(\x0b\x32\x15.livekit.StreamOutputB\x02\x18\x01H\x00\x12\x34\n\x08segments\x18\x06 \x01(\x0b\x32\x1c.livekit.SegmentedFileOutputB\x02\x18\x01H\x00\x12\x30\n\x06preset\x18\x07 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12\x30\n\x0c\x66ile_outputs\x18\t \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\n \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\x0b \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\r \x03(\x0b\x32\x14.livekit.ImageOutput\x12(\n\x08webhooks\x18\x0e \x03(\x0b\x32\x16.livekit.WebhookConfigB\x08\n\x06outputB\t\n\x07options\"\xaf\x03\n\x18ParticipantEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x10\n\x08identity\x18\x02 \x01(\t\x12\x14\n\x0cscreen_share\x18\x03 \x01(\x08\x12\x30\n\x06preset\x18\x04 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x00\x12,\n\x08\x61\x64vanced\x18\x05 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x00\x12\x30\n\x0c\x66ile_outputs\x18\x06 \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\x07 \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\x08 \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\t \x03(\x0b\x32\x14.livekit.ImageOutput\x12(\n\x08webhooks\x18\n \x03(\x0b\x32\x16.livekit.WebhookConfigB\t\n\x07options\"\xf9\x04\n\x1bTrackCompositeEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\'\n\x0e\x61udio_track_id\x18\x02 \x01(\tB\x0f\xbaP\x0c\x61udioTrackID\x12\'\n\x0evideo_track_id\x18\x03 \x01(\tB\x0f\xbaP\x0cvideoTrackID\x12.\n\x04\x66ile\x18\x04 \x01(\x0b\x32\x1a.livekit.EncodedFileOutputB\x02\x18\x01H\x00\x12+\n\x06stream\x18\x05 \x01(\x0b\x32\x15.livekit.StreamOutputB\x02\x18\x01H\x00\x12\x34\n\x08segments\x18\x08 \x01(\x0b\x32\x1c.livekit.SegmentedFileOutputB\x02\x18\x01H\x00\x12\x30\n\x06preset\x18\x06 \x01(\x0e\x32\x1e.livekit.EncodingOptionsPresetH\x01\x12,\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x18.livekit.EncodingOptionsH\x01\x12\x30\n\x0c\x66ile_outputs\x18\x0b \x03(\x0b\x32\x1a.livekit.EncodedFileOutput\x12-\n\x0estream_outputs\x18\x0c \x03(\x0b\x32\x15.livekit.StreamOutput\x12\x35\n\x0fsegment_outputs\x18\r \x03(\x0b\x32\x1c.livekit.SegmentedFileOutput\x12+\n\rimage_outputs\x18\x0e \x03(\x0b\x32\x14.livekit.ImageOutput\x12(\n\x08webhooks\x18\x0f \x03(\x0b\x32\x16.livekit.WebhookConfigB\x08\n\x06outputB\t\n\x07options\"\xbd\x01\n\x12TrackEgressRequest\x12\x11\n\troom_name\x18\x01 \x01(\t\x12\x1c\n\x08track_id\x18\x02 \x01(\tB\n\xbaP\x07trackID\x12)\n\x04\x66ile\x18\x03 \x01(\x0b\x32\x19.livekit.DirectFileOutputH\x00\x12\x17\n\rwebsocket_url\x18\x04 \x01(\tH\x00\x12(\n\x08webhooks\x18\x05 \x03(\x0b\x32\x16.livekit.WebhookConfigB\x08\n\x06output\"\xe0\x01\n\x10\x44irectFileOutput\x12\x10\n\x08\x66ilepath\x18\x01 \x01(\t\x12\x18\n\x10\x64isable_manifest\x18\x05 \x01(\x08\x12\x1f\n\x02s3\x18\x02 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x03 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x04 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x06 \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"\x8e\x02\n\x11\x45ncodedFileOutput\x12+\n\tfile_type\x18\x01 \x01(\x0e\x32\x18.livekit.EncodedFileType\x12\x10\n\x08\x66ilepath\x18\x02 \x01(\t\x12\x18\n\x10\x64isable_manifest\x18\x06 \x01(\x08\x12\x1f\n\x02s3\x18\x03 \x01(\x0b\x32\x11.livekit.S3UploadH\x00\x12!\n\x03gcp\x18\x04 \x01(\x0b\x32\x12.livekit.GCPUploadH\x00\x12)\n\x05\x61zure\x18\x05 \x01(\x0b\x32\x18.livekit.AzureBlobUploadH\x00\x12\'\n\x06\x61liOSS\x18\x07 \x01(\x0b\x32\x15.livekit.AliOSSUploadH\x00\x42\x08\n\x06output\"E\n\x13UpdateLayoutRequest\x12\x1e\n\tegress_id\x18\x01 \x01(\tB\x0b\xbaP\x08\x65gressID\x12\x0e\n\x06layout\x18\x02 \x01(\t\"\xa0\x01\n\x13UpdateStreamRequest\x12\x1e\n\tegress_id\x18\x01 \x01(\tB\x0b\xbaP\x08\x65gressID\x12\x17\n\x0f\x61\x64\x64_output_urls\x18\x02 \x03(\t\x12\x1a\n\x12remove_output_urls\x18\x03 \x03(\t\x12\x34\n\x10\x61\x64\x64_destinations\x18\x04 \x03(\x0b\x32\x1a.livekit.StreamDestination\"3\n\x0eStreamInfoList\x12!\n\x04info\x18\x01 \x03(\x0b\x32\x13.livekit.StreamInfo*W\n\x0c\x41udioChannel\x12\x16\n\x12\x41UDIO_CHANNEL_BOTH\x10\x00\x12\x16\n\x12\x41UDIO_CHANNEL_LEFT\x10\x01\x12\x17\n\x13\x41UDIO_CHANNEL_RIGHT\x10\x02*\xe0\x01\n\x15\x45ncodingOptionsPreset\x12\x10\n\x0cH264_720P_30\x10\x00\x12\x10\n\x0cH264_720P_60\x10\x01\x12\x11\n\rH264_1080P_30\x10\x02\x12\x11\n\rH264_1080P_60\x10\x03\x12\x19\n\x15PORTRAIT_H264_720P_30\x10\x04\x12\x19\n\x15PORTRAIT_H264_720P_60\x10\x05\x12\x1a\n\x16PORTRAIT_H264_1080P_30\x10\x06\x12\x1a\n\x16PORTRAIT_H264_1080P_60\x10\x07\x12\x0f\n\x0bPASSTHROUGH\x10\x08*L\n\x0f\x45ncodedFileType\x12\x14\n\x10\x44\x45\x46\x41ULT_FILETYPE\x10\x00\x12\x07\n\x03MP4\x10\x01\x12\x07\n\x03OGG\x10\x02\x12\x07\n\x03MP3\x10\x03\x12\x08\n\x04MCAP\x10\x04*H\n\x0eStreamProtocol\x12\x14\n\x10\x44\x45\x46\x41ULT_PROTOCOL\x10\x00\x12\x08\n\x04RTMP\x10\x01\x12\x07\n\x03SRT\x10\x02\x12\r\n\tWEBSOCKET\x10\x03*e\n\x15SegmentedFileProtocol\x12#\n\x1f\x44\x45\x46\x41ULT_SEGMENTED_FILE_PROTOCOL\x10\x00\x12\x10\n\x0cHLS_PROTOCOL\x10\x01\x12\x15\n\x11HLS_FMP4_PROTOCOL\x10\x02*/\n\x13SegmentedFileSuffix\x12\t\n\x05INDEX\x10\x00\x12\r\n\tTIMESTAMP\x10\x01*f\n\x0fImageFileSuffix\x12\x16\n\x12IMAGE_SUFFIX_INDEX\x10\x00\x12\x1a\n\x16IMAGE_SUFFIX_TIMESTAMP\x10\x01\x12\x1f\n\x1bIMAGE_SUFFIX_NONE_OVERWRITE\x10\x02*J\n\x10\x45gressSourceType\x12\x1a\n\x16\x45GRESS_SOURCE_TYPE_WEB\x10\x00\x12\x1a\n\x16\x45GRESS_SOURCE_TYPE_SDK\x10\x01*\x9f\x01\n\x0c\x45gressStatus\x12\x13\n\x0f\x45GRESS_STARTING\x10\x00\x12\x11\n\rEGRESS_ACTIVE\x10\x01\x12\x11\n\rEGRESS_ENDING\x10\x02\x12\x13\n\x0f\x45GRESS_COMPLETE\x10\x03\x12\x11\n\rEGRESS_FAILED\x10\x04\x12\x12\n\x0e\x45GRESS_ABORTED\x10\x05\x12\x18\n\x14\x45GRESS_LIMIT_REACHED\x10\x06*U\n\x0b\x41udioMixing\x12\x12\n\x0e\x44\x45\x46\x41ULT_MIXING\x10\x00\x12\x16\n\x12\x44UAL_CHANNEL_AGENT\x10\x01\x12\x1a\n\x16\x44UAL_CHANNEL_ALTERNATE\x10\x02\x32\xdd\x05\n\x06\x45gress\x12?\n\x0bStartEgress\x12\x1b.livekit.StartEgressRequest\x1a\x13.livekit.EgressInfo\x12\x41\n\x0cUpdateLayout\x12\x1c.livekit.UpdateLayoutRequest\x1a\x13.livekit.EgressInfo\x12\x41\n\x0cUpdateStream\x12\x1c.livekit.UpdateStreamRequest\x1a\x13.livekit.EgressInfo\x12\x45\n\nListEgress\x12\x1a.livekit.ListEgressRequest\x1a\x1b.livekit.ListEgressResponse\x12=\n\nStopEgress\x12\x1a.livekit.StopEgressRequest\x1a\x13.livekit.EgressInfo\x12T\n\x18StartRoomCompositeEgress\x12#.livekit.RoomCompositeEgressRequest\x1a\x13.livekit.EgressInfo\x12@\n\x0eStartWebEgress\x12\x19.livekit.WebEgressRequest\x1a\x13.livekit.EgressInfo\x12P\n\x16StartParticipantEgress\x12!.livekit.ParticipantEgressRequest\x1a\x13.livekit.EgressInfo\x12V\n\x19StartTrackCompositeEgress\x12$.livekit.TrackCompositeEgressRequest\x1a\x13.livekit.EgressInfo\x12\x44\n\x10StartTrackEgress\x12\x1b.livekit.TrackEgressRequest\x1a\x13.livekit.EgressInfoBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -36,6 +36,8 @@ _globals['DESCRIPTOR']._serialized_options = b'Z#github.com/livekit/protocol/livekit\252\002\rLiveKit.Proto\352\002\016LiveKit::Proto' _globals['_MEDIASOURCE'].fields_by_name['video_track_id']._loaded_options = None _globals['_MEDIASOURCE'].fields_by_name['video_track_id']._serialized_options = b'\272P\014videoTrackID' + _globals['_VIDEOSELECTOR'].fields_by_name['track_id']._loaded_options = None + _globals['_VIDEOSELECTOR'].fields_by_name['track_id']._serialized_options = b'\272P\007trackID' _globals['_AUDIOROUTE'].fields_by_name['track_id']._loaded_options = None _globals['_AUDIOROUTE'].fields_by_name['track_id']._serialized_options = b'\272P\007trackID' _globals['_DATASELECTOR'].fields_by_name['track_id']._loaded_options = None @@ -118,26 +120,26 @@ _globals['_UPDATELAYOUTREQUEST'].fields_by_name['egress_id']._serialized_options = b'\272P\010egressID' _globals['_UPDATESTREAMREQUEST'].fields_by_name['egress_id']._loaded_options = None _globals['_UPDATESTREAMREQUEST'].fields_by_name['egress_id']._serialized_options = b'\272P\010egressID' - _globals['_AUDIOCHANNEL']._serialized_start=10244 - _globals['_AUDIOCHANNEL']._serialized_end=10331 - _globals['_ENCODINGOPTIONSPRESET']._serialized_start=10334 - _globals['_ENCODINGOPTIONSPRESET']._serialized_end=10558 - _globals['_ENCODEDFILETYPE']._serialized_start=10560 - _globals['_ENCODEDFILETYPE']._serialized_end=10626 - _globals['_STREAMPROTOCOL']._serialized_start=10628 - _globals['_STREAMPROTOCOL']._serialized_end=10700 - _globals['_SEGMENTEDFILEPROTOCOL']._serialized_start=10702 - _globals['_SEGMENTEDFILEPROTOCOL']._serialized_end=10803 - _globals['_SEGMENTEDFILESUFFIX']._serialized_start=10805 - _globals['_SEGMENTEDFILESUFFIX']._serialized_end=10852 - _globals['_IMAGEFILESUFFIX']._serialized_start=10854 - _globals['_IMAGEFILESUFFIX']._serialized_end=10956 - _globals['_EGRESSSOURCETYPE']._serialized_start=10958 - _globals['_EGRESSSOURCETYPE']._serialized_end=11032 - _globals['_EGRESSSTATUS']._serialized_start=11035 - _globals['_EGRESSSTATUS']._serialized_end=11194 - _globals['_AUDIOMIXING']._serialized_start=11196 - _globals['_AUDIOMIXING']._serialized_end=11281 + _globals['_AUDIOCHANNEL']._serialized_start=10599 + _globals['_AUDIOCHANNEL']._serialized_end=10686 + _globals['_ENCODINGOPTIONSPRESET']._serialized_start=10689 + _globals['_ENCODINGOPTIONSPRESET']._serialized_end=10913 + _globals['_ENCODEDFILETYPE']._serialized_start=10915 + _globals['_ENCODEDFILETYPE']._serialized_end=10991 + _globals['_STREAMPROTOCOL']._serialized_start=10993 + _globals['_STREAMPROTOCOL']._serialized_end=11065 + _globals['_SEGMENTEDFILEPROTOCOL']._serialized_start=11067 + _globals['_SEGMENTEDFILEPROTOCOL']._serialized_end=11168 + _globals['_SEGMENTEDFILESUFFIX']._serialized_start=11170 + _globals['_SEGMENTEDFILESUFFIX']._serialized_end=11217 + _globals['_IMAGEFILESUFFIX']._serialized_start=11219 + _globals['_IMAGEFILESUFFIX']._serialized_end=11321 + _globals['_EGRESSSOURCETYPE']._serialized_start=11323 + _globals['_EGRESSSOURCETYPE']._serialized_end=11397 + _globals['_EGRESSSTATUS']._serialized_start=11400 + _globals['_EGRESSSTATUS']._serialized_end=11559 + _globals['_AUDIOMIXING']._serialized_start=11561 + _globals['_AUDIOMIXING']._serialized_end=11646 _globals['_STARTEGRESSREQUEST']._serialized_start=78 _globals['_STARTEGRESSREQUEST']._serialized_end=471 _globals['_TEMPLATESOURCE']._serialized_start=473 @@ -145,89 +147,93 @@ _globals['_WEBSOURCE']._serialized_start=572 _globals['_WEBSOURCE']._serialized_end=664 _globals['_MEDIASOURCE']._serialized_start=667 - _globals['_MEDIASOURCE']._serialized_end=825 - _globals['_PARTICIPANTVIDEO']._serialized_start=827 - _globals['_PARTICIPANTVIDEO']._serialized_end=892 - _globals['_AUDIOCONFIG']._serialized_start=894 - _globals['_AUDIOCONFIG']._serialized_end=965 - _globals['_AUDIOROUTE']._serialized_start=968 - _globals['_AUDIOROUTE']._serialized_end=1152 - _globals['_DATACONFIG']._serialized_start=1154 - _globals['_DATACONFIG']._serialized_end=1229 - _globals['_DATASELECTOR']._serialized_start=1231 - _globals['_DATASELECTOR']._serialized_end=1318 - _globals['_ENCODINGOPTIONS']._serialized_start=1321 - _globals['_ENCODINGOPTIONS']._serialized_end=1640 - _globals['_OUTPUT']._serialized_start=1643 - _globals['_OUTPUT']._serialized_end=1870 - _globals['_FILEOUTPUT']._serialized_start=1872 - _globals['_FILEOUTPUT']._serialized_end=1973 - _globals['_STREAMOUTPUT']._serialized_start=1975 - _globals['_STREAMOUTPUT']._serialized_end=2096 - _globals['_STREAMDESTINATION']._serialized_start=2098 - _globals['_STREAMDESTINATION']._serialized_end=2142 - _globals['_SEGMENTEDFILEOUTPUT']._serialized_start=2145 - _globals['_SEGMENTEDFILEOUTPUT']._serialized_end=2561 - _globals['_IMAGEOUTPUT']._serialized_start=2564 - _globals['_IMAGEOUTPUT']._serialized_end=2940 - _globals['_STORAGECONFIG']._serialized_start=2943 - _globals['_STORAGECONFIG']._serialized_end=3122 - _globals['_S3UPLOAD']._serialized_start=3125 - _globals['_S3UPLOAD']._serialized_end=3574 - _globals['_S3UPLOAD_METADATAENTRY']._serialized_start=3527 - _globals['_S3UPLOAD_METADATAENTRY']._serialized_end=3574 - _globals['_GCPUPLOAD']._serialized_start=3576 - _globals['_GCPUPLOAD']._serialized_end=3666 - _globals['_AZUREBLOBUPLOAD']._serialized_start=3668 - _globals['_AZUREBLOBUPLOAD']._serialized_end=3762 - _globals['_ALIOSSUPLOAD']._serialized_start=3764 - _globals['_ALIOSSUPLOAD']._serialized_end=3874 - _globals['_PROXYCONFIG']._serialized_start=3876 - _globals['_PROXYCONFIG']._serialized_end=3943 - _globals['_LISTEGRESSREQUEST']._serialized_start=3946 - _globals['_LISTEGRESSREQUEST']._serialized_end=4078 - _globals['_LISTEGRESSRESPONSE']._serialized_start=4080 - _globals['_LISTEGRESSRESPONSE']._serialized_end=4187 - _globals['_STOPEGRESSREQUEST']._serialized_start=4189 - _globals['_STOPEGRESSREQUEST']._serialized_end=4240 - _globals['_EGRESSINFO']._serialized_start=4243 - _globals['_EGRESSINFO']._serialized_end=5309 - _globals['_STREAMINFO']._serialized_start=5312 - _globals['_STREAMINFO']._serialized_end=5552 - _globals['_STREAMINFO_STATUS']._serialized_start=5506 - _globals['_STREAMINFO_STATUS']._serialized_end=5552 - _globals['_FILEINFO']._serialized_start=5554 - _globals['_FILEINFO']._serialized_end=5670 - _globals['_SEGMENTSINFO']._serialized_start=5673 - _globals['_SEGMENTSINFO']._serialized_end=5890 - _globals['_IMAGESINFO']._serialized_start=5892 - _globals['_IMAGESINFO']._serialized_end=5988 - _globals['_AUTOPARTICIPANTEGRESS']._serialized_start=5991 - _globals['_AUTOPARTICIPANTEGRESS']._serialized_end=6226 - _globals['_AUTOTRACKEGRESS']._serialized_start=6229 - _globals['_AUTOTRACKEGRESS']._serialized_end=6452 - _globals['_EXPORTREPLAYREQUEST']._serialized_start=6455 - _globals['_EXPORTREPLAYREQUEST']._serialized_end=6910 - _globals['_ROOMCOMPOSITEEGRESSREQUEST']._serialized_start=6913 - _globals['_ROOMCOMPOSITEEGRESSREQUEST']._serialized_end=7588 - _globals['_WEBEGRESSREQUEST']._serialized_start=7591 - _globals['_WEBEGRESSREQUEST']._serialized_end=8193 - _globals['_PARTICIPANTEGRESSREQUEST']._serialized_start=8196 - _globals['_PARTICIPANTEGRESSREQUEST']._serialized_end=8627 - _globals['_TRACKCOMPOSITEEGRESSREQUEST']._serialized_start=8630 - _globals['_TRACKCOMPOSITEEGRESSREQUEST']._serialized_end=9263 - _globals['_TRACKEGRESSREQUEST']._serialized_start=9266 - _globals['_TRACKEGRESSREQUEST']._serialized_end=9455 - _globals['_DIRECTFILEOUTPUT']._serialized_start=9458 - _globals['_DIRECTFILEOUTPUT']._serialized_end=9682 - _globals['_ENCODEDFILEOUTPUT']._serialized_start=9685 - _globals['_ENCODEDFILEOUTPUT']._serialized_end=9955 - _globals['_UPDATELAYOUTREQUEST']._serialized_start=9957 - _globals['_UPDATELAYOUTREQUEST']._serialized_end=10026 - _globals['_UPDATESTREAMREQUEST']._serialized_start=10029 - _globals['_UPDATESTREAMREQUEST']._serialized_end=10189 - _globals['_STREAMINFOLIST']._serialized_start=10191 - _globals['_STREAMINFOLIST']._serialized_end=10242 - _globals['_EGRESS']._serialized_start=11284 - _globals['_EGRESS']._serialized_end=12017 + _globals['_MEDIASOURCE']._serialized_end=900 + _globals['_PARTICIPANTVIDEO']._serialized_start=902 + _globals['_PARTICIPANTVIDEO']._serialized_end=967 + _globals['_VIDEOCONFIG']._serialized_start=969 + _globals['_VIDEOCONFIG']._serialized_end=1046 + _globals['_VIDEOSELECTOR']._serialized_start=1048 + _globals['_VIDEOSELECTOR']._serialized_end=1173 + _globals['_AUDIOCONFIG']._serialized_start=1175 + _globals['_AUDIOCONFIG']._serialized_end=1246 + _globals['_AUDIOROUTE']._serialized_start=1249 + _globals['_AUDIOROUTE']._serialized_end=1470 + _globals['_DATACONFIG']._serialized_start=1472 + _globals['_DATACONFIG']._serialized_end=1547 + _globals['_DATASELECTOR']._serialized_start=1549 + _globals['_DATASELECTOR']._serialized_end=1673 + _globals['_ENCODINGOPTIONS']._serialized_start=1676 + _globals['_ENCODINGOPTIONS']._serialized_end=1995 + _globals['_OUTPUT']._serialized_start=1998 + _globals['_OUTPUT']._serialized_end=2225 + _globals['_FILEOUTPUT']._serialized_start=2227 + _globals['_FILEOUTPUT']._serialized_end=2328 + _globals['_STREAMOUTPUT']._serialized_start=2330 + _globals['_STREAMOUTPUT']._serialized_end=2451 + _globals['_STREAMDESTINATION']._serialized_start=2453 + _globals['_STREAMDESTINATION']._serialized_end=2497 + _globals['_SEGMENTEDFILEOUTPUT']._serialized_start=2500 + _globals['_SEGMENTEDFILEOUTPUT']._serialized_end=2916 + _globals['_IMAGEOUTPUT']._serialized_start=2919 + _globals['_IMAGEOUTPUT']._serialized_end=3295 + _globals['_STORAGECONFIG']._serialized_start=3298 + _globals['_STORAGECONFIG']._serialized_end=3477 + _globals['_S3UPLOAD']._serialized_start=3480 + _globals['_S3UPLOAD']._serialized_end=3929 + _globals['_S3UPLOAD_METADATAENTRY']._serialized_start=3882 + _globals['_S3UPLOAD_METADATAENTRY']._serialized_end=3929 + _globals['_GCPUPLOAD']._serialized_start=3931 + _globals['_GCPUPLOAD']._serialized_end=4021 + _globals['_AZUREBLOBUPLOAD']._serialized_start=4023 + _globals['_AZUREBLOBUPLOAD']._serialized_end=4117 + _globals['_ALIOSSUPLOAD']._serialized_start=4119 + _globals['_ALIOSSUPLOAD']._serialized_end=4229 + _globals['_PROXYCONFIG']._serialized_start=4231 + _globals['_PROXYCONFIG']._serialized_end=4298 + _globals['_LISTEGRESSREQUEST']._serialized_start=4301 + _globals['_LISTEGRESSREQUEST']._serialized_end=4433 + _globals['_LISTEGRESSRESPONSE']._serialized_start=4435 + _globals['_LISTEGRESSRESPONSE']._serialized_end=4542 + _globals['_STOPEGRESSREQUEST']._serialized_start=4544 + _globals['_STOPEGRESSREQUEST']._serialized_end=4595 + _globals['_EGRESSINFO']._serialized_start=4598 + _globals['_EGRESSINFO']._serialized_end=5664 + _globals['_STREAMINFO']._serialized_start=5667 + _globals['_STREAMINFO']._serialized_end=5907 + _globals['_STREAMINFO_STATUS']._serialized_start=5861 + _globals['_STREAMINFO_STATUS']._serialized_end=5907 + _globals['_FILEINFO']._serialized_start=5909 + _globals['_FILEINFO']._serialized_end=6025 + _globals['_SEGMENTSINFO']._serialized_start=6028 + _globals['_SEGMENTSINFO']._serialized_end=6245 + _globals['_IMAGESINFO']._serialized_start=6247 + _globals['_IMAGESINFO']._serialized_end=6343 + _globals['_AUTOPARTICIPANTEGRESS']._serialized_start=6346 + _globals['_AUTOPARTICIPANTEGRESS']._serialized_end=6581 + _globals['_AUTOTRACKEGRESS']._serialized_start=6584 + _globals['_AUTOTRACKEGRESS']._serialized_end=6807 + _globals['_EXPORTREPLAYREQUEST']._serialized_start=6810 + _globals['_EXPORTREPLAYREQUEST']._serialized_end=7265 + _globals['_ROOMCOMPOSITEEGRESSREQUEST']._serialized_start=7268 + _globals['_ROOMCOMPOSITEEGRESSREQUEST']._serialized_end=7943 + _globals['_WEBEGRESSREQUEST']._serialized_start=7946 + _globals['_WEBEGRESSREQUEST']._serialized_end=8548 + _globals['_PARTICIPANTEGRESSREQUEST']._serialized_start=8551 + _globals['_PARTICIPANTEGRESSREQUEST']._serialized_end=8982 + _globals['_TRACKCOMPOSITEEGRESSREQUEST']._serialized_start=8985 + _globals['_TRACKCOMPOSITEEGRESSREQUEST']._serialized_end=9618 + _globals['_TRACKEGRESSREQUEST']._serialized_start=9621 + _globals['_TRACKEGRESSREQUEST']._serialized_end=9810 + _globals['_DIRECTFILEOUTPUT']._serialized_start=9813 + _globals['_DIRECTFILEOUTPUT']._serialized_end=10037 + _globals['_ENCODEDFILEOUTPUT']._serialized_start=10040 + _globals['_ENCODEDFILEOUTPUT']._serialized_end=10310 + _globals['_UPDATELAYOUTREQUEST']._serialized_start=10312 + _globals['_UPDATELAYOUTREQUEST']._serialized_end=10381 + _globals['_UPDATESTREAMREQUEST']._serialized_start=10384 + _globals['_UPDATESTREAMREQUEST']._serialized_end=10544 + _globals['_STREAMINFOLIST']._serialized_start=10546 + _globals['_STREAMINFOLIST']._serialized_end=10597 + _globals['_EGRESS']._serialized_start=11649 + _globals['_EGRESS']._serialized_end=12382 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/egress.pyi b/livekit-protocol/livekit/protocol/egress.pyi index 343abbde..8f83ec4f 100644 --- a/livekit-protocol/livekit/protocol/egress.pyi +++ b/livekit-protocol/livekit/protocol/egress.pyi @@ -32,6 +32,7 @@ class EncodedFileType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): MP4: _ClassVar[EncodedFileType] OGG: _ClassVar[EncodedFileType] MP3: _ClassVar[EncodedFileType] + MCAP: _ClassVar[EncodedFileType] class StreamProtocol(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () @@ -93,6 +94,7 @@ DEFAULT_FILETYPE: EncodedFileType MP4: EncodedFileType OGG: EncodedFileType MP3: EncodedFileType +MCAP: EncodedFileType DEFAULT_PROTOCOL: StreamProtocol RTMP: StreamProtocol SRT: StreamProtocol @@ -165,14 +167,18 @@ class WebSource(_message.Message): def __init__(self, url: _Optional[str] = ..., audio_only: bool = ..., video_only: bool = ..., await_start_signal: bool = ...) -> None: ... class MediaSource(_message.Message): - __slots__ = ("video_track_id", "participant_video", "audio") + __slots__ = ("video_track_id", "participant_video", "videos", "audio", "data") VIDEO_TRACK_ID_FIELD_NUMBER: _ClassVar[int] PARTICIPANT_VIDEO_FIELD_NUMBER: _ClassVar[int] + VIDEOS_FIELD_NUMBER: _ClassVar[int] AUDIO_FIELD_NUMBER: _ClassVar[int] + DATA_FIELD_NUMBER: _ClassVar[int] video_track_id: str participant_video: ParticipantVideo + videos: VideoConfig audio: AudioConfig - def __init__(self, video_track_id: _Optional[str] = ..., participant_video: _Optional[_Union[ParticipantVideo, _Mapping]] = ..., audio: _Optional[_Union[AudioConfig, _Mapping]] = ...) -> None: ... + data: DataConfig + def __init__(self, video_track_id: _Optional[str] = ..., participant_video: _Optional[_Union[ParticipantVideo, _Mapping]] = ..., videos: _Optional[_Union[VideoConfig, _Mapping]] = ..., audio: _Optional[_Union[AudioConfig, _Mapping]] = ..., data: _Optional[_Union[DataConfig, _Mapping]] = ...) -> None: ... class ParticipantVideo(_message.Message): __slots__ = ("identity", "prefer_screen_share") @@ -182,6 +188,26 @@ class ParticipantVideo(_message.Message): prefer_screen_share: bool def __init__(self, identity: _Optional[str] = ..., prefer_screen_share: bool = ...) -> None: ... +class VideoConfig(_message.Message): + __slots__ = ("capture_all", "selectors") + CAPTURE_ALL_FIELD_NUMBER: _ClassVar[int] + SELECTORS_FIELD_NUMBER: _ClassVar[int] + capture_all: bool + selectors: _containers.RepeatedCompositeFieldContainer[VideoSelector] + def __init__(self, capture_all: bool = ..., selectors: _Optional[_Iterable[_Union[VideoSelector, _Mapping]]] = ...) -> None: ... + +class VideoSelector(_message.Message): + __slots__ = ("track_id", "participant_identity", "track_name", "exclude") + TRACK_ID_FIELD_NUMBER: _ClassVar[int] + PARTICIPANT_IDENTITY_FIELD_NUMBER: _ClassVar[int] + TRACK_NAME_FIELD_NUMBER: _ClassVar[int] + EXCLUDE_FIELD_NUMBER: _ClassVar[int] + track_id: str + participant_identity: str + track_name: str + exclude: bool + def __init__(self, track_id: _Optional[str] = ..., participant_identity: _Optional[str] = ..., track_name: _Optional[str] = ..., exclude: bool = ...) -> None: ... + class AudioConfig(_message.Message): __slots__ = ("capture_all", "routes") CAPTURE_ALL_FIELD_NUMBER: _ClassVar[int] @@ -191,16 +217,20 @@ class AudioConfig(_message.Message): def __init__(self, capture_all: bool = ..., routes: _Optional[_Iterable[_Union[AudioRoute, _Mapping]]] = ...) -> None: ... class AudioRoute(_message.Message): - __slots__ = ("track_id", "participant_identity", "participant_kind", "channel") + __slots__ = ("track_id", "participant_identity", "participant_kind", "track_name", "exclude", "channel") TRACK_ID_FIELD_NUMBER: _ClassVar[int] PARTICIPANT_IDENTITY_FIELD_NUMBER: _ClassVar[int] PARTICIPANT_KIND_FIELD_NUMBER: _ClassVar[int] + TRACK_NAME_FIELD_NUMBER: _ClassVar[int] + EXCLUDE_FIELD_NUMBER: _ClassVar[int] CHANNEL_FIELD_NUMBER: _ClassVar[int] track_id: str participant_identity: str participant_kind: _models.ParticipantInfo.Kind + track_name: str + exclude: bool channel: AudioChannel - def __init__(self, track_id: _Optional[str] = ..., participant_identity: _Optional[str] = ..., participant_kind: _Optional[_Union[_models.ParticipantInfo.Kind, str]] = ..., channel: _Optional[_Union[AudioChannel, str]] = ...) -> None: ... + def __init__(self, track_id: _Optional[str] = ..., participant_identity: _Optional[str] = ..., participant_kind: _Optional[_Union[_models.ParticipantInfo.Kind, str]] = ..., track_name: _Optional[str] = ..., exclude: bool = ..., channel: _Optional[_Union[AudioChannel, str]] = ...) -> None: ... class DataConfig(_message.Message): __slots__ = ("capture_all", "selectors") @@ -211,12 +241,16 @@ class DataConfig(_message.Message): def __init__(self, capture_all: bool = ..., selectors: _Optional[_Iterable[_Union[DataSelector, _Mapping]]] = ...) -> None: ... class DataSelector(_message.Message): - __slots__ = ("track_id", "participant_identity") + __slots__ = ("track_id", "participant_identity", "track_name", "exclude") TRACK_ID_FIELD_NUMBER: _ClassVar[int] PARTICIPANT_IDENTITY_FIELD_NUMBER: _ClassVar[int] + TRACK_NAME_FIELD_NUMBER: _ClassVar[int] + EXCLUDE_FIELD_NUMBER: _ClassVar[int] track_id: str participant_identity: str - def __init__(self, track_id: _Optional[str] = ..., participant_identity: _Optional[str] = ...) -> None: ... + track_name: str + exclude: bool + def __init__(self, track_id: _Optional[str] = ..., participant_identity: _Optional[str] = ..., track_name: _Optional[str] = ..., exclude: bool = ...) -> None: ... class EncodingOptions(_message.Message): __slots__ = ("width", "height", "depth", "framerate", "audio_codec", "audio_bitrate", "audio_frequency", "video_codec", "video_bitrate", "key_frame_interval", "audio_quality", "video_quality")