From e0a89d09adedc872e603fea79e09c3dfc1ddee6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Monnom?= Date: Tue, 9 Jun 2026 19:29:38 -0700 Subject: [PATCH 1/3] protocol: regenerate agent_simulation for concurrency + SimulationMode Bumps the protocol submodule to livekit/protocol#1613 and regenerates the agent_simulation bindings: SimulationRun.Create.Request.concurrency, SimulationRun.concurrency, and the SimulationMode enum (TEXT/AUDIO) carried on SimulationDispatch.mode. Also reflects the agent_description drop from livekit/protocol#1610. --- .../livekit/protocol/agent_simulation.py | 118 +++++++++--------- .../livekit/protocol/agent_simulation.pyi | 29 +++-- livekit-protocol/protocol | 2 +- 3 files changed, 82 insertions(+), 67 deletions(-) diff --git a/livekit-protocol/livekit/protocol/agent_simulation.py b/livekit-protocol/livekit/protocol/agent_simulation.py index 5221d287..e538f1c2 100644 --- a/livekit-protocol/livekit/protocol/agent_simulation.py +++ b/livekit-protocol/livekit/protocol/agent_simulation.py @@ -18,7 +18,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\x1fgoogle/protobuf/timestamp.proto\x1a\x19livekit_cloud_agent.proto\x1a\x14livekit_models.proto\"\xea\x02\n\x14SimulationRunSummary\x12\x0e\n\x06passed\x18\x01 \x01(\x05\x12\x0e\n\x06\x66\x61iled\x18\x02 \x01(\x05\x12\x12\n\ngoing_well\x18\x03 \x01(\t\x12\x12\n\nto_improve\x18\x04 \x01(\t\x12\x33\n\x06issues\x18\x05 \x03(\x0b\x32#.livekit.SimulationRunSummary.Issue\x12\x44\n\x0c\x63hat_history\x18\x06 \x03(\x0b\x32..livekit.SimulationRunSummary.ChatHistoryEntry\x1aN\n\x10\x43hatHistoryEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.livekit.agent.ChatContext:\x02\x38\x01\x1a?\n\x05Issue\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12\x12\n\nsuggestion\x18\x02 \x01(\t\x12\r\n\x05label\x18\x03 \x01(\t\"\xf4\x10\n\rSimulationRun\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\t\x12-\n\x06status\x18\x03 \x01(\x0e\x32\x1d.livekit.SimulationRun.Status\x12\x19\n\x11\x61gent_description\x18\x04 \x01(\t\x12\r\n\x05\x65rror\x18\x05 \x01(\t\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12(\n\x04jobs\x18\x07 \x03(\x0b\x32\x1a.livekit.SimulationRun.Job\x12.\n\x07summary\x18\x08 \x01(\x0b\x32\x1d.livekit.SimulationRunSummary\x12\x12\n\nagent_name\x18\t \x01(\t\x12.\n\x0escenario_group\x18\n \x01(\x0b\x32\x16.livekit.ScenarioGroup\x12,\n\x08\x65nded_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x11\n\tjob_count\x18\x0c \x01(\x05\x12\x14\n\x0cpassed_count\x18\r \x01(\x05\x12\x14\n\x0c\x66\x61iled_count\x18\x0e \x01(\x05\x12\x17\n\x0fnum_simulations\x18\x0f \x01(\x05\x12+\n\x05usage\x18\x10 \x01(\x0b\x32\x1c.livekit.SimulationRun.Usage\x1a\x8a\x04\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\x12\x31\n\x06status\x18\x02 \x01(\x0e\x32!.livekit.SimulationRun.Job.Status\x12\x14\n\x0cinstructions\x18\x03 \x01(\t\x12\r\n\x05\x65rror\x18\x04 \x01(\t\x12\x1a\n\x12\x61gent_expectations\x18\x05 \x01(\t\x12\r\n\x05label\x18\x06 \x01(\t\x12\x0c\n\x04tags\x18\x07 \x03(\t\x12\x11\n\troom_name\x18\x08 \x01(\t\x12.\n\nstarted_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nded_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07room_id\x18\x0c \x01(\t\x12/\n\x05usage\x18\r \x01(\x0b\x32 .livekit.SimulationRun.Job.Usage\x1a<\n\x05Usage\x12\x18\n\x10text_turns_count\x18\x01 \x01(\x05\x12\x19\n\x11\x61udio_turns_count\x18\x02 \x01(\x05\"o\n\x06Status\x12\x12\n\x0eSTATUS_PENDING\x10\x00\x12\x12\n\x0eSTATUS_RUNNING\x10\x01\x12\x14\n\x10STATUS_COMPLETED\x10\x02\x12\x11\n\rSTATUS_FAILED\x10\x03\x12\x14\n\x10STATUS_CANCELLED\x10\x04J\x04\x08\t\x10\n\x1a\xae\x02\n\x06\x43reate\x1a\xbd\x01\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x12\n\nagent_name\x18\x02 \x01(\t\x12\x19\n\x11\x61gent_description\x18\x03 \x01(\t\x12\x17\n\x0fnum_simulations\x18\x04 \x01(\x05\x12\x0e\n\x06region\x18\x06 \x01(\t\x12\x33\n\x0escenario_group\x18\x07 \x01(\x0b\x32\x16.livekit.ScenarioGroupH\x00\x88\x01\x01\x42\x11\n\x0f_scenario_group\x1a\x64\n\x08Response\x12\x19\n\x11simulation_run_id\x18\x01 \x01(\t\x12=\n\x16presigned_post_request\x18\x02 \x01(\x0b\x32\x1d.livekit.PresignedPostRequest\x1at\n\x13\x43onfirmSourceUpload\x1aQ\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x19\n\x11simulation_run_id\x18\x02 \x01(\t\x12\x17\n\x0f\x63ode_entrypoint\x18\x03 \x01(\t\x1a\n\n\x08Response\x1ap\n\x03Get\x1a\x38\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x19\n\x11simulation_run_id\x18\x02 \x01(\t\x1a/\n\x08Response\x12#\n\x03run\x18\x01 \x01(\x0b\x32\x16.livekit.SimulationRun\x1a\x8c\x02\n\x04List\x1a\x9e\x01\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x32\n\x06status\x18\x02 \x01(\x0e\x32\x1d.livekit.SimulationRun.StatusH\x00\x88\x01\x01\x12\x31\n\npage_token\x18\x03 \x01(\x0b\x32\x18.livekit.TokenPaginationH\x01\x88\x01\x01\x42\t\n\x07_statusB\r\n\x0b_page_token\x1a\x63\n\x08Response\x12$\n\x04runs\x18\x01 \x03(\x0b\x32\x16.livekit.SimulationRun\x12\x31\n\x0fnext_page_token\x18\x02 \x01(\x0b\x32\x18.livekit.TokenPagination\x1aN\n\x06\x43\x61ncel\x1a\x38\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x19\n\x11simulation_run_id\x18\x02 \x01(\t\x1a\n\n\x08Response\x1a<\n\x05Usage\x12\x18\n\x10text_turns_count\x18\x01 \x01(\x05\x12\x19\n\x11\x61udio_turns_count\x18\x02 \x01(\x05\"\xa5\x01\n\x06Status\x12\x19\n\x15STATUS_PENDING_UPLOAD\x10\x00\x12\x15\n\x11STATUS_GENERATING\x10\x01\x12\x12\n\x0eSTATUS_RUNNING\x10\x02\x12\x16\n\x12STATUS_SUMMARIZING\x10\x03\x12\x14\n\x10STATUS_COMPLETED\x10\x04\x12\x11\n\rSTATUS_FAILED\x10\x05\x12\x14\n\x10STATUS_CANCELLED\x10\x06\"\xbc\x02\n\x08Scenario\x12\r\n\x05label\x18\x01 \x01(\t\x12\x14\n\x0cinstructions\x18\x02 \x01(\t\x12\x1a\n\x12\x61gent_expectations\x18\x03 \x01(\t\x12)\n\x04tags\x18\x04 \x03(\x0b\x32\x1b.livekit.Scenario.TagsEntry\x12\x10\n\x08userdata\x18\x05 \x01(\t\x1a\x84\x01\n\x11\x43reateFromSession\x1a>\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x0f\n\x07room_id\x18\x02 \x01(\t\x12\x0e\n\x06region\x18\x03 \x01(\t\x1a/\n\x08Response\x12#\n\x08scenario\x18\x01 \x01(\x0b\x32\x11.livekit.Scenario\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"C\n\rScenarioGroup\x12\x0c\n\x04name\x18\x01 \x01(\t\x12$\n\tscenarios\x18\x02 \x03(\x0b\x32\x11.livekit.Scenario\"d\n\x12SimulationDispatch\x12\x19\n\x11simulation_run_id\x18\x01 \x01(\t\x12\x0e\n\x06job_id\x18\x02 \x01(\t\x12#\n\x08scenario\x18\x03 \x01(\x0b\x32\x11.livekit.Scenario2\x9e\x05\n\x0f\x41gentSimulation\x12\x64\n\x13\x43reateSimulationRun\x12%.livekit.SimulationRun.Create.Request\x1a&.livekit.SimulationRun.Create.Response\x12\x88\x01\n\x1d\x43onfirmSimulationSourceUpload\x12\x32.livekit.SimulationRun.ConfirmSourceUpload.Request\x1a\x33.livekit.SimulationRun.ConfirmSourceUpload.Response\x12[\n\x10GetSimulationRun\x12\".livekit.SimulationRun.Get.Request\x1a#.livekit.SimulationRun.Get.Response\x12_\n\x12ListSimulationRuns\x12#.livekit.SimulationRun.List.Request\x1a$.livekit.SimulationRun.List.Response\x12\x64\n\x13\x43\x61ncelSimulationRun\x12%.livekit.SimulationRun.Cancel.Request\x1a&.livekit.SimulationRun.Cancel.Response\x12v\n\x19\x43reateScenarioFromSession\x12+.livekit.Scenario.CreateFromSession.Request\x1a,.livekit.Scenario.CreateFromSession.ResponseBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1elivekit_agent_simulation.proto\x12\x07livekit\x1a!agent/livekit_agent_session.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x19livekit_cloud_agent.proto\x1a\x14livekit_models.proto\"\xea\x02\n\x14SimulationRunSummary\x12\x0e\n\x06passed\x18\x01 \x01(\x05\x12\x0e\n\x06\x66\x61iled\x18\x02 \x01(\x05\x12\x12\n\ngoing_well\x18\x03 \x01(\t\x12\x12\n\nto_improve\x18\x04 \x01(\t\x12\x33\n\x06issues\x18\x05 \x03(\x0b\x32#.livekit.SimulationRunSummary.Issue\x12\x44\n\x0c\x63hat_history\x18\x06 \x03(\x0b\x32..livekit.SimulationRunSummary.ChatHistoryEntry\x1aN\n\x10\x43hatHistoryEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12)\n\x05value\x18\x02 \x01(\x0b\x32\x1a.livekit.agent.ChatContext:\x02\x38\x01\x1a?\n\x05Issue\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12\x12\n\nsuggestion\x18\x02 \x01(\t\x12\r\n\x05label\x18\x03 \x01(\t\"\xb1\x11\n\rSimulationRun\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\nproject_id\x18\x02 \x01(\t\x12-\n\x06status\x18\x03 \x01(\x0e\x32\x1d.livekit.SimulationRun.Status\x12\x19\n\x11\x61gent_description\x18\x04 \x01(\t\x12\r\n\x05\x65rror\x18\x05 \x01(\t\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12(\n\x04jobs\x18\x07 \x03(\x0b\x32\x1a.livekit.SimulationRun.Job\x12.\n\x07summary\x18\x08 \x01(\x0b\x32\x1d.livekit.SimulationRunSummary\x12\x12\n\nagent_name\x18\t \x01(\t\x12.\n\x0escenario_group\x18\n \x01(\x0b\x32\x16.livekit.ScenarioGroup\x12,\n\x08\x65nded_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x11\n\tjob_count\x18\x0c \x01(\x05\x12\x14\n\x0cpassed_count\x18\r \x01(\x05\x12\x14\n\x0c\x66\x61iled_count\x18\x0e \x01(\x05\x12\x17\n\x0fnum_simulations\x18\x0f \x01(\x05\x12+\n\x05usage\x18\x10 \x01(\x0b\x32\x1c.livekit.SimulationRun.Usage\x12\x13\n\x0b\x63oncurrency\x18\x11 \x01(\x05\x1a\x8a\x04\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\x12\x31\n\x06status\x18\x02 \x01(\x0e\x32!.livekit.SimulationRun.Job.Status\x12\x14\n\x0cinstructions\x18\x03 \x01(\t\x12\r\n\x05\x65rror\x18\x04 \x01(\t\x12\x1a\n\x12\x61gent_expectations\x18\x05 \x01(\t\x12\r\n\x05label\x18\x06 \x01(\t\x12\x0c\n\x04tags\x18\x07 \x03(\t\x12\x11\n\troom_name\x18\x08 \x01(\t\x12.\n\nstarted_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nded_at\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0f\n\x07room_id\x18\x0c \x01(\t\x12/\n\x05usage\x18\r \x01(\x0b\x32 .livekit.SimulationRun.Job.Usage\x1a<\n\x05Usage\x12\x18\n\x10text_turns_count\x18\x01 \x01(\x05\x12\x19\n\x11\x61udio_turns_count\x18\x02 \x01(\x05\"o\n\x06Status\x12\x12\n\x0eSTATUS_PENDING\x10\x00\x12\x12\n\x0eSTATUS_RUNNING\x10\x01\x12\x14\n\x10STATUS_COMPLETED\x10\x02\x12\x11\n\rSTATUS_FAILED\x10\x03\x12\x14\n\x10STATUS_CANCELLED\x10\x04J\x04\x08\t\x10\n\x1a\xd6\x02\n\x06\x43reate\x1a\xe5\x01\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\x42\x11\n\x0f_scenario_groupB\x0e\n\x0c_concurrencyJ\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\x8c\x02\n\x04List\x1a\x9e\x01\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x32\n\x06status\x18\x02 \x01(\x0e\x32\x1d.livekit.SimulationRun.StatusH\x00\x88\x01\x01\x12\x31\n\npage_token\x18\x03 \x01(\x0b\x32\x18.livekit.TokenPaginationH\x01\x88\x01\x01\x42\t\n\x07_statusB\r\n\x0b_page_token\x1a\x63\n\x08Response\x12$\n\x04runs\x18\x01 \x03(\x0b\x32\x16.livekit.SimulationRun\x12\x31\n\x0fnext_page_token\x18\x02 \x01(\x0b\x32\x18.livekit.TokenPagination\x1aN\n\x06\x43\x61ncel\x1a\x38\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x19\n\x11simulation_run_id\x18\x02 \x01(\t\x1a\n\n\x08Response\x1a<\n\x05Usage\x12\x18\n\x10text_turns_count\x18\x01 \x01(\x05\x12\x19\n\x11\x61udio_turns_count\x18\x02 \x01(\x05\"\xa5\x01\n\x06Status\x12\x19\n\x15STATUS_PENDING_UPLOAD\x10\x00\x12\x15\n\x11STATUS_GENERATING\x10\x01\x12\x12\n\x0eSTATUS_RUNNING\x10\x02\x12\x16\n\x12STATUS_SUMMARIZING\x10\x03\x12\x14\n\x10STATUS_COMPLETED\x10\x04\x12\x11\n\rSTATUS_FAILED\x10\x05\x12\x14\n\x10STATUS_CANCELLED\x10\x06\"\xbc\x02\n\x08Scenario\x12\r\n\x05label\x18\x01 \x01(\t\x12\x14\n\x0cinstructions\x18\x02 \x01(\t\x12\x1a\n\x12\x61gent_expectations\x18\x03 \x01(\t\x12)\n\x04tags\x18\x04 \x03(\x0b\x32\x1b.livekit.Scenario.TagsEntry\x12\x10\n\x08userdata\x18\x05 \x01(\t\x1a\x84\x01\n\x11\x43reateFromSession\x1a>\n\x07Request\x12\x12\n\nproject_id\x18\x01 \x01(\t\x12\x0f\n\x07room_id\x18\x02 \x01(\t\x12\x0e\n\x06region\x18\x03 \x01(\t\x1a/\n\x08Response\x12#\n\x08scenario\x18\x01 \x01(\x0b\x32\x11.livekit.Scenario\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"C\n\rScenarioGroup\x12\x0c\n\x04name\x18\x01 \x01(\t\x12$\n\tscenarios\x18\x02 \x03(\x0b\x32\x11.livekit.Scenario\"\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\x9e\x05\n\x0f\x41gentSimulation\x12\x64\n\x13\x43reateSimulationRun\x12%.livekit.SimulationRun.Create.Request\x1a&.livekit.SimulationRun.Create.Response\x12\x88\x01\n\x1d\x43onfirmSimulationSourceUpload\x12\x32.livekit.SimulationRun.ConfirmSourceUpload.Request\x1a\x33.livekit.SimulationRun.ConfirmSourceUpload.Response\x12[\n\x10GetSimulationRun\x12\".livekit.SimulationRun.Get.Request\x1a#.livekit.SimulationRun.Get.Response\x12_\n\x12ListSimulationRuns\x12#.livekit.SimulationRun.List.Request\x1a$.livekit.SimulationRun.List.Response\x12\x64\n\x13\x43\x61ncelSimulationRun\x12%.livekit.SimulationRun.Cancel.Request\x1a&.livekit.SimulationRun.Cancel.Response\x12v\n\x19\x43reateScenarioFromSession\x12+.livekit.Scenario.CreateFromSession.Request\x1a,.livekit.Scenario.CreateFromSession.ResponseBFZ#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -30,6 +30,8 @@ _globals['_SIMULATIONRUNSUMMARY_CHATHISTORYENTRY']._serialized_options = b'8\001' _globals['_SCENARIO_TAGSENTRY']._options = None _globals['_SCENARIO_TAGSENTRY']._serialized_options = b'8\001' + _globals['_SIMULATIONMODE']._serialized_start=3283 + _globals['_SIMULATIONMODE']._serialized_end=3385 _globals['_SIMULATIONRUNSUMMARY']._serialized_start=161 _globals['_SIMULATIONRUNSUMMARY']._serialized_end=523 _globals['_SIMULATIONRUNSUMMARY_CHATHISTORYENTRY']._serialized_start=380 @@ -37,61 +39,61 @@ _globals['_SIMULATIONRUNSUMMARY_ISSUE']._serialized_start=460 _globals['_SIMULATIONRUNSUMMARY_ISSUE']._serialized_end=523 _globals['_SIMULATIONRUN']._serialized_start=526 - _globals['_SIMULATIONRUN']._serialized_end=2690 - _globals['_SIMULATIONRUN_JOB']._serialized_start=1050 - _globals['_SIMULATIONRUN_JOB']._serialized_end=1572 - _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_start=1393 - _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_end=1453 - _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_start=1455 - _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_end=1566 - _globals['_SIMULATIONRUN_CREATE']._serialized_start=1575 - _globals['_SIMULATIONRUN_CREATE']._serialized_end=1877 - _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_start=1586 - _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_end=1775 - _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_start=1777 - _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_end=1877 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_start=1879 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_end=1995 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_start=1902 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_end=1983 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_start=1777 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_end=1787 - _globals['_SIMULATIONRUN_GET']._serialized_start=1997 - _globals['_SIMULATIONRUN_GET']._serialized_end=2109 - _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_start=1902 - _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_end=1958 - _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_start=2062 - _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_end=2109 - _globals['_SIMULATIONRUN_LIST']._serialized_start=2112 - _globals['_SIMULATIONRUN_LIST']._serialized_end=2380 - _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_start=2121 - _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_end=2279 - _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_start=2281 - _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_end=2380 - _globals['_SIMULATIONRUN_CANCEL']._serialized_start=2382 - _globals['_SIMULATIONRUN_CANCEL']._serialized_end=2460 - _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_start=1902 - _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_end=1958 - _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_start=1777 - _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_end=1787 - _globals['_SIMULATIONRUN_USAGE']._serialized_start=1393 - _globals['_SIMULATIONRUN_USAGE']._serialized_end=1453 - _globals['_SIMULATIONRUN_STATUS']._serialized_start=2525 - _globals['_SIMULATIONRUN_STATUS']._serialized_end=2690 - _globals['_SCENARIO']._serialized_start=2693 - _globals['_SCENARIO']._serialized_end=3009 - _globals['_SCENARIO_CREATEFROMSESSION']._serialized_start=2832 - _globals['_SCENARIO_CREATEFROMSESSION']._serialized_end=2964 - _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_start=2853 - _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_end=2915 - _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_start=2917 - _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_end=2964 - _globals['_SCENARIO_TAGSENTRY']._serialized_start=2966 - _globals['_SCENARIO_TAGSENTRY']._serialized_end=3009 - _globals['_SCENARIOGROUP']._serialized_start=3011 - _globals['_SCENARIOGROUP']._serialized_end=3078 - _globals['_SIMULATIONDISPATCH']._serialized_start=3080 - _globals['_SIMULATIONDISPATCH']._serialized_end=3180 - _globals['_AGENTSIMULATION']._serialized_start=3183 - _globals['_AGENTSIMULATION']._serialized_end=3853 + _globals['_SIMULATIONRUN']._serialized_end=2751 + _globals['_SIMULATIONRUN_JOB']._serialized_start=1071 + _globals['_SIMULATIONRUN_JOB']._serialized_end=1593 + _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_start=1414 + _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_end=1474 + _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_start=1476 + _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_end=1587 + _globals['_SIMULATIONRUN_CREATE']._serialized_start=1596 + _globals['_SIMULATIONRUN_CREATE']._serialized_end=1938 + _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_start=1607 + _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_end=1836 + _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_start=1838 + _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_end=1938 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_start=1940 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_end=2056 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_start=1963 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_end=2044 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_start=1838 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_end=1848 + _globals['_SIMULATIONRUN_GET']._serialized_start=2058 + _globals['_SIMULATIONRUN_GET']._serialized_end=2170 + _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_start=1963 + _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_end=2019 + _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_start=2123 + _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_end=2170 + _globals['_SIMULATIONRUN_LIST']._serialized_start=2173 + _globals['_SIMULATIONRUN_LIST']._serialized_end=2441 + _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_start=2182 + _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_end=2340 + _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_start=2342 + _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_end=2441 + _globals['_SIMULATIONRUN_CANCEL']._serialized_start=2443 + _globals['_SIMULATIONRUN_CANCEL']._serialized_end=2521 + _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_start=1963 + _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_end=2019 + _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_start=1838 + _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_end=1848 + _globals['_SIMULATIONRUN_USAGE']._serialized_start=1414 + _globals['_SIMULATIONRUN_USAGE']._serialized_end=1474 + _globals['_SIMULATIONRUN_STATUS']._serialized_start=2586 + _globals['_SIMULATIONRUN_STATUS']._serialized_end=2751 + _globals['_SCENARIO']._serialized_start=2754 + _globals['_SCENARIO']._serialized_end=3070 + _globals['_SCENARIO_CREATEFROMSESSION']._serialized_start=2893 + _globals['_SCENARIO_CREATEFROMSESSION']._serialized_end=3025 + _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_start=2914 + _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_end=2976 + _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_start=2978 + _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_end=3025 + _globals['_SCENARIO_TAGSENTRY']._serialized_start=3027 + _globals['_SCENARIO_TAGSENTRY']._serialized_end=3070 + _globals['_SCENARIOGROUP']._serialized_start=3072 + _globals['_SCENARIOGROUP']._serialized_end=3139 + _globals['_SIMULATIONDISPATCH']._serialized_start=3142 + _globals['_SIMULATIONDISPATCH']._serialized_end=3281 + _globals['_AGENTSIMULATION']._serialized_start=3388 + _globals['_AGENTSIMULATION']._serialized_end=4058 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agent_simulation.pyi b/livekit-protocol/livekit/protocol/agent_simulation.pyi index 6e2e62d2..3909ca70 100644 --- a/livekit-protocol/livekit/protocol/agent_simulation.pyi +++ b/livekit-protocol/livekit/protocol/agent_simulation.pyi @@ -10,6 +10,15 @@ from typing import ClassVar as _ClassVar, Iterable as _Iterable, Mapping as _Map DESCRIPTOR: _descriptor.FileDescriptor +class SimulationMode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + SIMULATION_MODE_UNSPECIFIED: _ClassVar[SimulationMode] + SIMULATION_MODE_TEXT: _ClassVar[SimulationMode] + SIMULATION_MODE_AUDIO: _ClassVar[SimulationMode] +SIMULATION_MODE_UNSPECIFIED: SimulationMode +SIMULATION_MODE_TEXT: SimulationMode +SIMULATION_MODE_AUDIO: SimulationMode + class SimulationRunSummary(_message.Message): __slots__ = ("passed", "failed", "going_well", "to_improve", "issues", "chat_history") class ChatHistoryEntry(_message.Message): @@ -43,7 +52,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", "summary", "agent_name", "scenario_group", "ended_at", "job_count", "passed_count", "failed_count", "num_simulations", "usage") + __slots__ = ("id", "project_id", "status", "agent_description", "error", "created_at", "jobs", "summary", "agent_name", "scenario_group", "ended_at", "job_count", "passed_count", "failed_count", "num_simulations", "usage", "concurrency") class Status(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () STATUS_PENDING_UPLOAD: _ClassVar[SimulationRun.Status] @@ -109,20 +118,20 @@ class SimulationRun(_message.Message): class Create(_message.Message): __slots__ = () class Request(_message.Message): - __slots__ = ("project_id", "agent_name", "agent_description", "num_simulations", "region", "scenario_group") + __slots__ = ("project_id", "agent_name", "num_simulations", "region", "scenario_group", "concurrency") PROJECT_ID_FIELD_NUMBER: _ClassVar[int] AGENT_NAME_FIELD_NUMBER: _ClassVar[int] - AGENT_DESCRIPTION_FIELD_NUMBER: _ClassVar[int] NUM_SIMULATIONS_FIELD_NUMBER: _ClassVar[int] REGION_FIELD_NUMBER: _ClassVar[int] SCENARIO_GROUP_FIELD_NUMBER: _ClassVar[int] + CONCURRENCY_FIELD_NUMBER: _ClassVar[int] project_id: str agent_name: str - agent_description: str num_simulations: int region: str scenario_group: ScenarioGroup - def __init__(self, project_id: _Optional[str] = ..., agent_name: _Optional[str] = ..., agent_description: _Optional[str] = ..., num_simulations: _Optional[int] = ..., region: _Optional[str] = ..., scenario_group: _Optional[_Union[ScenarioGroup, _Mapping]] = ...) -> None: ... + concurrency: int + 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] = ...) -> None: ... class Response(_message.Message): __slots__ = ("simulation_run_id", "presigned_post_request") SIMULATION_RUN_ID_FIELD_NUMBER: _ClassVar[int] @@ -216,6 +225,7 @@ class SimulationRun(_message.Message): FAILED_COUNT_FIELD_NUMBER: _ClassVar[int] NUM_SIMULATIONS_FIELD_NUMBER: _ClassVar[int] USAGE_FIELD_NUMBER: _ClassVar[int] + CONCURRENCY_FIELD_NUMBER: _ClassVar[int] id: str project_id: str status: SimulationRun.Status @@ -232,7 +242,8 @@ class SimulationRun(_message.Message): failed_count: int num_simulations: int usage: SimulationRun.Usage - def __init__(self, id: _Optional[str] = ..., project_id: _Optional[str] = ..., status: _Optional[_Union[SimulationRun.Status, str]] = ..., agent_description: _Optional[str] = ..., error: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., jobs: _Optional[_Iterable[_Union[SimulationRun.Job, _Mapping]]] = ..., summary: _Optional[_Union[SimulationRunSummary, _Mapping]] = ..., agent_name: _Optional[str] = ..., scenario_group: _Optional[_Union[ScenarioGroup, _Mapping]] = ..., ended_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., job_count: _Optional[int] = ..., passed_count: _Optional[int] = ..., failed_count: _Optional[int] = ..., num_simulations: _Optional[int] = ..., usage: _Optional[_Union[SimulationRun.Usage, _Mapping]] = ...) -> None: ... + concurrency: int + def __init__(self, id: _Optional[str] = ..., project_id: _Optional[str] = ..., status: _Optional[_Union[SimulationRun.Status, str]] = ..., agent_description: _Optional[str] = ..., error: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., jobs: _Optional[_Iterable[_Union[SimulationRun.Job, _Mapping]]] = ..., summary: _Optional[_Union[SimulationRunSummary, _Mapping]] = ..., agent_name: _Optional[str] = ..., scenario_group: _Optional[_Union[ScenarioGroup, _Mapping]] = ..., ended_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., job_count: _Optional[int] = ..., passed_count: _Optional[int] = ..., failed_count: _Optional[int] = ..., num_simulations: _Optional[int] = ..., usage: _Optional[_Union[SimulationRun.Usage, _Mapping]] = ..., concurrency: _Optional[int] = ...) -> None: ... class Scenario(_message.Message): __slots__ = ("label", "instructions", "agent_expectations", "tags", "userdata") @@ -281,11 +292,13 @@ class ScenarioGroup(_message.Message): def __init__(self, name: _Optional[str] = ..., scenarios: _Optional[_Iterable[_Union[Scenario, _Mapping]]] = ...) -> None: ... class SimulationDispatch(_message.Message): - __slots__ = ("simulation_run_id", "job_id", "scenario") + __slots__ = ("simulation_run_id", "job_id", "scenario", "mode") SIMULATION_RUN_ID_FIELD_NUMBER: _ClassVar[int] JOB_ID_FIELD_NUMBER: _ClassVar[int] SCENARIO_FIELD_NUMBER: _ClassVar[int] + MODE_FIELD_NUMBER: _ClassVar[int] simulation_run_id: str job_id: str scenario: Scenario - def __init__(self, simulation_run_id: _Optional[str] = ..., job_id: _Optional[str] = ..., scenario: _Optional[_Union[Scenario, _Mapping]] = ...) -> None: ... + mode: SimulationMode + def __init__(self, simulation_run_id: _Optional[str] = ..., job_id: _Optional[str] = ..., scenario: _Optional[_Union[Scenario, _Mapping]] = ..., mode: _Optional[_Union[SimulationMode, str]] = ...) -> None: ... diff --git a/livekit-protocol/protocol b/livekit-protocol/protocol index e9abadf9..53915ab2 160000 --- a/livekit-protocol/protocol +++ b/livekit-protocol/protocol @@ -1 +1 @@ -Subproject commit e9abadf977067eef4154591e443a28bf9be59acd +Subproject commit 53915ab24d75bc30ac30ca88b63f529beb44fab7 From 7293b12dbe29028f761a797ce03218352e450921 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Monnom?= Date: Wed, 10 Jun 2026 10:39:10 -0700 Subject: [PATCH 2/3] bump protocol submodule to the merged livekit/protocol#1613 commit --- livekit-protocol/protocol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/livekit-protocol/protocol b/livekit-protocol/protocol index 53915ab2..5e03f5ef 160000 --- a/livekit-protocol/protocol +++ b/livekit-protocol/protocol @@ -1 +1 @@ -Subproject commit 53915ab24d75bc30ac30ca88b63f529beb44fab7 +Subproject commit 5e03f5ef0e6bdf522d7e59a1d39d98d5637eeeee From bbd41dfdfe445a6b1daff098d53a54a35790a5e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Monnom?= Date: Wed, 10 Jun 2026 10:59:38 -0700 Subject: [PATCH 3/3] bump protocol submodule to main (SimulationMode merged) --- livekit-protocol/protocol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/livekit-protocol/protocol b/livekit-protocol/protocol index 5e03f5ef..3ccff51e 160000 --- a/livekit-protocol/protocol +++ b/livekit-protocol/protocol @@ -1 +1 @@ -Subproject commit 5e03f5ef0e6bdf522d7e59a1d39d98d5637eeeee +Subproject commit 3ccff51ebf5be98aae17d60b07588c15043df8f6