diff --git a/.changeset/bump-protocol-turn-entities.md b/.changeset/bump-protocol-turn-entities.md new file mode 100644 index 00000000..4c57da4e --- /dev/null +++ b/.changeset/bump-protocol-turn-entities.md @@ -0,0 +1,5 @@ +--- +"livekit-protocol": patch +--- + +Bump the protocol to livekit/protocol@868ecd5: per-turn entity sayings and the agent's chat item id on simulation job metrics (livekit/protocol#1894), and dispatching a simulation run to a named agent deployment (livekit/protocol#1932). diff --git a/livekit-protocol/livekit/protocol/agent_simulation.py b/livekit-protocol/livekit/protocol/agent_simulation.py index 9c7d4665..24dd5381 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\"\x8e\x43\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\xcc \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\xea\x05\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\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\"\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') _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=9808 - _globals['_SIMULATIONMODE']._serialized_end=9910 + _globals['_SIMULATIONMODE']._serialized_start=9949 + _globals['_SIMULATIONMODE']._serialized_end=10051 _globals['_SIMULATIONRUNSUMMARY']._serialized_start=193 _globals['_SIMULATIONRUNSUMMARY']._serialized_end=555 _globals['_SIMULATIONRUNSUMMARY_CHATHISTORYENTRY']._serialized_start=412 @@ -50,7 +50,7 @@ _globals['_SIMULATIONRUNSUMMARY_ISSUE']._serialized_start=492 _globals['_SIMULATIONRUNSUMMARY_ISSUE']._serialized_end=555 _globals['_SIMULATIONRUN']._serialized_start=558 - _globals['_SIMULATIONRUN']._serialized_end=9148 + _globals['_SIMULATIONRUN']._serialized_end=9289 _globals['_SIMULATIONRUN_JOB']._serialized_start=1301 _globals['_SIMULATIONRUN_JOB']._serialized_end=2066 _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_start=1799 @@ -60,7 +60,7 @@ _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=6241 + _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 @@ -70,73 +70,75 @@ _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=5795 - _globals['_SIMULATIONRUN_JOBMETRICS_ENDREASON']._serialized_start=5798 - _globals['_SIMULATIONRUN_JOBMETRICS_ENDREASON']._serialized_end=6013 - _globals['_SIMULATIONRUN_RUNMETRICS']._serialized_start=6244 - _globals['_SIMULATIONRUN_RUNMETRICS']._serialized_end=6740 - _globals['_SIMULATIONRUN_CI']._serialized_start=6742 - _globals['_SIMULATIONRUN_CI']._serialized_end=6851 - _globals['_SIMULATIONRUN_SAMPLINGOPTIONS']._serialized_start=6853 - _globals['_SIMULATIONRUN_SAMPLINGOPTIONS']._serialized_end=6906 - _globals['_SIMULATIONRUN_CREATE']._serialized_start=6909 - _globals['_SIMULATIONRUN_CREATE']._serialized_end=7579 - _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_start=6920 - _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_end=7477 - _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_start=7479 - _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_end=7579 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_start=7581 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_end=7697 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_start=7604 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_end=7685 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_start=7479 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_end=7489 - _globals['_SIMULATIONRUN_GET']._serialized_start=7699 - _globals['_SIMULATIONRUN_GET']._serialized_end=7811 - _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_start=7604 - _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_end=7660 - _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_start=7764 - _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_end=7811 - _globals['_SIMULATIONRUN_LIST']._serialized_start=7814 - _globals['_SIMULATIONRUN_LIST']._serialized_end=8307 - _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_start=7823 - _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_end=8206 - _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_start=8208 - _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_end=8307 - _globals['_SIMULATIONRUN_COUNTS']._serialized_start=8310 - _globals['_SIMULATIONRUN_COUNTS']._serialized_end=8787 - _globals['_SIMULATIONRUN_COUNTS_REQUEST']._serialized_start=8321 - _globals['_SIMULATIONRUN_COUNTS_REQUEST']._serialized_end=8600 - _globals['_SIMULATIONRUN_COUNTS_RESPONSE']._serialized_start=8602 - _globals['_SIMULATIONRUN_COUNTS_RESPONSE']._serialized_end=8712 - _globals['_SIMULATIONRUN_COUNTS_BUCKET']._serialized_start=8714 - _globals['_SIMULATIONRUN_COUNTS_BUCKET']._serialized_end=8787 - _globals['_SIMULATIONRUN_CANCEL']._serialized_start=8789 - _globals['_SIMULATIONRUN_CANCEL']._serialized_end=8867 - _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_start=7604 - _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_end=7660 - _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_start=7479 - _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_end=7489 + _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=8932 - _globals['_SIMULATIONRUN_STATUS']._serialized_end=9097 - _globals['_SCENARIO']._serialized_start=9151 - _globals['_SCENARIO']._serialized_end=9479 - _globals['_SCENARIO_CREATEFROMSESSION']._serialized_start=9302 - _globals['_SCENARIO_CREATEFROMSESSION']._serialized_end=9434 - _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_start=9323 - _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_end=9385 - _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_start=9387 - _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_end=9434 - _globals['_SCENARIO_TAGSENTRY']._serialized_start=9436 - _globals['_SCENARIO_TAGSENTRY']._serialized_end=9479 - _globals['_SCENARIOGROUP']._serialized_start=9481 - _globals['_SCENARIOGROUP']._serialized_end=9560 - _globals['_SIMULATIONIMPAIRMENTS']._serialized_start=9562 - _globals['_SIMULATIONIMPAIRMENTS']._serialized_end=9664 - _globals['_SIMULATIONDISPATCH']._serialized_start=9667 - _globals['_SIMULATIONDISPATCH']._serialized_end=9806 - _globals['_AGENTSIMULATION']._serialized_start=9913 - _globals['_AGENTSIMULATION']._serialized_end=10685 + _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 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agent_simulation.pyi b/livekit-protocol/livekit/protocol/agent_simulation.pyi index 1469eb23..c7bb2905 100644 --- a/livekit-protocol/livekit/protocol/agent_simulation.pyi +++ b/livekit-protocol/livekit/protocol/agent_simulation.pyi @@ -247,7 +247,16 @@ class SimulationRun(_message.Message): backchannel_count: int def __init__(self, turn_taking_score: _Optional[float] = ..., heard_e2e_latency_p50_ms: _Optional[int] = ..., heard_e2e_latency_p95_ms: _Optional[int] = ..., heard_e2e_latency_p99_ms: _Optional[int] = ..., time_to_yield_ms: _Optional[int] = ..., eot_misprediction_count: _Optional[int] = ..., overlap_ratio: _Optional[float] = ..., overlap_speech_ms: _Optional[int] = ..., total_speech_ms: _Optional[int] = ..., awkward_silence_count: _Optional[int] = ..., unanswered_turns: _Optional[int] = ..., false_interruption_count: _Optional[int] = ..., e2e_latency_ms: _Optional[int] = ..., backchannel_count: _Optional[int] = ...) -> None: ... class Turn(_message.Message): - __slots__ = ("index", "role", "text", "start_ms", "end_ms", "stt_delay_ms", "llm_ttft_ms", "llm_ttfs_ms", "llm_tps", "tts_ttfb_ms", "e2e_latency_ms", "heard_e2e_latency_ms", "time_to_yield_ms", "turn_taking_score", "conciseness", "eot_misprediction", "awkward_silence", "unanswered") + __slots__ = ("index", "role", "text", "start_ms", "end_ms", "stt_delay_ms", "llm_ttft_ms", "llm_ttfs_ms", "llm_tps", "tts_ttfb_ms", "e2e_latency_ms", "heard_e2e_latency_ms", "time_to_yield_ms", "turn_taking_score", "conciseness", "eot_misprediction", "awkward_silence", "unanswered", "entities", "item_id") + class Entity(_message.Message): + __slots__ = ("said", "heard", "recognized") + SAID_FIELD_NUMBER: _ClassVar[int] + HEARD_FIELD_NUMBER: _ClassVar[int] + RECOGNIZED_FIELD_NUMBER: _ClassVar[int] + said: str + heard: str + recognized: bool + def __init__(self, said: _Optional[str] = ..., heard: _Optional[str] = ..., recognized: bool = ...) -> None: ... INDEX_FIELD_NUMBER: _ClassVar[int] ROLE_FIELD_NUMBER: _ClassVar[int] TEXT_FIELD_NUMBER: _ClassVar[int] @@ -266,6 +275,8 @@ class SimulationRun(_message.Message): EOT_MISPREDICTION_FIELD_NUMBER: _ClassVar[int] AWKWARD_SILENCE_FIELD_NUMBER: _ClassVar[int] UNANSWERED_FIELD_NUMBER: _ClassVar[int] + ENTITIES_FIELD_NUMBER: _ClassVar[int] + ITEM_ID_FIELD_NUMBER: _ClassVar[int] index: int role: _agent_session.ChatRole text: str @@ -284,7 +295,9 @@ class SimulationRun(_message.Message): eot_misprediction: bool awkward_silence: bool unanswered: bool - def __init__(self, index: _Optional[int] = ..., role: _Optional[_Union[_agent_session.ChatRole, str]] = ..., text: _Optional[str] = ..., start_ms: _Optional[int] = ..., end_ms: _Optional[int] = ..., stt_delay_ms: _Optional[int] = ..., llm_ttft_ms: _Optional[int] = ..., llm_ttfs_ms: _Optional[int] = ..., llm_tps: _Optional[float] = ..., tts_ttfb_ms: _Optional[int] = ..., e2e_latency_ms: _Optional[int] = ..., heard_e2e_latency_ms: _Optional[int] = ..., time_to_yield_ms: _Optional[int] = ..., turn_taking_score: _Optional[float] = ..., conciseness: _Optional[float] = ..., eot_misprediction: bool = ..., awkward_silence: bool = ..., unanswered: bool = ...) -> None: ... + entities: _containers.RepeatedCompositeFieldContainer[SimulationRun.JobMetrics.Turn.Entity] + item_id: str + def __init__(self, index: _Optional[int] = ..., role: _Optional[_Union[_agent_session.ChatRole, str]] = ..., text: _Optional[str] = ..., start_ms: _Optional[int] = ..., end_ms: _Optional[int] = ..., stt_delay_ms: _Optional[int] = ..., llm_ttft_ms: _Optional[int] = ..., llm_ttfs_ms: _Optional[int] = ..., llm_tps: _Optional[float] = ..., tts_ttfb_ms: _Optional[int] = ..., e2e_latency_ms: _Optional[int] = ..., heard_e2e_latency_ms: _Optional[int] = ..., time_to_yield_ms: _Optional[int] = ..., turn_taking_score: _Optional[float] = ..., conciseness: _Optional[float] = ..., eot_misprediction: bool = ..., awkward_silence: bool = ..., unanswered: bool = ..., entities: _Optional[_Iterable[_Union[SimulationRun.JobMetrics.Turn.Entity, _Mapping]]] = ..., item_id: _Optional[str] = ...) -> None: ... TASK_COMPLETION_FIELD_NUMBER: _ClassVar[int] OVERALL_SCORE_FIELD_NUMBER: _ClassVar[int] STT_FIELD_NUMBER: _ClassVar[int] diff --git a/livekit-protocol/protocol b/livekit-protocol/protocol index 8fd67308..868ecd58 160000 --- a/livekit-protocol/protocol +++ b/livekit-protocol/protocol @@ -1 +1 @@ -Subproject commit 8fd67308ffa80648cebf53e8b218651736d0b8f0 +Subproject commit 868ecd58e68880f138d313cc1c234db8d168aa91