From 8cd83aa6d94326f4dac99cfb74fffa4728f8b152 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2026 17:17:08 +0000 Subject: [PATCH 1/2] Update livekit-protocol/protocol digest to 935e69b Generated by renovateBot --- livekit-protocol/protocol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/livekit-protocol/protocol b/livekit-protocol/protocol index 3c0fcdbd..935e69b4 160000 --- a/livekit-protocol/protocol +++ b/livekit-protocol/protocol @@ -1 +1 @@ -Subproject commit 3c0fcdbd25dff2f8968e98e7d63881e38d077664 +Subproject commit 935e69b482ab9eb44d4068f948b5e093f96f6ae2 From 3d2baaf0d3c6280d968a1cc89c756da854fef753 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2026 17:17:35 +0000 Subject: [PATCH 2/2] generated protobuf --- .../livekit/protocol/agent_simulation.py | 170 +++++++++--------- .../livekit/protocol/agent_simulation.pyi | 27 ++- 2 files changed, 107 insertions(+), 90 deletions(-) diff --git a/livekit-protocol/livekit/protocol/agent_simulation.py b/livekit-protocol/livekit/protocol/agent_simulation.py index 2bfbe87a..1c4c9846 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\"\xe0;\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\x1a\xbe\x04\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\x12\x31\n\x06status\x18\x02 \x01(\x0e\x32!.livekit.SimulationRun.Job.Status\x12\x14\n\x0cinstructions\x18\x03 \x01(\t\x12\r\n\x05\x65rror\x18\x04 \x01(\t\x12\x1a\n\x12\x61gent_expectations\x18\x05 \x01(\t\x12\r\n\x05label\x18\x06 \x01(\t\x12\x0c\n\x04tags\x18\x07 \x03(\t\x12\x11\n\troom_name\x18\x08 \x01(\t\x12.\n\nstarted_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nded_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07room_id\x18\x0c \x01(\t\x12/\n\x05usage\x18\r \x01(\x0b\x32 .livekit.SimulationRun.Job.Usage\x12\x32\n\x07metrics\x18\x0e \x01(\x0b\x32!.livekit.SimulationRun.JobMetrics\x1a<\n\x05Usage\x12\x18\n\x10text_turns_count\x18\x01 \x01(\x05\x12\x19\n\x11\x61udio_turns_count\x18\x02 \x01(\x05\"o\n\x06Status\x12\x12\n\x0eSTATUS_PENDING\x10\x00\x12\x12\n\x0eSTATUS_RUNNING\x10\x01\x12\x14\n\x10STATUS_COMPLETED\x10\x02\x12\x11\n\rSTATUS_FAILED\x10\x03\x12\x14\n\x10STATUS_CANCELLED\x10\x04J\x04\x08\t\x10\n\x1a\xff\x1c\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\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\x82\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\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_ms\x1a\xdc\x05\n\x04Turn\x12\r\n\x05index\x18\x01 \x01(\r\x12%\n\x04role\x18\x02 \x01(\x0e\x32\x17.livekit.agent.ChatRole\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\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_unansweredB\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\xff\x03\n\x06\x43reate\x1a\x8e\x03\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\x42\x11\n\x0f_scenario_groupB\x0e\n\x0c_concurrencyB\x05\n\x03_ciJ\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_ciJ\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\"\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\"\xbf=\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\x36\n\x08sampling\x18\x17 \x01(\x0b\x32\x1f.livekit.SimulationRun.SamplingH\x02\x88\x01\x01\x1a\xe3\x04\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\x12\x31\n\x06status\x18\x02 \x01(\x0e\x32!.livekit.SimulationRun.Job.Status\x12\x14\n\x0cinstructions\x18\x03 \x01(\t\x12\r\n\x05\x65rror\x18\x04 \x01(\t\x12\x1a\n\x12\x61gent_expectations\x18\x05 \x01(\t\x12\r\n\x05label\x18\x06 \x01(\t\x12\x0c\n\x04tags\x18\x07 \x03(\t\x12\x11\n\troom_name\x18\x08 \x01(\t\x12.\n\nstarted_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nded_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07room_id\x18\x0c \x01(\t\x12/\n\x05usage\x18\r \x01(\x0b\x32 .livekit.SimulationRun.Job.Usage\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\x1a<\n\x05Usage\x12\x18\n\x10text_turns_count\x18\x01 \x01(\x05\x12\x19\n\x11\x61udio_turns_count\x18\x02 \x01(\x05\"o\n\x06Status\x12\x12\n\x0eSTATUS_PENDING\x10\x00\x12\x12\n\x0eSTATUS_RUNNING\x10\x01\x12\x14\n\x10STATUS_COMPLETED\x10\x02\x12\x11\n\rSTATUS_FAILED\x10\x03\x12\x14\n\x10STATUS_CANCELLED\x10\x04J\x04\x08\t\x10\n\x1a\xff\x1c\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\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\x82\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\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_ms\x1a\xdc\x05\n\x04Turn\x12\r\n\x05index\x18\x01 \x01(\r\x12%\n\x04role\x18\x02 \x01(\x0e\x32\x17.livekit.agent.ChatRole\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\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_unansweredB\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.\n\x08Sampling\x12\x0f\n\x07samples\x18\x01 \x01(\x05\x12\x11\n\tpass_rate\x18\x02 \x01(\x01\x1a\xc4\x04\n\x06\x43reate\x1a\xd3\x03\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\x36\n\x08sampling\x18\x0e \x01(\x0b\x32\x1f.livekit.SimulationRun.SamplingH\x03\x88\x01\x01\x42\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\"\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=8762 - _globals['_SIMULATIONMODE']._serialized_end=8864 + _globals['_SIMULATIONMODE']._serialized_start=8985 + _globals['_SIMULATIONMODE']._serialized_end=9087 _globals['_SIMULATIONRUNSUMMARY']._serialized_start=193 _globals['_SIMULATIONRUNSUMMARY']._serialized_end=555 _globals['_SIMULATIONRUNSUMMARY_CHATHISTORYENTRY']._serialized_start=412 @@ -50,85 +50,87 @@ _globals['_SIMULATIONRUNSUMMARY_ISSUE']._serialized_start=492 _globals['_SIMULATIONRUNSUMMARY_ISSUE']._serialized_end=555 _globals['_SIMULATIONRUN']._serialized_start=558 - _globals['_SIMULATIONRUN']._serialized_end=8206 - _globals['_SIMULATIONRUN_JOB']._serialized_start=1238 - _globals['_SIMULATIONRUN_JOB']._serialized_end=1812 - _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_start=1633 - _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_end=1693 - _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_start=1695 - _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_end=1806 - _globals['_SIMULATIONRUN_JOBMETRICS']._serialized_start=1815 - _globals['_SIMULATIONRUN_JOBMETRICS']._serialized_end=5526 - _globals['_SIMULATIONRUN_JOBMETRICS_STT']._serialized_start=2462 - _globals['_SIMULATIONRUN_JOBMETRICS_STT']._serialized_end=3065 - _globals['_SIMULATIONRUN_JOBMETRICS_LLM']._serialized_start=3067 - _globals['_SIMULATIONRUN_JOBMETRICS_LLM']._serialized_end=3194 - _globals['_SIMULATIONRUN_JOBMETRICS_TTS']._serialized_start=3197 - _globals['_SIMULATIONRUN_JOBMETRICS_TTS']._serialized_end=3790 - _globals['_SIMULATIONRUN_JOBMETRICS_CONVERSATION']._serialized_start=3793 - _globals['_SIMULATIONRUN_JOBMETRICS_CONVERSATION']._serialized_end=4563 - _globals['_SIMULATIONRUN_JOBMETRICS_TURN']._serialized_start=4566 - _globals['_SIMULATIONRUN_JOBMETRICS_TURN']._serialized_end=5298 - _globals['_SIMULATIONRUN_RUNMETRICS']._serialized_start=5529 - _globals['_SIMULATIONRUN_RUNMETRICS']._serialized_end=6025 - _globals['_SIMULATIONRUN_CI']._serialized_start=6027 - _globals['_SIMULATIONRUN_CI']._serialized_end=6136 - _globals['_SIMULATIONRUN_CREATE']._serialized_start=6139 - _globals['_SIMULATIONRUN_CREATE']._serialized_end=6650 - _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_start=6150 - _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_end=6548 - _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_start=6550 - _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_end=6650 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_start=6652 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_end=6768 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_start=6675 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_end=6756 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_start=6550 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_end=6560 - _globals['_SIMULATIONRUN_GET']._serialized_start=6770 - _globals['_SIMULATIONRUN_GET']._serialized_end=6882 - _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_start=6675 - _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_end=6731 - _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_start=6835 - _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_end=6882 - _globals['_SIMULATIONRUN_LIST']._serialized_start=6885 - _globals['_SIMULATIONRUN_LIST']._serialized_end=7378 - _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_start=6894 - _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_end=7277 - _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_start=7279 - _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_end=7378 - _globals['_SIMULATIONRUN_COUNTS']._serialized_start=7381 - _globals['_SIMULATIONRUN_COUNTS']._serialized_end=7858 - _globals['_SIMULATIONRUN_COUNTS_REQUEST']._serialized_start=7392 - _globals['_SIMULATIONRUN_COUNTS_REQUEST']._serialized_end=7671 - _globals['_SIMULATIONRUN_COUNTS_RESPONSE']._serialized_start=7673 - _globals['_SIMULATIONRUN_COUNTS_RESPONSE']._serialized_end=7783 - _globals['_SIMULATIONRUN_COUNTS_BUCKET']._serialized_start=7785 - _globals['_SIMULATIONRUN_COUNTS_BUCKET']._serialized_end=7858 - _globals['_SIMULATIONRUN_CANCEL']._serialized_start=7860 - _globals['_SIMULATIONRUN_CANCEL']._serialized_end=7938 - _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_start=6675 - _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_end=6731 - _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_start=6550 - _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_end=6560 - _globals['_SIMULATIONRUN_USAGE']._serialized_start=1633 - _globals['_SIMULATIONRUN_USAGE']._serialized_end=1693 - _globals['_SIMULATIONRUN_STATUS']._serialized_start=8003 - _globals['_SIMULATIONRUN_STATUS']._serialized_end=8168 - _globals['_SCENARIO']._serialized_start=8209 - _globals['_SCENARIO']._serialized_end=8537 - _globals['_SCENARIO_CREATEFROMSESSION']._serialized_start=8360 - _globals['_SCENARIO_CREATEFROMSESSION']._serialized_end=8492 - _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_start=8381 - _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_end=8443 - _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_start=8445 - _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_end=8492 - _globals['_SCENARIO_TAGSENTRY']._serialized_start=8494 - _globals['_SCENARIO_TAGSENTRY']._serialized_end=8537 - _globals['_SCENARIOGROUP']._serialized_start=8539 - _globals['_SCENARIOGROUP']._serialized_end=8618 - _globals['_SIMULATIONDISPATCH']._serialized_start=8621 - _globals['_SIMULATIONDISPATCH']._serialized_end=8760 - _globals['_AGENTSIMULATION']._serialized_start=8867 - _globals['_AGENTSIMULATION']._serialized_end=9639 + _globals['_SIMULATIONRUN']._serialized_end=8429 + _globals['_SIMULATIONRUN_JOB']._serialized_start=1294 + _globals['_SIMULATIONRUN_JOB']._serialized_end=1905 + _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_start=1726 + _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_end=1786 + _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_start=1788 + _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_end=1899 + _globals['_SIMULATIONRUN_JOBMETRICS']._serialized_start=1908 + _globals['_SIMULATIONRUN_JOBMETRICS']._serialized_end=5619 + _globals['_SIMULATIONRUN_JOBMETRICS_STT']._serialized_start=2555 + _globals['_SIMULATIONRUN_JOBMETRICS_STT']._serialized_end=3158 + _globals['_SIMULATIONRUN_JOBMETRICS_LLM']._serialized_start=3160 + _globals['_SIMULATIONRUN_JOBMETRICS_LLM']._serialized_end=3287 + _globals['_SIMULATIONRUN_JOBMETRICS_TTS']._serialized_start=3290 + _globals['_SIMULATIONRUN_JOBMETRICS_TTS']._serialized_end=3883 + _globals['_SIMULATIONRUN_JOBMETRICS_CONVERSATION']._serialized_start=3886 + _globals['_SIMULATIONRUN_JOBMETRICS_CONVERSATION']._serialized_end=4656 + _globals['_SIMULATIONRUN_JOBMETRICS_TURN']._serialized_start=4659 + _globals['_SIMULATIONRUN_JOBMETRICS_TURN']._serialized_end=5391 + _globals['_SIMULATIONRUN_RUNMETRICS']._serialized_start=5622 + _globals['_SIMULATIONRUN_RUNMETRICS']._serialized_end=6118 + _globals['_SIMULATIONRUN_CI']._serialized_start=6120 + _globals['_SIMULATIONRUN_CI']._serialized_end=6229 + _globals['_SIMULATIONRUN_SAMPLING']._serialized_start=6231 + _globals['_SIMULATIONRUN_SAMPLING']._serialized_end=6277 + _globals['_SIMULATIONRUN_CREATE']._serialized_start=6280 + _globals['_SIMULATIONRUN_CREATE']._serialized_end=6860 + _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_start=6291 + _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_end=6758 + _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_start=6760 + _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_end=6860 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_start=6862 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_end=6978 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_start=6885 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_end=6966 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_start=6760 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_end=6770 + _globals['_SIMULATIONRUN_GET']._serialized_start=6980 + _globals['_SIMULATIONRUN_GET']._serialized_end=7092 + _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_start=6885 + _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_end=6941 + _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_start=7045 + _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_end=7092 + _globals['_SIMULATIONRUN_LIST']._serialized_start=7095 + _globals['_SIMULATIONRUN_LIST']._serialized_end=7588 + _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_start=7104 + _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_end=7487 + _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_start=7489 + _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_end=7588 + _globals['_SIMULATIONRUN_COUNTS']._serialized_start=7591 + _globals['_SIMULATIONRUN_COUNTS']._serialized_end=8068 + _globals['_SIMULATIONRUN_COUNTS_REQUEST']._serialized_start=7602 + _globals['_SIMULATIONRUN_COUNTS_REQUEST']._serialized_end=7881 + _globals['_SIMULATIONRUN_COUNTS_RESPONSE']._serialized_start=7883 + _globals['_SIMULATIONRUN_COUNTS_RESPONSE']._serialized_end=7993 + _globals['_SIMULATIONRUN_COUNTS_BUCKET']._serialized_start=7995 + _globals['_SIMULATIONRUN_COUNTS_BUCKET']._serialized_end=8068 + _globals['_SIMULATIONRUN_CANCEL']._serialized_start=8070 + _globals['_SIMULATIONRUN_CANCEL']._serialized_end=8148 + _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_start=6885 + _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_end=6941 + _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_start=6760 + _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_end=6770 + _globals['_SIMULATIONRUN_USAGE']._serialized_start=1726 + _globals['_SIMULATIONRUN_USAGE']._serialized_end=1786 + _globals['_SIMULATIONRUN_STATUS']._serialized_start=8213 + _globals['_SIMULATIONRUN_STATUS']._serialized_end=8378 + _globals['_SCENARIO']._serialized_start=8432 + _globals['_SCENARIO']._serialized_end=8760 + _globals['_SCENARIO_CREATEFROMSESSION']._serialized_start=8583 + _globals['_SCENARIO_CREATEFROMSESSION']._serialized_end=8715 + _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_start=8604 + _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_end=8666 + _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_start=8668 + _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_end=8715 + _globals['_SCENARIO_TAGSENTRY']._serialized_start=8717 + _globals['_SCENARIO_TAGSENTRY']._serialized_end=8760 + _globals['_SCENARIOGROUP']._serialized_start=8762 + _globals['_SCENARIOGROUP']._serialized_end=8841 + _globals['_SIMULATIONDISPATCH']._serialized_start=8844 + _globals['_SIMULATIONDISPATCH']._serialized_end=8983 + _globals['_AGENTSIMULATION']._serialized_start=9090 + _globals['_AGENTSIMULATION']._serialized_end=9862 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agent_simulation.pyi b/livekit-protocol/livekit/protocol/agent_simulation.pyi index f985a98f..0caee5d2 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") + __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") class Status(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () STATUS_PENDING_UPLOAD: _ClassVar[SimulationRun.Status] @@ -71,7 +71,7 @@ class SimulationRun(_message.Message): STATUS_FAILED: SimulationRun.Status STATUS_CANCELLED: SimulationRun.Status class Job(_message.Message): - __slots__ = ("id", "status", "instructions", "error", "agent_expectations", "label", "tags", "room_name", "started_at", "ended_at", "room_id", "usage", "metrics") + __slots__ = ("id", "status", "instructions", "error", "agent_expectations", "label", "tags", "room_name", "started_at", "ended_at", "room_id", "usage", "metrics", "scenario_id", "sample") class Status(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () STATUS_PENDING: _ClassVar[SimulationRun.Job.Status] @@ -104,6 +104,8 @@ class SimulationRun(_message.Message): ROOM_ID_FIELD_NUMBER: _ClassVar[int] USAGE_FIELD_NUMBER: _ClassVar[int] METRICS_FIELD_NUMBER: _ClassVar[int] + SCENARIO_ID_FIELD_NUMBER: _ClassVar[int] + SAMPLE_FIELD_NUMBER: _ClassVar[int] id: str status: SimulationRun.Job.Status instructions: str @@ -117,7 +119,9 @@ class SimulationRun(_message.Message): room_id: str usage: SimulationRun.Job.Usage metrics: SimulationRun.JobMetrics - def __init__(self, id: _Optional[str] = ..., status: _Optional[_Union[SimulationRun.Job.Status, str]] = ..., instructions: _Optional[str] = ..., error: _Optional[str] = ..., agent_expectations: _Optional[str] = ..., label: _Optional[str] = ..., tags: _Optional[_Iterable[str]] = ..., room_name: _Optional[str] = ..., started_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., ended_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., room_id: _Optional[str] = ..., usage: _Optional[_Union[SimulationRun.Job.Usage, _Mapping]] = ..., metrics: _Optional[_Union[SimulationRun.JobMetrics, _Mapping]] = ...) -> None: ... + scenario_id: str + sample: int + def __init__(self, id: _Optional[str] = ..., status: _Optional[_Union[SimulationRun.Job.Status, str]] = ..., instructions: _Optional[str] = ..., error: _Optional[str] = ..., agent_expectations: _Optional[str] = ..., label: _Optional[str] = ..., tags: _Optional[_Iterable[str]] = ..., room_name: _Optional[str] = ..., started_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., ended_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., room_id: _Optional[str] = ..., usage: _Optional[_Union[SimulationRun.Job.Usage, _Mapping]] = ..., metrics: _Optional[_Union[SimulationRun.JobMetrics, _Mapping]] = ..., scenario_id: _Optional[str] = ..., sample: _Optional[int] = ...) -> None: ... class JobMetrics(_message.Message): __slots__ = ("task_completion", "overall_score", "stt", "llm", "tts", "conversation", "turns", "judge_model", "has_remote_session", "t0", "conciseness", "unnecessary_tool_calls", "information_loss", "redundant_statements", "poor_question_quality", "conversation_progression") class STT(_message.Message): @@ -320,10 +324,17 @@ class SimulationRun(_message.Message): run_url: str actor: str def __init__(self, provider: _Optional[str] = ..., commit_sha: _Optional[str] = ..., ref: _Optional[str] = ..., pull_request: _Optional[str] = ..., run_url: _Optional[str] = ..., actor: _Optional[str] = ...) -> None: ... + class Sampling(_message.Message): + __slots__ = ("samples", "pass_rate") + SAMPLES_FIELD_NUMBER: _ClassVar[int] + PASS_RATE_FIELD_NUMBER: _ClassVar[int] + samples: int + pass_rate: float + def __init__(self, samples: _Optional[int] = ..., pass_rate: _Optional[float] = ...) -> None: ... 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") + __slots__ = ("project_id", "agent_name", "num_simulations", "region", "scenario_group", "concurrency", "mode", "background_noise", "low_quality_microphone", "packet_loss", "ci", "sampling") PROJECT_ID_FIELD_NUMBER: _ClassVar[int] AGENT_NAME_FIELD_NUMBER: _ClassVar[int] NUM_SIMULATIONS_FIELD_NUMBER: _ClassVar[int] @@ -335,6 +346,7 @@ class SimulationRun(_message.Message): LOW_QUALITY_MICROPHONE_FIELD_NUMBER: _ClassVar[int] PACKET_LOSS_FIELD_NUMBER: _ClassVar[int] CI_FIELD_NUMBER: _ClassVar[int] + SAMPLING_FIELD_NUMBER: _ClassVar[int] project_id: str agent_name: str num_simulations: int @@ -346,7 +358,8 @@ class SimulationRun(_message.Message): low_quality_microphone: bool packet_loss: bool ci: SimulationRun.CI - 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]] = ...) -> None: ... + sampling: SimulationRun.Sampling + 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.Sampling, _Mapping]] = ...) -> None: ... class Response(_message.Message): __slots__ = ("simulation_run_id", "presigned_post_request") SIMULATION_RUN_ID_FIELD_NUMBER: _ClassVar[int] @@ -485,6 +498,7 @@ class SimulationRun(_message.Message): SUMMARY_ZSTD_FIELD_NUMBER: _ClassVar[int] ISSUE_COUNT_FIELD_NUMBER: _ClassVar[int] CI_FIELD_NUMBER: _ClassVar[int] + SAMPLING_FIELD_NUMBER: _ClassVar[int] id: str project_id: str status: SimulationRun.Status @@ -506,7 +520,8 @@ class SimulationRun(_message.Message): summary_zstd: bytes issue_count: int ci: SimulationRun.CI - 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]] = ...) -> None: ... + sampling: SimulationRun.Sampling + 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.Sampling, _Mapping]] = ...) -> None: ... class Scenario(_message.Message): __slots__ = ("label", "instructions", "agent_expectations", "tags", "userdata", "id")