diff --git a/livekit-protocol/generate_proto.sh b/livekit-protocol/generate_proto.sh index f669f6ba..cd29fbbb 100755 --- a/livekit-protocol/generate_proto.sh +++ b/livekit-protocol/generate_proto.sh @@ -38,6 +38,8 @@ protoc \ $API_PROTOCOL/livekit_sip.proto \ $API_PROTOCOL/livekit_analytics.proto \ $API_PROTOCOL/livekit_rtc.proto \ + $API_PROTOCOL/livekit_cloud_agent.proto \ + $API_PROTOCOL/livekit_agent_simulation.proto \ $API_PROTOCOL/agent/livekit_agent_session.proto \ $API_PROTOCOL/agent/livekit_agent_inference.proto \ $API_PROTOCOL/agent/livekit_agent_text.proto \ @@ -77,6 +79,10 @@ mv "$API_OUT_PYTHON/livekit_agent_worker_pb2.py" "$API_OUT_PYTHON/agent_worker.p mv "$API_OUT_PYTHON/livekit_agent_worker_pb2.pyi" "$API_OUT_PYTHON/agent_worker.pyi" mv "$API_OUT_PYTHON/livekit_analytics_pb2.py" "$API_OUT_PYTHON/analytics.py" mv "$API_OUT_PYTHON/livekit_analytics_pb2.pyi" "$API_OUT_PYTHON/analytics.pyi" +mv "$API_OUT_PYTHON/livekit_cloud_agent_pb2.py" "$API_OUT_PYTHON/cloud_agent.py" +mv "$API_OUT_PYTHON/livekit_cloud_agent_pb2.pyi" "$API_OUT_PYTHON/cloud_agent.pyi" +mv "$API_OUT_PYTHON/livekit_agent_simulation_pb2.py" "$API_OUT_PYTHON/agent_simulation.py" +mv "$API_OUT_PYTHON/livekit_agent_simulation_pb2.pyi" "$API_OUT_PYTHON/agent_simulation.pyi" mv "$API_OUT_PYTHON/livekit_sip_pb2.py" "$API_OUT_PYTHON/sip.py" mv "$API_OUT_PYTHON/livekit_sip_pb2.pyi" "$API_OUT_PYTHON/sip.pyi" mv "$API_OUT_PYTHON/livekit_metrics_pb2.py" "$API_OUT_PYTHON/metrics.py" @@ -104,7 +110,7 @@ mkdir -p "$API_OUT_PYTHON/logger_pb" mv "$API_OUT_PYTHON/logger/options_pb2.py" "$API_OUT_PYTHON/logger_pb/options.py" mv "$API_OUT_PYTHON/logger/options_pb2.pyi" "$API_OUT_PYTHON/logger_pb/options.pyi" -find "$API_OUT_PYTHON" -name '*.py' -o -name '*.pyi' | xargs perl -i -pe 's|^(import (livekit_egress_pb2\|livekit_room_pb2\|livekit_webhook_pb2\|livekit_ingress_pb2\|livekit_models_pb2\|livekit_agent_pb2\|livekit_agent_dispatch_pb2\|livekit_agent_worker_pb2\|livekit_analytics_pb2\|livekit_sip_pb2\|livekit_metrics_pb2\|livekit_rtc_pb2\|livekit_connector_whatsapp_pb2\|livekit_connector_twilio_pb2\|livekit_connector_pb2\|livekit_agent_session_pb2\|livekit_agent_inference_pb2\|livekit_agent_dev_pb2\|livekit_agent_text_pb2\|options_pb2))|from . $1|g' +find "$API_OUT_PYTHON" -name '*.py' -o -name '*.pyi' | xargs perl -i -pe 's|^(import (livekit_egress_pb2\|livekit_room_pb2\|livekit_webhook_pb2\|livekit_ingress_pb2\|livekit_models_pb2\|livekit_agent_pb2\|livekit_agent_dispatch_pb2\|livekit_agent_worker_pb2\|livekit_analytics_pb2\|livekit_sip_pb2\|livekit_metrics_pb2\|livekit_rtc_pb2\|livekit_cloud_agent_pb2\|livekit_agent_simulation_pb2\|livekit_connector_whatsapp_pb2\|livekit_connector_twilio_pb2\|livekit_connector_pb2\|livekit_agent_session_pb2\|livekit_agent_inference_pb2\|livekit_agent_dev_pb2\|livekit_agent_text_pb2\|options_pb2))|from . $1|g' find "$API_OUT_PYTHON" -name '*.py' -o -name '*.pyi' | xargs perl -i -pe 's|livekit_(\w+)_pb2|${1}|g' @@ -117,5 +123,8 @@ find "$API_OUT_PYTHON" -mindepth 2 -name '*.py' -o -name '*.pyi' | xargs perl -i # fix `from agent import agent_xxx as xxx` to `from . import agent_xxx as xxx` find "$API_OUT_PYTHON"/agent_pb -name '*.py' -o -name '*.pyi' | xargs perl -i -pe 's|from agent import (agent_\w+) as ([^ ]+)|from . import $1 as $2|g' +# top-level files (e.g. agent_simulation) importing from agent/ -> agent_pb subpackage +find "$API_OUT_PYTHON" -maxdepth 1 -name '*.py' -o -name '*.pyi' | xargs perl -i -pe 's|from agent import (agent_\w+) as ([^ ]+)|from .agent_pb import $1 as $2|g' + # fixes - error: ClassVar can only be used for assignments in class body [misc] perl -i -pe 's|^(\w+_FIELD_NUMBER): _ClassVar\[int\]|$1: int|g' "$API_OUT_PYTHON/logger_pb/options.pyi" diff --git a/livekit-protocol/livekit/protocol/agent_pb/agent_session.py b/livekit-protocol/livekit/protocol/agent_pb/agent_session.py index 5c6d6ba2..81821730 100644 --- a/livekit-protocol/livekit/protocol/agent_pb/agent_session.py +++ b/livekit-protocol/livekit/protocol/agent_pb/agent_session.py @@ -18,7 +18,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\"\xc3\x03\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\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_latency\"\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\"\x87\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\"\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\"\xfb\x11\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\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.AgentSessionUsageB\x07\n\x05\x65vent\"\xd6\t\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\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_outputB\t\n\x07request\"\xc1\r\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\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\x10UpdateIOResponseB\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*\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\"\xc3\x03\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\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_latency\"\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\"\x87\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\"\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\"\xfb\x11\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\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.AgentSessionUsageB\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*\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') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -38,14 +38,14 @@ _globals['_AGENTHANDOFF'].fields_by_name['new_agent_id']._serialized_options = b'\272P\nnewAgentID' _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._options = None _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_options = b'8\001' - _globals['_CHATROLE']._serialized_start=9638 - _globals['_CHATROLE']._serialized_end=9700 - _globals['_AGENTSTATE']._serialized_start=9702 - _globals['_AGENTSTATE']._serialized_end=9800 - _globals['_USERSTATE']._serialized_start=9802 - _globals['_USERSTATE']._serialized_end=9861 - _globals['_AMDCATEGORY']._serialized_start=9864 - _globals['_AMDCATEGORY']._serialized_end=9998 + _globals['_CHATROLE']._serialized_start=10072 + _globals['_CHATROLE']._serialized_end=10134 + _globals['_AGENTSTATE']._serialized_start=10136 + _globals['_AGENTSTATE']._serialized_end=10234 + _globals['_USERSTATE']._serialized_start=10236 + _globals['_USERSTATE']._serialized_end=10295 + _globals['_AMDCATEGORY']._serialized_start=10298 + _globals['_AMDCATEGORY']._serialized_end=10432 _globals['_METRICSREPORT']._serialized_start=170 _globals['_METRICSREPORT']._serialized_end=621 _globals['_TIMEDSTRING']._serialized_start=624 @@ -109,61 +109,67 @@ _globals['_AGENTSESSIONEVENT_SESSIONUSAGEUPDATED']._serialized_start=5755 _globals['_AGENTSESSIONEVENT_SESSIONUSAGEUPDATED']._serialized_end=5825 _globals['_SESSIONREQUEST']._serialized_start=5837 - _globals['_SESSIONREQUEST']._serialized_end=7075 - _globals['_SESSIONREQUEST_PING']._serialized_start=6491 - _globals['_SESSIONREQUEST_PING']._serialized_end=6497 - _globals['_SESSIONREQUEST_GETCHATHISTORY']._serialized_start=6499 - _globals['_SESSIONREQUEST_GETCHATHISTORY']._serialized_end=6515 - _globals['_SESSIONREQUEST_RUNINPUT']._serialized_start=6517 - _globals['_SESSIONREQUEST_RUNINPUT']._serialized_end=6541 - _globals['_SESSIONREQUEST_GETAGENTINFO']._serialized_start=6543 - _globals['_SESSIONREQUEST_GETAGENTINFO']._serialized_end=6557 - _globals['_SESSIONREQUEST_GETSESSIONSTATE']._serialized_start=6559 - _globals['_SESSIONREQUEST_GETSESSIONSTATE']._serialized_end=6576 - _globals['_SESSIONREQUEST_GETRTCSTATS']._serialized_start=6578 - _globals['_SESSIONREQUEST_GETRTCSTATS']._serialized_end=6591 - _globals['_SESSIONREQUEST_GETSESSIONUSAGE']._serialized_start=6593 - _globals['_SESSIONREQUEST_GETSESSIONUSAGE']._serialized_end=6610 - _globals['_SESSIONREQUEST_GETFRAMEWORKINFO']._serialized_start=6612 - _globals['_SESSIONREQUEST_GETFRAMEWORKINFO']._serialized_end=6630 - _globals['_SESSIONREQUEST_UPDATEIO']._serialized_start=6633 - _globals['_SESSIONREQUEST_UPDATEIO']._serialized_end=7064 - _globals['_SESSIONREQUEST_UPDATEIO_INPUT']._serialized_start=6779 - _globals['_SESSIONREQUEST_UPDATEIO_INPUT']._serialized_end=6878 - _globals['_SESSIONREQUEST_UPDATEIO_OUTPUT']._serialized_start=6881 - _globals['_SESSIONREQUEST_UPDATEIO_OUTPUT']._serialized_end=7043 - _globals['_SESSIONRESPONSE']._serialized_start=7078 - _globals['_SESSIONRESPONSE']._serialized_end=8807 - _globals['_SESSIONRESPONSE_PONG']._serialized_start=7826 - _globals['_SESSIONRESPONSE_PONG']._serialized_end=7832 - _globals['_SESSIONRESPONSE_GETCHATHISTORYRESPONSE']._serialized_start=7834 - _globals['_SESSIONRESPONSE_GETCHATHISTORYRESPONSE']._serialized_end=7910 - _globals['_SESSIONRESPONSE_GETAGENTINFORESPONSE']._serialized_start=7913 - _globals['_SESSIONRESPONSE_GETAGENTINFORESPONSE']._serialized_end=8061 - _globals['_SESSIONRESPONSE_RUNINPUTRESPONSE']._serialized_start=8063 - _globals['_SESSIONRESPONSE_RUNINPUTRESPONSE']._serialized_end=8133 - _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE']._serialized_start=8136 - _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE']._serialized_end=8455 - _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_start=8409 - _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_end=8455 - _globals['_SESSIONRESPONSE_GETRTCSTATSRESPONSE']._serialized_start=8457 - _globals['_SESSIONRESPONSE_GETRTCSTATSRESPONSE']._serialized_end=8579 - _globals['_SESSIONRESPONSE_GETSESSIONUSAGERESPONSE']._serialized_start=8581 - _globals['_SESSIONRESPONSE_GETSESSIONUSAGERESPONSE']._serialized_end=8703 - _globals['_SESSIONRESPONSE_GETFRAMEWORKINFORESPONSE']._serialized_start=8705 - _globals['_SESSIONRESPONSE_GETFRAMEWORKINFORESPONSE']._serialized_end=8765 - _globals['_SESSIONRESPONSE_UPDATEIORESPONSE']._serialized_start=8767 - _globals['_SESSIONRESPONSE_UPDATEIORESPONSE']._serialized_end=8785 - _globals['_AGENTSESSIONMESSAGE']._serialized_start=8810 - _globals['_AGENTSESSIONMESSAGE']._serialized_end=9636 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO']._serialized_start=9445 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO']._serialized_end=9625 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOFRAME']._serialized_start=9458 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOFRAME']._serialized_end=9556 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFLUSH']._serialized_start=9558 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFLUSH']._serialized_end=9578 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKCLEAR']._serialized_start=9580 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKCLEAR']._serialized_end=9600 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFINISHED']._serialized_start=9602 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFINISHED']._serialized_end=9625 + _globals['_SESSIONREQUEST']._serialized_end=7235 + _globals['_SESSIONREQUEST_PING']._serialized_start=6572 + _globals['_SESSIONREQUEST_PING']._serialized_end=6578 + _globals['_SESSIONREQUEST_GETCHATHISTORY']._serialized_start=6580 + _globals['_SESSIONREQUEST_GETCHATHISTORY']._serialized_end=6596 + _globals['_SESSIONREQUEST_RUNINPUT']._serialized_start=6598 + _globals['_SESSIONREQUEST_RUNINPUT']._serialized_end=6622 + _globals['_SESSIONREQUEST_GETAGENTINFO']._serialized_start=6624 + _globals['_SESSIONREQUEST_GETAGENTINFO']._serialized_end=6638 + _globals['_SESSIONREQUEST_GETSESSIONSTATE']._serialized_start=6640 + _globals['_SESSIONREQUEST_GETSESSIONSTATE']._serialized_end=6657 + _globals['_SESSIONREQUEST_GETRTCSTATS']._serialized_start=6659 + _globals['_SESSIONREQUEST_GETRTCSTATS']._serialized_end=6672 + _globals['_SESSIONREQUEST_GETSESSIONUSAGE']._serialized_start=6674 + _globals['_SESSIONREQUEST_GETSESSIONUSAGE']._serialized_end=6691 + _globals['_SESSIONREQUEST_GETFRAMEWORKINFO']._serialized_start=6693 + _globals['_SESSIONREQUEST_GETFRAMEWORKINFO']._serialized_end=6711 + _globals['_SESSIONREQUEST_UPDATEIO']._serialized_start=6714 + _globals['_SESSIONREQUEST_UPDATEIO']._serialized_end=7145 + _globals['_SESSIONREQUEST_UPDATEIO_INPUT']._serialized_start=6860 + _globals['_SESSIONREQUEST_UPDATEIO_INPUT']._serialized_end=6959 + _globals['_SESSIONREQUEST_UPDATEIO_OUTPUT']._serialized_start=6962 + _globals['_SESSIONREQUEST_UPDATEIO_OUTPUT']._serialized_end=7124 + _globals['_SESSIONREQUEST_FINALIZESIMULATION']._serialized_start=7147 + _globals['_SESSIONREQUEST_FINALIZESIMULATION']._serialized_end=7224 + _globals['_SESSIONRESPONSE']._serialized_start=7238 + _globals['_SESSIONRESPONSE']._serialized_end=9241 + _globals['_SESSIONRESPONSE_PONG']._serialized_start=8076 + _globals['_SESSIONRESPONSE_PONG']._serialized_end=8082 + _globals['_SESSIONRESPONSE_GETCHATHISTORYRESPONSE']._serialized_start=8084 + _globals['_SESSIONRESPONSE_GETCHATHISTORYRESPONSE']._serialized_end=8160 + _globals['_SESSIONRESPONSE_GETAGENTINFORESPONSE']._serialized_start=8163 + _globals['_SESSIONRESPONSE_GETAGENTINFORESPONSE']._serialized_end=8311 + _globals['_SESSIONRESPONSE_RUNINPUTRESPONSE']._serialized_start=8313 + _globals['_SESSIONRESPONSE_RUNINPUTRESPONSE']._serialized_end=8383 + _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE']._serialized_start=8386 + _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE']._serialized_end=8705 + _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_start=8659 + _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_end=8705 + _globals['_SESSIONRESPONSE_GETRTCSTATSRESPONSE']._serialized_start=8707 + _globals['_SESSIONRESPONSE_GETRTCSTATSRESPONSE']._serialized_end=8829 + _globals['_SESSIONRESPONSE_GETSESSIONUSAGERESPONSE']._serialized_start=8831 + _globals['_SESSIONRESPONSE_GETSESSIONUSAGERESPONSE']._serialized_end=8953 + _globals['_SESSIONRESPONSE_GETFRAMEWORKINFORESPONSE']._serialized_start=8955 + _globals['_SESSIONRESPONSE_GETFRAMEWORKINFORESPONSE']._serialized_end=9015 + _globals['_SESSIONRESPONSE_UPDATEIORESPONSE']._serialized_start=9017 + _globals['_SESSIONRESPONSE_UPDATEIORESPONSE']._serialized_end=9035 + _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE']._serialized_start=9038 + _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE']._serialized_end=9219 + _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE_SIMULATIONVERDICT']._serialized_start=9167 + _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE_SIMULATIONVERDICT']._serialized_end=9219 + _globals['_AGENTSESSIONMESSAGE']._serialized_start=9244 + _globals['_AGENTSESSIONMESSAGE']._serialized_end=10070 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO']._serialized_start=9879 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO']._serialized_end=10059 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOFRAME']._serialized_start=9892 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOFRAME']._serialized_end=9990 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFLUSH']._serialized_start=9992 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFLUSH']._serialized_end=10012 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKCLEAR']._serialized_start=10014 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKCLEAR']._serialized_end=10034 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFINISHED']._serialized_start=10036 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFINISHED']._serialized_end=10059 # @@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 8545a879..ae7d3d12 100644 --- a/livekit-protocol/livekit/protocol/agent_pb/agent_session.pyi +++ b/livekit-protocol/livekit/protocol/agent_pb/agent_session.pyi @@ -425,7 +425,7 @@ class AgentSessionEvent(_message.Message): 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]] = ...) -> 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") + __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") class Ping(_message.Message): __slots__ = () def __init__(self) -> None: ... @@ -475,6 +475,13 @@ class SessionRequest(_message.Message): input: SessionRequest.UpdateIO.Input output: SessionRequest.UpdateIO.Output def __init__(self, input: _Optional[_Union[SessionRequest.UpdateIO.Input, _Mapping]] = ..., output: _Optional[_Union[SessionRequest.UpdateIO.Output, _Mapping]] = ...) -> None: ... + class FinalizeSimulation(_message.Message): + __slots__ = ("provisional_success", "provisional_reason") + PROVISIONAL_SUCCESS_FIELD_NUMBER: _ClassVar[int] + PROVISIONAL_REASON_FIELD_NUMBER: _ClassVar[int] + provisional_success: bool + provisional_reason: str + def __init__(self, provisional_success: bool = ..., provisional_reason: _Optional[str] = ...) -> None: ... REQUEST_ID_FIELD_NUMBER: _ClassVar[int] PING_FIELD_NUMBER: _ClassVar[int] GET_CHAT_HISTORY_FIELD_NUMBER: _ClassVar[int] @@ -485,6 +492,7 @@ class SessionRequest(_message.Message): GET_SESSION_USAGE_FIELD_NUMBER: _ClassVar[int] GET_FRAMEWORK_INFO_FIELD_NUMBER: _ClassVar[int] UPDATE_IO_FIELD_NUMBER: _ClassVar[int] + FINALIZE_SIMULATION_FIELD_NUMBER: _ClassVar[int] request_id: str ping: SessionRequest.Ping get_chat_history: SessionRequest.GetChatHistory @@ -495,10 +503,11 @@ class SessionRequest(_message.Message): get_session_usage: SessionRequest.GetSessionUsage get_framework_info: SessionRequest.GetFrameworkInfo update_io: SessionRequest.UpdateIO - def __init__(self, request_id: _Optional[str] = ..., ping: _Optional[_Union[SessionRequest.Ping, _Mapping]] = ..., get_chat_history: _Optional[_Union[SessionRequest.GetChatHistory, _Mapping]] = ..., run_input: _Optional[_Union[SessionRequest.RunInput, _Mapping]] = ..., get_agent_info: _Optional[_Union[SessionRequest.GetAgentInfo, _Mapping]] = ..., get_session_state: _Optional[_Union[SessionRequest.GetSessionState, _Mapping]] = ..., get_rtc_stats: _Optional[_Union[SessionRequest.GetRTCStats, _Mapping]] = ..., get_session_usage: _Optional[_Union[SessionRequest.GetSessionUsage, _Mapping]] = ..., get_framework_info: _Optional[_Union[SessionRequest.GetFrameworkInfo, _Mapping]] = ..., update_io: _Optional[_Union[SessionRequest.UpdateIO, _Mapping]] = ...) -> None: ... + finalize_simulation: SessionRequest.FinalizeSimulation + def __init__(self, request_id: _Optional[str] = ..., ping: _Optional[_Union[SessionRequest.Ping, _Mapping]] = ..., get_chat_history: _Optional[_Union[SessionRequest.GetChatHistory, _Mapping]] = ..., run_input: _Optional[_Union[SessionRequest.RunInput, _Mapping]] = ..., get_agent_info: _Optional[_Union[SessionRequest.GetAgentInfo, _Mapping]] = ..., get_session_state: _Optional[_Union[SessionRequest.GetSessionState, _Mapping]] = ..., get_rtc_stats: _Optional[_Union[SessionRequest.GetRTCStats, _Mapping]] = ..., get_session_usage: _Optional[_Union[SessionRequest.GetSessionUsage, _Mapping]] = ..., get_framework_info: _Optional[_Union[SessionRequest.GetFrameworkInfo, _Mapping]] = ..., update_io: _Optional[_Union[SessionRequest.UpdateIO, _Mapping]] = ..., finalize_simulation: _Optional[_Union[SessionRequest.FinalizeSimulation, _Mapping]] = ...) -> None: ... class SessionResponse(_message.Message): - __slots__ = ("request_id", "error", "pong", "get_chat_history", "run_input", "get_agent_info", "get_session_state", "get_rtc_stats", "get_session_usage", "get_framework_info", "update_io") + __slots__ = ("request_id", "error", "pong", "get_chat_history", "run_input", "get_agent_info", "get_session_state", "get_rtc_stats", "get_session_usage", "get_framework_info", "update_io", "finalize_simulation") class Pong(_message.Message): __slots__ = () def __init__(self) -> None: ... @@ -567,6 +576,18 @@ class SessionResponse(_message.Message): class UpdateIOResponse(_message.Message): __slots__ = () def __init__(self) -> None: ... + class FinalizeSimulationResponse(_message.Message): + __slots__ = ("user_verdict",) + class SimulationVerdict(_message.Message): + __slots__ = ("success", "reason") + SUCCESS_FIELD_NUMBER: _ClassVar[int] + REASON_FIELD_NUMBER: _ClassVar[int] + success: bool + reason: str + def __init__(self, success: bool = ..., reason: _Optional[str] = ...) -> None: ... + USER_VERDICT_FIELD_NUMBER: _ClassVar[int] + user_verdict: SessionResponse.FinalizeSimulationResponse.SimulationVerdict + def __init__(self, user_verdict: _Optional[_Union[SessionResponse.FinalizeSimulationResponse.SimulationVerdict, _Mapping]] = ...) -> None: ... REQUEST_ID_FIELD_NUMBER: _ClassVar[int] ERROR_FIELD_NUMBER: _ClassVar[int] PONG_FIELD_NUMBER: _ClassVar[int] @@ -578,6 +599,7 @@ class SessionResponse(_message.Message): GET_SESSION_USAGE_FIELD_NUMBER: _ClassVar[int] GET_FRAMEWORK_INFO_FIELD_NUMBER: _ClassVar[int] UPDATE_IO_FIELD_NUMBER: _ClassVar[int] + FINALIZE_SIMULATION_FIELD_NUMBER: _ClassVar[int] request_id: str error: str pong: SessionResponse.Pong @@ -589,7 +611,8 @@ class SessionResponse(_message.Message): get_session_usage: SessionResponse.GetSessionUsageResponse get_framework_info: SessionResponse.GetFrameworkInfoResponse update_io: SessionResponse.UpdateIOResponse - def __init__(self, request_id: _Optional[str] = ..., error: _Optional[str] = ..., pong: _Optional[_Union[SessionResponse.Pong, _Mapping]] = ..., get_chat_history: _Optional[_Union[SessionResponse.GetChatHistoryResponse, _Mapping]] = ..., run_input: _Optional[_Union[SessionResponse.RunInputResponse, _Mapping]] = ..., get_agent_info: _Optional[_Union[SessionResponse.GetAgentInfoResponse, _Mapping]] = ..., get_session_state: _Optional[_Union[SessionResponse.GetSessionStateResponse, _Mapping]] = ..., get_rtc_stats: _Optional[_Union[SessionResponse.GetRTCStatsResponse, _Mapping]] = ..., get_session_usage: _Optional[_Union[SessionResponse.GetSessionUsageResponse, _Mapping]] = ..., get_framework_info: _Optional[_Union[SessionResponse.GetFrameworkInfoResponse, _Mapping]] = ..., update_io: _Optional[_Union[SessionResponse.UpdateIOResponse, _Mapping]] = ...) -> None: ... + finalize_simulation: SessionResponse.FinalizeSimulationResponse + def __init__(self, request_id: _Optional[str] = ..., error: _Optional[str] = ..., pong: _Optional[_Union[SessionResponse.Pong, _Mapping]] = ..., get_chat_history: _Optional[_Union[SessionResponse.GetChatHistoryResponse, _Mapping]] = ..., run_input: _Optional[_Union[SessionResponse.RunInputResponse, _Mapping]] = ..., get_agent_info: _Optional[_Union[SessionResponse.GetAgentInfoResponse, _Mapping]] = ..., get_session_state: _Optional[_Union[SessionResponse.GetSessionStateResponse, _Mapping]] = ..., get_rtc_stats: _Optional[_Union[SessionResponse.GetRTCStatsResponse, _Mapping]] = ..., get_session_usage: _Optional[_Union[SessionResponse.GetSessionUsageResponse, _Mapping]] = ..., get_framework_info: _Optional[_Union[SessionResponse.GetFrameworkInfoResponse, _Mapping]] = ..., update_io: _Optional[_Union[SessionResponse.UpdateIOResponse, _Mapping]] = ..., finalize_simulation: _Optional[_Union[SessionResponse.FinalizeSimulationResponse, _Mapping]] = ...) -> None: ... class AgentSessionMessage(_message.Message): __slots__ = ("audio_input", "audio_output", "event", "request", "response", "audio_playback_flush", "audio_playback_clear", "audio_playback_finished") diff --git a/livekit-protocol/livekit/protocol/agent_simulation.py b/livekit-protocol/livekit/protocol/agent_simulation.py new file mode 100644 index 00000000..5221d287 --- /dev/null +++ b/livekit-protocol/livekit/protocol/agent_simulation.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: livekit_agent_simulation.proto +# Protobuf Python Version: 4.25.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from .agent_pb import agent_session as agent_dot__agent__session_ +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from . import cloud_agent as _cloud__agent_ +from . import models as _models_ + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1elivekit_agent_simulation.proto\x12\x07livekit\x1a!agent/livekit_agent_session.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x19livekit_cloud_agent.proto\x1a\x14livekit_models.proto\"\xea\x02\n\x14SimulationRunSummary\x12\x0e\n\x06passed\x18\x01 \x01(\x05\x12\x0e\n\x06\x66\x61iled\x18\x02 \x01(\x05\x12\x12\n\ngoing_well\x18\x03 \x01(\t\x12\x12\n\nto_improve\x18\x04 \x01(\t\x12\x33\n\x06issues\x18\x05 \x03(\x0b\x32#.livekit.SimulationRunSummary.Issue\x12\x44\n\x0c\x63hat_history\x18\x06 \x03(\x0b\x32..livekit.SimulationRunSummary.ChatHistoryEntry\x1aN\n\x10\x43hatHistoryEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.livekit.agent.ChatContext:\x02\x38\x01\x1a?\n\x05Issue\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12\x12\n\nsuggestion\x18\x02 \x01(\t\x12\r\n\x05label\x18\x03 \x01(\t\"\xf4\x10\n\rSimulationRun\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\t\x12-\n\x06status\x18\x03 \x01(\x0e\x32\x1d.livekit.SimulationRun.Status\x12\x19\n\x11\x61gent_description\x18\x04 \x01(\t\x12\r\n\x05\x65rror\x18\x05 \x01(\t\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12(\n\x04jobs\x18\x07 \x03(\x0b\x32\x1a.livekit.SimulationRun.Job\x12.\n\x07summary\x18\x08 \x01(\x0b\x32\x1d.livekit.SimulationRunSummary\x12\x12\n\nagent_name\x18\t \x01(\t\x12.\n\x0escenario_group\x18\n \x01(\x0b\x32\x16.livekit.ScenarioGroup\x12,\n\x08\x65nded_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x11\n\tjob_count\x18\x0c \x01(\x05\x12\x14\n\x0cpassed_count\x18\r \x01(\x05\x12\x14\n\x0c\x66\x61iled_count\x18\x0e \x01(\x05\x12\x17\n\x0fnum_simulations\x18\x0f \x01(\x05\x12+\n\x05usage\x18\x10 \x01(\x0b\x32\x1c.livekit.SimulationRun.Usage\x1a\x8a\x04\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\x12\x31\n\x06status\x18\x02 \x01(\x0e\x32!.livekit.SimulationRun.Job.Status\x12\x14\n\x0cinstructions\x18\x03 \x01(\t\x12\r\n\x05\x65rror\x18\x04 \x01(\t\x12\x1a\n\x12\x61gent_expectations\x18\x05 \x01(\t\x12\r\n\x05label\x18\x06 \x01(\t\x12\x0c\n\x04tags\x18\x07 \x03(\t\x12\x11\n\troom_name\x18\x08 \x01(\t\x12.\n\nstarted_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nded_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07room_id\x18\x0c \x01(\t\x12/\n\x05usage\x18\r \x01(\x0b\x32 .livekit.SimulationRun.Job.Usage\x1a<\n\x05Usage\x12\x18\n\x10text_turns_count\x18\x01 \x01(\x05\x12\x19\n\x11\x61udio_turns_count\x18\x02 \x01(\x05\"o\n\x06Status\x12\x12\n\x0eSTATUS_PENDING\x10\x00\x12\x12\n\x0eSTATUS_RUNNING\x10\x01\x12\x14\n\x10STATUS_COMPLETED\x10\x02\x12\x11\n\rSTATUS_FAILED\x10\x03\x12\x14\n\x10STATUS_CANCELLED\x10\x04J\x04\x08\t\x10\n\x1a\xae\x02\n\x06\x43reate\x1a\xbd\x01\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x12\n\nagent_name\x18\x02 \x01(\t\x12\x19\n\x11\x61gent_description\x18\x03 \x01(\t\x12\x17\n\x0fnum_simulations\x18\x04 \x01(\x05\x12\x0e\n\x06region\x18\x06 \x01(\t\x12\x33\n\x0escenario_group\x18\x07 \x01(\x0b\x32\x16.livekit.ScenarioGroupH\x00\x88\x01\x01\x42\x11\n\x0f_scenario_group\x1a\x64\n\x08Response\x12\x19\n\x11simulation_run_id\x18\x01 \x01(\t\x12=\n\x16presigned_post_request\x18\x02 \x01(\x0b\x32\x1d.livekit.PresignedPostRequest\x1at\n\x13\x43onfirmSourceUpload\x1aQ\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x19\n\x11simulation_run_id\x18\x02 \x01(\t\x12\x17\n\x0f\x63ode_entrypoint\x18\x03 \x01(\t\x1a\n\n\x08Response\x1ap\n\x03Get\x1a\x38\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x19\n\x11simulation_run_id\x18\x02 \x01(\t\x1a/\n\x08Response\x12#\n\x03run\x18\x01 \x01(\x0b\x32\x16.livekit.SimulationRun\x1a\x8c\x02\n\x04List\x1a\x9e\x01\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x32\n\x06status\x18\x02 \x01(\x0e\x32\x1d.livekit.SimulationRun.StatusH\x00\x88\x01\x01\x12\x31\n\npage_token\x18\x03 \x01(\x0b\x32\x18.livekit.TokenPaginationH\x01\x88\x01\x01\x42\t\n\x07_statusB\r\n\x0b_page_token\x1a\x63\n\x08Response\x12$\n\x04runs\x18\x01 \x03(\x0b\x32\x16.livekit.SimulationRun\x12\x31\n\x0fnext_page_token\x18\x02 \x01(\x0b\x32\x18.livekit.TokenPagination\x1aN\n\x06\x43\x61ncel\x1a\x38\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x19\n\x11simulation_run_id\x18\x02 \x01(\t\x1a\n\n\x08Response\x1a<\n\x05Usage\x12\x18\n\x10text_turns_count\x18\x01 \x01(\x05\x12\x19\n\x11\x61udio_turns_count\x18\x02 \x01(\x05\"\xa5\x01\n\x06Status\x12\x19\n\x15STATUS_PENDING_UPLOAD\x10\x00\x12\x15\n\x11STATUS_GENERATING\x10\x01\x12\x12\n\x0eSTATUS_RUNNING\x10\x02\x12\x16\n\x12STATUS_SUMMARIZING\x10\x03\x12\x14\n\x10STATUS_COMPLETED\x10\x04\x12\x11\n\rSTATUS_FAILED\x10\x05\x12\x14\n\x10STATUS_CANCELLED\x10\x06\"\xbc\x02\n\x08Scenario\x12\r\n\x05label\x18\x01 \x01(\t\x12\x14\n\x0cinstructions\x18\x02 \x01(\t\x12\x1a\n\x12\x61gent_expectations\x18\x03 \x01(\t\x12)\n\x04tags\x18\x04 \x03(\x0b\x32\x1b.livekit.Scenario.TagsEntry\x12\x10\n\x08userdata\x18\x05 \x01(\t\x1a\x84\x01\n\x11\x43reateFromSession\x1a>\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x0f\n\x07room_id\x18\x02 \x01(\t\x12\x0e\n\x06region\x18\x03 \x01(\t\x1a/\n\x08Response\x12#\n\x08scenario\x18\x01 \x01(\x0b\x32\x11.livekit.Scenario\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"C\n\rScenarioGroup\x12\x0c\n\x04name\x18\x01 \x01(\t\x12$\n\tscenarios\x18\x02 \x03(\x0b\x32\x11.livekit.Scenario\"d\n\x12SimulationDispatch\x12\x19\n\x11simulation_run_id\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12#\n\x08scenario\x18\x03 \x01(\x0b\x32\x11.livekit.Scenario2\x9e\x05\n\x0f\x41gentSimulation\x12\x64\n\x13\x43reateSimulationRun\x12%.livekit.SimulationRun.Create.Request\x1a&.livekit.SimulationRun.Create.Response\x12\x88\x01\n\x1d\x43onfirmSimulationSourceUpload\x12\x32.livekit.SimulationRun.ConfirmSourceUpload.Request\x1a\x33.livekit.SimulationRun.ConfirmSourceUpload.Response\x12[\n\x10GetSimulationRun\x12\".livekit.SimulationRun.Get.Request\x1a#.livekit.SimulationRun.Get.Response\x12_\n\x12ListSimulationRuns\x12#.livekit.SimulationRun.List.Request\x1a$.livekit.SimulationRun.List.Response\x12\x64\n\x13\x43\x61ncelSimulationRun\x12%.livekit.SimulationRun.Cancel.Request\x1a&.livekit.SimulationRun.Cancel.Response\x12v\n\x19\x43reateScenarioFromSession\x12+.livekit.Scenario.CreateFromSession.Request\x1a,.livekit.Scenario.CreateFromSession.ResponseBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'agent_simulation', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'Z#github.com/livekit/protocol/livekit\252\002\rLiveKit.Proto\352\002\016LiveKit::Proto' + _globals['_SIMULATIONRUNSUMMARY_CHATHISTORYENTRY']._options = None + _globals['_SIMULATIONRUNSUMMARY_CHATHISTORYENTRY']._serialized_options = b'8\001' + _globals['_SCENARIO_TAGSENTRY']._options = None + _globals['_SCENARIO_TAGSENTRY']._serialized_options = b'8\001' + _globals['_SIMULATIONRUNSUMMARY']._serialized_start=161 + _globals['_SIMULATIONRUNSUMMARY']._serialized_end=523 + _globals['_SIMULATIONRUNSUMMARY_CHATHISTORYENTRY']._serialized_start=380 + _globals['_SIMULATIONRUNSUMMARY_CHATHISTORYENTRY']._serialized_end=458 + _globals['_SIMULATIONRUNSUMMARY_ISSUE']._serialized_start=460 + _globals['_SIMULATIONRUNSUMMARY_ISSUE']._serialized_end=523 + _globals['_SIMULATIONRUN']._serialized_start=526 + _globals['_SIMULATIONRUN']._serialized_end=2690 + _globals['_SIMULATIONRUN_JOB']._serialized_start=1050 + _globals['_SIMULATIONRUN_JOB']._serialized_end=1572 + _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_start=1393 + _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_end=1453 + _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_start=1455 + _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_end=1566 + _globals['_SIMULATIONRUN_CREATE']._serialized_start=1575 + _globals['_SIMULATIONRUN_CREATE']._serialized_end=1877 + _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_start=1586 + _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_end=1775 + _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_start=1777 + _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_end=1877 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_start=1879 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_end=1995 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_start=1902 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_end=1983 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_start=1777 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_end=1787 + _globals['_SIMULATIONRUN_GET']._serialized_start=1997 + _globals['_SIMULATIONRUN_GET']._serialized_end=2109 + _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_start=1902 + _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_end=1958 + _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_start=2062 + _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_end=2109 + _globals['_SIMULATIONRUN_LIST']._serialized_start=2112 + _globals['_SIMULATIONRUN_LIST']._serialized_end=2380 + _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_start=2121 + _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_end=2279 + _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_start=2281 + _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_end=2380 + _globals['_SIMULATIONRUN_CANCEL']._serialized_start=2382 + _globals['_SIMULATIONRUN_CANCEL']._serialized_end=2460 + _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_start=1902 + _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_end=1958 + _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_start=1777 + _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_end=1787 + _globals['_SIMULATIONRUN_USAGE']._serialized_start=1393 + _globals['_SIMULATIONRUN_USAGE']._serialized_end=1453 + _globals['_SIMULATIONRUN_STATUS']._serialized_start=2525 + _globals['_SIMULATIONRUN_STATUS']._serialized_end=2690 + _globals['_SCENARIO']._serialized_start=2693 + _globals['_SCENARIO']._serialized_end=3009 + _globals['_SCENARIO_CREATEFROMSESSION']._serialized_start=2832 + _globals['_SCENARIO_CREATEFROMSESSION']._serialized_end=2964 + _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_start=2853 + _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_end=2915 + _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_start=2917 + _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_end=2964 + _globals['_SCENARIO_TAGSENTRY']._serialized_start=2966 + _globals['_SCENARIO_TAGSENTRY']._serialized_end=3009 + _globals['_SCENARIOGROUP']._serialized_start=3011 + _globals['_SCENARIOGROUP']._serialized_end=3078 + _globals['_SIMULATIONDISPATCH']._serialized_start=3080 + _globals['_SIMULATIONDISPATCH']._serialized_end=3180 + _globals['_AGENTSIMULATION']._serialized_start=3183 + _globals['_AGENTSIMULATION']._serialized_end=3853 +# @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agent_simulation.pyi b/livekit-protocol/livekit/protocol/agent_simulation.pyi new file mode 100644 index 00000000..6e2e62d2 --- /dev/null +++ b/livekit-protocol/livekit/protocol/agent_simulation.pyi @@ -0,0 +1,291 @@ +from .agent_pb import agent_session as _agent_session +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from . import cloud_agent as _cloud_agent +from . import models as _models +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class SimulationRunSummary(_message.Message): + __slots__ = ("passed", "failed", "going_well", "to_improve", "issues", "chat_history") + class ChatHistoryEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: _agent_session.ChatContext + def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_agent_session.ChatContext, _Mapping]] = ...) -> None: ... + class Issue(_message.Message): + __slots__ = ("description", "suggestion", "label") + DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + SUGGESTION_FIELD_NUMBER: _ClassVar[int] + LABEL_FIELD_NUMBER: _ClassVar[int] + description: str + suggestion: str + label: str + def __init__(self, description: _Optional[str] = ..., suggestion: _Optional[str] = ..., label: _Optional[str] = ...) -> None: ... + PASSED_FIELD_NUMBER: _ClassVar[int] + FAILED_FIELD_NUMBER: _ClassVar[int] + GOING_WELL_FIELD_NUMBER: _ClassVar[int] + TO_IMPROVE_FIELD_NUMBER: _ClassVar[int] + ISSUES_FIELD_NUMBER: _ClassVar[int] + CHAT_HISTORY_FIELD_NUMBER: _ClassVar[int] + passed: int + failed: int + going_well: str + to_improve: str + issues: _containers.RepeatedCompositeFieldContainer[SimulationRunSummary.Issue] + chat_history: _containers.MessageMap[str, _agent_session.ChatContext] + def __init__(self, passed: _Optional[int] = ..., failed: _Optional[int] = ..., going_well: _Optional[str] = ..., to_improve: _Optional[str] = ..., issues: _Optional[_Iterable[_Union[SimulationRunSummary.Issue, _Mapping]]] = ..., chat_history: _Optional[_Mapping[str, _agent_session.ChatContext]] = ...) -> None: ... + +class SimulationRun(_message.Message): + __slots__ = ("id", "project_id", "status", "agent_description", "error", "created_at", "jobs", "summary", "agent_name", "scenario_group", "ended_at", "job_count", "passed_count", "failed_count", "num_simulations", "usage") + class Status(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + STATUS_PENDING_UPLOAD: _ClassVar[SimulationRun.Status] + STATUS_GENERATING: _ClassVar[SimulationRun.Status] + STATUS_RUNNING: _ClassVar[SimulationRun.Status] + STATUS_SUMMARIZING: _ClassVar[SimulationRun.Status] + STATUS_COMPLETED: _ClassVar[SimulationRun.Status] + STATUS_FAILED: _ClassVar[SimulationRun.Status] + STATUS_CANCELLED: _ClassVar[SimulationRun.Status] + STATUS_PENDING_UPLOAD: SimulationRun.Status + STATUS_GENERATING: SimulationRun.Status + STATUS_RUNNING: SimulationRun.Status + STATUS_SUMMARIZING: SimulationRun.Status + STATUS_COMPLETED: SimulationRun.Status + STATUS_FAILED: SimulationRun.Status + STATUS_CANCELLED: SimulationRun.Status + class Job(_message.Message): + __slots__ = ("id", "status", "instructions", "error", "agent_expectations", "label", "tags", "room_name", "started_at", "ended_at", "room_id", "usage") + class Status(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + STATUS_PENDING: _ClassVar[SimulationRun.Job.Status] + STATUS_RUNNING: _ClassVar[SimulationRun.Job.Status] + STATUS_COMPLETED: _ClassVar[SimulationRun.Job.Status] + STATUS_FAILED: _ClassVar[SimulationRun.Job.Status] + STATUS_CANCELLED: _ClassVar[SimulationRun.Job.Status] + STATUS_PENDING: SimulationRun.Job.Status + STATUS_RUNNING: SimulationRun.Job.Status + STATUS_COMPLETED: SimulationRun.Job.Status + STATUS_FAILED: SimulationRun.Job.Status + STATUS_CANCELLED: SimulationRun.Job.Status + class Usage(_message.Message): + __slots__ = ("text_turns_count", "audio_turns_count") + TEXT_TURNS_COUNT_FIELD_NUMBER: _ClassVar[int] + AUDIO_TURNS_COUNT_FIELD_NUMBER: _ClassVar[int] + text_turns_count: int + audio_turns_count: int + def __init__(self, text_turns_count: _Optional[int] = ..., audio_turns_count: _Optional[int] = ...) -> None: ... + ID_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + INSTRUCTIONS_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + AGENT_EXPECTATIONS_FIELD_NUMBER: _ClassVar[int] + LABEL_FIELD_NUMBER: _ClassVar[int] + TAGS_FIELD_NUMBER: _ClassVar[int] + ROOM_NAME_FIELD_NUMBER: _ClassVar[int] + STARTED_AT_FIELD_NUMBER: _ClassVar[int] + ENDED_AT_FIELD_NUMBER: _ClassVar[int] + ROOM_ID_FIELD_NUMBER: _ClassVar[int] + USAGE_FIELD_NUMBER: _ClassVar[int] + id: str + status: SimulationRun.Job.Status + instructions: str + error: str + agent_expectations: str + label: str + tags: _containers.RepeatedScalarFieldContainer[str] + room_name: str + started_at: _timestamp_pb2.Timestamp + ended_at: _timestamp_pb2.Timestamp + room_id: str + usage: SimulationRun.Job.Usage + def __init__(self, id: _Optional[str] = ..., status: _Optional[_Union[SimulationRun.Job.Status, str]] = ..., instructions: _Optional[str] = ..., error: _Optional[str] = ..., agent_expectations: _Optional[str] = ..., label: _Optional[str] = ..., tags: _Optional[_Iterable[str]] = ..., room_name: _Optional[str] = ..., started_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., ended_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., room_id: _Optional[str] = ..., usage: _Optional[_Union[SimulationRun.Job.Usage, _Mapping]] = ...) -> None: ... + class Create(_message.Message): + __slots__ = () + class Request(_message.Message): + __slots__ = ("project_id", "agent_name", "agent_description", "num_simulations", "region", "scenario_group") + PROJECT_ID_FIELD_NUMBER: _ClassVar[int] + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + AGENT_DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + NUM_SIMULATIONS_FIELD_NUMBER: _ClassVar[int] + REGION_FIELD_NUMBER: _ClassVar[int] + SCENARIO_GROUP_FIELD_NUMBER: _ClassVar[int] + project_id: str + agent_name: str + agent_description: str + num_simulations: int + region: str + scenario_group: ScenarioGroup + def __init__(self, project_id: _Optional[str] = ..., agent_name: _Optional[str] = ..., agent_description: _Optional[str] = ..., num_simulations: _Optional[int] = ..., region: _Optional[str] = ..., scenario_group: _Optional[_Union[ScenarioGroup, _Mapping]] = ...) -> None: ... + class Response(_message.Message): + __slots__ = ("simulation_run_id", "presigned_post_request") + SIMULATION_RUN_ID_FIELD_NUMBER: _ClassVar[int] + PRESIGNED_POST_REQUEST_FIELD_NUMBER: _ClassVar[int] + simulation_run_id: str + presigned_post_request: _cloud_agent.PresignedPostRequest + def __init__(self, simulation_run_id: _Optional[str] = ..., presigned_post_request: _Optional[_Union[_cloud_agent.PresignedPostRequest, _Mapping]] = ...) -> None: ... + def __init__(self) -> None: ... + class ConfirmSourceUpload(_message.Message): + __slots__ = () + class Request(_message.Message): + __slots__ = ("project_id", "simulation_run_id", "code_entrypoint") + PROJECT_ID_FIELD_NUMBER: _ClassVar[int] + SIMULATION_RUN_ID_FIELD_NUMBER: _ClassVar[int] + CODE_ENTRYPOINT_FIELD_NUMBER: _ClassVar[int] + project_id: str + simulation_run_id: str + code_entrypoint: str + def __init__(self, project_id: _Optional[str] = ..., simulation_run_id: _Optional[str] = ..., code_entrypoint: _Optional[str] = ...) -> None: ... + class Response(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + def __init__(self) -> None: ... + class Get(_message.Message): + __slots__ = () + class Request(_message.Message): + __slots__ = ("project_id", "simulation_run_id") + PROJECT_ID_FIELD_NUMBER: _ClassVar[int] + SIMULATION_RUN_ID_FIELD_NUMBER: _ClassVar[int] + project_id: str + simulation_run_id: str + def __init__(self, project_id: _Optional[str] = ..., simulation_run_id: _Optional[str] = ...) -> None: ... + class Response(_message.Message): + __slots__ = ("run",) + RUN_FIELD_NUMBER: _ClassVar[int] + run: SimulationRun + def __init__(self, run: _Optional[_Union[SimulationRun, _Mapping]] = ...) -> None: ... + def __init__(self) -> None: ... + class List(_message.Message): + __slots__ = () + class Request(_message.Message): + __slots__ = ("project_id", "status", "page_token") + PROJECT_ID_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int] + project_id: str + status: SimulationRun.Status + page_token: _models.TokenPagination + def __init__(self, project_id: _Optional[str] = ..., status: _Optional[_Union[SimulationRun.Status, str]] = ..., page_token: _Optional[_Union[_models.TokenPagination, _Mapping]] = ...) -> None: ... + class Response(_message.Message): + __slots__ = ("runs", "next_page_token") + RUNS_FIELD_NUMBER: _ClassVar[int] + NEXT_PAGE_TOKEN_FIELD_NUMBER: _ClassVar[int] + runs: _containers.RepeatedCompositeFieldContainer[SimulationRun] + next_page_token: _models.TokenPagination + def __init__(self, runs: _Optional[_Iterable[_Union[SimulationRun, _Mapping]]] = ..., next_page_token: _Optional[_Union[_models.TokenPagination, _Mapping]] = ...) -> None: ... + def __init__(self) -> None: ... + class Cancel(_message.Message): + __slots__ = () + class Request(_message.Message): + __slots__ = ("project_id", "simulation_run_id") + PROJECT_ID_FIELD_NUMBER: _ClassVar[int] + SIMULATION_RUN_ID_FIELD_NUMBER: _ClassVar[int] + project_id: str + simulation_run_id: str + def __init__(self, project_id: _Optional[str] = ..., simulation_run_id: _Optional[str] = ...) -> None: ... + class Response(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + def __init__(self) -> None: ... + class Usage(_message.Message): + __slots__ = ("text_turns_count", "audio_turns_count") + TEXT_TURNS_COUNT_FIELD_NUMBER: _ClassVar[int] + AUDIO_TURNS_COUNT_FIELD_NUMBER: _ClassVar[int] + text_turns_count: int + audio_turns_count: int + def __init__(self, text_turns_count: _Optional[int] = ..., audio_turns_count: _Optional[int] = ...) -> None: ... + ID_FIELD_NUMBER: _ClassVar[int] + PROJECT_ID_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + AGENT_DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + ERROR_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + JOBS_FIELD_NUMBER: _ClassVar[int] + SUMMARY_FIELD_NUMBER: _ClassVar[int] + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + SCENARIO_GROUP_FIELD_NUMBER: _ClassVar[int] + ENDED_AT_FIELD_NUMBER: _ClassVar[int] + JOB_COUNT_FIELD_NUMBER: _ClassVar[int] + PASSED_COUNT_FIELD_NUMBER: _ClassVar[int] + FAILED_COUNT_FIELD_NUMBER: _ClassVar[int] + NUM_SIMULATIONS_FIELD_NUMBER: _ClassVar[int] + USAGE_FIELD_NUMBER: _ClassVar[int] + id: str + project_id: str + status: SimulationRun.Status + agent_description: str + error: str + created_at: _timestamp_pb2.Timestamp + jobs: _containers.RepeatedCompositeFieldContainer[SimulationRun.Job] + summary: SimulationRunSummary + agent_name: str + scenario_group: ScenarioGroup + ended_at: _timestamp_pb2.Timestamp + job_count: int + passed_count: int + failed_count: int + num_simulations: int + usage: SimulationRun.Usage + def __init__(self, id: _Optional[str] = ..., project_id: _Optional[str] = ..., status: _Optional[_Union[SimulationRun.Status, str]] = ..., agent_description: _Optional[str] = ..., error: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., jobs: _Optional[_Iterable[_Union[SimulationRun.Job, _Mapping]]] = ..., summary: _Optional[_Union[SimulationRunSummary, _Mapping]] = ..., agent_name: _Optional[str] = ..., scenario_group: _Optional[_Union[ScenarioGroup, _Mapping]] = ..., ended_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., job_count: _Optional[int] = ..., passed_count: _Optional[int] = ..., failed_count: _Optional[int] = ..., num_simulations: _Optional[int] = ..., usage: _Optional[_Union[SimulationRun.Usage, _Mapping]] = ...) -> None: ... + +class Scenario(_message.Message): + __slots__ = ("label", "instructions", "agent_expectations", "tags", "userdata") + class CreateFromSession(_message.Message): + __slots__ = () + class Request(_message.Message): + __slots__ = ("project_id", "room_id", "region") + PROJECT_ID_FIELD_NUMBER: _ClassVar[int] + ROOM_ID_FIELD_NUMBER: _ClassVar[int] + REGION_FIELD_NUMBER: _ClassVar[int] + project_id: str + room_id: str + region: str + def __init__(self, project_id: _Optional[str] = ..., room_id: _Optional[str] = ..., region: _Optional[str] = ...) -> None: ... + class Response(_message.Message): + __slots__ = ("scenario",) + SCENARIO_FIELD_NUMBER: _ClassVar[int] + scenario: Scenario + def __init__(self, scenario: _Optional[_Union[Scenario, _Mapping]] = ...) -> None: ... + def __init__(self) -> None: ... + class TagsEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + LABEL_FIELD_NUMBER: _ClassVar[int] + INSTRUCTIONS_FIELD_NUMBER: _ClassVar[int] + AGENT_EXPECTATIONS_FIELD_NUMBER: _ClassVar[int] + TAGS_FIELD_NUMBER: _ClassVar[int] + USERDATA_FIELD_NUMBER: _ClassVar[int] + label: str + instructions: str + agent_expectations: str + tags: _containers.ScalarMap[str, str] + userdata: str + def __init__(self, label: _Optional[str] = ..., instructions: _Optional[str] = ..., agent_expectations: _Optional[str] = ..., tags: _Optional[_Mapping[str, str]] = ..., userdata: _Optional[str] = ...) -> None: ... + +class ScenarioGroup(_message.Message): + __slots__ = ("name", "scenarios") + NAME_FIELD_NUMBER: _ClassVar[int] + SCENARIOS_FIELD_NUMBER: _ClassVar[int] + name: str + scenarios: _containers.RepeatedCompositeFieldContainer[Scenario] + def __init__(self, name: _Optional[str] = ..., scenarios: _Optional[_Iterable[_Union[Scenario, _Mapping]]] = ...) -> None: ... + +class SimulationDispatch(_message.Message): + __slots__ = ("simulation_run_id", "job_id", "scenario") + SIMULATION_RUN_ID_FIELD_NUMBER: _ClassVar[int] + JOB_ID_FIELD_NUMBER: _ClassVar[int] + SCENARIO_FIELD_NUMBER: _ClassVar[int] + simulation_run_id: str + job_id: str + scenario: Scenario + def __init__(self, simulation_run_id: _Optional[str] = ..., job_id: _Optional[str] = ..., scenario: _Optional[_Union[Scenario, _Mapping]] = ...) -> None: ... diff --git a/livekit-protocol/livekit/protocol/agent_worker.py b/livekit-protocol/livekit/protocol/agent_worker.py index 08d353f0..6270f26a 100644 --- a/livekit-protocol/livekit/protocol/agent_worker.py +++ b/livekit-protocol/livekit/protocol/agent_worker.py @@ -12,10 +12,9 @@ _sym_db = _symbol_database.Default() -from .logger_pb import options as logger_dot_options__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1alivekit_agent_worker.proto\x12\x07livekit\x1a\x14logger/options.proto\"\x8e\x01\n\nWorkerInfo\x12\x13\n\x0bworker_type\x18\x01 \x01(\t\x12\x12\n\nagent_name\x18\x02 \x01(\t\x12\x13\n\x0b\x61\x63tive_jobs\x18\x03 \x01(\x02\x12\x13\n\x0bsdk_version\x18\x04 \x01(\t\x12\x13\n\x0bworker_load\x18\x05 \x01(\x02\x12\x18\n\x10protocol_version\x18\x06 \x01(\x05\x42\x46Z#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1alivekit_agent_worker.proto\x12\x07livekit\"\x8e\x01\n\nWorkerInfo\x12\x13\n\x0bworker_type\x18\x01 \x01(\t\x12\x12\n\nagent_name\x18\x02 \x01(\t\x12\x13\n\x0b\x61\x63tive_jobs\x18\x03 \x01(\x02\x12\x13\n\x0bsdk_version\x18\x04 \x01(\t\x12\x13\n\x0bworker_load\x18\x05 \x01(\x02\x12\x18\n\x10protocol_version\x18\x06 \x01(\x05\x42\x46Z#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -23,6 +22,6 @@ if _descriptor._USE_C_DESCRIPTORS == False: _globals['DESCRIPTOR']._options = None _globals['DESCRIPTOR']._serialized_options = b'Z#github.com/livekit/protocol/livekit\252\002\rLiveKit.Proto\352\002\016LiveKit::Proto' - _globals['_WORKERINFO']._serialized_start=62 - _globals['_WORKERINFO']._serialized_end=204 + _globals['_WORKERINFO']._serialized_start=40 + _globals['_WORKERINFO']._serialized_end=182 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agent_worker.pyi b/livekit-protocol/livekit/protocol/agent_worker.pyi index f3faf1aa..658f9a60 100644 --- a/livekit-protocol/livekit/protocol/agent_worker.pyi +++ b/livekit-protocol/livekit/protocol/agent_worker.pyi @@ -1,4 +1,3 @@ -from .logger_pb import options as _options_pb2 from google.protobuf import descriptor as _descriptor from google.protobuf import message as _message from typing import ClassVar as _ClassVar, Optional as _Optional diff --git a/livekit-protocol/livekit/protocol/cloud_agent.py b/livekit-protocol/livekit/protocol/cloud_agent.py new file mode 100644 index 00000000..04c3471a --- /dev/null +++ b/livekit-protocol/livekit/protocol/cloud_agent.py @@ -0,0 +1,205 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: livekit_cloud_agent.proto +# Protobuf Python Version: 4.25.1 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from .logger_pb import options as logger_dot_options__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x19livekit_cloud_agent.proto\x12\x07livekit\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x14logger/options.proto\"q\n\nAgentEvent\x12%\n\x04type\x18\x01 \x01(\x0e\x32\x17.livekit.AgentEventType\x12\r\n\x05\x63ount\x18\x02 \x01(\x05\x12-\n\ttimestamp\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xc7\x01\n\x0b\x41gentSecret\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x0c\x12.\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12&\n\x04kind\x18\x05 \x01(\x0e\x32\x18.livekit.AgentSecretKind\x12\x13\n\x0b\x64\x65ployments\x18\x06 \x03(\t\"\xa9\x01\n\x12\x43reateAgentRequest\x12\x16\n\nagent_name\x18\x01 \x01(\tB\x02\x18\x01\x12%\n\x07secrets\x18\x02 \x03(\x0b\x32\x14.livekit.AgentSecret\x12\x14\n\x08replicas\x18\x03 \x01(\x05\x42\x02\x18\x01\x12\x18\n\x0cmax_replicas\x18\x04 \x01(\x05\x42\x02\x18\x01\x12\x13\n\x07\x63pu_req\x18\x05 \x01(\tB\x02\x18\x01\x12\x0f\n\x07regions\x18\x06 \x03(\t\"\xe3\x01\n\x13\x43reateAgentResponse\x12\x1c\n\x08\x61gent_id\x18\x01 \x01(\tB\n\xbaP\x07\x61gentID\x12\x12\n\nagent_name\x18\x02 \x01(\t\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x0f\n\x07version\x18\x04 \x01(\t\x12\x15\n\rpresigned_url\x18\x05 \x01(\t\x12\x0b\n\x03tag\x18\x06 \x01(\t\x12\x16\n\x0eserver_regions\x18\x07 \x03(\t\x12=\n\x16presigned_post_request\x18\x08 \x01(\x0b\x32\x1d.livekit.PresignedPostRequest\"N\n\x14\x43reateAgentV2Request\x12%\n\x07secrets\x18\x01 \x03(\x0b\x32\x14.livekit.AgentSecret\x12\x0f\n\x07regions\x18\x02 \x03(\t\"]\n\x15\x43reateAgentV2Response\x12\x1c\n\x08\x61gent_id\x18\x01 \x01(\tB\n\xbaP\x07\x61gentID\x12\x0e\n\x06status\x18\x02 \x01(\t\x12\x16\n\x0eserver_regions\x18\x03 \x03(\t\"\x8d\x01\n\x14PresignedPostRequest\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x39\n\x06values\x18\x02 \x03(\x0b\x32).livekit.PresignedPostRequest.ValuesEntry\x1a-\n\x0bValuesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x88\x03\n\x0f\x41gentDeployment\x12\x0e\n\x06region\x18\x01 \x01(\t\x12\x1c\n\x08\x61gent_id\x18\x02 \x01(\tB\n\xbaP\x07\x61gentID\x12\x0e\n\x06status\x18\x03 \x01(\t\x12\x10\n\x08replicas\x18\x04 \x01(\x05\x12\x14\n\x0cmin_replicas\x18\x05 \x01(\x05\x12\x14\n\x0cmax_replicas\x18\x06 \x01(\x05\x12\x0f\n\x07\x63pu_req\x18\x07 \x01(\t\x12\x0f\n\x07\x63ur_cpu\x18\x08 \x01(\t\x12\x0f\n\x07\x63ur_mem\x18\t \x01(\t\x12\x0f\n\x07mem_req\x18\n \x01(\t\x12\x11\n\tmem_limit\x18\x0b \x01(\t\x12\x11\n\tcpu_limit\x18\x0c \x01(\t\x12\x15\n\rserver_region\x18\r \x01(\t\x12#\n\x06\x65vents\x18\x0e \x03(\x0b\x32\x13.livekit.AgentEvent\x12\x12\n\ndeployment\x18\x0f \x01(\t\x12\x0f\n\x07version\x18\x10 \x01(\t\x12\x12\n\nagent_name\x18\x11 \x01(\t\x12\x1a\n\x12\x64\x65ployment_enabled\x18\x12 \x01(\x08\"\xdb\x01\n\tAgentInfo\x12\x1c\n\x08\x61gent_id\x18\x01 \x01(\tB\n\xbaP\x07\x61gentID\x12\x12\n\nagent_name\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x33\n\x11\x61gent_deployments\x18\x04 \x03(\x0b\x32\x18.livekit.AgentDeployment\x12%\n\x07secrets\x18\x05 \x03(\x0b\x32\x14.livekit.AgentSecret\x12/\n\x0b\x64\x65ployed_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"E\n\x11ListAgentsRequest\x12\x12\n\nagent_name\x18\x01 \x01(\t\x12\x1c\n\x08\x61gent_id\x18\x02 \x01(\tB\n\xbaP\x07\x61gentID\"8\n\x12ListAgentsResponse\x12\"\n\x06\x61gents\x18\x01 \x03(\x0b\x32\x12.livekit.AgentInfo\"\xc0\x02\n\x0c\x41gentVersion\x12\x0f\n\x07version\x18\x01 \x01(\t\x12\x0f\n\x07\x63urrent\x18\x02 \x01(\x08\x12.\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0b\x64\x65ployed_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x39\n\nattributes\x18\x05 \x03(\x0b\x32%.livekit.AgentVersion.AttributesEntry\x12\x0e\n\x06status\x18\x06 \x01(\t\x12\r\n\x05owner\x18\x07 \x01(\t\x12\x10\n\x08\x64raining\x18\x08 \x01(\x08\x12\x0e\n\x06\x61\x63tive\x18\t \x01(\x08\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"L\n\x18ListAgentVersionsRequest\x12\x1c\n\x08\x61gent_id\x18\x01 \x01(\tB\n\xbaP\x07\x61gentID\x12\x12\n\nagent_name\x18\x02 \x01(\t\"D\n\x19ListAgentVersionsResponse\x12\'\n\x08versions\x18\x01 \x03(\x0b\x32\x15.livekit.AgentVersion\"\xc7\x01\n\x12UpdateAgentRequest\x12\x1c\n\x08\x61gent_id\x18\x01 \x01(\tB\n\xbaP\x07\x61gentID\x12\x16\n\nagent_name\x18\x02 \x01(\tB\x02\x18\x01\x12\x14\n\x08replicas\x18\x03 \x01(\x05\x42\x02\x18\x01\x12\x18\n\x0cmax_replicas\x18\x04 \x01(\x05\x42\x02\x18\x01\x12\x13\n\x07\x63pu_req\x18\x05 \x01(\tB\x02\x18\x01\x12\x0f\n\x07regions\x18\x06 \x03(\t\x12%\n\x07secrets\x18\x07 \x03(\x0b\x32\x14.livekit.AgentSecret\"7\n\x13UpdateAgentResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\"3\n\x13RestartAgentRequest\x12\x1c\n\x08\x61gent_id\x18\x01 \x01(\tB\n\xbaP\x07\x61gentID\"8\n\x14RestartAgentResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\"\xca\x01\n\x12\x44\x65ployAgentRequest\x12\x1c\n\x08\x61gent_id\x18\x01 \x01(\tB\n\xbaP\x07\x61gentID\x12\x16\n\nagent_name\x18\x02 \x01(\tB\x02\x18\x01\x12%\n\x07secrets\x18\x03 \x03(\x0b\x32\x14.livekit.AgentSecret\x12\x14\n\x08replicas\x18\x04 \x01(\x05\x42\x02\x18\x01\x12\x18\n\x0cmax_replicas\x18\x05 \x01(\x05\x42\x02\x18\x01\x12\x13\n\x07\x63pu_req\x18\x06 \x01(\tB\x02\x18\x01\x12\x12\n\ndeployment\x18\x07 \x01(\t\"\xd0\x01\n\x13\x44\x65ployAgentResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x1c\n\x08\x61gent_id\x18\x03 \x01(\tB\n\xbaP\x07\x61gentID\x12\x19\n\rpresigned_url\x18\x04 \x01(\tB\x02\x18\x01\x12\x0b\n\x03tag\x18\x05 \x01(\t\x12=\n\x16presigned_post_request\x18\x06 \x01(\x0b\x32\x1d.livekit.PresignedPostRequest\x12\x12\n\ndeployment\x18\x07 \x01(\t\"o\n\x14\x44\x65ployAgentV2Request\x12\x1c\n\x08\x61gent_id\x18\x01 \x01(\tB\n\xbaP\x07\x61gentID\x12%\n\x07secrets\x18\x02 \x03(\x0b\x32\x14.livekit.AgentSecret\x12\x12\n\ndeployment\x18\x03 \x01(\t\"\xae\x01\n\x15\x44\x65ployAgentV2Response\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\x12\x1c\n\x08\x61gent_id\x18\x03 \x01(\tB\n\xbaP\x07\x61gentID\x12\x0b\n\x03tag\x18\x04 \x01(\t\x12\x34\n\rpresigned_req\x18\x05 \x01(\x0b\x32\x1d.livekit.PresignedPostRequest\x12\x12\n\ndeployment\x18\x06 \x01(\t\"\x97\x01\n\x19UpdateAgentSecretsRequest\x12\x1c\n\x08\x61gent_id\x18\x01 \x01(\tB\n\xbaP\x07\x61gentID\x12\x12\n\nagent_name\x18\x02 \x01(\t\x12\x11\n\toverwrite\x18\x03 \x01(\x08\x12%\n\x07secrets\x18\x04 \x03(\x0b\x32\x14.livekit.AgentSecret\x12\x0e\n\x06remove\x18\x05 \x03(\t\">\n\x1aUpdateAgentSecretsResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\"Y\n\x14RollbackAgentRequest\x12\x1c\n\x08\x61gent_id\x18\x01 \x01(\tB\n\xbaP\x07\x61gentID\x12\x12\n\nagent_name\x18\x02 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\"9\n\x15RollbackAgentResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\"Z\n\x12\x44\x65leteAgentRequest\x12\x1c\n\x08\x61gent_id\x18\x01 \x01(\tB\n\xbaP\x07\x61gentID\x12\x12\n\nagent_name\x18\x02 \x01(\t\x12\x12\n\ndeployment\x18\x03 \x01(\t\"7\n\x13\x44\x65leteAgentResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0f\n\x07message\x18\x02 \x01(\t\"K\n\x17ListAgentSecretsRequest\x12\x1c\n\x08\x61gent_id\x18\x01 \x01(\tB\n\xbaP\x07\x61gentID\x12\x12\n\nagent_name\x18\x02 \x01(\t\"A\n\x18ListAgentSecretsResponse\x12%\n\x07secrets\x18\x01 \x03(\x0b\x32\x14.livekit.AgentSecret\",\n\rSettingsParam\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"@\n\x16\x43lientSettingsResponse\x12&\n\x06params\x18\x01 \x03(\x0b\x32\x16.livekit.SettingsParam\"\x17\n\x15\x43lientSettingsRequest\"\x89\x02\n\x0bPrivateLink\x12)\n\x0fprivate_link_id\x18\x01 \x01(\tB\x10\xbaP\rprivateLinkID\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06region\x18\x04 \x01(\t\x12\x0c\n\x04port\x18\x05 \x01(\r\x12\x10\n\x08\x65ndpoint\x18\x06 \x01(\t\x12\x1b\n\x13\x63onnection_endpoint\x18\x07 \x01(\t\x12\x14\n\x0c\x63loud_region\x18\x08 \x01(\t\x12\x31\n\x03\x61ws\x18\x03 \x01(\x0b\x32\x1e.livekit.PrivateLink.AWSConfigB\x02\x18\x01H\x00\x1a!\n\tAWSConfig\x12\x14\n\x08\x65ndpoint\x18\x01 \x01(\tB\x02\x18\x01\x42\x08\n\x06\x63onfig\"\xe8\x02\n\x11PrivateLinkStatus\x12\x31\n\x06status\x18\x01 \x01(\x0e\x32!.livekit.PrivateLinkStatus.Status\x12.\n\nupdated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0e\n\x06reason\x18\x03 \x01(\t\"\xdf\x01\n\x06Status\x12\x1f\n\x1bPRIVATE_LINK_STATUS_UNKNOWN\x10\x00\x12$\n PRIVATE_LINK_STATUS_PROVISIONING\x10\x01\x12(\n$PRIVATE_LINK_STATUS_PENDING_APPROVAL\x10\x02\x12\x1f\n\x1bPRIVATE_LINK_STATUS_HEALTHY\x10\x03\x12!\n\x1dPRIVATE_LINK_STATUS_UNHEALTHY\x10\x04\x12 \n\x1cPRIVATE_LINK_STATUS_APPROVED\x10\x05\"\xfd\x01\n\x18\x43reatePrivateLinkRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06region\x18\x03 \x01(\t\x12\x0c\n\x04port\x18\x04 \x01(\r\x12\x10\n\x08\x65ndpoint\x18\x05 \x01(\t\x12\x19\n\x0c\x63loud_region\x18\x06 \x01(\tH\x01\x88\x01\x01\x12\x44\n\x03\x61ws\x18\x02 \x01(\x0b\x32\x31.livekit.CreatePrivateLinkRequest.AWSCreateConfigB\x02\x18\x01H\x00\x1a\'\n\x0f\x41WSCreateConfig\x12\x14\n\x08\x65ndpoint\x18\x01 \x01(\tB\x02\x18\x01\x42\x08\n\x06\x63onfigB\x0f\n\r_cloud_region\"G\n\x19\x43reatePrivateLinkResponse\x12*\n\x0cprivate_link\x18\x01 \x01(\x0b\x32\x14.livekit.PrivateLink\"F\n\x19\x44\x65stroyPrivateLinkRequest\x12)\n\x0fprivate_link_id\x18\x01 \x01(\tB\x10\xbaP\rprivateLinkID\"\x1c\n\x1a\x44\x65stroyPrivateLinkResponse\"\x19\n\x17ListPrivateLinksRequest\"?\n\x18ListPrivateLinksResponse\x12#\n\x05items\x18\x01 \x03(\x0b\x32\x14.livekit.PrivateLink\"H\n\x1bGetPrivateLinkStatusRequest\x12)\n\x0fprivate_link_id\x18\x01 \x01(\tB\x10\xbaP\rprivateLinkID\"I\n\x1cGetPrivateLinkStatusResponse\x12)\n\x05value\x18\x01 \x01(\x0b\x32\x1a.livekit.PrivateLinkStatus*o\n\x0f\x41gentSecretKind\x12\x1d\n\x19\x41GENT_SECRET_KIND_UNKNOWN\x10\x00\x12!\n\x1d\x41GENT_SECRET_KIND_ENVIRONMENT\x10\x01\x12\x1a\n\x16\x41GENT_SECRET_KIND_FILE\x10\x02*\xba\x01\n\x0e\x41gentEventType\x12\x1c\n\x18\x41GENT_EVENT_TYPE_UNKNOWN\x10\x00\x12(\n$AGENT_EVENT_TYPE_APPLICATION_CRASHED\x10\x01\x12.\n*AGENT_EVENT_TYPE_RESTARTED_HIGH_DISK_USAGE\x10\x02\x12\x30\n,AGENT_EVENT_TYPE_RESTARTED_HIGH_MEMORY_USAGE\x10\x03\x32\xbd\x0b\n\nCloudAgent\x12J\n\x0b\x43reateAgent\x12\x1b.livekit.CreateAgentRequest\x1a\x1c.livekit.CreateAgentResponse\"\x00\x12P\n\rCreateAgentV2\x12\x1d.livekit.CreateAgentV2Request\x1a\x1e.livekit.CreateAgentV2Response\"\x00\x12G\n\nListAgents\x12\x1a.livekit.ListAgentsRequest\x1a\x1b.livekit.ListAgentsResponse\"\x00\x12\\\n\x11ListAgentVersions\x12!.livekit.ListAgentVersionsRequest\x1a\".livekit.ListAgentVersionsResponse\"\x00\x12Y\n\x10ListAgentSecrets\x12 .livekit.ListAgentSecretsRequest\x1a!.livekit.ListAgentSecretsResponse\"\x00\x12J\n\x0bUpdateAgent\x12\x1b.livekit.UpdateAgentRequest\x1a\x1c.livekit.UpdateAgentResponse\"\x00\x12M\n\x0cRestartAgent\x12\x1c.livekit.RestartAgentRequest\x1a\x1d.livekit.RestartAgentResponse\"\x00\x12J\n\x0b\x44\x65ployAgent\x12\x1b.livekit.DeployAgentRequest\x1a\x1c.livekit.DeployAgentResponse\"\x00\x12P\n\rDeployAgentV2\x12\x1d.livekit.DeployAgentV2Request\x1a\x1e.livekit.DeployAgentV2Response\"\x00\x12_\n\x12UpdateAgentSecrets\x12\".livekit.UpdateAgentSecretsRequest\x1a#.livekit.UpdateAgentSecretsResponse\"\x00\x12P\n\rRollbackAgent\x12\x1d.livekit.RollbackAgentRequest\x1a\x1e.livekit.RollbackAgentResponse\"\x00\x12J\n\x0b\x44\x65leteAgent\x12\x1b.livekit.DeleteAgentRequest\x1a\x1c.livekit.DeleteAgentResponse\"\x00\x12V\n\x11GetClientSettings\x12\x1e.livekit.ClientSettingsRequest\x1a\x1f.livekit.ClientSettingsResponse\"\x00\x12\\\n\x11\x43reatePrivateLink\x12!.livekit.CreatePrivateLinkRequest\x1a\".livekit.CreatePrivateLinkResponse\"\x00\x12_\n\x12\x44\x65stroyPrivateLink\x12\".livekit.DestroyPrivateLinkRequest\x1a#.livekit.DestroyPrivateLinkResponse\"\x00\x12Y\n\x10ListPrivateLinks\x12 .livekit.ListPrivateLinksRequest\x1a!.livekit.ListPrivateLinksResponse\"\x00\x12\x65\n\x14GetPrivateLinkStatus\x12$.livekit.GetPrivateLinkStatusRequest\x1a%.livekit.GetPrivateLinkStatusResponse\"\x00\x42\x46Z#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'cloud_agent', _globals) +if _descriptor._USE_C_DESCRIPTORS == False: + _globals['DESCRIPTOR']._options = None + _globals['DESCRIPTOR']._serialized_options = b'Z#github.com/livekit/protocol/livekit\252\002\rLiveKit.Proto\352\002\016LiveKit::Proto' + _globals['_CREATEAGENTREQUEST'].fields_by_name['agent_name']._options = None + _globals['_CREATEAGENTREQUEST'].fields_by_name['agent_name']._serialized_options = b'\030\001' + _globals['_CREATEAGENTREQUEST'].fields_by_name['replicas']._options = None + _globals['_CREATEAGENTREQUEST'].fields_by_name['replicas']._serialized_options = b'\030\001' + _globals['_CREATEAGENTREQUEST'].fields_by_name['max_replicas']._options = None + _globals['_CREATEAGENTREQUEST'].fields_by_name['max_replicas']._serialized_options = b'\030\001' + _globals['_CREATEAGENTREQUEST'].fields_by_name['cpu_req']._options = None + _globals['_CREATEAGENTREQUEST'].fields_by_name['cpu_req']._serialized_options = b'\030\001' + _globals['_CREATEAGENTRESPONSE'].fields_by_name['agent_id']._options = None + _globals['_CREATEAGENTRESPONSE'].fields_by_name['agent_id']._serialized_options = b'\272P\007agentID' + _globals['_CREATEAGENTV2RESPONSE'].fields_by_name['agent_id']._options = None + _globals['_CREATEAGENTV2RESPONSE'].fields_by_name['agent_id']._serialized_options = b'\272P\007agentID' + _globals['_PRESIGNEDPOSTREQUEST_VALUESENTRY']._options = None + _globals['_PRESIGNEDPOSTREQUEST_VALUESENTRY']._serialized_options = b'8\001' + _globals['_AGENTDEPLOYMENT'].fields_by_name['agent_id']._options = None + _globals['_AGENTDEPLOYMENT'].fields_by_name['agent_id']._serialized_options = b'\272P\007agentID' + _globals['_AGENTINFO'].fields_by_name['agent_id']._options = None + _globals['_AGENTINFO'].fields_by_name['agent_id']._serialized_options = b'\272P\007agentID' + _globals['_LISTAGENTSREQUEST'].fields_by_name['agent_id']._options = None + _globals['_LISTAGENTSREQUEST'].fields_by_name['agent_id']._serialized_options = b'\272P\007agentID' + _globals['_AGENTVERSION_ATTRIBUTESENTRY']._options = None + _globals['_AGENTVERSION_ATTRIBUTESENTRY']._serialized_options = b'8\001' + _globals['_LISTAGENTVERSIONSREQUEST'].fields_by_name['agent_id']._options = None + _globals['_LISTAGENTVERSIONSREQUEST'].fields_by_name['agent_id']._serialized_options = b'\272P\007agentID' + _globals['_UPDATEAGENTREQUEST'].fields_by_name['agent_id']._options = None + _globals['_UPDATEAGENTREQUEST'].fields_by_name['agent_id']._serialized_options = b'\272P\007agentID' + _globals['_UPDATEAGENTREQUEST'].fields_by_name['agent_name']._options = None + _globals['_UPDATEAGENTREQUEST'].fields_by_name['agent_name']._serialized_options = b'\030\001' + _globals['_UPDATEAGENTREQUEST'].fields_by_name['replicas']._options = None + _globals['_UPDATEAGENTREQUEST'].fields_by_name['replicas']._serialized_options = b'\030\001' + _globals['_UPDATEAGENTREQUEST'].fields_by_name['max_replicas']._options = None + _globals['_UPDATEAGENTREQUEST'].fields_by_name['max_replicas']._serialized_options = b'\030\001' + _globals['_UPDATEAGENTREQUEST'].fields_by_name['cpu_req']._options = None + _globals['_UPDATEAGENTREQUEST'].fields_by_name['cpu_req']._serialized_options = b'\030\001' + _globals['_RESTARTAGENTREQUEST'].fields_by_name['agent_id']._options = None + _globals['_RESTARTAGENTREQUEST'].fields_by_name['agent_id']._serialized_options = b'\272P\007agentID' + _globals['_DEPLOYAGENTREQUEST'].fields_by_name['agent_id']._options = None + _globals['_DEPLOYAGENTREQUEST'].fields_by_name['agent_id']._serialized_options = b'\272P\007agentID' + _globals['_DEPLOYAGENTREQUEST'].fields_by_name['agent_name']._options = None + _globals['_DEPLOYAGENTREQUEST'].fields_by_name['agent_name']._serialized_options = b'\030\001' + _globals['_DEPLOYAGENTREQUEST'].fields_by_name['replicas']._options = None + _globals['_DEPLOYAGENTREQUEST'].fields_by_name['replicas']._serialized_options = b'\030\001' + _globals['_DEPLOYAGENTREQUEST'].fields_by_name['max_replicas']._options = None + _globals['_DEPLOYAGENTREQUEST'].fields_by_name['max_replicas']._serialized_options = b'\030\001' + _globals['_DEPLOYAGENTREQUEST'].fields_by_name['cpu_req']._options = None + _globals['_DEPLOYAGENTREQUEST'].fields_by_name['cpu_req']._serialized_options = b'\030\001' + _globals['_DEPLOYAGENTRESPONSE'].fields_by_name['agent_id']._options = None + _globals['_DEPLOYAGENTRESPONSE'].fields_by_name['agent_id']._serialized_options = b'\272P\007agentID' + _globals['_DEPLOYAGENTRESPONSE'].fields_by_name['presigned_url']._options = None + _globals['_DEPLOYAGENTRESPONSE'].fields_by_name['presigned_url']._serialized_options = b'\030\001' + _globals['_DEPLOYAGENTV2REQUEST'].fields_by_name['agent_id']._options = None + _globals['_DEPLOYAGENTV2REQUEST'].fields_by_name['agent_id']._serialized_options = b'\272P\007agentID' + _globals['_DEPLOYAGENTV2RESPONSE'].fields_by_name['agent_id']._options = None + _globals['_DEPLOYAGENTV2RESPONSE'].fields_by_name['agent_id']._serialized_options = b'\272P\007agentID' + _globals['_UPDATEAGENTSECRETSREQUEST'].fields_by_name['agent_id']._options = None + _globals['_UPDATEAGENTSECRETSREQUEST'].fields_by_name['agent_id']._serialized_options = b'\272P\007agentID' + _globals['_ROLLBACKAGENTREQUEST'].fields_by_name['agent_id']._options = None + _globals['_ROLLBACKAGENTREQUEST'].fields_by_name['agent_id']._serialized_options = b'\272P\007agentID' + _globals['_DELETEAGENTREQUEST'].fields_by_name['agent_id']._options = None + _globals['_DELETEAGENTREQUEST'].fields_by_name['agent_id']._serialized_options = b'\272P\007agentID' + _globals['_LISTAGENTSECRETSREQUEST'].fields_by_name['agent_id']._options = None + _globals['_LISTAGENTSECRETSREQUEST'].fields_by_name['agent_id']._serialized_options = b'\272P\007agentID' + _globals['_PRIVATELINK_AWSCONFIG'].fields_by_name['endpoint']._options = None + _globals['_PRIVATELINK_AWSCONFIG'].fields_by_name['endpoint']._serialized_options = b'\030\001' + _globals['_PRIVATELINK'].fields_by_name['private_link_id']._options = None + _globals['_PRIVATELINK'].fields_by_name['private_link_id']._serialized_options = b'\272P\rprivateLinkID' + _globals['_PRIVATELINK'].fields_by_name['aws']._options = None + _globals['_PRIVATELINK'].fields_by_name['aws']._serialized_options = b'\030\001' + _globals['_CREATEPRIVATELINKREQUEST_AWSCREATECONFIG'].fields_by_name['endpoint']._options = None + _globals['_CREATEPRIVATELINKREQUEST_AWSCREATECONFIG'].fields_by_name['endpoint']._serialized_options = b'\030\001' + _globals['_CREATEPRIVATELINKREQUEST'].fields_by_name['aws']._options = None + _globals['_CREATEPRIVATELINKREQUEST'].fields_by_name['aws']._serialized_options = b'\030\001' + _globals['_DESTROYPRIVATELINKREQUEST'].fields_by_name['private_link_id']._options = None + _globals['_DESTROYPRIVATELINKREQUEST'].fields_by_name['private_link_id']._serialized_options = b'\272P\rprivateLinkID' + _globals['_GETPRIVATELINKSTATUSREQUEST'].fields_by_name['private_link_id']._options = None + _globals['_GETPRIVATELINKSTATUSREQUEST'].fields_by_name['private_link_id']._serialized_options = b'\272P\rprivateLinkID' + _globals['_AGENTSECRETKIND']._serialized_start=5525 + _globals['_AGENTSECRETKIND']._serialized_end=5636 + _globals['_AGENTEVENTTYPE']._serialized_start=5639 + _globals['_AGENTEVENTTYPE']._serialized_end=5825 + _globals['_AGENTEVENT']._serialized_start=93 + _globals['_AGENTEVENT']._serialized_end=206 + _globals['_AGENTSECRET']._serialized_start=209 + _globals['_AGENTSECRET']._serialized_end=408 + _globals['_CREATEAGENTREQUEST']._serialized_start=411 + _globals['_CREATEAGENTREQUEST']._serialized_end=580 + _globals['_CREATEAGENTRESPONSE']._serialized_start=583 + _globals['_CREATEAGENTRESPONSE']._serialized_end=810 + _globals['_CREATEAGENTV2REQUEST']._serialized_start=812 + _globals['_CREATEAGENTV2REQUEST']._serialized_end=890 + _globals['_CREATEAGENTV2RESPONSE']._serialized_start=892 + _globals['_CREATEAGENTV2RESPONSE']._serialized_end=985 + _globals['_PRESIGNEDPOSTREQUEST']._serialized_start=988 + _globals['_PRESIGNEDPOSTREQUEST']._serialized_end=1129 + _globals['_PRESIGNEDPOSTREQUEST_VALUESENTRY']._serialized_start=1084 + _globals['_PRESIGNEDPOSTREQUEST_VALUESENTRY']._serialized_end=1129 + _globals['_AGENTDEPLOYMENT']._serialized_start=1132 + _globals['_AGENTDEPLOYMENT']._serialized_end=1524 + _globals['_AGENTINFO']._serialized_start=1527 + _globals['_AGENTINFO']._serialized_end=1746 + _globals['_LISTAGENTSREQUEST']._serialized_start=1748 + _globals['_LISTAGENTSREQUEST']._serialized_end=1817 + _globals['_LISTAGENTSRESPONSE']._serialized_start=1819 + _globals['_LISTAGENTSRESPONSE']._serialized_end=1875 + _globals['_AGENTVERSION']._serialized_start=1878 + _globals['_AGENTVERSION']._serialized_end=2198 + _globals['_AGENTVERSION_ATTRIBUTESENTRY']._serialized_start=2149 + _globals['_AGENTVERSION_ATTRIBUTESENTRY']._serialized_end=2198 + _globals['_LISTAGENTVERSIONSREQUEST']._serialized_start=2200 + _globals['_LISTAGENTVERSIONSREQUEST']._serialized_end=2276 + _globals['_LISTAGENTVERSIONSRESPONSE']._serialized_start=2278 + _globals['_LISTAGENTVERSIONSRESPONSE']._serialized_end=2346 + _globals['_UPDATEAGENTREQUEST']._serialized_start=2349 + _globals['_UPDATEAGENTREQUEST']._serialized_end=2548 + _globals['_UPDATEAGENTRESPONSE']._serialized_start=2550 + _globals['_UPDATEAGENTRESPONSE']._serialized_end=2605 + _globals['_RESTARTAGENTREQUEST']._serialized_start=2607 + _globals['_RESTARTAGENTREQUEST']._serialized_end=2658 + _globals['_RESTARTAGENTRESPONSE']._serialized_start=2660 + _globals['_RESTARTAGENTRESPONSE']._serialized_end=2716 + _globals['_DEPLOYAGENTREQUEST']._serialized_start=2719 + _globals['_DEPLOYAGENTREQUEST']._serialized_end=2921 + _globals['_DEPLOYAGENTRESPONSE']._serialized_start=2924 + _globals['_DEPLOYAGENTRESPONSE']._serialized_end=3132 + _globals['_DEPLOYAGENTV2REQUEST']._serialized_start=3134 + _globals['_DEPLOYAGENTV2REQUEST']._serialized_end=3245 + _globals['_DEPLOYAGENTV2RESPONSE']._serialized_start=3248 + _globals['_DEPLOYAGENTV2RESPONSE']._serialized_end=3422 + _globals['_UPDATEAGENTSECRETSREQUEST']._serialized_start=3425 + _globals['_UPDATEAGENTSECRETSREQUEST']._serialized_end=3576 + _globals['_UPDATEAGENTSECRETSRESPONSE']._serialized_start=3578 + _globals['_UPDATEAGENTSECRETSRESPONSE']._serialized_end=3640 + _globals['_ROLLBACKAGENTREQUEST']._serialized_start=3642 + _globals['_ROLLBACKAGENTREQUEST']._serialized_end=3731 + _globals['_ROLLBACKAGENTRESPONSE']._serialized_start=3733 + _globals['_ROLLBACKAGENTRESPONSE']._serialized_end=3790 + _globals['_DELETEAGENTREQUEST']._serialized_start=3792 + _globals['_DELETEAGENTREQUEST']._serialized_end=3882 + _globals['_DELETEAGENTRESPONSE']._serialized_start=3884 + _globals['_DELETEAGENTRESPONSE']._serialized_end=3939 + _globals['_LISTAGENTSECRETSREQUEST']._serialized_start=3941 + _globals['_LISTAGENTSECRETSREQUEST']._serialized_end=4016 + _globals['_LISTAGENTSECRETSRESPONSE']._serialized_start=4018 + _globals['_LISTAGENTSECRETSRESPONSE']._serialized_end=4083 + _globals['_SETTINGSPARAM']._serialized_start=4085 + _globals['_SETTINGSPARAM']._serialized_end=4129 + _globals['_CLIENTSETTINGSRESPONSE']._serialized_start=4131 + _globals['_CLIENTSETTINGSRESPONSE']._serialized_end=4195 + _globals['_CLIENTSETTINGSREQUEST']._serialized_start=4197 + _globals['_CLIENTSETTINGSREQUEST']._serialized_end=4220 + _globals['_PRIVATELINK']._serialized_start=4223 + _globals['_PRIVATELINK']._serialized_end=4488 + _globals['_PRIVATELINK_AWSCONFIG']._serialized_start=4445 + _globals['_PRIVATELINK_AWSCONFIG']._serialized_end=4478 + _globals['_PRIVATELINKSTATUS']._serialized_start=4491 + _globals['_PRIVATELINKSTATUS']._serialized_end=4851 + _globals['_PRIVATELINKSTATUS_STATUS']._serialized_start=4628 + _globals['_PRIVATELINKSTATUS_STATUS']._serialized_end=4851 + _globals['_CREATEPRIVATELINKREQUEST']._serialized_start=4854 + _globals['_CREATEPRIVATELINKREQUEST']._serialized_end=5107 + _globals['_CREATEPRIVATELINKREQUEST_AWSCREATECONFIG']._serialized_start=5041 + _globals['_CREATEPRIVATELINKREQUEST_AWSCREATECONFIG']._serialized_end=5080 + _globals['_CREATEPRIVATELINKRESPONSE']._serialized_start=5109 + _globals['_CREATEPRIVATELINKRESPONSE']._serialized_end=5180 + _globals['_DESTROYPRIVATELINKREQUEST']._serialized_start=5182 + _globals['_DESTROYPRIVATELINKREQUEST']._serialized_end=5252 + _globals['_DESTROYPRIVATELINKRESPONSE']._serialized_start=5254 + _globals['_DESTROYPRIVATELINKRESPONSE']._serialized_end=5282 + _globals['_LISTPRIVATELINKSREQUEST']._serialized_start=5284 + _globals['_LISTPRIVATELINKSREQUEST']._serialized_end=5309 + _globals['_LISTPRIVATELINKSRESPONSE']._serialized_start=5311 + _globals['_LISTPRIVATELINKSRESPONSE']._serialized_end=5374 + _globals['_GETPRIVATELINKSTATUSREQUEST']._serialized_start=5376 + _globals['_GETPRIVATELINKSTATUSREQUEST']._serialized_end=5448 + _globals['_GETPRIVATELINKSTATUSRESPONSE']._serialized_start=5450 + _globals['_GETPRIVATELINKSTATUSRESPONSE']._serialized_end=5523 + _globals['_CLOUDAGENT']._serialized_start=5828 + _globals['_CLOUDAGENT']._serialized_end=7297 +# @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/cloud_agent.pyi b/livekit-protocol/livekit/protocol/cloud_agent.pyi new file mode 100644 index 00000000..48ce3b47 --- /dev/null +++ b/livekit-protocol/livekit/protocol/cloud_agent.pyi @@ -0,0 +1,537 @@ +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from .logger_pb import options as _options_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Mapping, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class AgentSecretKind(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + AGENT_SECRET_KIND_UNKNOWN: _ClassVar[AgentSecretKind] + AGENT_SECRET_KIND_ENVIRONMENT: _ClassVar[AgentSecretKind] + AGENT_SECRET_KIND_FILE: _ClassVar[AgentSecretKind] + +class AgentEventType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + AGENT_EVENT_TYPE_UNKNOWN: _ClassVar[AgentEventType] + AGENT_EVENT_TYPE_APPLICATION_CRASHED: _ClassVar[AgentEventType] + AGENT_EVENT_TYPE_RESTARTED_HIGH_DISK_USAGE: _ClassVar[AgentEventType] + AGENT_EVENT_TYPE_RESTARTED_HIGH_MEMORY_USAGE: _ClassVar[AgentEventType] +AGENT_SECRET_KIND_UNKNOWN: AgentSecretKind +AGENT_SECRET_KIND_ENVIRONMENT: AgentSecretKind +AGENT_SECRET_KIND_FILE: AgentSecretKind +AGENT_EVENT_TYPE_UNKNOWN: AgentEventType +AGENT_EVENT_TYPE_APPLICATION_CRASHED: AgentEventType +AGENT_EVENT_TYPE_RESTARTED_HIGH_DISK_USAGE: AgentEventType +AGENT_EVENT_TYPE_RESTARTED_HIGH_MEMORY_USAGE: AgentEventType + +class AgentEvent(_message.Message): + __slots__ = ("type", "count", "timestamp") + TYPE_FIELD_NUMBER: _ClassVar[int] + COUNT_FIELD_NUMBER: _ClassVar[int] + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + type: AgentEventType + count: int + timestamp: _timestamp_pb2.Timestamp + def __init__(self, type: _Optional[_Union[AgentEventType, str]] = ..., count: _Optional[int] = ..., timestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class AgentSecret(_message.Message): + __slots__ = ("name", "value", "created_at", "updated_at", "kind", "deployments") + NAME_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + UPDATED_AT_FIELD_NUMBER: _ClassVar[int] + KIND_FIELD_NUMBER: _ClassVar[int] + DEPLOYMENTS_FIELD_NUMBER: _ClassVar[int] + name: str + value: bytes + created_at: _timestamp_pb2.Timestamp + updated_at: _timestamp_pb2.Timestamp + kind: AgentSecretKind + deployments: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, name: _Optional[str] = ..., value: _Optional[bytes] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., kind: _Optional[_Union[AgentSecretKind, str]] = ..., deployments: _Optional[_Iterable[str]] = ...) -> None: ... + +class CreateAgentRequest(_message.Message): + __slots__ = ("agent_name", "secrets", "replicas", "max_replicas", "cpu_req", "regions") + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + SECRETS_FIELD_NUMBER: _ClassVar[int] + REPLICAS_FIELD_NUMBER: _ClassVar[int] + MAX_REPLICAS_FIELD_NUMBER: _ClassVar[int] + CPU_REQ_FIELD_NUMBER: _ClassVar[int] + REGIONS_FIELD_NUMBER: _ClassVar[int] + agent_name: str + secrets: _containers.RepeatedCompositeFieldContainer[AgentSecret] + replicas: int + max_replicas: int + cpu_req: str + regions: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, agent_name: _Optional[str] = ..., secrets: _Optional[_Iterable[_Union[AgentSecret, _Mapping]]] = ..., replicas: _Optional[int] = ..., max_replicas: _Optional[int] = ..., cpu_req: _Optional[str] = ..., regions: _Optional[_Iterable[str]] = ...) -> None: ... + +class CreateAgentResponse(_message.Message): + __slots__ = ("agent_id", "agent_name", "status", "version", "presigned_url", "tag", "server_regions", "presigned_post_request") + AGENT_ID_FIELD_NUMBER: _ClassVar[int] + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + VERSION_FIELD_NUMBER: _ClassVar[int] + PRESIGNED_URL_FIELD_NUMBER: _ClassVar[int] + TAG_FIELD_NUMBER: _ClassVar[int] + SERVER_REGIONS_FIELD_NUMBER: _ClassVar[int] + PRESIGNED_POST_REQUEST_FIELD_NUMBER: _ClassVar[int] + agent_id: str + agent_name: str + status: str + version: str + presigned_url: str + tag: str + server_regions: _containers.RepeatedScalarFieldContainer[str] + presigned_post_request: PresignedPostRequest + def __init__(self, agent_id: _Optional[str] = ..., agent_name: _Optional[str] = ..., status: _Optional[str] = ..., version: _Optional[str] = ..., presigned_url: _Optional[str] = ..., tag: _Optional[str] = ..., server_regions: _Optional[_Iterable[str]] = ..., presigned_post_request: _Optional[_Union[PresignedPostRequest, _Mapping]] = ...) -> None: ... + +class CreateAgentV2Request(_message.Message): + __slots__ = ("secrets", "regions") + SECRETS_FIELD_NUMBER: _ClassVar[int] + REGIONS_FIELD_NUMBER: _ClassVar[int] + secrets: _containers.RepeatedCompositeFieldContainer[AgentSecret] + regions: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, secrets: _Optional[_Iterable[_Union[AgentSecret, _Mapping]]] = ..., regions: _Optional[_Iterable[str]] = ...) -> None: ... + +class CreateAgentV2Response(_message.Message): + __slots__ = ("agent_id", "status", "server_regions") + AGENT_ID_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + SERVER_REGIONS_FIELD_NUMBER: _ClassVar[int] + agent_id: str + status: str + server_regions: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, agent_id: _Optional[str] = ..., status: _Optional[str] = ..., server_regions: _Optional[_Iterable[str]] = ...) -> None: ... + +class PresignedPostRequest(_message.Message): + __slots__ = ("url", "values") + class ValuesEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + URL_FIELD_NUMBER: _ClassVar[int] + VALUES_FIELD_NUMBER: _ClassVar[int] + url: str + values: _containers.ScalarMap[str, str] + def __init__(self, url: _Optional[str] = ..., values: _Optional[_Mapping[str, str]] = ...) -> None: ... + +class AgentDeployment(_message.Message): + __slots__ = ("region", "agent_id", "status", "replicas", "min_replicas", "max_replicas", "cpu_req", "cur_cpu", "cur_mem", "mem_req", "mem_limit", "cpu_limit", "server_region", "events", "deployment", "version", "agent_name", "deployment_enabled") + REGION_FIELD_NUMBER: _ClassVar[int] + AGENT_ID_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + REPLICAS_FIELD_NUMBER: _ClassVar[int] + MIN_REPLICAS_FIELD_NUMBER: _ClassVar[int] + MAX_REPLICAS_FIELD_NUMBER: _ClassVar[int] + CPU_REQ_FIELD_NUMBER: _ClassVar[int] + CUR_CPU_FIELD_NUMBER: _ClassVar[int] + CUR_MEM_FIELD_NUMBER: _ClassVar[int] + MEM_REQ_FIELD_NUMBER: _ClassVar[int] + MEM_LIMIT_FIELD_NUMBER: _ClassVar[int] + CPU_LIMIT_FIELD_NUMBER: _ClassVar[int] + SERVER_REGION_FIELD_NUMBER: _ClassVar[int] + EVENTS_FIELD_NUMBER: _ClassVar[int] + DEPLOYMENT_FIELD_NUMBER: _ClassVar[int] + VERSION_FIELD_NUMBER: _ClassVar[int] + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + DEPLOYMENT_ENABLED_FIELD_NUMBER: _ClassVar[int] + region: str + agent_id: str + status: str + replicas: int + min_replicas: int + max_replicas: int + cpu_req: str + cur_cpu: str + cur_mem: str + mem_req: str + mem_limit: str + cpu_limit: str + server_region: str + events: _containers.RepeatedCompositeFieldContainer[AgentEvent] + deployment: str + version: str + agent_name: str + deployment_enabled: bool + def __init__(self, region: _Optional[str] = ..., agent_id: _Optional[str] = ..., status: _Optional[str] = ..., replicas: _Optional[int] = ..., min_replicas: _Optional[int] = ..., max_replicas: _Optional[int] = ..., cpu_req: _Optional[str] = ..., cur_cpu: _Optional[str] = ..., cur_mem: _Optional[str] = ..., mem_req: _Optional[str] = ..., mem_limit: _Optional[str] = ..., cpu_limit: _Optional[str] = ..., server_region: _Optional[str] = ..., events: _Optional[_Iterable[_Union[AgentEvent, _Mapping]]] = ..., deployment: _Optional[str] = ..., version: _Optional[str] = ..., agent_name: _Optional[str] = ..., deployment_enabled: bool = ...) -> None: ... + +class AgentInfo(_message.Message): + __slots__ = ("agent_id", "agent_name", "version", "agent_deployments", "secrets", "deployed_at") + AGENT_ID_FIELD_NUMBER: _ClassVar[int] + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + VERSION_FIELD_NUMBER: _ClassVar[int] + AGENT_DEPLOYMENTS_FIELD_NUMBER: _ClassVar[int] + SECRETS_FIELD_NUMBER: _ClassVar[int] + DEPLOYED_AT_FIELD_NUMBER: _ClassVar[int] + agent_id: str + agent_name: str + version: str + agent_deployments: _containers.RepeatedCompositeFieldContainer[AgentDeployment] + secrets: _containers.RepeatedCompositeFieldContainer[AgentSecret] + deployed_at: _timestamp_pb2.Timestamp + def __init__(self, agent_id: _Optional[str] = ..., agent_name: _Optional[str] = ..., version: _Optional[str] = ..., agent_deployments: _Optional[_Iterable[_Union[AgentDeployment, _Mapping]]] = ..., secrets: _Optional[_Iterable[_Union[AgentSecret, _Mapping]]] = ..., deployed_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class ListAgentsRequest(_message.Message): + __slots__ = ("agent_name", "agent_id") + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + AGENT_ID_FIELD_NUMBER: _ClassVar[int] + agent_name: str + agent_id: str + def __init__(self, agent_name: _Optional[str] = ..., agent_id: _Optional[str] = ...) -> None: ... + +class ListAgentsResponse(_message.Message): + __slots__ = ("agents",) + AGENTS_FIELD_NUMBER: _ClassVar[int] + agents: _containers.RepeatedCompositeFieldContainer[AgentInfo] + def __init__(self, agents: _Optional[_Iterable[_Union[AgentInfo, _Mapping]]] = ...) -> None: ... + +class AgentVersion(_message.Message): + __slots__ = ("version", "current", "created_at", "deployed_at", "attributes", "status", "owner", "draining", "active") + class AttributesEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + VERSION_FIELD_NUMBER: _ClassVar[int] + CURRENT_FIELD_NUMBER: _ClassVar[int] + CREATED_AT_FIELD_NUMBER: _ClassVar[int] + DEPLOYED_AT_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + OWNER_FIELD_NUMBER: _ClassVar[int] + DRAINING_FIELD_NUMBER: _ClassVar[int] + ACTIVE_FIELD_NUMBER: _ClassVar[int] + version: str + current: bool + created_at: _timestamp_pb2.Timestamp + deployed_at: _timestamp_pb2.Timestamp + attributes: _containers.ScalarMap[str, str] + status: str + owner: str + draining: bool + active: bool + def __init__(self, version: _Optional[str] = ..., current: bool = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., deployed_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., attributes: _Optional[_Mapping[str, str]] = ..., status: _Optional[str] = ..., owner: _Optional[str] = ..., draining: bool = ..., active: bool = ...) -> None: ... + +class ListAgentVersionsRequest(_message.Message): + __slots__ = ("agent_id", "agent_name") + AGENT_ID_FIELD_NUMBER: _ClassVar[int] + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + agent_id: str + agent_name: str + def __init__(self, agent_id: _Optional[str] = ..., agent_name: _Optional[str] = ...) -> None: ... + +class ListAgentVersionsResponse(_message.Message): + __slots__ = ("versions",) + VERSIONS_FIELD_NUMBER: _ClassVar[int] + versions: _containers.RepeatedCompositeFieldContainer[AgentVersion] + def __init__(self, versions: _Optional[_Iterable[_Union[AgentVersion, _Mapping]]] = ...) -> None: ... + +class UpdateAgentRequest(_message.Message): + __slots__ = ("agent_id", "agent_name", "replicas", "max_replicas", "cpu_req", "regions", "secrets") + AGENT_ID_FIELD_NUMBER: _ClassVar[int] + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + REPLICAS_FIELD_NUMBER: _ClassVar[int] + MAX_REPLICAS_FIELD_NUMBER: _ClassVar[int] + CPU_REQ_FIELD_NUMBER: _ClassVar[int] + REGIONS_FIELD_NUMBER: _ClassVar[int] + SECRETS_FIELD_NUMBER: _ClassVar[int] + agent_id: str + agent_name: str + replicas: int + max_replicas: int + cpu_req: str + regions: _containers.RepeatedScalarFieldContainer[str] + secrets: _containers.RepeatedCompositeFieldContainer[AgentSecret] + def __init__(self, agent_id: _Optional[str] = ..., agent_name: _Optional[str] = ..., replicas: _Optional[int] = ..., max_replicas: _Optional[int] = ..., cpu_req: _Optional[str] = ..., regions: _Optional[_Iterable[str]] = ..., secrets: _Optional[_Iterable[_Union[AgentSecret, _Mapping]]] = ...) -> None: ... + +class UpdateAgentResponse(_message.Message): + __slots__ = ("success", "message") + SUCCESS_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + success: bool + message: str + def __init__(self, success: bool = ..., message: _Optional[str] = ...) -> None: ... + +class RestartAgentRequest(_message.Message): + __slots__ = ("agent_id",) + AGENT_ID_FIELD_NUMBER: _ClassVar[int] + agent_id: str + def __init__(self, agent_id: _Optional[str] = ...) -> None: ... + +class RestartAgentResponse(_message.Message): + __slots__ = ("success", "message") + SUCCESS_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + success: bool + message: str + def __init__(self, success: bool = ..., message: _Optional[str] = ...) -> None: ... + +class DeployAgentRequest(_message.Message): + __slots__ = ("agent_id", "agent_name", "secrets", "replicas", "max_replicas", "cpu_req", "deployment") + AGENT_ID_FIELD_NUMBER: _ClassVar[int] + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + SECRETS_FIELD_NUMBER: _ClassVar[int] + REPLICAS_FIELD_NUMBER: _ClassVar[int] + MAX_REPLICAS_FIELD_NUMBER: _ClassVar[int] + CPU_REQ_FIELD_NUMBER: _ClassVar[int] + DEPLOYMENT_FIELD_NUMBER: _ClassVar[int] + agent_id: str + agent_name: str + secrets: _containers.RepeatedCompositeFieldContainer[AgentSecret] + replicas: int + max_replicas: int + cpu_req: str + deployment: str + def __init__(self, agent_id: _Optional[str] = ..., agent_name: _Optional[str] = ..., secrets: _Optional[_Iterable[_Union[AgentSecret, _Mapping]]] = ..., replicas: _Optional[int] = ..., max_replicas: _Optional[int] = ..., cpu_req: _Optional[str] = ..., deployment: _Optional[str] = ...) -> None: ... + +class DeployAgentResponse(_message.Message): + __slots__ = ("success", "message", "agent_id", "presigned_url", "tag", "presigned_post_request", "deployment") + SUCCESS_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + AGENT_ID_FIELD_NUMBER: _ClassVar[int] + PRESIGNED_URL_FIELD_NUMBER: _ClassVar[int] + TAG_FIELD_NUMBER: _ClassVar[int] + PRESIGNED_POST_REQUEST_FIELD_NUMBER: _ClassVar[int] + DEPLOYMENT_FIELD_NUMBER: _ClassVar[int] + success: bool + message: str + agent_id: str + presigned_url: str + tag: str + presigned_post_request: PresignedPostRequest + deployment: str + def __init__(self, success: bool = ..., message: _Optional[str] = ..., agent_id: _Optional[str] = ..., presigned_url: _Optional[str] = ..., tag: _Optional[str] = ..., presigned_post_request: _Optional[_Union[PresignedPostRequest, _Mapping]] = ..., deployment: _Optional[str] = ...) -> None: ... + +class DeployAgentV2Request(_message.Message): + __slots__ = ("agent_id", "secrets", "deployment") + AGENT_ID_FIELD_NUMBER: _ClassVar[int] + SECRETS_FIELD_NUMBER: _ClassVar[int] + DEPLOYMENT_FIELD_NUMBER: _ClassVar[int] + agent_id: str + secrets: _containers.RepeatedCompositeFieldContainer[AgentSecret] + deployment: str + def __init__(self, agent_id: _Optional[str] = ..., secrets: _Optional[_Iterable[_Union[AgentSecret, _Mapping]]] = ..., deployment: _Optional[str] = ...) -> None: ... + +class DeployAgentV2Response(_message.Message): + __slots__ = ("success", "message", "agent_id", "tag", "presigned_req", "deployment") + SUCCESS_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + AGENT_ID_FIELD_NUMBER: _ClassVar[int] + TAG_FIELD_NUMBER: _ClassVar[int] + PRESIGNED_REQ_FIELD_NUMBER: _ClassVar[int] + DEPLOYMENT_FIELD_NUMBER: _ClassVar[int] + success: bool + message: str + agent_id: str + tag: str + presigned_req: PresignedPostRequest + deployment: str + def __init__(self, success: bool = ..., message: _Optional[str] = ..., agent_id: _Optional[str] = ..., tag: _Optional[str] = ..., presigned_req: _Optional[_Union[PresignedPostRequest, _Mapping]] = ..., deployment: _Optional[str] = ...) -> None: ... + +class UpdateAgentSecretsRequest(_message.Message): + __slots__ = ("agent_id", "agent_name", "overwrite", "secrets", "remove") + AGENT_ID_FIELD_NUMBER: _ClassVar[int] + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + OVERWRITE_FIELD_NUMBER: _ClassVar[int] + SECRETS_FIELD_NUMBER: _ClassVar[int] + REMOVE_FIELD_NUMBER: _ClassVar[int] + agent_id: str + agent_name: str + overwrite: bool + secrets: _containers.RepeatedCompositeFieldContainer[AgentSecret] + remove: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, agent_id: _Optional[str] = ..., agent_name: _Optional[str] = ..., overwrite: bool = ..., secrets: _Optional[_Iterable[_Union[AgentSecret, _Mapping]]] = ..., remove: _Optional[_Iterable[str]] = ...) -> None: ... + +class UpdateAgentSecretsResponse(_message.Message): + __slots__ = ("success", "message") + SUCCESS_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + success: bool + message: str + def __init__(self, success: bool = ..., message: _Optional[str] = ...) -> None: ... + +class RollbackAgentRequest(_message.Message): + __slots__ = ("agent_id", "agent_name", "version") + AGENT_ID_FIELD_NUMBER: _ClassVar[int] + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + VERSION_FIELD_NUMBER: _ClassVar[int] + agent_id: str + agent_name: str + version: str + def __init__(self, agent_id: _Optional[str] = ..., agent_name: _Optional[str] = ..., version: _Optional[str] = ...) -> None: ... + +class RollbackAgentResponse(_message.Message): + __slots__ = ("success", "message") + SUCCESS_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + success: bool + message: str + def __init__(self, success: bool = ..., message: _Optional[str] = ...) -> None: ... + +class DeleteAgentRequest(_message.Message): + __slots__ = ("agent_id", "agent_name", "deployment") + AGENT_ID_FIELD_NUMBER: _ClassVar[int] + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + DEPLOYMENT_FIELD_NUMBER: _ClassVar[int] + agent_id: str + agent_name: str + deployment: str + def __init__(self, agent_id: _Optional[str] = ..., agent_name: _Optional[str] = ..., deployment: _Optional[str] = ...) -> None: ... + +class DeleteAgentResponse(_message.Message): + __slots__ = ("success", "message") + SUCCESS_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + success: bool + message: str + def __init__(self, success: bool = ..., message: _Optional[str] = ...) -> None: ... + +class ListAgentSecretsRequest(_message.Message): + __slots__ = ("agent_id", "agent_name") + AGENT_ID_FIELD_NUMBER: _ClassVar[int] + AGENT_NAME_FIELD_NUMBER: _ClassVar[int] + agent_id: str + agent_name: str + def __init__(self, agent_id: _Optional[str] = ..., agent_name: _Optional[str] = ...) -> None: ... + +class ListAgentSecretsResponse(_message.Message): + __slots__ = ("secrets",) + SECRETS_FIELD_NUMBER: _ClassVar[int] + secrets: _containers.RepeatedCompositeFieldContainer[AgentSecret] + def __init__(self, secrets: _Optional[_Iterable[_Union[AgentSecret, _Mapping]]] = ...) -> None: ... + +class SettingsParam(_message.Message): + __slots__ = ("name", "value") + NAME_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + name: str + value: str + def __init__(self, name: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + +class ClientSettingsResponse(_message.Message): + __slots__ = ("params",) + PARAMS_FIELD_NUMBER: _ClassVar[int] + params: _containers.RepeatedCompositeFieldContainer[SettingsParam] + def __init__(self, params: _Optional[_Iterable[_Union[SettingsParam, _Mapping]]] = ...) -> None: ... + +class ClientSettingsRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class PrivateLink(_message.Message): + __slots__ = ("private_link_id", "name", "region", "port", "endpoint", "connection_endpoint", "cloud_region", "aws") + class AWSConfig(_message.Message): + __slots__ = ("endpoint",) + ENDPOINT_FIELD_NUMBER: _ClassVar[int] + endpoint: str + def __init__(self, endpoint: _Optional[str] = ...) -> None: ... + PRIVATE_LINK_ID_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + REGION_FIELD_NUMBER: _ClassVar[int] + PORT_FIELD_NUMBER: _ClassVar[int] + ENDPOINT_FIELD_NUMBER: _ClassVar[int] + CONNECTION_ENDPOINT_FIELD_NUMBER: _ClassVar[int] + CLOUD_REGION_FIELD_NUMBER: _ClassVar[int] + AWS_FIELD_NUMBER: _ClassVar[int] + private_link_id: str + name: str + region: str + port: int + endpoint: str + connection_endpoint: str + cloud_region: str + aws: PrivateLink.AWSConfig + def __init__(self, private_link_id: _Optional[str] = ..., name: _Optional[str] = ..., region: _Optional[str] = ..., port: _Optional[int] = ..., endpoint: _Optional[str] = ..., connection_endpoint: _Optional[str] = ..., cloud_region: _Optional[str] = ..., aws: _Optional[_Union[PrivateLink.AWSConfig, _Mapping]] = ...) -> None: ... + +class PrivateLinkStatus(_message.Message): + __slots__ = ("status", "updated_at", "reason") + class Status(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + PRIVATE_LINK_STATUS_UNKNOWN: _ClassVar[PrivateLinkStatus.Status] + PRIVATE_LINK_STATUS_PROVISIONING: _ClassVar[PrivateLinkStatus.Status] + PRIVATE_LINK_STATUS_PENDING_APPROVAL: _ClassVar[PrivateLinkStatus.Status] + PRIVATE_LINK_STATUS_HEALTHY: _ClassVar[PrivateLinkStatus.Status] + PRIVATE_LINK_STATUS_UNHEALTHY: _ClassVar[PrivateLinkStatus.Status] + PRIVATE_LINK_STATUS_APPROVED: _ClassVar[PrivateLinkStatus.Status] + PRIVATE_LINK_STATUS_UNKNOWN: PrivateLinkStatus.Status + PRIVATE_LINK_STATUS_PROVISIONING: PrivateLinkStatus.Status + PRIVATE_LINK_STATUS_PENDING_APPROVAL: PrivateLinkStatus.Status + PRIVATE_LINK_STATUS_HEALTHY: PrivateLinkStatus.Status + PRIVATE_LINK_STATUS_UNHEALTHY: PrivateLinkStatus.Status + PRIVATE_LINK_STATUS_APPROVED: PrivateLinkStatus.Status + STATUS_FIELD_NUMBER: _ClassVar[int] + UPDATED_AT_FIELD_NUMBER: _ClassVar[int] + REASON_FIELD_NUMBER: _ClassVar[int] + status: PrivateLinkStatus.Status + updated_at: _timestamp_pb2.Timestamp + reason: str + def __init__(self, status: _Optional[_Union[PrivateLinkStatus.Status, str]] = ..., updated_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., reason: _Optional[str] = ...) -> None: ... + +class CreatePrivateLinkRequest(_message.Message): + __slots__ = ("name", "region", "port", "endpoint", "cloud_region", "aws") + class AWSCreateConfig(_message.Message): + __slots__ = ("endpoint",) + ENDPOINT_FIELD_NUMBER: _ClassVar[int] + endpoint: str + def __init__(self, endpoint: _Optional[str] = ...) -> None: ... + NAME_FIELD_NUMBER: _ClassVar[int] + REGION_FIELD_NUMBER: _ClassVar[int] + PORT_FIELD_NUMBER: _ClassVar[int] + ENDPOINT_FIELD_NUMBER: _ClassVar[int] + CLOUD_REGION_FIELD_NUMBER: _ClassVar[int] + AWS_FIELD_NUMBER: _ClassVar[int] + name: str + region: str + port: int + endpoint: str + cloud_region: str + aws: CreatePrivateLinkRequest.AWSCreateConfig + def __init__(self, name: _Optional[str] = ..., region: _Optional[str] = ..., port: _Optional[int] = ..., endpoint: _Optional[str] = ..., cloud_region: _Optional[str] = ..., aws: _Optional[_Union[CreatePrivateLinkRequest.AWSCreateConfig, _Mapping]] = ...) -> None: ... + +class CreatePrivateLinkResponse(_message.Message): + __slots__ = ("private_link",) + PRIVATE_LINK_FIELD_NUMBER: _ClassVar[int] + private_link: PrivateLink + def __init__(self, private_link: _Optional[_Union[PrivateLink, _Mapping]] = ...) -> None: ... + +class DestroyPrivateLinkRequest(_message.Message): + __slots__ = ("private_link_id",) + PRIVATE_LINK_ID_FIELD_NUMBER: _ClassVar[int] + private_link_id: str + def __init__(self, private_link_id: _Optional[str] = ...) -> None: ... + +class DestroyPrivateLinkResponse(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class ListPrivateLinksRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class ListPrivateLinksResponse(_message.Message): + __slots__ = ("items",) + ITEMS_FIELD_NUMBER: _ClassVar[int] + items: _containers.RepeatedCompositeFieldContainer[PrivateLink] + def __init__(self, items: _Optional[_Iterable[_Union[PrivateLink, _Mapping]]] = ...) -> None: ... + +class GetPrivateLinkStatusRequest(_message.Message): + __slots__ = ("private_link_id",) + PRIVATE_LINK_ID_FIELD_NUMBER: _ClassVar[int] + private_link_id: str + def __init__(self, private_link_id: _Optional[str] = ...) -> None: ... + +class GetPrivateLinkStatusResponse(_message.Message): + __slots__ = ("value",) + VALUE_FIELD_NUMBER: _ClassVar[int] + value: PrivateLinkStatus + def __init__(self, value: _Optional[_Union[PrivateLinkStatus, _Mapping]] = ...) -> None: ... diff --git a/livekit-protocol/protocol b/livekit-protocol/protocol index c9dc5a1f..e9abadf9 160000 --- a/livekit-protocol/protocol +++ b/livekit-protocol/protocol @@ -1 +1 @@ -Subproject commit c9dc5a1f3d7231170e1382b9a012d62435f4d4fe +Subproject commit e9abadf977067eef4154591e443a28bf9be59acd