diff --git a/.changeset/remove-function-call-extra.md b/.changeset/remove-function-call-extra.md new file mode 100644 index 00000000..e1f9d08c --- /dev/null +++ b/.changeset/remove-function-call-extra.md @@ -0,0 +1,5 @@ +--- +"livekit-protocol": patch +--- + +Remove `FunctionCall.extra`: livekit-agents 1.7.0 to 1.8.8 fail to encode the session history with it. diff --git a/.github/workflows/regression-agents-session-history.yml b/.github/workflows/regression-agents-session-history.yml new file mode 100644 index 00000000..13e9ee1c --- /dev/null +++ b/.github/workflows/regression-agents-session-history.yml @@ -0,0 +1,56 @@ +name: Regression - livekit-agents releases encode their session history + +# Every published livekit-agents release must still encode its session history with a +# livekit-protocol 1.x build: those releases accept livekit-protocol<2 and are already deployed. + +on: + pull_request: + branches: + - main + paths: + - livekit-protocol/** + - tests/protocol/** + - .github/workflows/regression-agents-session-history.yml + workflow_dispatch: + +jobs: + regression-agents-session-history: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7 + with: + submodules: true + + - uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 + with: + python-version: "3.12" + + - name: Build livekit-protocol + run: uv build --wheel livekit-protocol -o dist + + - name: Encode a session history with every livekit-agents release + run: | + set -euo pipefail + wheel=$(ls dist/livekit_protocol-*.whl) + case "$(basename "$wheel")" in + livekit_protocol-1.*) ;; + *) echo "livekit-protocol 2+ cannot reach livekit-agents 1.x"; exit 0 ;; + esac + versions=$(curl -sf https://pypi.org/pypi/livekit-agents/json | uvx --with packaging python -c ' + import json, sys + from packaging.version import Version + releases = json.load(sys.stdin)["releases"] + print(" ".join(v for v in sorted(releases, key=Version) + if releases[v] and not Version(v).is_prerelease + and Version("1.7.0") <= Version(v) < Version("2")))') + failed="" + for v in $versions; do + uv venv -q --allow-existing "venv-$v" + VIRTUAL_ENV="venv-$v" uv pip install -q "livekit-agents==$v" + VIRTUAL_ENV="venv-$v" uv pip install -q --no-deps --reinstall "$wheel" + "venv-$v/bin/python" tests/protocol/regression_agents_session_history.py || failed="$failed $v" + done + if [ -n "$failed" ]; then + echo "::error::livekit-agents releases that cannot encode a session history:$failed" + exit 1 + fi diff --git a/livekit-protocol/livekit/protocol/agent_pb/agent_session.py b/livekit-protocol/livekit/protocol/agent_pb/agent_session.py index 3fc1414d..c50af06c 100644 --- a/livekit-protocol/livekit/protocol/agent_pb/agent_session.py +++ b/livekit-protocol/livekit/protocol/agent_pb/agent_session.py @@ -28,7 +28,7 @@ from ..logger_pb import options as logger_dot_options__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!agent/livekit_agent_session.proto\x12\rlivekit.agent\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x14logger/options.proto\"\x9d\x04\n\rMetricsReport\x12\x37\n\x13started_speaking_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\x13stopped_speaking_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12 \n\x13transcription_delay\x18\x03 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11\x65nd_of_turn_delay\x18\x04 \x01(\x01H\x01\x88\x01\x01\x12)\n\x1con_user_turn_completed_delay\x18\x05 \x01(\x01H\x02\x88\x01\x01\x12\x1a\n\rllm_node_ttft\x18\x06 \x01(\x01H\x03\x88\x01\x01\x12\x1a\n\rtts_node_ttfb\x18\x07 \x01(\x01H\x04\x88\x01\x01\x12\x18\n\x0b\x65\x32\x65_latency\x18\x08 \x01(\x01H\x05\x88\x01\x01\x12\x19\n\x0cllm_node_tps\x18\t \x01(\x01H\x06\x88\x01\x01\x12\x1a\n\rllm_node_ttfs\x18\n \x01(\x01H\x07\x88\x01\x01\x42\x16\n\x14_transcription_delayB\x14\n\x12_end_of_turn_delayB\x1f\n\x1d_on_user_turn_completed_delayB\x10\n\x0e_llm_node_ttftB\x10\n\x0e_tts_node_ttfbB\x0e\n\x0c_e2e_latencyB\x0f\n\r_llm_node_tpsB\x10\n\x0e_llm_node_ttfs\"\xed\x01\n\x0bTimedString\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x17\n\nstart_time\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x65nd_time\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\nconfidence\x18\x04 \x01(\x01H\x02\x88\x01\x01\x12\x1e\n\x11start_time_offset\x18\x05 \x01(\x01H\x03\x88\x01\x01\x12\x17\n\nspeaker_id\x18\x06 \x01(\tH\x04\x88\x01\x01\x42\r\n\x0b_start_timeB\x0b\n\t_end_timeB\r\n\x0b_confidenceB\x14\n\x12_start_time_offsetB\r\n\x0b_speaker_id\"\xb9\x03\n\x0b\x43hatMessage\x12\n\n\x02id\x18\x01 \x01(\t\x12%\n\x04role\x18\x02 \x01(\x0e\x32\x17.livekit.agent.ChatRole\x12\x37\n\x07\x63ontent\x18\x03 \x03(\x0b\x32&.livekit.agent.ChatMessage.ChatContent\x12\x13\n\x0binterrupted\x18\x04 \x01(\x08\x12\"\n\x15transcript_confidence\x18\x05 \x01(\x01H\x00\x88\x01\x01\x12\x34\n\x05\x65xtra\x18\x06 \x03(\x0b\x32%.livekit.agent.ChatMessage.ExtraEntry\x12-\n\x07metrics\x18\x07 \x01(\x0b\x32\x1c.livekit.agent.MetricsReport\x12.\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a(\n\x0b\x43hatContent\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x42\t\n\x07payload\x1a,\n\nExtraEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x18\n\x16_transcript_confidence\"\xec\x01\n\x0c\x46unctionCall\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1a\n\x07\x63\x61ll_id\x18\x02 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x11\n\targuments\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x35\n\x05\x65xtra\x18\x06 \x03(\x0b\x32&.livekit.agent.FunctionCall.ExtraEntry\x1a,\n\nExtraEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x9c\x01\n\x12\x46unctionCallOutput\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1a\n\x07\x63\x61ll_id\x18\x03 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x0e\n\x06output\x18\x04 \x01(\t\x12\x10\n\x08is_error\x18\x05 \x01(\x08\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xaa\x01\n\x0c\x41gentHandoff\x12\n\n\x02id\x18\x01 \x01(\t\x12(\n\x0cold_agent_id\x18\x02 \x01(\tB\r\xbaP\noldAgentIDH\x00\x88\x01\x01\x12#\n\x0cnew_agent_id\x18\x03 \x01(\tB\r\xbaP\nnewAgentID\x12.\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\n\r_old_agent_id\"\xa7\x01\n\x11\x41gentConfigUpdate\x12\n\n\x02id\x18\x01 \x01(\t\x12\x19\n\x0cinstructions\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x0btools_added\x18\x03 \x03(\t\x12\x15\n\rtools_removed\x18\x04 \x03(\t\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\n\r_instructions\"\xf5\x02\n\x0b\x43hatContext\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a\xb1\x02\n\x08\x43hatItem\x12-\n\x07message\x18\x01 \x01(\x0b\x32\x1a.livekit.agent.ChatMessageH\x00\x12\x34\n\rfunction_call\x18\x02 \x01(\x0b\x32\x1b.livekit.agent.FunctionCallH\x00\x12\x41\n\x14\x66unction_call_output\x18\x03 \x01(\x0b\x32!.livekit.agent.FunctionCallOutputH\x00\x12\x34\n\ragent_handoff\x18\x04 \x01(\x0b\x32\x1b.livekit.agent.AgentHandoffH\x00\x12?\n\x13\x61gent_config_update\x18\x05 \x01(\x0b\x32 .livekit.agent.AgentConfigUpdateH\x00\x42\x06\n\x04item\"\x88\x03\n\rLLMModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x14\n\x0cinput_tokens\x18\x03 \x01(\x05\x12\x1b\n\x13input_cached_tokens\x18\x04 \x01(\x05\x12\x1a\n\x12input_audio_tokens\x18\x05 \x01(\x05\x12!\n\x19input_cached_audio_tokens\x18\x06 \x01(\x05\x12\x19\n\x11input_text_tokens\x18\x07 \x01(\x05\x12 \n\x18input_cached_text_tokens\x18\x08 \x01(\x05\x12\x1a\n\x12input_image_tokens\x18\t \x01(\x05\x12!\n\x19input_cached_image_tokens\x18\n \x01(\x05\x12\x15\n\routput_tokens\x18\x0b \x01(\x05\x12\x1b\n\x13output_audio_tokens\x18\x0c \x01(\x05\x12\x1a\n\x12output_text_tokens\x18\r \x01(\x05\x12\x18\n\x10session_duration\x18\x0e \x01(\x01\"\x8f\x01\n\rTTSModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x14\n\x0cinput_tokens\x18\x03 \x01(\x05\x12\x15\n\routput_tokens\x18\x04 \x01(\x05\x12\x18\n\x10\x63haracters_count\x18\x05 \x01(\x05\x12\x16\n\x0e\x61udio_duration\x18\x06 \x01(\x01\"u\n\rSTTModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x14\n\x0cinput_tokens\x18\x03 \x01(\x05\x12\x15\n\routput_tokens\x18\x04 \x01(\x05\x12\x16\n\x0e\x61udio_duration\x18\x05 \x01(\x01\"Q\n\x16InterruptionModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x16\n\x0etotal_requests\x18\x03 \x01(\x05\"H\n\rEotModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x16\n\x0etotal_requests\x18\x03 \x01(\x05\"\x88\x02\n\nModelUsage\x12+\n\x03llm\x18\x01 \x01(\x0b\x32\x1c.livekit.agent.LLMModelUsageH\x00\x12+\n\x03tts\x18\x02 \x01(\x0b\x32\x1c.livekit.agent.TTSModelUsageH\x00\x12+\n\x03stt\x18\x03 \x01(\x0b\x32\x1c.livekit.agent.STTModelUsageH\x00\x12=\n\x0cinterruption\x18\x04 \x01(\x0b\x32%.livekit.agent.InterruptionModelUsageH\x00\x12+\n\x03\x65ot\x18\x05 \x01(\x0b\x32\x1c.livekit.agent.EotModelUsageH\x00\x42\x07\n\x05usage\"C\n\x11\x41gentSessionUsage\x12.\n\x0bmodel_usage\x18\x01 \x03(\x0b\x32\x19.livekit.agent.ModelUsage\"8\n\x0c\x44\x65\x62ugMessage\x12(\n\x07payload\x18\x01 \x01(\x0b\x32\x17.google.protobuf.Struct\"\x87\x1e\n\x11\x41gentSessionEvent\x12.\n\ncreated_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12Q\n\x13\x61gent_state_changed\x18\n \x01(\x0b\x32\x32.livekit.agent.AgentSessionEvent.AgentStateChangedH\x00\x12O\n\x12user_state_changed\x18\x0b \x01(\x0b\x32\x31.livekit.agent.AgentSessionEvent.UserStateChangedH\x00\x12Y\n\x17\x63onversation_item_added\x18\x0c \x01(\x0b\x32\x36.livekit.agent.AgentSessionEvent.ConversationItemAddedH\x00\x12W\n\x16user_input_transcribed\x18\r \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.UserInputTranscribedH\x00\x12Y\n\x17\x66unction_tools_executed\x18\x0e \x01(\x0b\x32\x36.livekit.agent.AgentSessionEvent.FunctionToolsExecutedH\x00\x12\x37\n\x05\x65rror\x18\x0f \x01(\x0b\x32&.livekit.agent.AgentSessionEvent.ErrorH\x00\x12P\n\x12overlapping_speech\x18\x10 \x01(\x0b\x32\x32.livekit.agent.AgentSessionEvent.OverlappingSpeechH\x00\x12U\n\x15session_usage_updated\x18\x11 \x01(\x0b\x32\x34.livekit.agent.AgentSessionEvent.SessionUsageUpdatedH\x00\x12H\n\x0e\x61md_prediction\x18\x12 \x01(\x0b\x32..livekit.agent.AgentSessionEvent.AmdPredictionH\x00\x12H\n\x0e\x65ot_prediction\x18\x13 \x01(\x0b\x32..livekit.agent.AgentSessionEvent.EotPredictionH\x00\x12W\n\x16\x66unction_tools_started\x18\x14 \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.FunctionToolsStartedH\x00\x12\x34\n\rdebug_message\x18\x15 \x01(\x0b\x32\x1b.livekit.agent.DebugMessageH\x00\x12W\n\x16tool_execution_updated\x18\x16 \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.ToolExecutionUpdatedH\x00\x12[\n\x18\x61gent_false_interruption\x18\x17 \x01(\x0b\x32\x37.livekit.agent.AgentSessionEvent.AgentFalseInterruptionH\x00\x12\x46\n\ramd_completed\x18\x18 \x01(\x0b\x32-.livekit.agent.AgentSessionEvent.AmdCompletedH\x00\x12H\n\x0esession_closed\x18\x19 \x01(\x0b\x32..livekit.agent.AgentSessionEvent.SessionClosedH\x00\x1ao\n\x11\x41gentStateChanged\x12,\n\told_state\x18\x01 \x01(\x0e\x32\x19.livekit.agent.AgentState\x12,\n\tnew_state\x18\x02 \x01(\x0e\x32\x19.livekit.agent.AgentState\x1al\n\x10UserStateChanged\x12+\n\told_state\x18\x01 \x01(\x0e\x32\x18.livekit.agent.UserState\x12+\n\tnew_state\x18\x02 \x01(\x0e\x32\x18.livekit.agent.UserState\x1aJ\n\x15\x43onversationItemAdded\x12\x31\n\x04item\x18\x01 \x01(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a`\n\x14UserInputTranscribed\x12\x12\n\ntranscript\x18\x01 \x01(\t\x12\x10\n\x08is_final\x18\x02 \x01(\x08\x12\x15\n\x08language\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_language\x1aK\n\x14\x46unctionToolsStarted\x12\x33\n\x0e\x66unction_calls\x18\x01 \x03(\x0b\x32\x1b.livekit.agent.FunctionCall\x1a\x8e\x01\n\x15\x46unctionToolsExecuted\x12\x33\n\x0e\x66unction_calls\x18\x01 \x03(\x0b\x32\x1b.livekit.agent.FunctionCall\x12@\n\x15\x66unction_call_outputs\x18\x02 \x03(\x0b\x32!.livekit.agent.FunctionCallOutput\x1a\x18\n\x05\x45rror\x12\x0f\n\x07message\x18\x01 \x01(\t\x1a\xca\x01\n\x11OverlappingSpeech\x12\x17\n\x0fis_interruption\x18\x01 \x01(\x08\x12;\n\x12overlap_started_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x17\n\x0f\x64\x65tection_delay\x18\x03 \x01(\x01\x12/\n\x0b\x64\x65tected_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x15\n\x13_overlap_started_at\x1a\xb2\x02\n\rAmdPrediction\x12\x32\n\x0fspeech_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12,\n\x08\x63\x61tegory\x18\x02 \x01(\x0e\x32\x1a.livekit.agent.AmdCategory\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x12\n\ntranscript\x18\x04 \x01(\t\x12(\n\x05\x64\x65lay\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x0f\n\x07turn_id\x18\x06 \x01(\r\x12)\n\x05stage\x18\x07 \x01(\x0e\x32\x1a.livekit.agent.AmdCategory\x12\x35\n\x12inference_duration\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\xb2\x01\n\x0c\x41mdCompleted\x12,\n\x08\x63\x61tegory\x18\x01 \x01(\x0e\x32\x1a.livekit.agent.AmdCategory\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12 \n\x18voicemail_message_played\x18\x03 \x01(\x08\x12\x42\n\nprediction\x18\x04 \x01(\x0b\x32..livekit.agent.AgentSessionEvent.AmdPrediction\x1a\x98\x01\n\rEotPrediction\x12\x13\n\x0bprobability\x18\x01 \x01(\x02\x12\x11\n\tthreshold\x18\x02 \x01(\x02\x12\x35\n\x12inference_duration\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12(\n\x05\x64\x65lay\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x46\n\x13SessionUsageUpdated\x12/\n\x05usage\x18\x01 \x01(\x0b\x32 .livekit.agent.AgentSessionUsage\x1a\x93\x06\n\x14ToolExecutionUpdated\x12P\n\x07started\x18\x01 \x01(\x0b\x32=.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.StartedH\x00\x12Y\n\x0c\x63\x61ll_updated\x18\x02 \x01(\x0b\x32\x41.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.CallUpdatedH\x00\x12[\n\rreply_updated\x18\x03 \x01(\x0b\x32\x42.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.ReplyUpdatedH\x00\x12L\n\x05\x65nded\x18\x04 \x01(\x0b\x32;.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.EndedH\x00\x1a=\n\x07Started\x12\x32\n\rfunction_call\x18\x01 \x01(\x0b\x32\x1b.livekit.agent.FunctionCall\x1aM\n\x0b\x43\x61llUpdated\x12\x11\n\x02id\x18\x01 \x01(\tB\x05\xbaP\x02ID\x12\x1a\n\x07\x63\x61ll_id\x18\x02 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x0f\n\x07message\x18\x03 \x01(\t\x1a\x87\x01\n\x05\x45nded\x12\x11\n\x02id\x18\x01 \x01(\tB\x05\xbaP\x02ID\x12\x1a\n\x07\x63\x61ll_id\x18\x02 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x14\n\x07message\x18\x03 \x01(\tH\x00\x88\x01\x01\x12-\n\x06status\x18\x04 \x01(\x0e\x32\x1d.livekit.agent.ToolCallStatusB\n\n\x08_message\x1a\x80\x01\n\x0cReplyUpdated\x12 \n\nupdate_ids\x18\x01 \x03(\tB\x0c\xbaP\tupdateIDs\x12.\n\x06status\x18\x02 \x01(\x0e\x32\x1e.livekit.agent.ToolReplyStatus\x12\x1e\n\tspeech_id\x18\x03 \x01(\tB\x0b\xbaP\x08speechIDB\x08\n\x06update\x1aY\n\rSessionClosed\x12*\n\x06reason\x18\x01 \x01(\x0e\x32\x1a.livekit.agent.CloseReason\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\x1a)\n\x16\x41gentFalseInterruption\x12\x0f\n\x07resumed\x18\x01 \x01(\x08\x42\x07\n\x05\x65vent\"\xf6\n\n\x0eSessionRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x32\n\x04ping\x18\x02 \x01(\x0b\x32\".livekit.agent.SessionRequest.PingH\x00\x12H\n\x10get_chat_history\x18\x04 \x01(\x0b\x32,.livekit.agent.SessionRequest.GetChatHistoryH\x00\x12;\n\trun_input\x18\x05 \x01(\x0b\x32&.livekit.agent.SessionRequest.RunInputH\x00\x12\x44\n\x0eget_agent_info\x18\x06 \x01(\x0b\x32*.livekit.agent.SessionRequest.GetAgentInfoH\x00\x12J\n\x11get_session_state\x18\x07 \x01(\x0b\x32-.livekit.agent.SessionRequest.GetSessionStateH\x00\x12\x42\n\rget_rtc_stats\x18\x08 \x01(\x0b\x32).livekit.agent.SessionRequest.GetRTCStatsH\x00\x12J\n\x11get_session_usage\x18\t \x01(\x0b\x32-.livekit.agent.SessionRequest.GetSessionUsageH\x00\x12L\n\x12get_framework_info\x18\n \x01(\x0b\x32..livekit.agent.SessionRequest.GetFrameworkInfoH\x00\x12;\n\tupdate_io\x18\x0b \x01(\x0b\x32&.livekit.agent.SessionRequest.UpdateIOH\x00\x12O\n\x13\x66inalize_simulation\x18\x0c \x01(\x0b\x32\x30.livekit.agent.SessionRequest.FinalizeSimulationH\x00\x1a\x06\n\x04Ping\x1a\x10\n\x0eGetChatHistory\x1a\x18\n\x08RunInput\x12\x0c\n\x04text\x18\x01 \x01(\t\x1a\x0e\n\x0cGetAgentInfo\x1a\x11\n\x0fGetSessionState\x1a\r\n\x0bGetRTCStats\x1a\x11\n\x0fGetSessionUsage\x1a\x12\n\x10GetFrameworkInfo\x1a\xaf\x03\n\x08UpdateIO\x12@\n\x05input\x18\x01 \x01(\x0b\x32,.livekit.agent.SessionRequest.UpdateIO.InputH\x00\x88\x01\x01\x12\x42\n\x06output\x18\x02 \x01(\x0b\x32-.livekit.agent.SessionRequest.UpdateIO.OutputH\x01\x88\x01\x01\x1a\x63\n\x05Input\x12\x1a\n\raudio_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rvideo_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x10\n\x0e_audio_enabledB\x10\n\x0e_video_enabled\x1a\xa2\x01\n\x06Output\x12\x1a\n\raudio_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rvideo_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15transcription_enabled\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x10\n\x0e_audio_enabledB\x10\n\x0e_video_enabledB\x18\n\x16_transcription_enabledB\x08\n\x06_inputB\t\n\x07_output\x1aM\n\x12\x46inalizeSimulation\x12\x1b\n\x13provisional_success\x18\x01 \x01(\x08\x12\x1a\n\x12provisional_reason\x18\x02 \x01(\tB\t\n\x07request\"\xd3\x0f\n\x0fSessionResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x33\n\x04pong\x18\x03 \x01(\x0b\x32#.livekit.agent.SessionResponse.PongH\x00\x12Q\n\x10get_chat_history\x18\x05 \x01(\x0b\x32\x35.livekit.agent.SessionResponse.GetChatHistoryResponseH\x00\x12\x44\n\trun_input\x18\x06 \x01(\x0b\x32/.livekit.agent.SessionResponse.RunInputResponseH\x00\x12M\n\x0eget_agent_info\x18\x07 \x01(\x0b\x32\x33.livekit.agent.SessionResponse.GetAgentInfoResponseH\x00\x12S\n\x11get_session_state\x18\x08 \x01(\x0b\x32\x36.livekit.agent.SessionResponse.GetSessionStateResponseH\x00\x12K\n\rget_rtc_stats\x18\t \x01(\x0b\x32\x32.livekit.agent.SessionResponse.GetRTCStatsResponseH\x00\x12S\n\x11get_session_usage\x18\n \x01(\x0b\x32\x36.livekit.agent.SessionResponse.GetSessionUsageResponseH\x00\x12U\n\x12get_framework_info\x18\x0b \x01(\x0b\x32\x37.livekit.agent.SessionResponse.GetFrameworkInfoResponseH\x00\x12\x44\n\tupdate_io\x18\x0c \x01(\x0b\x32/.livekit.agent.SessionResponse.UpdateIOResponseH\x00\x12X\n\x13\x66inalize_simulation\x18\r \x01(\x0b\x32\x39.livekit.agent.SessionResponse.FinalizeSimulationResponseH\x00\x1a\x06\n\x04Pong\x1aL\n\x16GetChatHistoryResponse\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a\x94\x01\n\x14GetAgentInfoResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x19\n\x0cinstructions\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05tools\x18\x03 \x03(\t\x12\x35\n\x08\x63hat_ctx\x18\x04 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItemB\x0f\n\r_instructions\x1a\x46\n\x10RunInputResponse\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a\xbf\x02\n\x17GetSessionStateResponse\x12.\n\x0b\x61gent_state\x18\x01 \x01(\x0e\x32\x19.livekit.agent.AgentState\x12,\n\nuser_state\x18\x02 \x01(\x0e\x32\x18.livekit.agent.UserState\x12\x10\n\x08\x61gent_id\x18\x03 \x01(\t\x12T\n\x07options\x18\x04 \x03(\x0b\x32\x43.livekit.agent.SessionResponse.GetSessionStateResponse.OptionsEntry\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1az\n\x13GetRTCStatsResponse\x12\x30\n\x0fpublisher_stats\x18\x01 \x03(\x0b\x32\x17.google.protobuf.Struct\x12\x31\n\x10subscriber_stats\x18\x02 \x03(\x0b\x32\x17.google.protobuf.Struct\x1az\n\x17GetSessionUsageResponse\x12/\n\x05usage\x18\x01 \x01(\x0b\x32 .livekit.agent.AgentSessionUsage\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a<\n\x18GetFrameworkInfoResponse\x12\x0b\n\x03sdk\x18\x01 \x01(\t\x12\x13\n\x0bsdk_version\x18\x02 \x01(\t\x1a\x12\n\x10UpdateIOResponse\x1a\xb5\x01\n\x1a\x46inalizeSimulationResponse\x12\x61\n\x0cuser_verdict\x18\x01 \x01(\x0b\x32K.livekit.agent.SessionResponse.FinalizeSimulationResponse.SimulationVerdict\x1a\x34\n\x11SimulationVerdict\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0e\n\x06reason\x18\x02 \x01(\tB\n\n\x08responseB\x08\n\x06_error\"\xba\x06\n\x13\x41gentSessionMessage\x12N\n\x0b\x61udio_input\x18\x01 \x01(\x0b\x32\x37.livekit.agent.AgentSessionMessage.ConsoleIO.AudioFrameH\x00\x12O\n\x0c\x61udio_output\x18\x02 \x01(\x0b\x32\x37.livekit.agent.AgentSessionMessage.ConsoleIO.AudioFrameH\x00\x12\x31\n\x05\x65vent\x18\x03 \x01(\x0b\x32 .livekit.agent.AgentSessionEventH\x00\x12\x30\n\x07request\x18\x04 \x01(\x0b\x32\x1d.livekit.agent.SessionRequestH\x00\x12\x32\n\x08response\x18\x05 \x01(\x0b\x32\x1e.livekit.agent.SessionResponseH\x00\x12_\n\x14\x61udio_playback_flush\x18\x06 \x01(\x0b\x32?.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackFlushH\x00\x12_\n\x14\x61udio_playback_clear\x18\x07 \x01(\x0b\x32?.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackClearH\x00\x12\x65\n\x17\x61udio_playback_finished\x18\x08 \x01(\x0b\x32\x42.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackFinishedH\x00\x1a\xb4\x01\n\tConsoleIO\x1a\x62\n\nAudioFrame\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x13\n\x0bsample_rate\x18\x02 \x01(\r\x12\x14\n\x0cnum_channels\x18\x03 \x01(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x01(\r\x1a\x14\n\x12\x41udioPlaybackFlush\x1a\x14\n\x12\x41udioPlaybackClear\x1a\x17\n\x15\x41udioPlaybackFinishedB\t\n\x07message*>\n\x08\x43hatRole\x12\r\n\tDEVELOPER\x10\x00\x12\n\n\x06SYSTEM\x10\x01\x12\x08\n\x04USER\x10\x02\x12\r\n\tASSISTANT\x10\x03*b\n\nAgentState\x12\x13\n\x0f\x41S_INITIALIZING\x10\x00\x12\x0b\n\x07\x41S_IDLE\x10\x01\x12\x10\n\x0c\x41S_LISTENING\x10\x02\x12\x0f\n\x0b\x41S_THINKING\x10\x03\x12\x0f\n\x0b\x41S_SPEAKING\x10\x04*;\n\tUserState\x12\x0f\n\x0bUS_SPEAKING\x10\x00\x12\x10\n\x0cUS_LISTENING\x10\x01\x12\x0b\n\x07US_AWAY\x10\x02*M\n\x0eToolCallStatus\x12\x0e\n\nTC_RUNNING\x10\x00\x12\x0b\n\x07TC_DONE\x10\x01\x12\x0c\n\x08TC_ERROR\x10\x02\x12\x10\n\x0cTC_CANCELLED\x10\x03*Y\n\x0fToolReplyStatus\x12\x10\n\x0cTR_SCHEDULED\x10\x00\x12\x10\n\x0cTR_COMPLETED\x10\x01\x12\x12\n\x0eTR_INTERRUPTED\x10\x02\x12\x0e\n\nTR_SKIPPED\x10\x03*\x8a\x01\n\x0b\x43loseReason\x12\x0e\n\nCR_UNKNOWN\x10\x00\x12\x0c\n\x08\x43R_ERROR\x10\x01\x12\x13\n\x0f\x43R_JOB_SHUTDOWN\x10\x02\x12\x1f\n\x1b\x43R_PARTICIPANT_DISCONNECTED\x10\x03\x12\x15\n\x11\x43R_USER_INITIATED\x10\x04\x12\x10\n\x0c\x43R_COMPLETED\x10\x05*\xaf\x01\n\x0b\x41mdCategory\x12\x0f\n\x0b\x41MD_UNKNOWN\x10\x00\x12\r\n\tAMD_HUMAN\x10\x01\x12\x13\n\x0f\x41MD_MACHINE_IVR\x10\x02\x12\x12\n\x0e\x41MD_MACHINE_VM\x10\x03\x12\x1b\n\x17\x41MD_MACHINE_UNAVAILABLE\x10\x04\x12\x11\n\rAMD_UNCERTAIN\x10\x05\x12\x19\n\x15\x41MD_MACHINE_SCREENING\x10\x06\x12\x0c\n\x08\x41MD_WAIT\x10\x07\x42+Z)github.com/livekit/protocol/livekit/agentb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!agent/livekit_agent_session.proto\x12\rlivekit.agent\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x14logger/options.proto\"\x9d\x04\n\rMetricsReport\x12\x37\n\x13started_speaking_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\x13stopped_speaking_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12 \n\x13transcription_delay\x18\x03 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11\x65nd_of_turn_delay\x18\x04 \x01(\x01H\x01\x88\x01\x01\x12)\n\x1con_user_turn_completed_delay\x18\x05 \x01(\x01H\x02\x88\x01\x01\x12\x1a\n\rllm_node_ttft\x18\x06 \x01(\x01H\x03\x88\x01\x01\x12\x1a\n\rtts_node_ttfb\x18\x07 \x01(\x01H\x04\x88\x01\x01\x12\x18\n\x0b\x65\x32\x65_latency\x18\x08 \x01(\x01H\x05\x88\x01\x01\x12\x19\n\x0cllm_node_tps\x18\t \x01(\x01H\x06\x88\x01\x01\x12\x1a\n\rllm_node_ttfs\x18\n \x01(\x01H\x07\x88\x01\x01\x42\x16\n\x14_transcription_delayB\x14\n\x12_end_of_turn_delayB\x1f\n\x1d_on_user_turn_completed_delayB\x10\n\x0e_llm_node_ttftB\x10\n\x0e_tts_node_ttfbB\x0e\n\x0c_e2e_latencyB\x0f\n\r_llm_node_tpsB\x10\n\x0e_llm_node_ttfs\"\xed\x01\n\x0bTimedString\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x17\n\nstart_time\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x65nd_time\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\nconfidence\x18\x04 \x01(\x01H\x02\x88\x01\x01\x12\x1e\n\x11start_time_offset\x18\x05 \x01(\x01H\x03\x88\x01\x01\x12\x17\n\nspeaker_id\x18\x06 \x01(\tH\x04\x88\x01\x01\x42\r\n\x0b_start_timeB\x0b\n\t_end_timeB\r\n\x0b_confidenceB\x14\n\x12_start_time_offsetB\r\n\x0b_speaker_id\"\xb9\x03\n\x0b\x43hatMessage\x12\n\n\x02id\x18\x01 \x01(\t\x12%\n\x04role\x18\x02 \x01(\x0e\x32\x17.livekit.agent.ChatRole\x12\x37\n\x07\x63ontent\x18\x03 \x03(\x0b\x32&.livekit.agent.ChatMessage.ChatContent\x12\x13\n\x0binterrupted\x18\x04 \x01(\x08\x12\"\n\x15transcript_confidence\x18\x05 \x01(\x01H\x00\x88\x01\x01\x12\x34\n\x05\x65xtra\x18\x06 \x03(\x0b\x32%.livekit.agent.ChatMessage.ExtraEntry\x12-\n\x07metrics\x18\x07 \x01(\x0b\x32\x1c.livekit.agent.MetricsReport\x12.\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a(\n\x0b\x43hatContent\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x42\t\n\x07payload\x1a,\n\nExtraEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x18\n\x16_transcript_confidence\"\x94\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.TimestampJ\x04\x08\x06\x10\x07R\x05\x65xtra\"\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\"\x87\x1e\n\x11\x41gentSessionEvent\x12.\n\ncreated_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12Q\n\x13\x61gent_state_changed\x18\n \x01(\x0b\x32\x32.livekit.agent.AgentSessionEvent.AgentStateChangedH\x00\x12O\n\x12user_state_changed\x18\x0b \x01(\x0b\x32\x31.livekit.agent.AgentSessionEvent.UserStateChangedH\x00\x12Y\n\x17\x63onversation_item_added\x18\x0c \x01(\x0b\x32\x36.livekit.agent.AgentSessionEvent.ConversationItemAddedH\x00\x12W\n\x16user_input_transcribed\x18\r \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.UserInputTranscribedH\x00\x12Y\n\x17\x66unction_tools_executed\x18\x0e \x01(\x0b\x32\x36.livekit.agent.AgentSessionEvent.FunctionToolsExecutedH\x00\x12\x37\n\x05\x65rror\x18\x0f \x01(\x0b\x32&.livekit.agent.AgentSessionEvent.ErrorH\x00\x12P\n\x12overlapping_speech\x18\x10 \x01(\x0b\x32\x32.livekit.agent.AgentSessionEvent.OverlappingSpeechH\x00\x12U\n\x15session_usage_updated\x18\x11 \x01(\x0b\x32\x34.livekit.agent.AgentSessionEvent.SessionUsageUpdatedH\x00\x12H\n\x0e\x61md_prediction\x18\x12 \x01(\x0b\x32..livekit.agent.AgentSessionEvent.AmdPredictionH\x00\x12H\n\x0e\x65ot_prediction\x18\x13 \x01(\x0b\x32..livekit.agent.AgentSessionEvent.EotPredictionH\x00\x12W\n\x16\x66unction_tools_started\x18\x14 \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.FunctionToolsStartedH\x00\x12\x34\n\rdebug_message\x18\x15 \x01(\x0b\x32\x1b.livekit.agent.DebugMessageH\x00\x12W\n\x16tool_execution_updated\x18\x16 \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.ToolExecutionUpdatedH\x00\x12[\n\x18\x61gent_false_interruption\x18\x17 \x01(\x0b\x32\x37.livekit.agent.AgentSessionEvent.AgentFalseInterruptionH\x00\x12\x46\n\ramd_completed\x18\x18 \x01(\x0b\x32-.livekit.agent.AgentSessionEvent.AmdCompletedH\x00\x12H\n\x0esession_closed\x18\x19 \x01(\x0b\x32..livekit.agent.AgentSessionEvent.SessionClosedH\x00\x1ao\n\x11\x41gentStateChanged\x12,\n\told_state\x18\x01 \x01(\x0e\x32\x19.livekit.agent.AgentState\x12,\n\tnew_state\x18\x02 \x01(\x0e\x32\x19.livekit.agent.AgentState\x1al\n\x10UserStateChanged\x12+\n\told_state\x18\x01 \x01(\x0e\x32\x18.livekit.agent.UserState\x12+\n\tnew_state\x18\x02 \x01(\x0e\x32\x18.livekit.agent.UserState\x1aJ\n\x15\x43onversationItemAdded\x12\x31\n\x04item\x18\x01 \x01(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a`\n\x14UserInputTranscribed\x12\x12\n\ntranscript\x18\x01 \x01(\t\x12\x10\n\x08is_final\x18\x02 \x01(\x08\x12\x15\n\x08language\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_language\x1aK\n\x14\x46unctionToolsStarted\x12\x33\n\x0e\x66unction_calls\x18\x01 \x03(\x0b\x32\x1b.livekit.agent.FunctionCall\x1a\x8e\x01\n\x15\x46unctionToolsExecuted\x12\x33\n\x0e\x66unction_calls\x18\x01 \x03(\x0b\x32\x1b.livekit.agent.FunctionCall\x12@\n\x15\x66unction_call_outputs\x18\x02 \x03(\x0b\x32!.livekit.agent.FunctionCallOutput\x1a\x18\n\x05\x45rror\x12\x0f\n\x07message\x18\x01 \x01(\t\x1a\xca\x01\n\x11OverlappingSpeech\x12\x17\n\x0fis_interruption\x18\x01 \x01(\x08\x12;\n\x12overlap_started_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x17\n\x0f\x64\x65tection_delay\x18\x03 \x01(\x01\x12/\n\x0b\x64\x65tected_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x15\n\x13_overlap_started_at\x1a\xb2\x02\n\rAmdPrediction\x12\x32\n\x0fspeech_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12,\n\x08\x63\x61tegory\x18\x02 \x01(\x0e\x32\x1a.livekit.agent.AmdCategory\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x12\n\ntranscript\x18\x04 \x01(\t\x12(\n\x05\x64\x65lay\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x0f\n\x07turn_id\x18\x06 \x01(\r\x12)\n\x05stage\x18\x07 \x01(\x0e\x32\x1a.livekit.agent.AmdCategory\x12\x35\n\x12inference_duration\x18\x08 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\xb2\x01\n\x0c\x41mdCompleted\x12,\n\x08\x63\x61tegory\x18\x01 \x01(\x0e\x32\x1a.livekit.agent.AmdCategory\x12\x0e\n\x06reason\x18\x02 \x01(\t\x12 \n\x18voicemail_message_played\x18\x03 \x01(\x08\x12\x42\n\nprediction\x18\x04 \x01(\x0b\x32..livekit.agent.AgentSessionEvent.AmdPrediction\x1a\x98\x01\n\rEotPrediction\x12\x13\n\x0bprobability\x18\x01 \x01(\x02\x12\x11\n\tthreshold\x18\x02 \x01(\x02\x12\x35\n\x12inference_duration\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12(\n\x05\x64\x65lay\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x46\n\x13SessionUsageUpdated\x12/\n\x05usage\x18\x01 \x01(\x0b\x32 .livekit.agent.AgentSessionUsage\x1a\x93\x06\n\x14ToolExecutionUpdated\x12P\n\x07started\x18\x01 \x01(\x0b\x32=.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.StartedH\x00\x12Y\n\x0c\x63\x61ll_updated\x18\x02 \x01(\x0b\x32\x41.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.CallUpdatedH\x00\x12[\n\rreply_updated\x18\x03 \x01(\x0b\x32\x42.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.ReplyUpdatedH\x00\x12L\n\x05\x65nded\x18\x04 \x01(\x0b\x32;.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.EndedH\x00\x1a=\n\x07Started\x12\x32\n\rfunction_call\x18\x01 \x01(\x0b\x32\x1b.livekit.agent.FunctionCall\x1aM\n\x0b\x43\x61llUpdated\x12\x11\n\x02id\x18\x01 \x01(\tB\x05\xbaP\x02ID\x12\x1a\n\x07\x63\x61ll_id\x18\x02 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x0f\n\x07message\x18\x03 \x01(\t\x1a\x87\x01\n\x05\x45nded\x12\x11\n\x02id\x18\x01 \x01(\tB\x05\xbaP\x02ID\x12\x1a\n\x07\x63\x61ll_id\x18\x02 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x14\n\x07message\x18\x03 \x01(\tH\x00\x88\x01\x01\x12-\n\x06status\x18\x04 \x01(\x0e\x32\x1d.livekit.agent.ToolCallStatusB\n\n\x08_message\x1a\x80\x01\n\x0cReplyUpdated\x12 \n\nupdate_ids\x18\x01 \x03(\tB\x0c\xbaP\tupdateIDs\x12.\n\x06status\x18\x02 \x01(\x0e\x32\x1e.livekit.agent.ToolReplyStatus\x12\x1e\n\tspeech_id\x18\x03 \x01(\tB\x0b\xbaP\x08speechIDB\x08\n\x06update\x1aY\n\rSessionClosed\x12*\n\x06reason\x18\x01 \x01(\x0e\x32\x1a.livekit.agent.CloseReason\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_error\x1a)\n\x16\x41gentFalseInterruption\x12\x0f\n\x07resumed\x18\x01 \x01(\x08\x42\x07\n\x05\x65vent\"\xf6\n\n\x0eSessionRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x32\n\x04ping\x18\x02 \x01(\x0b\x32\".livekit.agent.SessionRequest.PingH\x00\x12H\n\x10get_chat_history\x18\x04 \x01(\x0b\x32,.livekit.agent.SessionRequest.GetChatHistoryH\x00\x12;\n\trun_input\x18\x05 \x01(\x0b\x32&.livekit.agent.SessionRequest.RunInputH\x00\x12\x44\n\x0eget_agent_info\x18\x06 \x01(\x0b\x32*.livekit.agent.SessionRequest.GetAgentInfoH\x00\x12J\n\x11get_session_state\x18\x07 \x01(\x0b\x32-.livekit.agent.SessionRequest.GetSessionStateH\x00\x12\x42\n\rget_rtc_stats\x18\x08 \x01(\x0b\x32).livekit.agent.SessionRequest.GetRTCStatsH\x00\x12J\n\x11get_session_usage\x18\t \x01(\x0b\x32-.livekit.agent.SessionRequest.GetSessionUsageH\x00\x12L\n\x12get_framework_info\x18\n \x01(\x0b\x32..livekit.agent.SessionRequest.GetFrameworkInfoH\x00\x12;\n\tupdate_io\x18\x0b \x01(\x0b\x32&.livekit.agent.SessionRequest.UpdateIOH\x00\x12O\n\x13\x66inalize_simulation\x18\x0c \x01(\x0b\x32\x30.livekit.agent.SessionRequest.FinalizeSimulationH\x00\x1a\x06\n\x04Ping\x1a\x10\n\x0eGetChatHistory\x1a\x18\n\x08RunInput\x12\x0c\n\x04text\x18\x01 \x01(\t\x1a\x0e\n\x0cGetAgentInfo\x1a\x11\n\x0fGetSessionState\x1a\r\n\x0bGetRTCStats\x1a\x11\n\x0fGetSessionUsage\x1a\x12\n\x10GetFrameworkInfo\x1a\xaf\x03\n\x08UpdateIO\x12@\n\x05input\x18\x01 \x01(\x0b\x32,.livekit.agent.SessionRequest.UpdateIO.InputH\x00\x88\x01\x01\x12\x42\n\x06output\x18\x02 \x01(\x0b\x32-.livekit.agent.SessionRequest.UpdateIO.OutputH\x01\x88\x01\x01\x1a\x63\n\x05Input\x12\x1a\n\raudio_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rvideo_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x10\n\x0e_audio_enabledB\x10\n\x0e_video_enabled\x1a\xa2\x01\n\x06Output\x12\x1a\n\raudio_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rvideo_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15transcription_enabled\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x10\n\x0e_audio_enabledB\x10\n\x0e_video_enabledB\x18\n\x16_transcription_enabledB\x08\n\x06_inputB\t\n\x07_output\x1aM\n\x12\x46inalizeSimulation\x12\x1b\n\x13provisional_success\x18\x01 \x01(\x08\x12\x1a\n\x12provisional_reason\x18\x02 \x01(\tB\t\n\x07request\"\xd3\x0f\n\x0fSessionResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x33\n\x04pong\x18\x03 \x01(\x0b\x32#.livekit.agent.SessionResponse.PongH\x00\x12Q\n\x10get_chat_history\x18\x05 \x01(\x0b\x32\x35.livekit.agent.SessionResponse.GetChatHistoryResponseH\x00\x12\x44\n\trun_input\x18\x06 \x01(\x0b\x32/.livekit.agent.SessionResponse.RunInputResponseH\x00\x12M\n\x0eget_agent_info\x18\x07 \x01(\x0b\x32\x33.livekit.agent.SessionResponse.GetAgentInfoResponseH\x00\x12S\n\x11get_session_state\x18\x08 \x01(\x0b\x32\x36.livekit.agent.SessionResponse.GetSessionStateResponseH\x00\x12K\n\rget_rtc_stats\x18\t \x01(\x0b\x32\x32.livekit.agent.SessionResponse.GetRTCStatsResponseH\x00\x12S\n\x11get_session_usage\x18\n \x01(\x0b\x32\x36.livekit.agent.SessionResponse.GetSessionUsageResponseH\x00\x12U\n\x12get_framework_info\x18\x0b \x01(\x0b\x32\x37.livekit.agent.SessionResponse.GetFrameworkInfoResponseH\x00\x12\x44\n\tupdate_io\x18\x0c \x01(\x0b\x32/.livekit.agent.SessionResponse.UpdateIOResponseH\x00\x12X\n\x13\x66inalize_simulation\x18\r \x01(\x0b\x32\x39.livekit.agent.SessionResponse.FinalizeSimulationResponseH\x00\x1a\x06\n\x04Pong\x1aL\n\x16GetChatHistoryResponse\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a\x94\x01\n\x14GetAgentInfoResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x19\n\x0cinstructions\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05tools\x18\x03 \x03(\t\x12\x35\n\x08\x63hat_ctx\x18\x04 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItemB\x0f\n\r_instructions\x1a\x46\n\x10RunInputResponse\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a\xbf\x02\n\x17GetSessionStateResponse\x12.\n\x0b\x61gent_state\x18\x01 \x01(\x0e\x32\x19.livekit.agent.AgentState\x12,\n\nuser_state\x18\x02 \x01(\x0e\x32\x18.livekit.agent.UserState\x12\x10\n\x08\x61gent_id\x18\x03 \x01(\t\x12T\n\x07options\x18\x04 \x03(\x0b\x32\x43.livekit.agent.SessionResponse.GetSessionStateResponse.OptionsEntry\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1az\n\x13GetRTCStatsResponse\x12\x30\n\x0fpublisher_stats\x18\x01 \x03(\x0b\x32\x17.google.protobuf.Struct\x12\x31\n\x10subscriber_stats\x18\x02 \x03(\x0b\x32\x17.google.protobuf.Struct\x1az\n\x17GetSessionUsageResponse\x12/\n\x05usage\x18\x01 \x01(\x0b\x32 .livekit.agent.AgentSessionUsage\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a<\n\x18GetFrameworkInfoResponse\x12\x0b\n\x03sdk\x18\x01 \x01(\t\x12\x13\n\x0bsdk_version\x18\x02 \x01(\t\x1a\x12\n\x10UpdateIOResponse\x1a\xb5\x01\n\x1a\x46inalizeSimulationResponse\x12\x61\n\x0cuser_verdict\x18\x01 \x01(\x0b\x32K.livekit.agent.SessionResponse.FinalizeSimulationResponse.SimulationVerdict\x1a\x34\n\x11SimulationVerdict\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0e\n\x06reason\x18\x02 \x01(\tB\n\n\x08responseB\x08\n\x06_error\"\xba\x06\n\x13\x41gentSessionMessage\x12N\n\x0b\x61udio_input\x18\x01 \x01(\x0b\x32\x37.livekit.agent.AgentSessionMessage.ConsoleIO.AudioFrameH\x00\x12O\n\x0c\x61udio_output\x18\x02 \x01(\x0b\x32\x37.livekit.agent.AgentSessionMessage.ConsoleIO.AudioFrameH\x00\x12\x31\n\x05\x65vent\x18\x03 \x01(\x0b\x32 .livekit.agent.AgentSessionEventH\x00\x12\x30\n\x07request\x18\x04 \x01(\x0b\x32\x1d.livekit.agent.SessionRequestH\x00\x12\x32\n\x08response\x18\x05 \x01(\x0b\x32\x1e.livekit.agent.SessionResponseH\x00\x12_\n\x14\x61udio_playback_flush\x18\x06 \x01(\x0b\x32?.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackFlushH\x00\x12_\n\x14\x61udio_playback_clear\x18\x07 \x01(\x0b\x32?.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackClearH\x00\x12\x65\n\x17\x61udio_playback_finished\x18\x08 \x01(\x0b\x32\x42.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackFinishedH\x00\x1a\xb4\x01\n\tConsoleIO\x1a\x62\n\nAudioFrame\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x13\n\x0bsample_rate\x18\x02 \x01(\r\x12\x14\n\x0cnum_channels\x18\x03 \x01(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x01(\r\x1a\x14\n\x12\x41udioPlaybackFlush\x1a\x14\n\x12\x41udioPlaybackClear\x1a\x17\n\x15\x41udioPlaybackFinishedB\t\n\x07message*>\n\x08\x43hatRole\x12\r\n\tDEVELOPER\x10\x00\x12\n\n\x06SYSTEM\x10\x01\x12\x08\n\x04USER\x10\x02\x12\r\n\tASSISTANT\x10\x03*b\n\nAgentState\x12\x13\n\x0f\x41S_INITIALIZING\x10\x00\x12\x0b\n\x07\x41S_IDLE\x10\x01\x12\x10\n\x0c\x41S_LISTENING\x10\x02\x12\x0f\n\x0b\x41S_THINKING\x10\x03\x12\x0f\n\x0b\x41S_SPEAKING\x10\x04*;\n\tUserState\x12\x0f\n\x0bUS_SPEAKING\x10\x00\x12\x10\n\x0cUS_LISTENING\x10\x01\x12\x0b\n\x07US_AWAY\x10\x02*M\n\x0eToolCallStatus\x12\x0e\n\nTC_RUNNING\x10\x00\x12\x0b\n\x07TC_DONE\x10\x01\x12\x0c\n\x08TC_ERROR\x10\x02\x12\x10\n\x0cTC_CANCELLED\x10\x03*Y\n\x0fToolReplyStatus\x12\x10\n\x0cTR_SCHEDULED\x10\x00\x12\x10\n\x0cTR_COMPLETED\x10\x01\x12\x12\n\x0eTR_INTERRUPTED\x10\x02\x12\x0e\n\nTR_SKIPPED\x10\x03*\x8a\x01\n\x0b\x43loseReason\x12\x0e\n\nCR_UNKNOWN\x10\x00\x12\x0c\n\x08\x43R_ERROR\x10\x01\x12\x13\n\x0f\x43R_JOB_SHUTDOWN\x10\x02\x12\x1f\n\x1b\x43R_PARTICIPANT_DISCONNECTED\x10\x03\x12\x15\n\x11\x43R_USER_INITIATED\x10\x04\x12\x10\n\x0c\x43R_COMPLETED\x10\x05*\xaf\x01\n\x0b\x41mdCategory\x12\x0f\n\x0b\x41MD_UNKNOWN\x10\x00\x12\r\n\tAMD_HUMAN\x10\x01\x12\x13\n\x0f\x41MD_MACHINE_IVR\x10\x02\x12\x12\n\x0e\x41MD_MACHINE_VM\x10\x03\x12\x1b\n\x17\x41MD_MACHINE_UNAVAILABLE\x10\x04\x12\x11\n\rAMD_UNCERTAIN\x10\x05\x12\x19\n\x15\x41MD_MACHINE_SCREENING\x10\x06\x12\x0c\n\x08\x41MD_WAIT\x10\x07\x42+Z)github.com/livekit/protocol/livekit/agentb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -38,8 +38,6 @@ _globals['DESCRIPTOR']._serialized_options = b'Z)github.com/livekit/protocol/livekit/agent' _globals['_CHATMESSAGE_EXTRAENTRY']._loaded_options = None _globals['_CHATMESSAGE_EXTRAENTRY']._serialized_options = b'8\001' - _globals['_FUNCTIONCALL_EXTRAENTRY']._loaded_options = None - _globals['_FUNCTIONCALL_EXTRAENTRY']._serialized_options = b'8\001' _globals['_FUNCTIONCALL'].fields_by_name['call_id']._loaded_options = None _globals['_FUNCTIONCALL'].fields_by_name['call_id']._serialized_options = b'\272P\006callID' _globals['_FUNCTIONCALLOUTPUT'].fields_by_name['call_id']._loaded_options = None @@ -62,20 +60,20 @@ _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_REPLYUPDATED'].fields_by_name['speech_id']._serialized_options = b'\272P\010speechID' _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._loaded_options = None _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_options = b'8\001' - _globals['_CHATROLE']._serialized_start=11811 - _globals['_CHATROLE']._serialized_end=11873 - _globals['_AGENTSTATE']._serialized_start=11875 - _globals['_AGENTSTATE']._serialized_end=11973 - _globals['_USERSTATE']._serialized_start=11975 - _globals['_USERSTATE']._serialized_end=12034 - _globals['_TOOLCALLSTATUS']._serialized_start=12036 - _globals['_TOOLCALLSTATUS']._serialized_end=12113 - _globals['_TOOLREPLYSTATUS']._serialized_start=12115 - _globals['_TOOLREPLYSTATUS']._serialized_end=12204 - _globals['_CLOSEREASON']._serialized_start=12207 - _globals['_CLOSEREASON']._serialized_end=12345 - _globals['_AMDCATEGORY']._serialized_start=12348 - _globals['_AMDCATEGORY']._serialized_end=12523 + _globals['_CHATROLE']._serialized_start=11723 + _globals['_CHATROLE']._serialized_end=11785 + _globals['_AGENTSTATE']._serialized_start=11787 + _globals['_AGENTSTATE']._serialized_end=11885 + _globals['_USERSTATE']._serialized_start=11887 + _globals['_USERSTATE']._serialized_end=11946 + _globals['_TOOLCALLSTATUS']._serialized_start=11948 + _globals['_TOOLCALLSTATUS']._serialized_end=12025 + _globals['_TOOLREPLYSTATUS']._serialized_start=12027 + _globals['_TOOLREPLYSTATUS']._serialized_end=12116 + _globals['_CLOSEREASON']._serialized_start=12119 + _globals['_CLOSEREASON']._serialized_end=12257 + _globals['_AMDCATEGORY']._serialized_start=12260 + _globals['_AMDCATEGORY']._serialized_end=12435 _globals['_METRICSREPORT']._serialized_start=170 _globals['_METRICSREPORT']._serialized_end=711 _globals['_TIMEDSTRING']._serialized_start=714 @@ -87,137 +85,135 @@ _globals['_CHATMESSAGE_EXTRAENTRY']._serialized_start=1325 _globals['_CHATMESSAGE_EXTRAENTRY']._serialized_end=1369 _globals['_FUNCTIONCALL']._serialized_start=1398 - _globals['_FUNCTIONCALL']._serialized_end=1634 - _globals['_FUNCTIONCALL_EXTRAENTRY']._serialized_start=1325 - _globals['_FUNCTIONCALL_EXTRAENTRY']._serialized_end=1369 - _globals['_FUNCTIONCALLOUTPUT']._serialized_start=1637 - _globals['_FUNCTIONCALLOUTPUT']._serialized_end=1793 - _globals['_AGENTHANDOFF']._serialized_start=1796 - _globals['_AGENTHANDOFF']._serialized_end=1966 - _globals['_AGENTCONFIGUPDATE']._serialized_start=1969 - _globals['_AGENTCONFIGUPDATE']._serialized_end=2136 - _globals['_CHATCONTEXT']._serialized_start=2139 - _globals['_CHATCONTEXT']._serialized_end=2512 - _globals['_CHATCONTEXT_CHATITEM']._serialized_start=2207 - _globals['_CHATCONTEXT_CHATITEM']._serialized_end=2512 - _globals['_LLMMODELUSAGE']._serialized_start=2515 - _globals['_LLMMODELUSAGE']._serialized_end=2907 - _globals['_TTSMODELUSAGE']._serialized_start=2910 - _globals['_TTSMODELUSAGE']._serialized_end=3053 - _globals['_STTMODELUSAGE']._serialized_start=3055 - _globals['_STTMODELUSAGE']._serialized_end=3172 - _globals['_INTERRUPTIONMODELUSAGE']._serialized_start=3174 - _globals['_INTERRUPTIONMODELUSAGE']._serialized_end=3255 - _globals['_EOTMODELUSAGE']._serialized_start=3257 - _globals['_EOTMODELUSAGE']._serialized_end=3329 - _globals['_MODELUSAGE']._serialized_start=3332 - _globals['_MODELUSAGE']._serialized_end=3596 - _globals['_AGENTSESSIONUSAGE']._serialized_start=3598 - _globals['_AGENTSESSIONUSAGE']._serialized_end=3665 - _globals['_DEBUGMESSAGE']._serialized_start=3667 - _globals['_DEBUGMESSAGE']._serialized_end=3723 - _globals['_AGENTSESSIONEVENT']._serialized_start=3726 - _globals['_AGENTSESSIONEVENT']._serialized_end=7573 - _globals['_AGENTSESSIONEVENT_AGENTSTATECHANGED']._serialized_start=5075 - _globals['_AGENTSESSIONEVENT_AGENTSTATECHANGED']._serialized_end=5186 - _globals['_AGENTSESSIONEVENT_USERSTATECHANGED']._serialized_start=5188 - _globals['_AGENTSESSIONEVENT_USERSTATECHANGED']._serialized_end=5296 - _globals['_AGENTSESSIONEVENT_CONVERSATIONITEMADDED']._serialized_start=5298 - _globals['_AGENTSESSIONEVENT_CONVERSATIONITEMADDED']._serialized_end=5372 - _globals['_AGENTSESSIONEVENT_USERINPUTTRANSCRIBED']._serialized_start=5374 - _globals['_AGENTSESSIONEVENT_USERINPUTTRANSCRIBED']._serialized_end=5470 - _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSSTARTED']._serialized_start=5472 - _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSSTARTED']._serialized_end=5547 - _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSEXECUTED']._serialized_start=5550 - _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSEXECUTED']._serialized_end=5692 - _globals['_AGENTSESSIONEVENT_ERROR']._serialized_start=5694 - _globals['_AGENTSESSIONEVENT_ERROR']._serialized_end=5718 - _globals['_AGENTSESSIONEVENT_OVERLAPPINGSPEECH']._serialized_start=5721 - _globals['_AGENTSESSIONEVENT_OVERLAPPINGSPEECH']._serialized_end=5923 - _globals['_AGENTSESSIONEVENT_AMDPREDICTION']._serialized_start=5926 - _globals['_AGENTSESSIONEVENT_AMDPREDICTION']._serialized_end=6232 - _globals['_AGENTSESSIONEVENT_AMDCOMPLETED']._serialized_start=6235 - _globals['_AGENTSESSIONEVENT_AMDCOMPLETED']._serialized_end=6413 - _globals['_AGENTSESSIONEVENT_EOTPREDICTION']._serialized_start=6416 - _globals['_AGENTSESSIONEVENT_EOTPREDICTION']._serialized_end=6568 - _globals['_AGENTSESSIONEVENT_SESSIONUSAGEUPDATED']._serialized_start=6570 - _globals['_AGENTSESSIONEVENT_SESSIONUSAGEUPDATED']._serialized_end=6640 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED']._serialized_start=6643 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED']._serialized_end=7430 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_STARTED']._serialized_start=7011 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_STARTED']._serialized_end=7072 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_CALLUPDATED']._serialized_start=7074 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_CALLUPDATED']._serialized_end=7151 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_ENDED']._serialized_start=7154 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_ENDED']._serialized_end=7289 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_REPLYUPDATED']._serialized_start=7292 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_REPLYUPDATED']._serialized_end=7420 - _globals['_AGENTSESSIONEVENT_SESSIONCLOSED']._serialized_start=7432 - _globals['_AGENTSESSIONEVENT_SESSIONCLOSED']._serialized_end=7521 - _globals['_AGENTSESSIONEVENT_AGENTFALSEINTERRUPTION']._serialized_start=7523 - _globals['_AGENTSESSIONEVENT_AGENTFALSEINTERRUPTION']._serialized_end=7564 - _globals['_SESSIONREQUEST']._serialized_start=7576 - _globals['_SESSIONREQUEST']._serialized_end=8974 - _globals['_SESSIONREQUEST_PING']._serialized_start=8311 - _globals['_SESSIONREQUEST_PING']._serialized_end=8317 - _globals['_SESSIONREQUEST_GETCHATHISTORY']._serialized_start=8319 - _globals['_SESSIONREQUEST_GETCHATHISTORY']._serialized_end=8335 - _globals['_SESSIONREQUEST_RUNINPUT']._serialized_start=8337 - _globals['_SESSIONREQUEST_RUNINPUT']._serialized_end=8361 - _globals['_SESSIONREQUEST_GETAGENTINFO']._serialized_start=8363 - _globals['_SESSIONREQUEST_GETAGENTINFO']._serialized_end=8377 - _globals['_SESSIONREQUEST_GETSESSIONSTATE']._serialized_start=8379 - _globals['_SESSIONREQUEST_GETSESSIONSTATE']._serialized_end=8396 - _globals['_SESSIONREQUEST_GETRTCSTATS']._serialized_start=8398 - _globals['_SESSIONREQUEST_GETRTCSTATS']._serialized_end=8411 - _globals['_SESSIONREQUEST_GETSESSIONUSAGE']._serialized_start=8413 - _globals['_SESSIONREQUEST_GETSESSIONUSAGE']._serialized_end=8430 - _globals['_SESSIONREQUEST_GETFRAMEWORKINFO']._serialized_start=8432 - _globals['_SESSIONREQUEST_GETFRAMEWORKINFO']._serialized_end=8450 - _globals['_SESSIONREQUEST_UPDATEIO']._serialized_start=8453 - _globals['_SESSIONREQUEST_UPDATEIO']._serialized_end=8884 - _globals['_SESSIONREQUEST_UPDATEIO_INPUT']._serialized_start=8599 - _globals['_SESSIONREQUEST_UPDATEIO_INPUT']._serialized_end=8698 - _globals['_SESSIONREQUEST_UPDATEIO_OUTPUT']._serialized_start=8701 - _globals['_SESSIONREQUEST_UPDATEIO_OUTPUT']._serialized_end=8863 - _globals['_SESSIONREQUEST_FINALIZESIMULATION']._serialized_start=8886 - _globals['_SESSIONREQUEST_FINALIZESIMULATION']._serialized_end=8963 - _globals['_SESSIONRESPONSE']._serialized_start=8977 - _globals['_SESSIONRESPONSE']._serialized_end=10980 - _globals['_SESSIONRESPONSE_PONG']._serialized_start=9815 - _globals['_SESSIONRESPONSE_PONG']._serialized_end=9821 - _globals['_SESSIONRESPONSE_GETCHATHISTORYRESPONSE']._serialized_start=9823 - _globals['_SESSIONRESPONSE_GETCHATHISTORYRESPONSE']._serialized_end=9899 - _globals['_SESSIONRESPONSE_GETAGENTINFORESPONSE']._serialized_start=9902 - _globals['_SESSIONRESPONSE_GETAGENTINFORESPONSE']._serialized_end=10050 - _globals['_SESSIONRESPONSE_RUNINPUTRESPONSE']._serialized_start=10052 - _globals['_SESSIONRESPONSE_RUNINPUTRESPONSE']._serialized_end=10122 - _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE']._serialized_start=10125 - _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE']._serialized_end=10444 - _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_start=10398 - _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_end=10444 - _globals['_SESSIONRESPONSE_GETRTCSTATSRESPONSE']._serialized_start=10446 - _globals['_SESSIONRESPONSE_GETRTCSTATSRESPONSE']._serialized_end=10568 - _globals['_SESSIONRESPONSE_GETSESSIONUSAGERESPONSE']._serialized_start=10570 - _globals['_SESSIONRESPONSE_GETSESSIONUSAGERESPONSE']._serialized_end=10692 - _globals['_SESSIONRESPONSE_GETFRAMEWORKINFORESPONSE']._serialized_start=10694 - _globals['_SESSIONRESPONSE_GETFRAMEWORKINFORESPONSE']._serialized_end=10754 - _globals['_SESSIONRESPONSE_UPDATEIORESPONSE']._serialized_start=10756 - _globals['_SESSIONRESPONSE_UPDATEIORESPONSE']._serialized_end=10774 - _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE']._serialized_start=10777 - _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE']._serialized_end=10958 - _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE_SIMULATIONVERDICT']._serialized_start=10906 - _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE_SIMULATIONVERDICT']._serialized_end=10958 - _globals['_AGENTSESSIONMESSAGE']._serialized_start=10983 - _globals['_AGENTSESSIONMESSAGE']._serialized_end=11809 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO']._serialized_start=11618 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO']._serialized_end=11798 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOFRAME']._serialized_start=11631 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOFRAME']._serialized_end=11729 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFLUSH']._serialized_start=11731 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFLUSH']._serialized_end=11751 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKCLEAR']._serialized_start=11753 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKCLEAR']._serialized_end=11773 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFINISHED']._serialized_start=11775 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFINISHED']._serialized_end=11798 + _globals['_FUNCTIONCALL']._serialized_end=1546 + _globals['_FUNCTIONCALLOUTPUT']._serialized_start=1549 + _globals['_FUNCTIONCALLOUTPUT']._serialized_end=1705 + _globals['_AGENTHANDOFF']._serialized_start=1708 + _globals['_AGENTHANDOFF']._serialized_end=1878 + _globals['_AGENTCONFIGUPDATE']._serialized_start=1881 + _globals['_AGENTCONFIGUPDATE']._serialized_end=2048 + _globals['_CHATCONTEXT']._serialized_start=2051 + _globals['_CHATCONTEXT']._serialized_end=2424 + _globals['_CHATCONTEXT_CHATITEM']._serialized_start=2119 + _globals['_CHATCONTEXT_CHATITEM']._serialized_end=2424 + _globals['_LLMMODELUSAGE']._serialized_start=2427 + _globals['_LLMMODELUSAGE']._serialized_end=2819 + _globals['_TTSMODELUSAGE']._serialized_start=2822 + _globals['_TTSMODELUSAGE']._serialized_end=2965 + _globals['_STTMODELUSAGE']._serialized_start=2967 + _globals['_STTMODELUSAGE']._serialized_end=3084 + _globals['_INTERRUPTIONMODELUSAGE']._serialized_start=3086 + _globals['_INTERRUPTIONMODELUSAGE']._serialized_end=3167 + _globals['_EOTMODELUSAGE']._serialized_start=3169 + _globals['_EOTMODELUSAGE']._serialized_end=3241 + _globals['_MODELUSAGE']._serialized_start=3244 + _globals['_MODELUSAGE']._serialized_end=3508 + _globals['_AGENTSESSIONUSAGE']._serialized_start=3510 + _globals['_AGENTSESSIONUSAGE']._serialized_end=3577 + _globals['_DEBUGMESSAGE']._serialized_start=3579 + _globals['_DEBUGMESSAGE']._serialized_end=3635 + _globals['_AGENTSESSIONEVENT']._serialized_start=3638 + _globals['_AGENTSESSIONEVENT']._serialized_end=7485 + _globals['_AGENTSESSIONEVENT_AGENTSTATECHANGED']._serialized_start=4987 + _globals['_AGENTSESSIONEVENT_AGENTSTATECHANGED']._serialized_end=5098 + _globals['_AGENTSESSIONEVENT_USERSTATECHANGED']._serialized_start=5100 + _globals['_AGENTSESSIONEVENT_USERSTATECHANGED']._serialized_end=5208 + _globals['_AGENTSESSIONEVENT_CONVERSATIONITEMADDED']._serialized_start=5210 + _globals['_AGENTSESSIONEVENT_CONVERSATIONITEMADDED']._serialized_end=5284 + _globals['_AGENTSESSIONEVENT_USERINPUTTRANSCRIBED']._serialized_start=5286 + _globals['_AGENTSESSIONEVENT_USERINPUTTRANSCRIBED']._serialized_end=5382 + _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSSTARTED']._serialized_start=5384 + _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSSTARTED']._serialized_end=5459 + _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSEXECUTED']._serialized_start=5462 + _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSEXECUTED']._serialized_end=5604 + _globals['_AGENTSESSIONEVENT_ERROR']._serialized_start=5606 + _globals['_AGENTSESSIONEVENT_ERROR']._serialized_end=5630 + _globals['_AGENTSESSIONEVENT_OVERLAPPINGSPEECH']._serialized_start=5633 + _globals['_AGENTSESSIONEVENT_OVERLAPPINGSPEECH']._serialized_end=5835 + _globals['_AGENTSESSIONEVENT_AMDPREDICTION']._serialized_start=5838 + _globals['_AGENTSESSIONEVENT_AMDPREDICTION']._serialized_end=6144 + _globals['_AGENTSESSIONEVENT_AMDCOMPLETED']._serialized_start=6147 + _globals['_AGENTSESSIONEVENT_AMDCOMPLETED']._serialized_end=6325 + _globals['_AGENTSESSIONEVENT_EOTPREDICTION']._serialized_start=6328 + _globals['_AGENTSESSIONEVENT_EOTPREDICTION']._serialized_end=6480 + _globals['_AGENTSESSIONEVENT_SESSIONUSAGEUPDATED']._serialized_start=6482 + _globals['_AGENTSESSIONEVENT_SESSIONUSAGEUPDATED']._serialized_end=6552 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED']._serialized_start=6555 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED']._serialized_end=7342 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_STARTED']._serialized_start=6923 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_STARTED']._serialized_end=6984 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_CALLUPDATED']._serialized_start=6986 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_CALLUPDATED']._serialized_end=7063 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_ENDED']._serialized_start=7066 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_ENDED']._serialized_end=7201 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_REPLYUPDATED']._serialized_start=7204 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_REPLYUPDATED']._serialized_end=7332 + _globals['_AGENTSESSIONEVENT_SESSIONCLOSED']._serialized_start=7344 + _globals['_AGENTSESSIONEVENT_SESSIONCLOSED']._serialized_end=7433 + _globals['_AGENTSESSIONEVENT_AGENTFALSEINTERRUPTION']._serialized_start=7435 + _globals['_AGENTSESSIONEVENT_AGENTFALSEINTERRUPTION']._serialized_end=7476 + _globals['_SESSIONREQUEST']._serialized_start=7488 + _globals['_SESSIONREQUEST']._serialized_end=8886 + _globals['_SESSIONREQUEST_PING']._serialized_start=8223 + _globals['_SESSIONREQUEST_PING']._serialized_end=8229 + _globals['_SESSIONREQUEST_GETCHATHISTORY']._serialized_start=8231 + _globals['_SESSIONREQUEST_GETCHATHISTORY']._serialized_end=8247 + _globals['_SESSIONREQUEST_RUNINPUT']._serialized_start=8249 + _globals['_SESSIONREQUEST_RUNINPUT']._serialized_end=8273 + _globals['_SESSIONREQUEST_GETAGENTINFO']._serialized_start=8275 + _globals['_SESSIONREQUEST_GETAGENTINFO']._serialized_end=8289 + _globals['_SESSIONREQUEST_GETSESSIONSTATE']._serialized_start=8291 + _globals['_SESSIONREQUEST_GETSESSIONSTATE']._serialized_end=8308 + _globals['_SESSIONREQUEST_GETRTCSTATS']._serialized_start=8310 + _globals['_SESSIONREQUEST_GETRTCSTATS']._serialized_end=8323 + _globals['_SESSIONREQUEST_GETSESSIONUSAGE']._serialized_start=8325 + _globals['_SESSIONREQUEST_GETSESSIONUSAGE']._serialized_end=8342 + _globals['_SESSIONREQUEST_GETFRAMEWORKINFO']._serialized_start=8344 + _globals['_SESSIONREQUEST_GETFRAMEWORKINFO']._serialized_end=8362 + _globals['_SESSIONREQUEST_UPDATEIO']._serialized_start=8365 + _globals['_SESSIONREQUEST_UPDATEIO']._serialized_end=8796 + _globals['_SESSIONREQUEST_UPDATEIO_INPUT']._serialized_start=8511 + _globals['_SESSIONREQUEST_UPDATEIO_INPUT']._serialized_end=8610 + _globals['_SESSIONREQUEST_UPDATEIO_OUTPUT']._serialized_start=8613 + _globals['_SESSIONREQUEST_UPDATEIO_OUTPUT']._serialized_end=8775 + _globals['_SESSIONREQUEST_FINALIZESIMULATION']._serialized_start=8798 + _globals['_SESSIONREQUEST_FINALIZESIMULATION']._serialized_end=8875 + _globals['_SESSIONRESPONSE']._serialized_start=8889 + _globals['_SESSIONRESPONSE']._serialized_end=10892 + _globals['_SESSIONRESPONSE_PONG']._serialized_start=9727 + _globals['_SESSIONRESPONSE_PONG']._serialized_end=9733 + _globals['_SESSIONRESPONSE_GETCHATHISTORYRESPONSE']._serialized_start=9735 + _globals['_SESSIONRESPONSE_GETCHATHISTORYRESPONSE']._serialized_end=9811 + _globals['_SESSIONRESPONSE_GETAGENTINFORESPONSE']._serialized_start=9814 + _globals['_SESSIONRESPONSE_GETAGENTINFORESPONSE']._serialized_end=9962 + _globals['_SESSIONRESPONSE_RUNINPUTRESPONSE']._serialized_start=9964 + _globals['_SESSIONRESPONSE_RUNINPUTRESPONSE']._serialized_end=10034 + _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE']._serialized_start=10037 + _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE']._serialized_end=10356 + _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_start=10310 + _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_end=10356 + _globals['_SESSIONRESPONSE_GETRTCSTATSRESPONSE']._serialized_start=10358 + _globals['_SESSIONRESPONSE_GETRTCSTATSRESPONSE']._serialized_end=10480 + _globals['_SESSIONRESPONSE_GETSESSIONUSAGERESPONSE']._serialized_start=10482 + _globals['_SESSIONRESPONSE_GETSESSIONUSAGERESPONSE']._serialized_end=10604 + _globals['_SESSIONRESPONSE_GETFRAMEWORKINFORESPONSE']._serialized_start=10606 + _globals['_SESSIONRESPONSE_GETFRAMEWORKINFORESPONSE']._serialized_end=10666 + _globals['_SESSIONRESPONSE_UPDATEIORESPONSE']._serialized_start=10668 + _globals['_SESSIONRESPONSE_UPDATEIORESPONSE']._serialized_end=10686 + _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE']._serialized_start=10689 + _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE']._serialized_end=10870 + _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE_SIMULATIONVERDICT']._serialized_start=10818 + _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE_SIMULATIONVERDICT']._serialized_end=10870 + _globals['_AGENTSESSIONMESSAGE']._serialized_start=10895 + _globals['_AGENTSESSIONMESSAGE']._serialized_end=11721 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO']._serialized_start=11530 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO']._serialized_end=11710 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOFRAME']._serialized_start=11543 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOFRAME']._serialized_end=11641 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFLUSH']._serialized_start=11643 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFLUSH']._serialized_end=11663 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKCLEAR']._serialized_start=11665 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKCLEAR']._serialized_end=11685 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFINISHED']._serialized_start=11687 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFINISHED']._serialized_end=11710 # @@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 141df29c..9ae81ac9 100644 --- a/livekit-protocol/livekit/protocol/agent_pb/agent_session.pyi +++ b/livekit-protocol/livekit/protocol/agent_pb/agent_session.pyi @@ -172,27 +172,18 @@ class ChatMessage(_message.Message): def __init__(self, id: _Optional[str] = ..., role: _Optional[_Union[ChatRole, str]] = ..., content: _Optional[_Iterable[_Union[ChatMessage.ChatContent, _Mapping]]] = ..., interrupted: bool = ..., transcript_confidence: _Optional[float] = ..., extra: _Optional[_Mapping[str, str]] = ..., metrics: _Optional[_Union[MetricsReport, _Mapping]] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... class FunctionCall(_message.Message): - __slots__ = ("id", "call_id", "arguments", "name", "created_at", "extra") - class ExtraEntry(_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: ... + __slots__ = ("id", "call_id", "arguments", "name", "created_at") ID_FIELD_NUMBER: _ClassVar[int] CALL_ID_FIELD_NUMBER: _ClassVar[int] ARGUMENTS_FIELD_NUMBER: _ClassVar[int] NAME_FIELD_NUMBER: _ClassVar[int] CREATED_AT_FIELD_NUMBER: _ClassVar[int] - EXTRA_FIELD_NUMBER: _ClassVar[int] id: str call_id: str arguments: str name: str created_at: _timestamp_pb2.Timestamp - extra: _containers.ScalarMap[str, str] - def __init__(self, id: _Optional[str] = ..., call_id: _Optional[str] = ..., arguments: _Optional[str] = ..., name: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., extra: _Optional[_Mapping[str, str]] = ...) -> None: ... + def __init__(self, id: _Optional[str] = ..., call_id: _Optional[str] = ..., arguments: _Optional[str] = ..., name: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... class FunctionCallOutput(_message.Message): __slots__ = ("id", "name", "call_id", "output", "is_error", "created_at") diff --git a/livekit-protocol/livekit/protocol/agent_simulation.py b/livekit-protocol/livekit/protocol/agent_simulation.py index 24dd5381..bed25fab 100644 --- a/livekit-protocol/livekit/protocol/agent_simulation.py +++ b/livekit-protocol/livekit/protocol/agent_simulation.py @@ -29,7 +29,7 @@ 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\x1egoogle/protobuf/duration.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\"\x9b\x44\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\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\x12\x13\n\x0b\x63oncurrency\x18\x11 \x01(\x05\x12%\n\x04mode\x18\x12 \x01(\x0e\x32\x17.livekit.SimulationMode\x12\x32\n\x07metrics\x18\x13 \x01(\x0b\x32!.livekit.SimulationRun.RunMetrics\x12\x14\n\x0csummary_zstd\x18\x14 \x01(\x0c\x12\x18\n\x0bissue_count\x18\x15 \x01(\x05H\x00\x88\x01\x01\x12*\n\x02\x63i\x18\x16 \x01(\x0b\x32\x19.livekit.SimulationRun.CIH\x01\x88\x01\x01\x12=\n\x08sampling\x18\x17 \x01(\x0b\x32&.livekit.SimulationRun.SamplingOptionsH\x02\x88\x01\x01\x1a\xfd\x05\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\x12\x32\n\x07metrics\x18\x0e \x01(\x0b\x32!.livekit.SimulationRun.JobMetrics\x12\x13\n\x0bscenario_id\x18\x0f \x01(\t\x12\x0e\n\x06sample\x18\x10 \x01(\x05\x12@\n\x0e\x66\x61ilure_reason\x18\x13 \x01(\x0e\x32(.livekit.SimulationRun.Job.FailureReason\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\x04\"V\n\rFailureReason\x12\x1e\n\x1a\x46\x41ILURE_REASON_UNSPECIFIED\x10\x00\x12%\n!FAILURE_REASON_AGENT_JOIN_TIMEOUT\x10\x01J\x04\x08\t\x10\n\x1a\xd9!\n\nJobMetrics\x12\x1c\n\x0ftask_completion\x18\x03 \x01(\x02H\x00\x88\x01\x01\x12\x1a\n\roverall_score\x18\x14 \x01(\x02H\x01\x88\x01\x01\x12\x32\n\x03stt\x18\x04 \x01(\x0b\x32%.livekit.SimulationRun.JobMetrics.STT\x12\x32\n\x03llm\x18\x05 \x01(\x0b\x32%.livekit.SimulationRun.JobMetrics.LLM\x12\x32\n\x03tts\x18\x06 \x01(\x0b\x32%.livekit.SimulationRun.JobMetrics.TTS\x12\x44\n\x0c\x63onversation\x18\x07 \x01(\x0b\x32..livekit.SimulationRun.JobMetrics.Conversation\x12\x35\n\x05turns\x18\t \x03(\x0b\x32&.livekit.SimulationRun.JobMetrics.Turn\x12\x13\n\x0bjudge_model\x18\n \x01(\t\x12\x1a\n\x12has_remote_session\x18\x0c \x01(\x08\x12&\n\x02t0\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x0b\x63onciseness\x18\x0e \x01(\x02H\x02\x88\x01\x01\x12#\n\x16unnecessary_tool_calls\x18\x0f \x01(\x08H\x03\x88\x01\x01\x12\x1d\n\x10information_loss\x18\x10 \x01(\x08H\x04\x88\x01\x01\x12!\n\x14redundant_statements\x18\x11 \x01(\x08H\x05\x88\x01\x01\x12\"\n\x15poor_question_quality\x18\x12 \x01(\x08H\x06\x88\x01\x01\x12%\n\x18\x63onversation_progression\x18\x13 \x01(\x02H\x07\x88\x01\x01\x12?\n\nend_reason\x18\x15 \x01(\x0e\x32+.livekit.SimulationRun.JobMetrics.EndReason\x12\x17\n\x0f\x63\x61ller_language\x18\x16 \x01(\t\x12\x1e\n\x16\x63\x61ller_listen_language\x18\x17 \x01(\t\x12\x33\n\x0bimpairments\x18\x18 \x01(\x0b\x32\x1e.livekit.SimulationImpairments\x1a\xdb\x04\n\x03STT\x12\x10\n\x03wer\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x12\n\x05words\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0bword_errors\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x10\n\x03\x63\x65r\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x12\n\x05\x63hars\x18\t \x01(\rH\x04\x88\x01\x01\x12\x18\n\x0b\x63har_errors\x18\n \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0cstt_delay_ms\x18\x08 \x01(\rH\x06\x88\x01\x01\x12\x1f\n\x12\x65ntity_recognition\x18\x0b \x01(\x02H\x07\x88\x01\x01\x12\x1d\n\x10\x65ntities_uttered\x18\x0c \x01(\rH\x08\x88\x01\x01\x12 \n\x13\x65ntities_recognized\x18\r \x01(\rH\t\x88\x01\x01\x12\x1a\n\rentity_recall\x18\x0e \x01(\x02H\n\x88\x01\x01\x12&\n\x19\x65ntities_acquired_uttered\x18\x0f \x01(\rH\x0b\x88\x01\x01\x12)\n\x1c\x65ntities_acquired_recognized\x18\x10 \x01(\rH\x0c\x88\x01\x01\x42\x06\n\x04_werB\x08\n\x06_wordsB\x0e\n\x0c_word_errorsB\x06\n\x04_cerB\x08\n\x06_charsB\x0e\n\x0c_char_errorsB\x0f\n\r_stt_delay_msB\x15\n\x13_entity_recognitionB\x13\n\x11_entities_utteredB\x16\n\x14_entities_recognizedB\x10\n\x0e_entity_recallB\x1c\n\x1a_entities_acquired_utteredB\x1f\n\x1d_entities_acquired_recognized\x1a\x7f\n\x03LLM\x12\x14\n\x07ttft_ms\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07ttfs_ms\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x11tokens_per_second\x18\x03 \x01(\x02H\x02\x88\x01\x01\x42\n\n\x08_ttft_msB\n\n\x08_ttfs_msB\x14\n\x12_tokens_per_second\x1a\xd1\x04\n\x03TTS\x12\x14\n\x07ttfb_ms\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03wer\x18\x03 \x01(\x02H\x01\x88\x01\x01\x12\x12\n\x05words\x18\x07 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bword_errors\x18\x08 \x01(\rH\x03\x88\x01\x01\x12\x10\n\x03\x63\x65r\x18\t \x01(\x02H\x04\x88\x01\x01\x12\x12\n\x05\x63hars\x18\n \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0b\x63har_errors\x18\x0b \x01(\rH\x06\x88\x01\x01\x12\x1f\n\x12\x65ntity_recognition\x18\x0e \x01(\x02H\x07\x88\x01\x01\x12\x1d\n\x10\x65ntities_uttered\x18\x0f \x01(\rH\x08\x88\x01\x01\x12 \n\x13\x65ntities_recognized\x18\x10 \x01(\rH\t\x88\x01\x01\x12\x1a\n\rentity_recall\x18\x11 \x01(\x02H\n\x88\x01\x01\x12&\n\x19\x65ntities_acquired_uttered\x18\x12 \x01(\rH\x0b\x88\x01\x01\x12)\n\x1c\x65ntities_acquired_recognized\x18\x13 \x01(\rH\x0c\x88\x01\x01\x42\n\n\x08_ttfb_msB\x06\n\x04_werB\x08\n\x06_wordsB\x0e\n\x0c_word_errorsB\x06\n\x04_cerB\x08\n\x06_charsB\x0e\n\x0c_char_errorsB\x15\n\x13_entity_recognitionB\x13\n\x11_entities_utteredB\x16\n\x14_entities_recognizedB\x10\n\x0e_entity_recallB\x1c\n\x1a_entities_acquired_utteredB\x1f\n\x1d_entities_acquired_recognized\x1a\xb8\x06\n\x0c\x43onversation\x12\x1e\n\x11turn_taking_score\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12%\n\x18heard_e2e_latency_p50_ms\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12%\n\x18heard_e2e_latency_p95_ms\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12%\n\x18heard_e2e_latency_p99_ms\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x1d\n\x10time_to_yield_ms\x18\x05 \x01(\rH\x04\x88\x01\x01\x12$\n\x17\x65ot_misprediction_count\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x1a\n\roverlap_ratio\x18\x07 \x01(\x02H\x06\x88\x01\x01\x12\x1e\n\x11overlap_speech_ms\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x1c\n\x0ftotal_speech_ms\x18\t \x01(\rH\x08\x88\x01\x01\x12\"\n\x15\x61wkward_silence_count\x18\x0b \x01(\rH\t\x88\x01\x01\x12\x1d\n\x10unanswered_turns\x18\x0c \x01(\rH\n\x88\x01\x01\x12%\n\x18\x66\x61lse_interruption_count\x18\r \x01(\rH\x0b\x88\x01\x01\x12\x1b\n\x0e\x65\x32\x65_latency_ms\x18\x0f \x01(\rH\x0c\x88\x01\x01\x12\x1e\n\x11\x62\x61\x63kchannel_count\x18\x10 \x01(\rH\r\x88\x01\x01\x42\x14\n\x12_turn_taking_scoreB\x1b\n\x19_heard_e2e_latency_p50_msB\x1b\n\x19_heard_e2e_latency_p95_msB\x1b\n\x19_heard_e2e_latency_p99_msB\x13\n\x11_time_to_yield_msB\x1a\n\x18_eot_misprediction_countB\x10\n\x0e_overlap_ratioB\x14\n\x12_overlap_speech_msB\x12\n\x10_total_speech_msB\x18\n\x16_awkward_silence_countB\x13\n\x11_unanswered_turnsB\x1b\n\x19_false_interruption_countB\x11\n\x0f_e2e_latency_msB\x14\n\x12_backchannel_count\x1a\xf7\x06\n\x04Turn\x12\r\n\x05index\x18\x01 \x01(\r\x12%\n\x04role\x18\x02 \x01(\x0e\x32\x17.livekit.agent.ChatRole\x12\x0c\n\x04text\x18\x12 \x01(\t\x12\x15\n\x08start_ms\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06\x65nd_ms\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cstt_delay_ms\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bllm_ttft_ms\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bllm_ttfs_ms\x18\x07 \x01(\rH\x04\x88\x01\x01\x12\x14\n\x07llm_tps\x18\x08 \x01(\x02H\x05\x88\x01\x01\x12\x18\n\x0btts_ttfb_ms\x18\t \x01(\rH\x06\x88\x01\x01\x12\x1b\n\x0e\x65\x32\x65_latency_ms\x18\n \x01(\rH\x07\x88\x01\x01\x12!\n\x14heard_e2e_latency_ms\x18\x0b \x01(\x05H\x08\x88\x01\x01\x12\x1d\n\x10time_to_yield_ms\x18\x0c \x01(\rH\t\x88\x01\x01\x12\x1e\n\x11turn_taking_score\x18\r \x01(\x02H\n\x88\x01\x01\x12\x18\n\x0b\x63onciseness\x18\x0e \x01(\x02H\x0b\x88\x01\x01\x12\x1e\n\x11\x65ot_misprediction\x18\x0f \x01(\x08H\x0c\x88\x01\x01\x12\x1c\n\x0f\x61wkward_silence\x18\x10 \x01(\x08H\r\x88\x01\x01\x12\x17\n\nunanswered\x18\x11 \x01(\x08H\x0e\x88\x01\x01\x12?\n\x08\x65ntities\x18\x13 \x03(\x0b\x32-.livekit.SimulationRun.JobMetrics.Turn.Entity\x12\x0f\n\x07item_id\x18\x14 \x01(\t\x1a\x39\n\x06\x45ntity\x12\x0c\n\x04said\x18\x01 \x01(\t\x12\r\n\x05heard\x18\x02 \x01(\t\x12\x12\n\nrecognized\x18\x03 \x01(\x08\x42\x0b\n\t_start_msB\t\n\x07_end_msB\x0f\n\r_stt_delay_msB\x0e\n\x0c_llm_ttft_msB\x0e\n\x0c_llm_ttfs_msB\n\n\x08_llm_tpsB\x0e\n\x0c_tts_ttfb_msB\x11\n\x0f_e2e_latency_msB\x17\n\x15_heard_e2e_latency_msB\x13\n\x11_time_to_yield_msB\x14\n\x12_turn_taking_scoreB\x0e\n\x0c_concisenessB\x14\n\x12_eot_mispredictionB\x12\n\x10_awkward_silenceB\r\n\x0b_unanswered\"\xd7\x01\n\tEndReason\x12\x1a\n\x16\x45ND_REASON_UNSPECIFIED\x10\x00\x12!\n\x1d\x45ND_REASON_SCENARIO_COMPLETED\x10\x01\x12\x1a\n\x16\x45ND_REASON_AGENT_ENDED\x10\x02\x12\x19\n\x15\x45ND_REASON_INACTIVITY\x10\x03\x12\x19\n\x15\x45ND_REASON_TURN_LIMIT\x10\x04\x12\x1d\n\x19\x45ND_REASON_EMPTY_RESPONSE\x10\x05\x12\x1a\n\x16\x45ND_REASON_AGENT_ERROR\x10\x06\x42\x12\n\x10_task_completionB\x10\n\x0e_overall_scoreB\x0e\n\x0c_concisenessB\x19\n\x17_unnecessary_tool_callsB\x13\n\x11_information_lossB\x17\n\x15_redundant_statementsB\x18\n\x16_poor_question_qualityB\x1b\n\x19_conversation_progressionJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x0e\x61\x63\x63uracy_scoreR\x10\x65xperience_score\x1a\xf0\x03\n\nRunMetrics\x12\x1f\n\x12scenario_pass_rate\x18\x03 \x01(\x02H\x00\x88\x01\x01\x12\x1a\n\roverall_score\x18\n \x01(\x02H\x01\x88\x01\x01\x12\x32\n\x03stt\x18\x04 \x01(\x0b\x32%.livekit.SimulationRun.JobMetrics.STT\x12\x32\n\x03llm\x18\x05 \x01(\x0b\x32%.livekit.SimulationRun.JobMetrics.LLM\x12\x32\n\x03tts\x18\x06 \x01(\x0b\x32%.livekit.SimulationRun.JobMetrics.TTS\x12\x44\n\x0c\x63onversation\x18\x07 \x01(\x0b\x32..livekit.SimulationRun.JobMetrics.Conversation\x12\x18\n\x0b\x63onciseness\x18\x08 \x01(\x02H\x02\x88\x01\x01\x12%\n\x18\x63onversation_progression\x18\t \x01(\x02H\x03\x88\x01\x01\x42\x15\n\x13_scenario_pass_rateB\x10\n\x0e_overall_scoreB\x0e\n\x0c_concisenessB\x1b\n\x19_conversation_progressionJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x0e\x61\x63\x63uracy_scoreR\x10\x65xperience_score\x1am\n\x02\x43I\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\x12\n\ncommit_sha\x18\x02 \x01(\t\x12\x0b\n\x03ref\x18\x03 \x01(\t\x12\x14\n\x0cpull_request\x18\x04 \x01(\t\x12\x0f\n\x07run_url\x18\x05 \x01(\t\x12\r\n\x05\x61\x63tor\x18\x06 \x01(\t\x1a\x35\n\x0fSamplingOptions\x12\x0f\n\x07samples\x18\x01 \x01(\x05\x12\x11\n\tpass_rate\x18\x02 \x01(\x01\x1a\x9e\x05\n\x06\x43reate\x1a\xad\x04\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x12\n\nagent_name\x18\x02 \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\x12\x18\n\x0b\x63oncurrency\x18\x08 \x01(\x05H\x01\x88\x01\x01\x12%\n\x04mode\x18\t \x01(\x0e\x32\x17.livekit.SimulationMode\x12\x18\n\x10\x62\x61\x63kground_noise\x18\n \x01(\x08\x12\x1e\n\x16low_quality_microphone\x18\x0b \x01(\x08\x12\x13\n\x0bpacket_loss\x18\x0c \x01(\x08\x12*\n\x02\x63i\x18\r \x01(\x0b\x32\x19.livekit.SimulationRun.CIH\x02\x88\x01\x01\x12=\n\x08sampling\x18\x0e \x01(\x0b\x32&.livekit.SimulationRun.SamplingOptionsH\x03\x88\x01\x01\x12\x13\n\x0bsip_call_to\x18\x0f \x01(\t\x12\x14\n\x0csip_trunk_id\x18\x10 \x01(\t\x12\x12\n\nsip_number\x18\x11 \x01(\t\x12\x12\n\ndeployment\x18\x12 \x01(\tB\x11\n\x0f_scenario_groupB\x0e\n\x0c_concurrencyB\x05\n\x03_ciB\x0b\n\t_samplingJ\x04\x08\x03\x10\x04R\x11\x61gent_description\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\xed\x03\n\x04List\x1a\xff\x02\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\x12\x33\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x31\n\x08\x65nd_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12\x17\n\nagent_name\x18\x06 \x01(\tH\x04\x88\x01\x01\x12*\n\x04mode\x18\x07 \x01(\x0e\x32\x17.livekit.SimulationModeH\x05\x88\x01\x01\x42\t\n\x07_statusB\r\n\x0b_page_tokenB\r\n\x0b_start_timeB\x0b\n\t_end_timeB\r\n\x0b_agent_nameB\x07\n\x05_mode\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\x1a\xdd\x03\n\x06\x43ounts\x1a\x97\x02\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12.\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x32\n\x06status\x18\x04 \x01(\x0e\x32\x1d.livekit.SimulationRun.StatusH\x00\x88\x01\x01\x12\x17\n\nagent_name\x18\x05 \x01(\tH\x01\x88\x01\x01\x12*\n\x04mode\x18\x06 \x01(\x0e\x32\x17.livekit.SimulationModeH\x02\x88\x01\x01\x42\t\n\x07_statusB\r\n\x0b_agent_nameB\x07\n\x05_mode\x1an\n\x08Response\x12\x35\n\x07\x62uckets\x18\x01 \x03(\x0b\x32$.livekit.SimulationRun.Counts.Bucket\x12+\n\x08interval\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x1aI\n\x06\x42ucket\x12\x30\n\x0c\x62ucket_start\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\r\n\x05\x63ount\x18\x02 \x01(\x04\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\x42\x0e\n\x0c_issue_countB\x05\n\x03_ciB\x0b\n\t_samplingJ\x04\x08\x08\x10\tR\x07summary\"\xc8\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\x12\n\n\x02id\x18\x06 \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\"O\n\rScenarioGroup\x12\x0c\n\x04name\x18\x01 \x01(\t\x12$\n\tscenarios\x18\x02 \x03(\x0b\x32\x11.livekit.Scenario\x12\n\n\x02id\x18\x03 \x01(\t\"f\n\x15SimulationImpairments\x12\x18\n\x10\x62\x61\x63kground_noise\x18\x01 \x01(\x08\x12\x1e\n\x16low_quality_microphone\x18\x02 \x01(\x08\x12\x13\n\x0bpacket_loss\x18\x03 \x01(\x08\"\x8b\x01\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.Scenario\x12%\n\x04mode\x18\x04 \x01(\x0e\x32\x17.livekit.SimulationMode*f\n\x0eSimulationMode\x12\x1f\n\x1bSIMULATION_MODE_UNSPECIFIED\x10\x00\x12\x18\n\x14SIMULATION_MODE_TEXT\x10\x01\x12\x19\n\x15SIMULATION_MODE_AUDIO\x10\x02\x32\x84\x06\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\x43ountSimulationRuns\x12%.livekit.SimulationRun.Counts.Request\x1a&.livekit.SimulationRun.Counts.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') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1elivekit_agent_simulation.proto\x12\x07livekit\x1a!agent/livekit_agent_session.proto\x1a\x1egoogle/protobuf/duration.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\"\xc9\x44\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\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\x12\x13\n\x0b\x63oncurrency\x18\x11 \x01(\x05\x12%\n\x04mode\x18\x12 \x01(\x0e\x32\x17.livekit.SimulationMode\x12\x32\n\x07metrics\x18\x13 \x01(\x0b\x32!.livekit.SimulationRun.RunMetrics\x12\x14\n\x0csummary_zstd\x18\x14 \x01(\x0c\x12\x18\n\x0bissue_count\x18\x15 \x01(\x05H\x00\x88\x01\x01\x12*\n\x02\x63i\x18\x16 \x01(\x0b\x32\x19.livekit.SimulationRun.CIH\x01\x88\x01\x01\x12=\n\x08sampling\x18\x17 \x01(\x0b\x32&.livekit.SimulationRun.SamplingOptionsH\x02\x88\x01\x01\x12\x15\n\rpersona_model\x18\x18 \x01(\t\x1a\xfd\x05\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\x12\x32\n\x07metrics\x18\x0e \x01(\x0b\x32!.livekit.SimulationRun.JobMetrics\x12\x13\n\x0bscenario_id\x18\x0f \x01(\t\x12\x0e\n\x06sample\x18\x10 \x01(\x05\x12@\n\x0e\x66\x61ilure_reason\x18\x13 \x01(\x0e\x32(.livekit.SimulationRun.Job.FailureReason\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\x04\"V\n\rFailureReason\x12\x1e\n\x1a\x46\x41ILURE_REASON_UNSPECIFIED\x10\x00\x12%\n!FAILURE_REASON_AGENT_JOIN_TIMEOUT\x10\x01J\x04\x08\t\x10\n\x1a\xd9!\n\nJobMetrics\x12\x1c\n\x0ftask_completion\x18\x03 \x01(\x02H\x00\x88\x01\x01\x12\x1a\n\roverall_score\x18\x14 \x01(\x02H\x01\x88\x01\x01\x12\x32\n\x03stt\x18\x04 \x01(\x0b\x32%.livekit.SimulationRun.JobMetrics.STT\x12\x32\n\x03llm\x18\x05 \x01(\x0b\x32%.livekit.SimulationRun.JobMetrics.LLM\x12\x32\n\x03tts\x18\x06 \x01(\x0b\x32%.livekit.SimulationRun.JobMetrics.TTS\x12\x44\n\x0c\x63onversation\x18\x07 \x01(\x0b\x32..livekit.SimulationRun.JobMetrics.Conversation\x12\x35\n\x05turns\x18\t \x03(\x0b\x32&.livekit.SimulationRun.JobMetrics.Turn\x12\x13\n\x0bjudge_model\x18\n \x01(\t\x12\x1a\n\x12has_remote_session\x18\x0c \x01(\x08\x12&\n\x02t0\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x18\n\x0b\x63onciseness\x18\x0e \x01(\x02H\x02\x88\x01\x01\x12#\n\x16unnecessary_tool_calls\x18\x0f \x01(\x08H\x03\x88\x01\x01\x12\x1d\n\x10information_loss\x18\x10 \x01(\x08H\x04\x88\x01\x01\x12!\n\x14redundant_statements\x18\x11 \x01(\x08H\x05\x88\x01\x01\x12\"\n\x15poor_question_quality\x18\x12 \x01(\x08H\x06\x88\x01\x01\x12%\n\x18\x63onversation_progression\x18\x13 \x01(\x02H\x07\x88\x01\x01\x12?\n\nend_reason\x18\x15 \x01(\x0e\x32+.livekit.SimulationRun.JobMetrics.EndReason\x12\x17\n\x0f\x63\x61ller_language\x18\x16 \x01(\t\x12\x1e\n\x16\x63\x61ller_listen_language\x18\x17 \x01(\t\x12\x33\n\x0bimpairments\x18\x18 \x01(\x0b\x32\x1e.livekit.SimulationImpairments\x1a\xdb\x04\n\x03STT\x12\x10\n\x03wer\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x12\n\x05words\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0bword_errors\x18\x03 \x01(\rH\x02\x88\x01\x01\x12\x10\n\x03\x63\x65r\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x12\n\x05\x63hars\x18\t \x01(\rH\x04\x88\x01\x01\x12\x18\n\x0b\x63har_errors\x18\n \x01(\rH\x05\x88\x01\x01\x12\x19\n\x0cstt_delay_ms\x18\x08 \x01(\rH\x06\x88\x01\x01\x12\x1f\n\x12\x65ntity_recognition\x18\x0b \x01(\x02H\x07\x88\x01\x01\x12\x1d\n\x10\x65ntities_uttered\x18\x0c \x01(\rH\x08\x88\x01\x01\x12 \n\x13\x65ntities_recognized\x18\r \x01(\rH\t\x88\x01\x01\x12\x1a\n\rentity_recall\x18\x0e \x01(\x02H\n\x88\x01\x01\x12&\n\x19\x65ntities_acquired_uttered\x18\x0f \x01(\rH\x0b\x88\x01\x01\x12)\n\x1c\x65ntities_acquired_recognized\x18\x10 \x01(\rH\x0c\x88\x01\x01\x42\x06\n\x04_werB\x08\n\x06_wordsB\x0e\n\x0c_word_errorsB\x06\n\x04_cerB\x08\n\x06_charsB\x0e\n\x0c_char_errorsB\x0f\n\r_stt_delay_msB\x15\n\x13_entity_recognitionB\x13\n\x11_entities_utteredB\x16\n\x14_entities_recognizedB\x10\n\x0e_entity_recallB\x1c\n\x1a_entities_acquired_utteredB\x1f\n\x1d_entities_acquired_recognized\x1a\x7f\n\x03LLM\x12\x14\n\x07ttft_ms\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07ttfs_ms\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x1e\n\x11tokens_per_second\x18\x03 \x01(\x02H\x02\x88\x01\x01\x42\n\n\x08_ttft_msB\n\n\x08_ttfs_msB\x14\n\x12_tokens_per_second\x1a\xd1\x04\n\x03TTS\x12\x14\n\x07ttfb_ms\x18\x02 \x01(\rH\x00\x88\x01\x01\x12\x10\n\x03wer\x18\x03 \x01(\x02H\x01\x88\x01\x01\x12\x12\n\x05words\x18\x07 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bword_errors\x18\x08 \x01(\rH\x03\x88\x01\x01\x12\x10\n\x03\x63\x65r\x18\t \x01(\x02H\x04\x88\x01\x01\x12\x12\n\x05\x63hars\x18\n \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0b\x63har_errors\x18\x0b \x01(\rH\x06\x88\x01\x01\x12\x1f\n\x12\x65ntity_recognition\x18\x0e \x01(\x02H\x07\x88\x01\x01\x12\x1d\n\x10\x65ntities_uttered\x18\x0f \x01(\rH\x08\x88\x01\x01\x12 \n\x13\x65ntities_recognized\x18\x10 \x01(\rH\t\x88\x01\x01\x12\x1a\n\rentity_recall\x18\x11 \x01(\x02H\n\x88\x01\x01\x12&\n\x19\x65ntities_acquired_uttered\x18\x12 \x01(\rH\x0b\x88\x01\x01\x12)\n\x1c\x65ntities_acquired_recognized\x18\x13 \x01(\rH\x0c\x88\x01\x01\x42\n\n\x08_ttfb_msB\x06\n\x04_werB\x08\n\x06_wordsB\x0e\n\x0c_word_errorsB\x06\n\x04_cerB\x08\n\x06_charsB\x0e\n\x0c_char_errorsB\x15\n\x13_entity_recognitionB\x13\n\x11_entities_utteredB\x16\n\x14_entities_recognizedB\x10\n\x0e_entity_recallB\x1c\n\x1a_entities_acquired_utteredB\x1f\n\x1d_entities_acquired_recognized\x1a\xb8\x06\n\x0c\x43onversation\x12\x1e\n\x11turn_taking_score\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12%\n\x18heard_e2e_latency_p50_ms\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12%\n\x18heard_e2e_latency_p95_ms\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12%\n\x18heard_e2e_latency_p99_ms\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x1d\n\x10time_to_yield_ms\x18\x05 \x01(\rH\x04\x88\x01\x01\x12$\n\x17\x65ot_misprediction_count\x18\x06 \x01(\rH\x05\x88\x01\x01\x12\x1a\n\roverlap_ratio\x18\x07 \x01(\x02H\x06\x88\x01\x01\x12\x1e\n\x11overlap_speech_ms\x18\x08 \x01(\rH\x07\x88\x01\x01\x12\x1c\n\x0ftotal_speech_ms\x18\t \x01(\rH\x08\x88\x01\x01\x12\"\n\x15\x61wkward_silence_count\x18\x0b \x01(\rH\t\x88\x01\x01\x12\x1d\n\x10unanswered_turns\x18\x0c \x01(\rH\n\x88\x01\x01\x12%\n\x18\x66\x61lse_interruption_count\x18\r \x01(\rH\x0b\x88\x01\x01\x12\x1b\n\x0e\x65\x32\x65_latency_ms\x18\x0f \x01(\rH\x0c\x88\x01\x01\x12\x1e\n\x11\x62\x61\x63kchannel_count\x18\x10 \x01(\rH\r\x88\x01\x01\x42\x14\n\x12_turn_taking_scoreB\x1b\n\x19_heard_e2e_latency_p50_msB\x1b\n\x19_heard_e2e_latency_p95_msB\x1b\n\x19_heard_e2e_latency_p99_msB\x13\n\x11_time_to_yield_msB\x1a\n\x18_eot_misprediction_countB\x10\n\x0e_overlap_ratioB\x14\n\x12_overlap_speech_msB\x12\n\x10_total_speech_msB\x18\n\x16_awkward_silence_countB\x13\n\x11_unanswered_turnsB\x1b\n\x19_false_interruption_countB\x11\n\x0f_e2e_latency_msB\x14\n\x12_backchannel_count\x1a\xf7\x06\n\x04Turn\x12\r\n\x05index\x18\x01 \x01(\r\x12%\n\x04role\x18\x02 \x01(\x0e\x32\x17.livekit.agent.ChatRole\x12\x0c\n\x04text\x18\x12 \x01(\t\x12\x15\n\x08start_ms\x18\x03 \x01(\rH\x00\x88\x01\x01\x12\x13\n\x06\x65nd_ms\x18\x04 \x01(\rH\x01\x88\x01\x01\x12\x19\n\x0cstt_delay_ms\x18\x05 \x01(\rH\x02\x88\x01\x01\x12\x18\n\x0bllm_ttft_ms\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bllm_ttfs_ms\x18\x07 \x01(\rH\x04\x88\x01\x01\x12\x14\n\x07llm_tps\x18\x08 \x01(\x02H\x05\x88\x01\x01\x12\x18\n\x0btts_ttfb_ms\x18\t \x01(\rH\x06\x88\x01\x01\x12\x1b\n\x0e\x65\x32\x65_latency_ms\x18\n \x01(\rH\x07\x88\x01\x01\x12!\n\x14heard_e2e_latency_ms\x18\x0b \x01(\x05H\x08\x88\x01\x01\x12\x1d\n\x10time_to_yield_ms\x18\x0c \x01(\rH\t\x88\x01\x01\x12\x1e\n\x11turn_taking_score\x18\r \x01(\x02H\n\x88\x01\x01\x12\x18\n\x0b\x63onciseness\x18\x0e \x01(\x02H\x0b\x88\x01\x01\x12\x1e\n\x11\x65ot_misprediction\x18\x0f \x01(\x08H\x0c\x88\x01\x01\x12\x1c\n\x0f\x61wkward_silence\x18\x10 \x01(\x08H\r\x88\x01\x01\x12\x17\n\nunanswered\x18\x11 \x01(\x08H\x0e\x88\x01\x01\x12?\n\x08\x65ntities\x18\x13 \x03(\x0b\x32-.livekit.SimulationRun.JobMetrics.Turn.Entity\x12\x0f\n\x07item_id\x18\x14 \x01(\t\x1a\x39\n\x06\x45ntity\x12\x0c\n\x04said\x18\x01 \x01(\t\x12\r\n\x05heard\x18\x02 \x01(\t\x12\x12\n\nrecognized\x18\x03 \x01(\x08\x42\x0b\n\t_start_msB\t\n\x07_end_msB\x0f\n\r_stt_delay_msB\x0e\n\x0c_llm_ttft_msB\x0e\n\x0c_llm_ttfs_msB\n\n\x08_llm_tpsB\x0e\n\x0c_tts_ttfb_msB\x11\n\x0f_e2e_latency_msB\x17\n\x15_heard_e2e_latency_msB\x13\n\x11_time_to_yield_msB\x14\n\x12_turn_taking_scoreB\x0e\n\x0c_concisenessB\x14\n\x12_eot_mispredictionB\x12\n\x10_awkward_silenceB\r\n\x0b_unanswered\"\xd7\x01\n\tEndReason\x12\x1a\n\x16\x45ND_REASON_UNSPECIFIED\x10\x00\x12!\n\x1d\x45ND_REASON_SCENARIO_COMPLETED\x10\x01\x12\x1a\n\x16\x45ND_REASON_AGENT_ENDED\x10\x02\x12\x19\n\x15\x45ND_REASON_INACTIVITY\x10\x03\x12\x19\n\x15\x45ND_REASON_TURN_LIMIT\x10\x04\x12\x1d\n\x19\x45ND_REASON_EMPTY_RESPONSE\x10\x05\x12\x1a\n\x16\x45ND_REASON_AGENT_ERROR\x10\x06\x42\x12\n\x10_task_completionB\x10\n\x0e_overall_scoreB\x0e\n\x0c_concisenessB\x19\n\x17_unnecessary_tool_callsB\x13\n\x11_information_lossB\x17\n\x15_redundant_statementsB\x18\n\x16_poor_question_qualityB\x1b\n\x19_conversation_progressionJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x0e\x61\x63\x63uracy_scoreR\x10\x65xperience_score\x1a\xf0\x03\n\nRunMetrics\x12\x1f\n\x12scenario_pass_rate\x18\x03 \x01(\x02H\x00\x88\x01\x01\x12\x1a\n\roverall_score\x18\n \x01(\x02H\x01\x88\x01\x01\x12\x32\n\x03stt\x18\x04 \x01(\x0b\x32%.livekit.SimulationRun.JobMetrics.STT\x12\x32\n\x03llm\x18\x05 \x01(\x0b\x32%.livekit.SimulationRun.JobMetrics.LLM\x12\x32\n\x03tts\x18\x06 \x01(\x0b\x32%.livekit.SimulationRun.JobMetrics.TTS\x12\x44\n\x0c\x63onversation\x18\x07 \x01(\x0b\x32..livekit.SimulationRun.JobMetrics.Conversation\x12\x18\n\x0b\x63onciseness\x18\x08 \x01(\x02H\x02\x88\x01\x01\x12%\n\x18\x63onversation_progression\x18\t \x01(\x02H\x03\x88\x01\x01\x42\x15\n\x13_scenario_pass_rateB\x10\n\x0e_overall_scoreB\x0e\n\x0c_concisenessB\x1b\n\x19_conversation_progressionJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03R\x0e\x61\x63\x63uracy_scoreR\x10\x65xperience_score\x1am\n\x02\x43I\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\x12\n\ncommit_sha\x18\x02 \x01(\t\x12\x0b\n\x03ref\x18\x03 \x01(\t\x12\x14\n\x0cpull_request\x18\x04 \x01(\t\x12\x0f\n\x07run_url\x18\x05 \x01(\t\x12\r\n\x05\x61\x63tor\x18\x06 \x01(\t\x1a\x35\n\x0fSamplingOptions\x12\x0f\n\x07samples\x18\x01 \x01(\x05\x12\x11\n\tpass_rate\x18\x02 \x01(\x01\x1a\xb5\x05\n\x06\x43reate\x1a\xc4\x04\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x12\n\nagent_name\x18\x02 \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\x12\x18\n\x0b\x63oncurrency\x18\x08 \x01(\x05H\x01\x88\x01\x01\x12%\n\x04mode\x18\t \x01(\x0e\x32\x17.livekit.SimulationMode\x12\x18\n\x10\x62\x61\x63kground_noise\x18\n \x01(\x08\x12\x1e\n\x16low_quality_microphone\x18\x0b \x01(\x08\x12\x13\n\x0bpacket_loss\x18\x0c \x01(\x08\x12*\n\x02\x63i\x18\r \x01(\x0b\x32\x19.livekit.SimulationRun.CIH\x02\x88\x01\x01\x12=\n\x08sampling\x18\x0e \x01(\x0b\x32&.livekit.SimulationRun.SamplingOptionsH\x03\x88\x01\x01\x12\x13\n\x0bsip_call_to\x18\x0f \x01(\t\x12\x14\n\x0csip_trunk_id\x18\x10 \x01(\t\x12\x12\n\nsip_number\x18\x11 \x01(\t\x12\x12\n\ndeployment\x18\x12 \x01(\t\x12\x15\n\rpersona_model\x18\x13 \x01(\tB\x11\n\x0f_scenario_groupB\x0e\n\x0c_concurrencyB\x05\n\x03_ciB\x0b\n\t_samplingJ\x04\x08\x03\x10\x04R\x11\x61gent_description\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\xed\x03\n\x04List\x1a\xff\x02\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\x12\x33\n\nstart_time\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x02\x88\x01\x01\x12\x31\n\x08\x65nd_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03\x88\x01\x01\x12\x17\n\nagent_name\x18\x06 \x01(\tH\x04\x88\x01\x01\x12*\n\x04mode\x18\x07 \x01(\x0e\x32\x17.livekit.SimulationModeH\x05\x88\x01\x01\x42\t\n\x07_statusB\r\n\x0b_page_tokenB\r\n\x0b_start_timeB\x0b\n\t_end_timeB\r\n\x0b_agent_nameB\x07\n\x05_mode\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\x1a\xdd\x03\n\x06\x43ounts\x1a\x97\x02\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12.\n\nstart_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nd_time\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x32\n\x06status\x18\x04 \x01(\x0e\x32\x1d.livekit.SimulationRun.StatusH\x00\x88\x01\x01\x12\x17\n\nagent_name\x18\x05 \x01(\tH\x01\x88\x01\x01\x12*\n\x04mode\x18\x06 \x01(\x0e\x32\x17.livekit.SimulationModeH\x02\x88\x01\x01\x42\t\n\x07_statusB\r\n\x0b_agent_nameB\x07\n\x05_mode\x1an\n\x08Response\x12\x35\n\x07\x62uckets\x18\x01 \x03(\x0b\x32$.livekit.SimulationRun.Counts.Bucket\x12+\n\x08interval\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x1aI\n\x06\x42ucket\x12\x30\n\x0c\x62ucket_start\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\r\n\x05\x63ount\x18\x02 \x01(\x04\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\x42\x0e\n\x0c_issue_countB\x05\n\x03_ciB\x0b\n\t_samplingJ\x04\x08\x08\x10\tR\x07summary\"\xc8\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\x12\n\n\x02id\x18\x06 \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\"O\n\rScenarioGroup\x12\x0c\n\x04name\x18\x01 \x01(\t\x12$\n\tscenarios\x18\x02 \x03(\x0b\x32\x11.livekit.Scenario\x12\n\n\x02id\x18\x03 \x01(\t\"f\n\x15SimulationImpairments\x12\x18\n\x10\x62\x61\x63kground_noise\x18\x01 \x01(\x08\x12\x1e\n\x16low_quality_microphone\x18\x02 \x01(\x08\x12\x13\n\x0bpacket_loss\x18\x03 \x01(\x08\"\x8b\x01\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.Scenario\x12%\n\x04mode\x18\x04 \x01(\x0e\x32\x17.livekit.SimulationMode*f\n\x0eSimulationMode\x12\x1f\n\x1bSIMULATION_MODE_UNSPECIFIED\x10\x00\x12\x18\n\x14SIMULATION_MODE_TEXT\x10\x01\x12\x19\n\x15SIMULATION_MODE_AUDIO\x10\x02\x32\x84\x06\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\x43ountSimulationRuns\x12%.livekit.SimulationRun.Counts.Request\x1a&.livekit.SimulationRun.Counts.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) @@ -41,8 +41,8 @@ _globals['_SIMULATIONRUNSUMMARY_CHATHISTORYENTRY']._serialized_options = b'8\001' _globals['_SCENARIO_TAGSENTRY']._loaded_options = None _globals['_SCENARIO_TAGSENTRY']._serialized_options = b'8\001' - _globals['_SIMULATIONMODE']._serialized_start=9949 - _globals['_SIMULATIONMODE']._serialized_end=10051 + _globals['_SIMULATIONMODE']._serialized_start=9995 + _globals['_SIMULATIONMODE']._serialized_end=10097 _globals['_SIMULATIONRUNSUMMARY']._serialized_start=193 _globals['_SIMULATIONRUNSUMMARY']._serialized_end=555 _globals['_SIMULATIONRUNSUMMARY_CHATHISTORYENTRY']._serialized_start=412 @@ -50,95 +50,95 @@ _globals['_SIMULATIONRUNSUMMARY_ISSUE']._serialized_start=492 _globals['_SIMULATIONRUNSUMMARY_ISSUE']._serialized_end=555 _globals['_SIMULATIONRUN']._serialized_start=558 - _globals['_SIMULATIONRUN']._serialized_end=9289 - _globals['_SIMULATIONRUN_JOB']._serialized_start=1301 - _globals['_SIMULATIONRUN_JOB']._serialized_end=2066 - _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_start=1799 - _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_end=1859 - _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_start=1861 - _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_end=1972 - _globals['_SIMULATIONRUN_JOB_FAILUREREASON']._serialized_start=1974 - _globals['_SIMULATIONRUN_JOB_FAILUREREASON']._serialized_end=2060 - _globals['_SIMULATIONRUN_JOBMETRICS']._serialized_start=2069 - _globals['_SIMULATIONRUN_JOBMETRICS']._serialized_end=6382 - _globals['_SIMULATIONRUN_JOBMETRICS_STT']._serialized_start=2891 - _globals['_SIMULATIONRUN_JOBMETRICS_STT']._serialized_end=3494 - _globals['_SIMULATIONRUN_JOBMETRICS_LLM']._serialized_start=3496 - _globals['_SIMULATIONRUN_JOBMETRICS_LLM']._serialized_end=3623 - _globals['_SIMULATIONRUN_JOBMETRICS_TTS']._serialized_start=3626 - _globals['_SIMULATIONRUN_JOBMETRICS_TTS']._serialized_end=4219 - _globals['_SIMULATIONRUN_JOBMETRICS_CONVERSATION']._serialized_start=4222 - _globals['_SIMULATIONRUN_JOBMETRICS_CONVERSATION']._serialized_end=5046 - _globals['_SIMULATIONRUN_JOBMETRICS_TURN']._serialized_start=5049 - _globals['_SIMULATIONRUN_JOBMETRICS_TURN']._serialized_end=5936 - _globals['_SIMULATIONRUN_JOBMETRICS_TURN_ENTITY']._serialized_start=5618 - _globals['_SIMULATIONRUN_JOBMETRICS_TURN_ENTITY']._serialized_end=5675 - _globals['_SIMULATIONRUN_JOBMETRICS_ENDREASON']._serialized_start=5939 - _globals['_SIMULATIONRUN_JOBMETRICS_ENDREASON']._serialized_end=6154 - _globals['_SIMULATIONRUN_RUNMETRICS']._serialized_start=6385 - _globals['_SIMULATIONRUN_RUNMETRICS']._serialized_end=6881 - _globals['_SIMULATIONRUN_CI']._serialized_start=6883 - _globals['_SIMULATIONRUN_CI']._serialized_end=6992 - _globals['_SIMULATIONRUN_SAMPLINGOPTIONS']._serialized_start=6994 - _globals['_SIMULATIONRUN_SAMPLINGOPTIONS']._serialized_end=7047 - _globals['_SIMULATIONRUN_CREATE']._serialized_start=7050 - _globals['_SIMULATIONRUN_CREATE']._serialized_end=7720 - _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_start=7061 - _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_end=7618 - _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_start=7620 - _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_end=7720 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_start=7722 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_end=7838 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_start=7745 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_end=7826 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_start=7620 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_end=7630 - _globals['_SIMULATIONRUN_GET']._serialized_start=7840 - _globals['_SIMULATIONRUN_GET']._serialized_end=7952 - _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_start=7745 - _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_end=7801 - _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_start=7905 - _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_end=7952 - _globals['_SIMULATIONRUN_LIST']._serialized_start=7955 - _globals['_SIMULATIONRUN_LIST']._serialized_end=8448 - _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_start=7964 - _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_end=8347 - _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_start=8349 - _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_end=8448 - _globals['_SIMULATIONRUN_COUNTS']._serialized_start=8451 - _globals['_SIMULATIONRUN_COUNTS']._serialized_end=8928 - _globals['_SIMULATIONRUN_COUNTS_REQUEST']._serialized_start=8462 - _globals['_SIMULATIONRUN_COUNTS_REQUEST']._serialized_end=8741 - _globals['_SIMULATIONRUN_COUNTS_RESPONSE']._serialized_start=8743 - _globals['_SIMULATIONRUN_COUNTS_RESPONSE']._serialized_end=8853 - _globals['_SIMULATIONRUN_COUNTS_BUCKET']._serialized_start=8855 - _globals['_SIMULATIONRUN_COUNTS_BUCKET']._serialized_end=8928 - _globals['_SIMULATIONRUN_CANCEL']._serialized_start=8930 - _globals['_SIMULATIONRUN_CANCEL']._serialized_end=9008 - _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_start=7745 - _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_end=7801 - _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_start=7620 - _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_end=7630 - _globals['_SIMULATIONRUN_USAGE']._serialized_start=1799 - _globals['_SIMULATIONRUN_USAGE']._serialized_end=1859 - _globals['_SIMULATIONRUN_STATUS']._serialized_start=9073 - _globals['_SIMULATIONRUN_STATUS']._serialized_end=9238 - _globals['_SCENARIO']._serialized_start=9292 - _globals['_SCENARIO']._serialized_end=9620 - _globals['_SCENARIO_CREATEFROMSESSION']._serialized_start=9443 - _globals['_SCENARIO_CREATEFROMSESSION']._serialized_end=9575 - _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_start=9464 - _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_end=9526 - _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_start=9528 - _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_end=9575 - _globals['_SCENARIO_TAGSENTRY']._serialized_start=9577 - _globals['_SCENARIO_TAGSENTRY']._serialized_end=9620 - _globals['_SCENARIOGROUP']._serialized_start=9622 - _globals['_SCENARIOGROUP']._serialized_end=9701 - _globals['_SIMULATIONIMPAIRMENTS']._serialized_start=9703 - _globals['_SIMULATIONIMPAIRMENTS']._serialized_end=9805 - _globals['_SIMULATIONDISPATCH']._serialized_start=9808 - _globals['_SIMULATIONDISPATCH']._serialized_end=9947 - _globals['_AGENTSIMULATION']._serialized_start=10054 - _globals['_AGENTSIMULATION']._serialized_end=10826 + _globals['_SIMULATIONRUN']._serialized_end=9335 + _globals['_SIMULATIONRUN_JOB']._serialized_start=1324 + _globals['_SIMULATIONRUN_JOB']._serialized_end=2089 + _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_start=1822 + _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_end=1882 + _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_start=1884 + _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_end=1995 + _globals['_SIMULATIONRUN_JOB_FAILUREREASON']._serialized_start=1997 + _globals['_SIMULATIONRUN_JOB_FAILUREREASON']._serialized_end=2083 + _globals['_SIMULATIONRUN_JOBMETRICS']._serialized_start=2092 + _globals['_SIMULATIONRUN_JOBMETRICS']._serialized_end=6405 + _globals['_SIMULATIONRUN_JOBMETRICS_STT']._serialized_start=2914 + _globals['_SIMULATIONRUN_JOBMETRICS_STT']._serialized_end=3517 + _globals['_SIMULATIONRUN_JOBMETRICS_LLM']._serialized_start=3519 + _globals['_SIMULATIONRUN_JOBMETRICS_LLM']._serialized_end=3646 + _globals['_SIMULATIONRUN_JOBMETRICS_TTS']._serialized_start=3649 + _globals['_SIMULATIONRUN_JOBMETRICS_TTS']._serialized_end=4242 + _globals['_SIMULATIONRUN_JOBMETRICS_CONVERSATION']._serialized_start=4245 + _globals['_SIMULATIONRUN_JOBMETRICS_CONVERSATION']._serialized_end=5069 + _globals['_SIMULATIONRUN_JOBMETRICS_TURN']._serialized_start=5072 + _globals['_SIMULATIONRUN_JOBMETRICS_TURN']._serialized_end=5959 + _globals['_SIMULATIONRUN_JOBMETRICS_TURN_ENTITY']._serialized_start=5641 + _globals['_SIMULATIONRUN_JOBMETRICS_TURN_ENTITY']._serialized_end=5698 + _globals['_SIMULATIONRUN_JOBMETRICS_ENDREASON']._serialized_start=5962 + _globals['_SIMULATIONRUN_JOBMETRICS_ENDREASON']._serialized_end=6177 + _globals['_SIMULATIONRUN_RUNMETRICS']._serialized_start=6408 + _globals['_SIMULATIONRUN_RUNMETRICS']._serialized_end=6904 + _globals['_SIMULATIONRUN_CI']._serialized_start=6906 + _globals['_SIMULATIONRUN_CI']._serialized_end=7015 + _globals['_SIMULATIONRUN_SAMPLINGOPTIONS']._serialized_start=7017 + _globals['_SIMULATIONRUN_SAMPLINGOPTIONS']._serialized_end=7070 + _globals['_SIMULATIONRUN_CREATE']._serialized_start=7073 + _globals['_SIMULATIONRUN_CREATE']._serialized_end=7766 + _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_start=7084 + _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_end=7664 + _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_start=7666 + _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_end=7766 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_start=7768 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_end=7884 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_start=7791 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_end=7872 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_start=7666 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_end=7676 + _globals['_SIMULATIONRUN_GET']._serialized_start=7886 + _globals['_SIMULATIONRUN_GET']._serialized_end=7998 + _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_start=7791 + _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_end=7847 + _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_start=7951 + _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_end=7998 + _globals['_SIMULATIONRUN_LIST']._serialized_start=8001 + _globals['_SIMULATIONRUN_LIST']._serialized_end=8494 + _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_start=8010 + _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_end=8393 + _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_start=8395 + _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_end=8494 + _globals['_SIMULATIONRUN_COUNTS']._serialized_start=8497 + _globals['_SIMULATIONRUN_COUNTS']._serialized_end=8974 + _globals['_SIMULATIONRUN_COUNTS_REQUEST']._serialized_start=8508 + _globals['_SIMULATIONRUN_COUNTS_REQUEST']._serialized_end=8787 + _globals['_SIMULATIONRUN_COUNTS_RESPONSE']._serialized_start=8789 + _globals['_SIMULATIONRUN_COUNTS_RESPONSE']._serialized_end=8899 + _globals['_SIMULATIONRUN_COUNTS_BUCKET']._serialized_start=8901 + _globals['_SIMULATIONRUN_COUNTS_BUCKET']._serialized_end=8974 + _globals['_SIMULATIONRUN_CANCEL']._serialized_start=8976 + _globals['_SIMULATIONRUN_CANCEL']._serialized_end=9054 + _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_start=7791 + _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_end=7847 + _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_start=7666 + _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_end=7676 + _globals['_SIMULATIONRUN_USAGE']._serialized_start=1822 + _globals['_SIMULATIONRUN_USAGE']._serialized_end=1882 + _globals['_SIMULATIONRUN_STATUS']._serialized_start=9119 + _globals['_SIMULATIONRUN_STATUS']._serialized_end=9284 + _globals['_SCENARIO']._serialized_start=9338 + _globals['_SCENARIO']._serialized_end=9666 + _globals['_SCENARIO_CREATEFROMSESSION']._serialized_start=9489 + _globals['_SCENARIO_CREATEFROMSESSION']._serialized_end=9621 + _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_start=9510 + _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_end=9572 + _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_start=9574 + _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_end=9621 + _globals['_SCENARIO_TAGSENTRY']._serialized_start=9623 + _globals['_SCENARIO_TAGSENTRY']._serialized_end=9666 + _globals['_SCENARIOGROUP']._serialized_start=9668 + _globals['_SCENARIOGROUP']._serialized_end=9747 + _globals['_SIMULATIONIMPAIRMENTS']._serialized_start=9749 + _globals['_SIMULATIONIMPAIRMENTS']._serialized_end=9851 + _globals['_SIMULATIONDISPATCH']._serialized_start=9854 + _globals['_SIMULATIONDISPATCH']._serialized_end=9993 + _globals['_AGENTSIMULATION']._serialized_start=10100 + _globals['_AGENTSIMULATION']._serialized_end=10872 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agent_simulation.pyi b/livekit-protocol/livekit/protocol/agent_simulation.pyi index c7bb2905..84615bb3 100644 --- a/livekit-protocol/livekit/protocol/agent_simulation.pyi +++ b/livekit-protocol/livekit/protocol/agent_simulation.pyi @@ -53,7 +53,7 @@ class SimulationRunSummary(_message.Message): 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", "agent_name", "scenario_group", "ended_at", "job_count", "passed_count", "failed_count", "num_simulations", "usage", "concurrency", "mode", "metrics", "summary_zstd", "issue_count", "ci", "sampling") + __slots__ = ("id", "project_id", "status", "agent_description", "error", "created_at", "jobs", "agent_name", "scenario_group", "ended_at", "job_count", "passed_count", "failed_count", "num_simulations", "usage", "concurrency", "mode", "metrics", "summary_zstd", "issue_count", "ci", "sampling", "persona_model") class Status(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () STATUS_PENDING_UPLOAD: _ClassVar[SimulationRun.Status] @@ -383,7 +383,7 @@ class SimulationRun(_message.Message): class Create(_message.Message): __slots__ = () class Request(_message.Message): - __slots__ = ("project_id", "agent_name", "num_simulations", "region", "scenario_group", "concurrency", "mode", "background_noise", "low_quality_microphone", "packet_loss", "ci", "sampling", "sip_call_to", "sip_trunk_id", "sip_number", "deployment") + __slots__ = ("project_id", "agent_name", "num_simulations", "region", "scenario_group", "concurrency", "mode", "background_noise", "low_quality_microphone", "packet_loss", "ci", "sampling", "sip_call_to", "sip_trunk_id", "sip_number", "deployment", "persona_model") PROJECT_ID_FIELD_NUMBER: _ClassVar[int] AGENT_NAME_FIELD_NUMBER: _ClassVar[int] NUM_SIMULATIONS_FIELD_NUMBER: _ClassVar[int] @@ -400,6 +400,7 @@ class SimulationRun(_message.Message): SIP_TRUNK_ID_FIELD_NUMBER: _ClassVar[int] SIP_NUMBER_FIELD_NUMBER: _ClassVar[int] DEPLOYMENT_FIELD_NUMBER: _ClassVar[int] + PERSONA_MODEL_FIELD_NUMBER: _ClassVar[int] project_id: str agent_name: str num_simulations: int @@ -416,7 +417,8 @@ class SimulationRun(_message.Message): sip_trunk_id: str sip_number: str deployment: str - def __init__(self, project_id: _Optional[str] = ..., agent_name: _Optional[str] = ..., num_simulations: _Optional[int] = ..., region: _Optional[str] = ..., scenario_group: _Optional[_Union[ScenarioGroup, _Mapping]] = ..., concurrency: _Optional[int] = ..., mode: _Optional[_Union[SimulationMode, str]] = ..., background_noise: bool = ..., low_quality_microphone: bool = ..., packet_loss: bool = ..., ci: _Optional[_Union[SimulationRun.CI, _Mapping]] = ..., sampling: _Optional[_Union[SimulationRun.SamplingOptions, _Mapping]] = ..., sip_call_to: _Optional[str] = ..., sip_trunk_id: _Optional[str] = ..., sip_number: _Optional[str] = ..., deployment: _Optional[str] = ...) -> None: ... + persona_model: str + def __init__(self, project_id: _Optional[str] = ..., agent_name: _Optional[str] = ..., num_simulations: _Optional[int] = ..., region: _Optional[str] = ..., scenario_group: _Optional[_Union[ScenarioGroup, _Mapping]] = ..., concurrency: _Optional[int] = ..., mode: _Optional[_Union[SimulationMode, str]] = ..., background_noise: bool = ..., low_quality_microphone: bool = ..., packet_loss: bool = ..., ci: _Optional[_Union[SimulationRun.CI, _Mapping]] = ..., sampling: _Optional[_Union[SimulationRun.SamplingOptions, _Mapping]] = ..., sip_call_to: _Optional[str] = ..., sip_trunk_id: _Optional[str] = ..., sip_number: _Optional[str] = ..., deployment: _Optional[str] = ..., persona_model: _Optional[str] = ...) -> None: ... class Response(_message.Message): __slots__ = ("simulation_run_id", "presigned_post_request") SIMULATION_RUN_ID_FIELD_NUMBER: _ClassVar[int] @@ -556,6 +558,7 @@ class SimulationRun(_message.Message): ISSUE_COUNT_FIELD_NUMBER: _ClassVar[int] CI_FIELD_NUMBER: _ClassVar[int] SAMPLING_FIELD_NUMBER: _ClassVar[int] + PERSONA_MODEL_FIELD_NUMBER: _ClassVar[int] id: str project_id: str status: SimulationRun.Status @@ -578,7 +581,8 @@ class SimulationRun(_message.Message): issue_count: int ci: SimulationRun.CI sampling: SimulationRun.SamplingOptions - 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]]] = ..., 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]] = ..., concurrency: _Optional[int] = ..., mode: _Optional[_Union[SimulationMode, str]] = ..., metrics: _Optional[_Union[SimulationRun.RunMetrics, _Mapping]] = ..., summary_zstd: _Optional[bytes] = ..., issue_count: _Optional[int] = ..., ci: _Optional[_Union[SimulationRun.CI, _Mapping]] = ..., sampling: _Optional[_Union[SimulationRun.SamplingOptions, _Mapping]] = ...) -> None: ... + persona_model: str + 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]]] = ..., 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]] = ..., concurrency: _Optional[int] = ..., mode: _Optional[_Union[SimulationMode, str]] = ..., metrics: _Optional[_Union[SimulationRun.RunMetrics, _Mapping]] = ..., summary_zstd: _Optional[bytes] = ..., issue_count: _Optional[int] = ..., ci: _Optional[_Union[SimulationRun.CI, _Mapping]] = ..., sampling: _Optional[_Union[SimulationRun.SamplingOptions, _Mapping]] = ..., persona_model: _Optional[str] = ...) -> None: ... class Scenario(_message.Message): __slots__ = ("label", "instructions", "agent_expectations", "tags", "userdata", "id") diff --git a/livekit-protocol/protocol b/livekit-protocol/protocol index 9522c5ac..b1e0d8c7 160000 --- a/livekit-protocol/protocol +++ b/livekit-protocol/protocol @@ -1 +1 @@ -Subproject commit 9522c5ac7a1d89ffccca4c48ccb51fcf5977a990 +Subproject commit b1e0d8c7ac8dfe5b0a284c882f62a125dcbaa13c diff --git a/tests/protocol/regression_agents_session_history.py b/tests/protocol/regression_agents_session_history.py new file mode 100644 index 00000000..f65fa943 --- /dev/null +++ b/tests/protocol/regression_agents_session_history.py @@ -0,0 +1,31 @@ +"""Regression: livekit-protocol 1.1.28 added FunctionCall.extra, and livekit-agents 1.7.0 to 1.8.8 +failed to upload the session history (TypeError: bad argument type for built-in operation). + +Encodes a session history the way an installed livekit-agents release uploads it. + +livekit-agents 1.7.0 to 1.8.8 fill every field the installed protocol declares on a chat item +from the attribute of the same name, so a new field can break releases already deployed. +Run with one livekit-agents release and the livekit-protocol build under test installed. +""" + +from importlib.metadata import version + +from livekit.agents import llm + +items = [ + llm.ChatMessage(role="user", content=["hi", "there"], extra={"lk.redacted": True}), + llm.FunctionCall( + call_id="call_1", + name="lookup", + arguments="{}", + extra={ + "google": {"thought_signature": "c2ln"}, + "__livekit_agents_tool_non_blocking": True, + }, + ), + llm.FunctionCallOutput(call_id="call_1", name="lookup", output="ok", is_error=False), +] +llm.ChatContext(items).to_proto().SerializeToString() +print( + f"livekit-agents {version('livekit-agents')} with livekit-protocol {version('livekit-protocol')}: ok" +)