From c0158396cda7cdad615288ea54d1ed187826f0d9 Mon Sep 17 00:00:00 2001 From: Arseny Boykov Date: Thu, 16 Jul 2026 17:23:03 +0400 Subject: [PATCH 1/2] chore: bump protocol for simulaton metrics --- livekit-protocol/protocol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/livekit-protocol/protocol b/livekit-protocol/protocol index c39006ef..74296228 160000 --- a/livekit-protocol/protocol +++ b/livekit-protocol/protocol @@ -1 +1 @@ -Subproject commit c39006ef3edf1172ea96ffee0713b1e3248579f9 +Subproject commit 74296228107d852bafdc3e0ca9cc72643150be43 From f99018e98a6c983391993527fcf0a6ae50ae2725 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 16 Jul 2026 13:26:11 +0000 Subject: [PATCH 2/2] generated protobuf --- livekit-protocol/livekit/protocol/agent.py | 84 ++--- livekit-protocol/livekit/protocol/agent.pyi | 6 +- .../protocol/agent_pb/agent_session.py | 298 +++++++++--------- .../protocol/agent_pb/agent_session.pyi | 19 +- .../livekit/protocol/agent_simulation.py | 136 ++++---- .../livekit/protocol/agent_simulation.pyi | 186 ++++++++++- .../livekit/protocol/connector_whatsapp.py | 26 +- .../livekit/protocol/connector_whatsapp.pyi | 6 +- 8 files changed, 484 insertions(+), 277 deletions(-) diff --git a/livekit-protocol/livekit/protocol/agent.py b/livekit-protocol/livekit/protocol/agent.py index 09c683d1..5116b2c6 100644 --- a/livekit-protocol/livekit/protocol/agent.py +++ b/livekit-protocol/livekit/protocol/agent.py @@ -26,7 +26,7 @@ from .logger_pb import options as logger_dot_options__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13livekit_agent.proto\x12\x07livekit\x1a\x14livekit_models.proto\x1a\x14logger/options.proto\"\xb2\x03\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\x12\"\n\x0b\x64ispatch_id\x18\t \x01(\tB\r\xbaP\ndispatchID\x12\x1e\n\x04type\x18\x02 \x01(\x0e\x32\x10.livekit.JobType\x12\x1b\n\x04room\x18\x03 \x01(\x0b\x32\r.livekit.Room\x12\x32\n\x0bparticipant\x18\x04 \x01(\x0b\x32\x18.livekit.ParticipantInfoH\x00\x88\x01\x01\x12\x15\n\tnamespace\x18\x05 \x01(\tB\x02\x18\x01\x12\x15\n\x08metadata\x18\x06 \x01(\tB\x03\xc0P\x01\x12\x12\n\nagent_name\x18\x07 \x01(\t\x12 \n\x05state\x18\x08 \x01(\x0b\x32\x11.livekit.JobState\x12\x18\n\x10\x65nable_recording\x18\n \x01(\x08\x12\x12\n\ndeployment\x18\x0b \x01(\t\x12\x35\n\nattributes\x18\x0c \x03(\x0b\x32\x1c.livekit.Job.AttributesEntryB\x03\xc0P\x01\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_participant\"\xd3\x01\n\x08JobState\x12\"\n\x06status\x18\x01 \x01(\x0e\x32\x12.livekit.JobStatus\x12\r\n\x05\x65rror\x18\x02 \x01(\t\x12\x12\n\nstarted_at\x18\x03 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x04 \x01(\x03\x12\x12\n\nupdated_at\x18\x05 \x01(\x03\x12\x1c\n\x14participant_identity\x18\x06 \x01(\t\x12\x1e\n\tworker_id\x18\x07 \x01(\tB\x0b\xbaP\x08workerID\x12\x1c\n\x08\x61gent_id\x18\x08 \x01(\tB\n\xbaP\x07\x61gentID\"\xf8\x02\n\rWorkerMessage\x12\x32\n\x08register\x18\x01 \x01(\x0b\x32\x1e.livekit.RegisterWorkerRequestH\x00\x12\x35\n\x0c\x61vailability\x18\x02 \x01(\x0b\x32\x1d.livekit.AvailabilityResponseH\x00\x12\x34\n\rupdate_worker\x18\x03 \x01(\x0b\x32\x1b.livekit.UpdateWorkerStatusH\x00\x12.\n\nupdate_job\x18\x04 \x01(\x0b\x32\x18.livekit.UpdateJobStatusH\x00\x12#\n\x04ping\x18\x05 \x01(\x0b\x32\x13.livekit.WorkerPingH\x00\x12\x33\n\x0csimulate_job\x18\x06 \x01(\x0b\x32\x1b.livekit.SimulateJobRequestH\x00\x12\x31\n\x0bmigrate_job\x18\x07 \x01(\x0b\x32\x1a.livekit.MigrateJobRequestH\x00\x42\t\n\x07message\"\x88\x02\n\rServerMessage\x12\x33\n\x08register\x18\x01 \x01(\x0b\x32\x1f.livekit.RegisterWorkerResponseH\x00\x12\x34\n\x0c\x61vailability\x18\x02 \x01(\x0b\x32\x1c.livekit.AvailabilityRequestH\x00\x12,\n\nassignment\x18\x03 \x01(\x0b\x32\x16.livekit.JobAssignmentH\x00\x12.\n\x0btermination\x18\x05 \x01(\x0b\x32\x17.livekit.JobTerminationH\x00\x12#\n\x04pong\x18\x04 \x01(\x0b\x32\x13.livekit.WorkerPongH\x00\x42\t\n\x07message\"\x80\x01\n\x12SimulateJobRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.livekit.JobType\x12\x1b\n\x04room\x18\x02 \x01(\x0b\x32\r.livekit.Room\x12-\n\x0bparticipant\x18\x03 \x01(\x0b\x32\x18.livekit.ParticipantInfo\"\x1f\n\nWorkerPing\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\"7\n\nWorkerPong\x12\x16\n\x0elast_timestamp\x18\x01 \x01(\x03\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\"\xea\x01\n\x15RegisterWorkerRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.livekit.JobType\x12\x12\n\nagent_name\x18\x08 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x15\n\rping_interval\x18\x05 \x01(\r\x12\x16\n\tnamespace\x18\x06 \x01(\tH\x00\x88\x01\x01\x12;\n\x13\x61llowed_permissions\x18\x07 \x01(\x0b\x32\x1e.livekit.ParticipantPermission\x12\x12\n\ndeployment\x18\t \x01(\tB\x0c\n\n_namespace\"b\n\x16RegisterWorkerResponse\x12\x1e\n\tworker_id\x18\x01 \x01(\tB\x0b\xbaP\x08workerID\x12(\n\x0bserver_info\x18\x03 \x01(\x0b\x32\x13.livekit.ServerInfo\"$\n\x11MigrateJobRequest\x12\x0f\n\x07job_ids\x18\x02 \x03(\t\"B\n\x13\x41vailabilityRequest\x12\x19\n\x03job\x18\x01 \x01(\x0b\x32\x0c.livekit.Job\x12\x10\n\x08resuming\x18\x02 \x01(\x08\"\xdd\x02\n\x14\x41vailabilityResponse\x12\x18\n\x06job_id\x18\x01 \x01(\tB\x08\xbaP\x05jobID\x12\x11\n\tavailable\x18\x02 \x01(\x08\x12\x17\n\x0fsupports_resume\x18\x03 \x01(\x08\x12\x11\n\tterminate\x18\x08 \x01(\x08\x12\x18\n\x10participant_name\x18\x04 \x01(\t\x12\x1c\n\x14participant_identity\x18\x05 \x01(\t\x12\x1c\n\x14participant_metadata\x18\x06 \x01(\t\x12X\n\x16participant_attributes\x18\x07 \x03(\x0b\x32\x38.livekit.AvailabilityResponse.ParticipantAttributesEntry\x1a<\n\x1aParticipantAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"^\n\x0fUpdateJobStatus\x12\x18\n\x06job_id\x18\x01 \x01(\tB\x08\xbaP\x05jobID\x12\"\n\x06status\x18\x02 \x01(\x0e\x32\x12.livekit.JobStatus\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"l\n\x12UpdateWorkerStatus\x12*\n\x06status\x18\x01 \x01(\x0e\x32\x15.livekit.WorkerStatusH\x00\x88\x01\x01\x12\x0c\n\x04load\x18\x03 \x01(\x02\x12\x11\n\tjob_count\x18\x04 \x01(\rB\t\n\x07_status\"S\n\rJobAssignment\x12\x19\n\x03job\x18\x01 \x01(\x0b\x32\x0c.livekit.Job\x12\x10\n\x03url\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05token\x18\x03 \x01(\tB\x06\n\x04_url\"*\n\x0eJobTermination\x12\x18\n\x06job_id\x18\x01 \x01(\tB\x08\xbaP\x05jobID*<\n\x07JobType\x12\x0b\n\x07JT_ROOM\x10\x00\x12\x10\n\x0cJT_PUBLISHER\x10\x01\x12\x12\n\x0eJT_PARTICIPANT\x10\x02*-\n\x0cWorkerStatus\x12\x10\n\x0cWS_AVAILABLE\x10\x00\x12\x0b\n\x07WS_FULL\x10\x01*J\n\tJobStatus\x12\x0e\n\nJS_PENDING\x10\x00\x12\x0e\n\nJS_RUNNING\x10\x01\x12\x0e\n\nJS_SUCCESS\x10\x02\x12\r\n\tJS_FAILED\x10\x03\x42\x46Z#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13livekit_agent.proto\x12\x07livekit\x1a\x14livekit_models.proto\x1a\x14logger/options.proto\"\xcc\x03\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\x12\"\n\x0b\x64ispatch_id\x18\t \x01(\tB\r\xbaP\ndispatchID\x12\x1e\n\x04type\x18\x02 \x01(\x0e\x32\x10.livekit.JobType\x12\x1b\n\x04room\x18\x03 \x01(\x0b\x32\r.livekit.Room\x12\x32\n\x0bparticipant\x18\x04 \x01(\x0b\x32\x18.livekit.ParticipantInfoH\x00\x88\x01\x01\x12\x15\n\tnamespace\x18\x05 \x01(\tB\x02\x18\x01\x12\x15\n\x08metadata\x18\x06 \x01(\tB\x03\xc0P\x01\x12\x12\n\nagent_name\x18\x07 \x01(\t\x12 \n\x05state\x18\x08 \x01(\x0b\x32\x11.livekit.JobState\x12\x18\n\x10\x65nable_recording\x18\n \x01(\x08\x12\x12\n\ndeployment\x18\x0b \x01(\t\x12\x35\n\nattributes\x18\x0c \x03(\x0b\x32\x1c.livekit.Job.AttributesEntryB\x03\xc0P\x01\x12\x18\n\x10\x65nable_redaction\x18\r \x01(\x08\x1a\x31\n\x0f\x41ttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x0e\n\x0c_participant\"\xd3\x01\n\x08JobState\x12\"\n\x06status\x18\x01 \x01(\x0e\x32\x12.livekit.JobStatus\x12\r\n\x05\x65rror\x18\x02 \x01(\t\x12\x12\n\nstarted_at\x18\x03 \x01(\x03\x12\x10\n\x08\x65nded_at\x18\x04 \x01(\x03\x12\x12\n\nupdated_at\x18\x05 \x01(\x03\x12\x1c\n\x14participant_identity\x18\x06 \x01(\t\x12\x1e\n\tworker_id\x18\x07 \x01(\tB\x0b\xbaP\x08workerID\x12\x1c\n\x08\x61gent_id\x18\x08 \x01(\tB\n\xbaP\x07\x61gentID\"\xf8\x02\n\rWorkerMessage\x12\x32\n\x08register\x18\x01 \x01(\x0b\x32\x1e.livekit.RegisterWorkerRequestH\x00\x12\x35\n\x0c\x61vailability\x18\x02 \x01(\x0b\x32\x1d.livekit.AvailabilityResponseH\x00\x12\x34\n\rupdate_worker\x18\x03 \x01(\x0b\x32\x1b.livekit.UpdateWorkerStatusH\x00\x12.\n\nupdate_job\x18\x04 \x01(\x0b\x32\x18.livekit.UpdateJobStatusH\x00\x12#\n\x04ping\x18\x05 \x01(\x0b\x32\x13.livekit.WorkerPingH\x00\x12\x33\n\x0csimulate_job\x18\x06 \x01(\x0b\x32\x1b.livekit.SimulateJobRequestH\x00\x12\x31\n\x0bmigrate_job\x18\x07 \x01(\x0b\x32\x1a.livekit.MigrateJobRequestH\x00\x42\t\n\x07message\"\x88\x02\n\rServerMessage\x12\x33\n\x08register\x18\x01 \x01(\x0b\x32\x1f.livekit.RegisterWorkerResponseH\x00\x12\x34\n\x0c\x61vailability\x18\x02 \x01(\x0b\x32\x1c.livekit.AvailabilityRequestH\x00\x12,\n\nassignment\x18\x03 \x01(\x0b\x32\x16.livekit.JobAssignmentH\x00\x12.\n\x0btermination\x18\x05 \x01(\x0b\x32\x17.livekit.JobTerminationH\x00\x12#\n\x04pong\x18\x04 \x01(\x0b\x32\x13.livekit.WorkerPongH\x00\x42\t\n\x07message\"\x80\x01\n\x12SimulateJobRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.livekit.JobType\x12\x1b\n\x04room\x18\x02 \x01(\x0b\x32\r.livekit.Room\x12-\n\x0bparticipant\x18\x03 \x01(\x0b\x32\x18.livekit.ParticipantInfo\"\x1f\n\nWorkerPing\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\"7\n\nWorkerPong\x12\x16\n\x0elast_timestamp\x18\x01 \x01(\x03\x12\x11\n\ttimestamp\x18\x02 \x01(\x03\"\xea\x01\n\x15RegisterWorkerRequest\x12\x1e\n\x04type\x18\x01 \x01(\x0e\x32\x10.livekit.JobType\x12\x12\n\nagent_name\x18\x08 \x01(\t\x12\x0f\n\x07version\x18\x03 \x01(\t\x12\x15\n\rping_interval\x18\x05 \x01(\r\x12\x16\n\tnamespace\x18\x06 \x01(\tH\x00\x88\x01\x01\x12;\n\x13\x61llowed_permissions\x18\x07 \x01(\x0b\x32\x1e.livekit.ParticipantPermission\x12\x12\n\ndeployment\x18\t \x01(\tB\x0c\n\n_namespace\"b\n\x16RegisterWorkerResponse\x12\x1e\n\tworker_id\x18\x01 \x01(\tB\x0b\xbaP\x08workerID\x12(\n\x0bserver_info\x18\x03 \x01(\x0b\x32\x13.livekit.ServerInfo\"$\n\x11MigrateJobRequest\x12\x0f\n\x07job_ids\x18\x02 \x03(\t\"B\n\x13\x41vailabilityRequest\x12\x19\n\x03job\x18\x01 \x01(\x0b\x32\x0c.livekit.Job\x12\x10\n\x08resuming\x18\x02 \x01(\x08\"\xdd\x02\n\x14\x41vailabilityResponse\x12\x18\n\x06job_id\x18\x01 \x01(\tB\x08\xbaP\x05jobID\x12\x11\n\tavailable\x18\x02 \x01(\x08\x12\x17\n\x0fsupports_resume\x18\x03 \x01(\x08\x12\x11\n\tterminate\x18\x08 \x01(\x08\x12\x18\n\x10participant_name\x18\x04 \x01(\t\x12\x1c\n\x14participant_identity\x18\x05 \x01(\t\x12\x1c\n\x14participant_metadata\x18\x06 \x01(\t\x12X\n\x16participant_attributes\x18\x07 \x03(\x0b\x32\x38.livekit.AvailabilityResponse.ParticipantAttributesEntry\x1a<\n\x1aParticipantAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"^\n\x0fUpdateJobStatus\x12\x18\n\x06job_id\x18\x01 \x01(\tB\x08\xbaP\x05jobID\x12\"\n\x06status\x18\x02 \x01(\x0e\x32\x12.livekit.JobStatus\x12\r\n\x05\x65rror\x18\x03 \x01(\t\"l\n\x12UpdateWorkerStatus\x12*\n\x06status\x18\x01 \x01(\x0e\x32\x15.livekit.WorkerStatusH\x00\x88\x01\x01\x12\x0c\n\x04load\x18\x03 \x01(\x02\x12\x11\n\tjob_count\x18\x04 \x01(\rB\t\n\x07_status\"S\n\rJobAssignment\x12\x19\n\x03job\x18\x01 \x01(\x0b\x32\x0c.livekit.Job\x12\x10\n\x03url\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05token\x18\x03 \x01(\tB\x06\n\x04_url\"*\n\x0eJobTermination\x12\x18\n\x06job_id\x18\x01 \x01(\tB\x08\xbaP\x05jobID*<\n\x07JobType\x12\x0b\n\x07JT_ROOM\x10\x00\x12\x10\n\x0cJT_PUBLISHER\x10\x01\x12\x12\n\x0eJT_PARTICIPANT\x10\x02*-\n\x0cWorkerStatus\x12\x10\n\x0cWS_AVAILABLE\x10\x00\x12\x0b\n\x07WS_FULL\x10\x01*J\n\tJobStatus\x12\x0e\n\nJS_PENDING\x10\x00\x12\x0e\n\nJS_RUNNING\x10\x01\x12\x0e\n\nJS_SUCCESS\x10\x02\x12\r\n\tJS_FAILED\x10\x03\x42\x46Z#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -58,46 +58,46 @@ _globals['_UPDATEJOBSTATUS'].fields_by_name['job_id']._serialized_options = b'\272P\005jobID' _globals['_JOBTERMINATION'].fields_by_name['job_id']._loaded_options = None _globals['_JOBTERMINATION'].fields_by_name['job_id']._serialized_options = b'\272P\005jobID' - _globals['_JOBTYPE']._serialized_start=2724 - _globals['_JOBTYPE']._serialized_end=2784 - _globals['_WORKERSTATUS']._serialized_start=2786 - _globals['_WORKERSTATUS']._serialized_end=2831 - _globals['_JOBSTATUS']._serialized_start=2833 - _globals['_JOBSTATUS']._serialized_end=2907 + _globals['_JOBTYPE']._serialized_start=2750 + _globals['_JOBTYPE']._serialized_end=2810 + _globals['_WORKERSTATUS']._serialized_start=2812 + _globals['_WORKERSTATUS']._serialized_end=2857 + _globals['_JOBSTATUS']._serialized_start=2859 + _globals['_JOBSTATUS']._serialized_end=2933 _globals['_JOB']._serialized_start=77 - _globals['_JOB']._serialized_end=511 - _globals['_JOB_ATTRIBUTESENTRY']._serialized_start=446 - _globals['_JOB_ATTRIBUTESENTRY']._serialized_end=495 - _globals['_JOBSTATE']._serialized_start=514 - _globals['_JOBSTATE']._serialized_end=725 - _globals['_WORKERMESSAGE']._serialized_start=728 - _globals['_WORKERMESSAGE']._serialized_end=1104 - _globals['_SERVERMESSAGE']._serialized_start=1107 - _globals['_SERVERMESSAGE']._serialized_end=1371 - _globals['_SIMULATEJOBREQUEST']._serialized_start=1374 - _globals['_SIMULATEJOBREQUEST']._serialized_end=1502 - _globals['_WORKERPING']._serialized_start=1504 - _globals['_WORKERPING']._serialized_end=1535 - _globals['_WORKERPONG']._serialized_start=1537 - _globals['_WORKERPONG']._serialized_end=1592 - _globals['_REGISTERWORKERREQUEST']._serialized_start=1595 - _globals['_REGISTERWORKERREQUEST']._serialized_end=1829 - _globals['_REGISTERWORKERRESPONSE']._serialized_start=1831 - _globals['_REGISTERWORKERRESPONSE']._serialized_end=1929 - _globals['_MIGRATEJOBREQUEST']._serialized_start=1931 - _globals['_MIGRATEJOBREQUEST']._serialized_end=1967 - _globals['_AVAILABILITYREQUEST']._serialized_start=1969 - _globals['_AVAILABILITYREQUEST']._serialized_end=2035 - _globals['_AVAILABILITYRESPONSE']._serialized_start=2038 - _globals['_AVAILABILITYRESPONSE']._serialized_end=2387 - _globals['_AVAILABILITYRESPONSE_PARTICIPANTATTRIBUTESENTRY']._serialized_start=2327 - _globals['_AVAILABILITYRESPONSE_PARTICIPANTATTRIBUTESENTRY']._serialized_end=2387 - _globals['_UPDATEJOBSTATUS']._serialized_start=2389 - _globals['_UPDATEJOBSTATUS']._serialized_end=2483 - _globals['_UPDATEWORKERSTATUS']._serialized_start=2485 - _globals['_UPDATEWORKERSTATUS']._serialized_end=2593 - _globals['_JOBASSIGNMENT']._serialized_start=2595 - _globals['_JOBASSIGNMENT']._serialized_end=2678 - _globals['_JOBTERMINATION']._serialized_start=2680 - _globals['_JOBTERMINATION']._serialized_end=2722 + _globals['_JOB']._serialized_end=537 + _globals['_JOB_ATTRIBUTESENTRY']._serialized_start=472 + _globals['_JOB_ATTRIBUTESENTRY']._serialized_end=521 + _globals['_JOBSTATE']._serialized_start=540 + _globals['_JOBSTATE']._serialized_end=751 + _globals['_WORKERMESSAGE']._serialized_start=754 + _globals['_WORKERMESSAGE']._serialized_end=1130 + _globals['_SERVERMESSAGE']._serialized_start=1133 + _globals['_SERVERMESSAGE']._serialized_end=1397 + _globals['_SIMULATEJOBREQUEST']._serialized_start=1400 + _globals['_SIMULATEJOBREQUEST']._serialized_end=1528 + _globals['_WORKERPING']._serialized_start=1530 + _globals['_WORKERPING']._serialized_end=1561 + _globals['_WORKERPONG']._serialized_start=1563 + _globals['_WORKERPONG']._serialized_end=1618 + _globals['_REGISTERWORKERREQUEST']._serialized_start=1621 + _globals['_REGISTERWORKERREQUEST']._serialized_end=1855 + _globals['_REGISTERWORKERRESPONSE']._serialized_start=1857 + _globals['_REGISTERWORKERRESPONSE']._serialized_end=1955 + _globals['_MIGRATEJOBREQUEST']._serialized_start=1957 + _globals['_MIGRATEJOBREQUEST']._serialized_end=1993 + _globals['_AVAILABILITYREQUEST']._serialized_start=1995 + _globals['_AVAILABILITYREQUEST']._serialized_end=2061 + _globals['_AVAILABILITYRESPONSE']._serialized_start=2064 + _globals['_AVAILABILITYRESPONSE']._serialized_end=2413 + _globals['_AVAILABILITYRESPONSE_PARTICIPANTATTRIBUTESENTRY']._serialized_start=2353 + _globals['_AVAILABILITYRESPONSE_PARTICIPANTATTRIBUTESENTRY']._serialized_end=2413 + _globals['_UPDATEJOBSTATUS']._serialized_start=2415 + _globals['_UPDATEJOBSTATUS']._serialized_end=2509 + _globals['_UPDATEWORKERSTATUS']._serialized_start=2511 + _globals['_UPDATEWORKERSTATUS']._serialized_end=2619 + _globals['_JOBASSIGNMENT']._serialized_start=2621 + _globals['_JOBASSIGNMENT']._serialized_end=2704 + _globals['_JOBTERMINATION']._serialized_start=2706 + _globals['_JOBTERMINATION']._serialized_end=2748 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agent.pyi b/livekit-protocol/livekit/protocol/agent.pyi index 2a8c0fb6..5c7b1dff 100644 --- a/livekit-protocol/livekit/protocol/agent.pyi +++ b/livekit-protocol/livekit/protocol/agent.pyi @@ -36,7 +36,7 @@ JS_SUCCESS: JobStatus JS_FAILED: JobStatus class Job(_message.Message): - __slots__ = ("id", "dispatch_id", "type", "room", "participant", "namespace", "metadata", "agent_name", "state", "enable_recording", "deployment", "attributes") + __slots__ = ("id", "dispatch_id", "type", "room", "participant", "namespace", "metadata", "agent_name", "state", "enable_recording", "deployment", "attributes", "enable_redaction") class AttributesEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -56,6 +56,7 @@ class Job(_message.Message): ENABLE_RECORDING_FIELD_NUMBER: _ClassVar[int] DEPLOYMENT_FIELD_NUMBER: _ClassVar[int] ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + ENABLE_REDACTION_FIELD_NUMBER: _ClassVar[int] id: str dispatch_id: str type: JobType @@ -68,7 +69,8 @@ class Job(_message.Message): enable_recording: bool deployment: str attributes: _containers.ScalarMap[str, str] - def __init__(self, id: _Optional[str] = ..., dispatch_id: _Optional[str] = ..., type: _Optional[_Union[JobType, str]] = ..., room: _Optional[_Union[_models.Room, _Mapping]] = ..., participant: _Optional[_Union[_models.ParticipantInfo, _Mapping]] = ..., namespace: _Optional[str] = ..., metadata: _Optional[str] = ..., agent_name: _Optional[str] = ..., state: _Optional[_Union[JobState, _Mapping]] = ..., enable_recording: bool = ..., deployment: _Optional[str] = ..., attributes: _Optional[_Mapping[str, str]] = ...) -> None: ... + enable_redaction: bool + def __init__(self, id: _Optional[str] = ..., dispatch_id: _Optional[str] = ..., type: _Optional[_Union[JobType, str]] = ..., room: _Optional[_Union[_models.Room, _Mapping]] = ..., participant: _Optional[_Union[_models.ParticipantInfo, _Mapping]] = ..., namespace: _Optional[str] = ..., metadata: _Optional[str] = ..., agent_name: _Optional[str] = ..., state: _Optional[_Union[JobState, _Mapping]] = ..., enable_recording: bool = ..., deployment: _Optional[str] = ..., attributes: _Optional[_Mapping[str, str]] = ..., enable_redaction: bool = ...) -> None: ... class JobState(_message.Message): __slots__ = ("status", "error", "started_at", "ended_at", "updated_at", "participant_identity", "worker_id", "agent_id") diff --git a/livekit-protocol/livekit/protocol/agent_pb/agent_session.py b/livekit-protocol/livekit/protocol/agent_pb/agent_session.py index 8bb248b5..fb78ab9e 100644 --- a/livekit-protocol/livekit/protocol/agent_pb/agent_session.py +++ b/livekit-protocol/livekit/protocol/agent_pb/agent_session.py @@ -28,7 +28,7 @@ from ..logger_pb import options as logger_dot_options__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!agent/livekit_agent_session.proto\x12\rlivekit.agent\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x14logger/options.proto\"\xc3\x03\n\rMetricsReport\x12\x37\n\x13started_speaking_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\x13stopped_speaking_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12 \n\x13transcription_delay\x18\x03 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11\x65nd_of_turn_delay\x18\x04 \x01(\x01H\x01\x88\x01\x01\x12)\n\x1con_user_turn_completed_delay\x18\x05 \x01(\x01H\x02\x88\x01\x01\x12\x1a\n\rllm_node_ttft\x18\x06 \x01(\x01H\x03\x88\x01\x01\x12\x1a\n\rtts_node_ttfb\x18\x07 \x01(\x01H\x04\x88\x01\x01\x12\x18\n\x0b\x65\x32\x65_latency\x18\x08 \x01(\x01H\x05\x88\x01\x01\x42\x16\n\x14_transcription_delayB\x14\n\x12_end_of_turn_delayB\x1f\n\x1d_on_user_turn_completed_delayB\x10\n\x0e_llm_node_ttftB\x10\n\x0e_tts_node_ttfbB\x0e\n\x0c_e2e_latency\"\xed\x01\n\x0bTimedString\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x17\n\nstart_time\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x65nd_time\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\nconfidence\x18\x04 \x01(\x01H\x02\x88\x01\x01\x12\x1e\n\x11start_time_offset\x18\x05 \x01(\x01H\x03\x88\x01\x01\x12\x17\n\nspeaker_id\x18\x06 \x01(\tH\x04\x88\x01\x01\x42\r\n\x0b_start_timeB\x0b\n\t_end_timeB\r\n\x0b_confidenceB\x14\n\x12_start_time_offsetB\r\n\x0b_speaker_id\"\xb9\x03\n\x0b\x43hatMessage\x12\n\n\x02id\x18\x01 \x01(\t\x12%\n\x04role\x18\x02 \x01(\x0e\x32\x17.livekit.agent.ChatRole\x12\x37\n\x07\x63ontent\x18\x03 \x03(\x0b\x32&.livekit.agent.ChatMessage.ChatContent\x12\x13\n\x0binterrupted\x18\x04 \x01(\x08\x12\"\n\x15transcript_confidence\x18\x05 \x01(\x01H\x00\x88\x01\x01\x12\x34\n\x05\x65xtra\x18\x06 \x03(\x0b\x32%.livekit.agent.ChatMessage.ExtraEntry\x12-\n\x07metrics\x18\x07 \x01(\x0b\x32\x1c.livekit.agent.MetricsReport\x12.\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a(\n\x0b\x43hatContent\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x42\t\n\x07payload\x1a,\n\nExtraEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x18\n\x16_transcript_confidence\"\x87\x01\n\x0c\x46unctionCall\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1a\n\x07\x63\x61ll_id\x18\x02 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x11\n\targuments\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x9c\x01\n\x12\x46unctionCallOutput\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1a\n\x07\x63\x61ll_id\x18\x03 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x0e\n\x06output\x18\x04 \x01(\t\x12\x10\n\x08is_error\x18\x05 \x01(\x08\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xaa\x01\n\x0c\x41gentHandoff\x12\n\n\x02id\x18\x01 \x01(\t\x12(\n\x0cold_agent_id\x18\x02 \x01(\tB\r\xbaP\noldAgentIDH\x00\x88\x01\x01\x12#\n\x0cnew_agent_id\x18\x03 \x01(\tB\r\xbaP\nnewAgentID\x12.\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\n\r_old_agent_id\"\xa7\x01\n\x11\x41gentConfigUpdate\x12\n\n\x02id\x18\x01 \x01(\t\x12\x19\n\x0cinstructions\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x0btools_added\x18\x03 \x03(\t\x12\x15\n\rtools_removed\x18\x04 \x03(\t\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\n\r_instructions\"\xf5\x02\n\x0b\x43hatContext\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a\xb1\x02\n\x08\x43hatItem\x12-\n\x07message\x18\x01 \x01(\x0b\x32\x1a.livekit.agent.ChatMessageH\x00\x12\x34\n\rfunction_call\x18\x02 \x01(\x0b\x32\x1b.livekit.agent.FunctionCallH\x00\x12\x41\n\x14\x66unction_call_output\x18\x03 \x01(\x0b\x32!.livekit.agent.FunctionCallOutputH\x00\x12\x34\n\ragent_handoff\x18\x04 \x01(\x0b\x32\x1b.livekit.agent.AgentHandoffH\x00\x12?\n\x13\x61gent_config_update\x18\x05 \x01(\x0b\x32 .livekit.agent.AgentConfigUpdateH\x00\x42\x06\n\x04item\"\x88\x03\n\rLLMModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x14\n\x0cinput_tokens\x18\x03 \x01(\x05\x12\x1b\n\x13input_cached_tokens\x18\x04 \x01(\x05\x12\x1a\n\x12input_audio_tokens\x18\x05 \x01(\x05\x12!\n\x19input_cached_audio_tokens\x18\x06 \x01(\x05\x12\x19\n\x11input_text_tokens\x18\x07 \x01(\x05\x12 \n\x18input_cached_text_tokens\x18\x08 \x01(\x05\x12\x1a\n\x12input_image_tokens\x18\t \x01(\x05\x12!\n\x19input_cached_image_tokens\x18\n \x01(\x05\x12\x15\n\routput_tokens\x18\x0b \x01(\x05\x12\x1b\n\x13output_audio_tokens\x18\x0c \x01(\x05\x12\x1a\n\x12output_text_tokens\x18\r \x01(\x05\x12\x18\n\x10session_duration\x18\x0e \x01(\x01\"\x8f\x01\n\rTTSModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x14\n\x0cinput_tokens\x18\x03 \x01(\x05\x12\x15\n\routput_tokens\x18\x04 \x01(\x05\x12\x18\n\x10\x63haracters_count\x18\x05 \x01(\x05\x12\x16\n\x0e\x61udio_duration\x18\x06 \x01(\x01\"u\n\rSTTModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x14\n\x0cinput_tokens\x18\x03 \x01(\x05\x12\x15\n\routput_tokens\x18\x04 \x01(\x05\x12\x16\n\x0e\x61udio_duration\x18\x05 \x01(\x01\"Q\n\x16InterruptionModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x16\n\x0etotal_requests\x18\x03 \x01(\x05\"H\n\rEotModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x16\n\x0etotal_requests\x18\x03 \x01(\x05\"\x88\x02\n\nModelUsage\x12+\n\x03llm\x18\x01 \x01(\x0b\x32\x1c.livekit.agent.LLMModelUsageH\x00\x12+\n\x03tts\x18\x02 \x01(\x0b\x32\x1c.livekit.agent.TTSModelUsageH\x00\x12+\n\x03stt\x18\x03 \x01(\x0b\x32\x1c.livekit.agent.STTModelUsageH\x00\x12=\n\x0cinterruption\x18\x04 \x01(\x0b\x32%.livekit.agent.InterruptionModelUsageH\x00\x12+\n\x03\x65ot\x18\x05 \x01(\x0b\x32\x1c.livekit.agent.EotModelUsageH\x00\x42\x07\n\x05usage\"C\n\x11\x41gentSessionUsage\x12.\n\x0bmodel_usage\x18\x01 \x03(\x0b\x32\x19.livekit.agent.ModelUsage\"8\n\x0c\x44\x65\x62ugMessage\x12(\n\x07payload\x18\x01 \x01(\x0b\x32\x17.google.protobuf.Struct\"\xea\x18\n\x11\x41gentSessionEvent\x12.\n\ncreated_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12Q\n\x13\x61gent_state_changed\x18\n \x01(\x0b\x32\x32.livekit.agent.AgentSessionEvent.AgentStateChangedH\x00\x12O\n\x12user_state_changed\x18\x0b \x01(\x0b\x32\x31.livekit.agent.AgentSessionEvent.UserStateChangedH\x00\x12Y\n\x17\x63onversation_item_added\x18\x0c \x01(\x0b\x32\x36.livekit.agent.AgentSessionEvent.ConversationItemAddedH\x00\x12W\n\x16user_input_transcribed\x18\r \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.UserInputTranscribedH\x00\x12Y\n\x17\x66unction_tools_executed\x18\x0e \x01(\x0b\x32\x36.livekit.agent.AgentSessionEvent.FunctionToolsExecutedH\x00\x12\x37\n\x05\x65rror\x18\x0f \x01(\x0b\x32&.livekit.agent.AgentSessionEvent.ErrorH\x00\x12P\n\x12overlapping_speech\x18\x10 \x01(\x0b\x32\x32.livekit.agent.AgentSessionEvent.OverlappingSpeechH\x00\x12U\n\x15session_usage_updated\x18\x11 \x01(\x0b\x32\x34.livekit.agent.AgentSessionEvent.SessionUsageUpdatedH\x00\x12H\n\x0e\x61md_prediction\x18\x12 \x01(\x0b\x32..livekit.agent.AgentSessionEvent.AmdPredictionH\x00\x12H\n\x0e\x65ot_prediction\x18\x13 \x01(\x0b\x32..livekit.agent.AgentSessionEvent.EotPredictionH\x00\x12W\n\x16\x66unction_tools_started\x18\x14 \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.FunctionToolsStartedH\x00\x12\x34\n\rdebug_message\x18\x15 \x01(\x0b\x32\x1b.livekit.agent.DebugMessageH\x00\x12W\n\x16tool_execution_updated\x18\x16 \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.ToolExecutionUpdatedH\x00\x1ao\n\x11\x41gentStateChanged\x12,\n\told_state\x18\x01 \x01(\x0e\x32\x19.livekit.agent.AgentState\x12,\n\tnew_state\x18\x02 \x01(\x0e\x32\x19.livekit.agent.AgentState\x1al\n\x10UserStateChanged\x12+\n\told_state\x18\x01 \x01(\x0e\x32\x18.livekit.agent.UserState\x12+\n\tnew_state\x18\x02 \x01(\x0e\x32\x18.livekit.agent.UserState\x1aJ\n\x15\x43onversationItemAdded\x12\x31\n\x04item\x18\x01 \x01(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a`\n\x14UserInputTranscribed\x12\x12\n\ntranscript\x18\x01 \x01(\t\x12\x10\n\x08is_final\x18\x02 \x01(\x08\x12\x15\n\x08language\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_language\x1aK\n\x14\x46unctionToolsStarted\x12\x33\n\x0e\x66unction_calls\x18\x01 \x03(\x0b\x32\x1b.livekit.agent.FunctionCall\x1a\x8e\x01\n\x15\x46unctionToolsExecuted\x12\x33\n\x0e\x66unction_calls\x18\x01 \x03(\x0b\x32\x1b.livekit.agent.FunctionCall\x12@\n\x15\x66unction_call_outputs\x18\x02 \x03(\x0b\x32!.livekit.agent.FunctionCallOutput\x1a\x18\n\x05\x45rror\x12\x0f\n\x07message\x18\x01 \x01(\t\x1a\xca\x01\n\x11OverlappingSpeech\x12\x17\n\x0fis_interruption\x18\x01 \x01(\x08\x12;\n\x12overlap_started_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x17\n\x0f\x64\x65tection_delay\x18\x03 \x01(\x01\x12/\n\x0b\x64\x65tected_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x15\n\x13_overlap_started_at\x1a\xbf\x01\n\rAmdPrediction\x12\x32\n\x0fspeech_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12,\n\x08\x63\x61tegory\x18\x02 \x01(\x0e\x32\x1a.livekit.agent.AmdCategory\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x12\n\ntranscript\x18\x04 \x01(\t\x12(\n\x05\x64\x65lay\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x98\x01\n\rEotPrediction\x12\x13\n\x0bprobability\x18\x01 \x01(\x02\x12\x11\n\tthreshold\x18\x02 \x01(\x02\x12\x35\n\x12inference_duration\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12(\n\x05\x64\x65lay\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x46\n\x13SessionUsageUpdated\x12/\n\x05usage\x18\x01 \x01(\x0b\x32 .livekit.agent.AgentSessionUsage\x1a\x93\x06\n\x14ToolExecutionUpdated\x12P\n\x07started\x18\x01 \x01(\x0b\x32=.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.StartedH\x00\x12Y\n\x0c\x63\x61ll_updated\x18\x02 \x01(\x0b\x32\x41.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.CallUpdatedH\x00\x12[\n\rreply_updated\x18\x03 \x01(\x0b\x32\x42.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.ReplyUpdatedH\x00\x12L\n\x05\x65nded\x18\x04 \x01(\x0b\x32;.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.EndedH\x00\x1a=\n\x07Started\x12\x32\n\rfunction_call\x18\x01 \x01(\x0b\x32\x1b.livekit.agent.FunctionCall\x1aM\n\x0b\x43\x61llUpdated\x12\x11\n\x02id\x18\x01 \x01(\tB\x05\xbaP\x02ID\x12\x1a\n\x07\x63\x61ll_id\x18\x02 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x0f\n\x07message\x18\x03 \x01(\t\x1a\x87\x01\n\x05\x45nded\x12\x11\n\x02id\x18\x01 \x01(\tB\x05\xbaP\x02ID\x12\x1a\n\x07\x63\x61ll_id\x18\x02 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x14\n\x07message\x18\x03 \x01(\tH\x00\x88\x01\x01\x12-\n\x06status\x18\x04 \x01(\x0e\x32\x1d.livekit.agent.ToolCallStatusB\n\n\x08_message\x1a\x80\x01\n\x0cReplyUpdated\x12 \n\nupdate_ids\x18\x01 \x03(\tB\x0c\xbaP\tupdateIDs\x12.\n\x06status\x18\x02 \x01(\x0e\x32\x1e.livekit.agent.ToolReplyStatus\x12\x1e\n\tspeech_id\x18\x03 \x01(\tB\x0b\xbaP\x08speechIDB\x08\n\x06updateB\x07\n\x05\x65vent\"\xf6\n\n\x0eSessionRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x32\n\x04ping\x18\x02 \x01(\x0b\x32\".livekit.agent.SessionRequest.PingH\x00\x12H\n\x10get_chat_history\x18\x04 \x01(\x0b\x32,.livekit.agent.SessionRequest.GetChatHistoryH\x00\x12;\n\trun_input\x18\x05 \x01(\x0b\x32&.livekit.agent.SessionRequest.RunInputH\x00\x12\x44\n\x0eget_agent_info\x18\x06 \x01(\x0b\x32*.livekit.agent.SessionRequest.GetAgentInfoH\x00\x12J\n\x11get_session_state\x18\x07 \x01(\x0b\x32-.livekit.agent.SessionRequest.GetSessionStateH\x00\x12\x42\n\rget_rtc_stats\x18\x08 \x01(\x0b\x32).livekit.agent.SessionRequest.GetRTCStatsH\x00\x12J\n\x11get_session_usage\x18\t \x01(\x0b\x32-.livekit.agent.SessionRequest.GetSessionUsageH\x00\x12L\n\x12get_framework_info\x18\n \x01(\x0b\x32..livekit.agent.SessionRequest.GetFrameworkInfoH\x00\x12;\n\tupdate_io\x18\x0b \x01(\x0b\x32&.livekit.agent.SessionRequest.UpdateIOH\x00\x12O\n\x13\x66inalize_simulation\x18\x0c \x01(\x0b\x32\x30.livekit.agent.SessionRequest.FinalizeSimulationH\x00\x1a\x06\n\x04Ping\x1a\x10\n\x0eGetChatHistory\x1a\x18\n\x08RunInput\x12\x0c\n\x04text\x18\x01 \x01(\t\x1a\x0e\n\x0cGetAgentInfo\x1a\x11\n\x0fGetSessionState\x1a\r\n\x0bGetRTCStats\x1a\x11\n\x0fGetSessionUsage\x1a\x12\n\x10GetFrameworkInfo\x1a\xaf\x03\n\x08UpdateIO\x12@\n\x05input\x18\x01 \x01(\x0b\x32,.livekit.agent.SessionRequest.UpdateIO.InputH\x00\x88\x01\x01\x12\x42\n\x06output\x18\x02 \x01(\x0b\x32-.livekit.agent.SessionRequest.UpdateIO.OutputH\x01\x88\x01\x01\x1a\x63\n\x05Input\x12\x1a\n\raudio_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rvideo_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x10\n\x0e_audio_enabledB\x10\n\x0e_video_enabled\x1a\xa2\x01\n\x06Output\x12\x1a\n\raudio_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rvideo_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15transcription_enabled\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x10\n\x0e_audio_enabledB\x10\n\x0e_video_enabledB\x18\n\x16_transcription_enabledB\x08\n\x06_inputB\t\n\x07_output\x1aM\n\x12\x46inalizeSimulation\x12\x1b\n\x13provisional_success\x18\x01 \x01(\x08\x12\x1a\n\x12provisional_reason\x18\x02 \x01(\tB\t\n\x07request\"\xd3\x0f\n\x0fSessionResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x33\n\x04pong\x18\x03 \x01(\x0b\x32#.livekit.agent.SessionResponse.PongH\x00\x12Q\n\x10get_chat_history\x18\x05 \x01(\x0b\x32\x35.livekit.agent.SessionResponse.GetChatHistoryResponseH\x00\x12\x44\n\trun_input\x18\x06 \x01(\x0b\x32/.livekit.agent.SessionResponse.RunInputResponseH\x00\x12M\n\x0eget_agent_info\x18\x07 \x01(\x0b\x32\x33.livekit.agent.SessionResponse.GetAgentInfoResponseH\x00\x12S\n\x11get_session_state\x18\x08 \x01(\x0b\x32\x36.livekit.agent.SessionResponse.GetSessionStateResponseH\x00\x12K\n\rget_rtc_stats\x18\t \x01(\x0b\x32\x32.livekit.agent.SessionResponse.GetRTCStatsResponseH\x00\x12S\n\x11get_session_usage\x18\n \x01(\x0b\x32\x36.livekit.agent.SessionResponse.GetSessionUsageResponseH\x00\x12U\n\x12get_framework_info\x18\x0b \x01(\x0b\x32\x37.livekit.agent.SessionResponse.GetFrameworkInfoResponseH\x00\x12\x44\n\tupdate_io\x18\x0c \x01(\x0b\x32/.livekit.agent.SessionResponse.UpdateIOResponseH\x00\x12X\n\x13\x66inalize_simulation\x18\r \x01(\x0b\x32\x39.livekit.agent.SessionResponse.FinalizeSimulationResponseH\x00\x1a\x06\n\x04Pong\x1aL\n\x16GetChatHistoryResponse\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a\x94\x01\n\x14GetAgentInfoResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x19\n\x0cinstructions\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05tools\x18\x03 \x03(\t\x12\x35\n\x08\x63hat_ctx\x18\x04 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItemB\x0f\n\r_instructions\x1a\x46\n\x10RunInputResponse\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a\xbf\x02\n\x17GetSessionStateResponse\x12.\n\x0b\x61gent_state\x18\x01 \x01(\x0e\x32\x19.livekit.agent.AgentState\x12,\n\nuser_state\x18\x02 \x01(\x0e\x32\x18.livekit.agent.UserState\x12\x10\n\x08\x61gent_id\x18\x03 \x01(\t\x12T\n\x07options\x18\x04 \x03(\x0b\x32\x43.livekit.agent.SessionResponse.GetSessionStateResponse.OptionsEntry\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1az\n\x13GetRTCStatsResponse\x12\x30\n\x0fpublisher_stats\x18\x01 \x03(\x0b\x32\x17.google.protobuf.Struct\x12\x31\n\x10subscriber_stats\x18\x02 \x03(\x0b\x32\x17.google.protobuf.Struct\x1az\n\x17GetSessionUsageResponse\x12/\n\x05usage\x18\x01 \x01(\x0b\x32 .livekit.agent.AgentSessionUsage\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a<\n\x18GetFrameworkInfoResponse\x12\x0b\n\x03sdk\x18\x01 \x01(\t\x12\x13\n\x0bsdk_version\x18\x02 \x01(\t\x1a\x12\n\x10UpdateIOResponse\x1a\xb5\x01\n\x1a\x46inalizeSimulationResponse\x12\x61\n\x0cuser_verdict\x18\x01 \x01(\x0b\x32K.livekit.agent.SessionResponse.FinalizeSimulationResponse.SimulationVerdict\x1a\x34\n\x11SimulationVerdict\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0e\n\x06reason\x18\x02 \x01(\tB\n\n\x08responseB\x08\n\x06_error\"\xba\x06\n\x13\x41gentSessionMessage\x12N\n\x0b\x61udio_input\x18\x01 \x01(\x0b\x32\x37.livekit.agent.AgentSessionMessage.ConsoleIO.AudioFrameH\x00\x12O\n\x0c\x61udio_output\x18\x02 \x01(\x0b\x32\x37.livekit.agent.AgentSessionMessage.ConsoleIO.AudioFrameH\x00\x12\x31\n\x05\x65vent\x18\x03 \x01(\x0b\x32 .livekit.agent.AgentSessionEventH\x00\x12\x30\n\x07request\x18\x04 \x01(\x0b\x32\x1d.livekit.agent.SessionRequestH\x00\x12\x32\n\x08response\x18\x05 \x01(\x0b\x32\x1e.livekit.agent.SessionResponseH\x00\x12_\n\x14\x61udio_playback_flush\x18\x06 \x01(\x0b\x32?.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackFlushH\x00\x12_\n\x14\x61udio_playback_clear\x18\x07 \x01(\x0b\x32?.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackClearH\x00\x12\x65\n\x17\x61udio_playback_finished\x18\x08 \x01(\x0b\x32\x42.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackFinishedH\x00\x1a\xb4\x01\n\tConsoleIO\x1a\x62\n\nAudioFrame\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x13\n\x0bsample_rate\x18\x02 \x01(\r\x12\x14\n\x0cnum_channels\x18\x03 \x01(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x01(\r\x1a\x14\n\x12\x41udioPlaybackFlush\x1a\x14\n\x12\x41udioPlaybackClear\x1a\x17\n\x15\x41udioPlaybackFinishedB\t\n\x07message*>\n\x08\x43hatRole\x12\r\n\tDEVELOPER\x10\x00\x12\n\n\x06SYSTEM\x10\x01\x12\x08\n\x04USER\x10\x02\x12\r\n\tASSISTANT\x10\x03*b\n\nAgentState\x12\x13\n\x0f\x41S_INITIALIZING\x10\x00\x12\x0b\n\x07\x41S_IDLE\x10\x01\x12\x10\n\x0c\x41S_LISTENING\x10\x02\x12\x0f\n\x0b\x41S_THINKING\x10\x03\x12\x0f\n\x0b\x41S_SPEAKING\x10\x04*;\n\tUserState\x12\x0f\n\x0bUS_SPEAKING\x10\x00\x12\x10\n\x0cUS_LISTENING\x10\x01\x12\x0b\n\x07US_AWAY\x10\x02*M\n\x0eToolCallStatus\x12\x0e\n\nTC_RUNNING\x10\x00\x12\x0b\n\x07TC_DONE\x10\x01\x12\x0c\n\x08TC_ERROR\x10\x02\x12\x10\n\x0cTC_CANCELLED\x10\x03*Y\n\x0fToolReplyStatus\x12\x10\n\x0cTR_SCHEDULED\x10\x00\x12\x10\n\x0cTR_COMPLETED\x10\x01\x12\x12\n\x0eTR_INTERRUPTED\x10\x02\x12\x0e\n\nTR_SKIPPED\x10\x03*\x86\x01\n\x0b\x41mdCategory\x12\x0f\n\x0b\x41MD_UNKNOWN\x10\x00\x12\r\n\tAMD_HUMAN\x10\x01\x12\x13\n\x0f\x41MD_MACHINE_IVR\x10\x02\x12\x12\n\x0e\x41MD_MACHINE_VM\x10\x03\x12\x1b\n\x17\x41MD_MACHINE_UNAVAILABLE\x10\x04\x12\x11\n\rAMD_UNCERTAIN\x10\x05\x42+Z)github.com/livekit/protocol/livekit/agentb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!agent/livekit_agent_session.proto\x12\rlivekit.agent\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x14logger/options.proto\"\x9d\x04\n\rMetricsReport\x12\x37\n\x13started_speaking_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x37\n\x13stopped_speaking_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12 \n\x13transcription_delay\x18\x03 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11\x65nd_of_turn_delay\x18\x04 \x01(\x01H\x01\x88\x01\x01\x12)\n\x1con_user_turn_completed_delay\x18\x05 \x01(\x01H\x02\x88\x01\x01\x12\x1a\n\rllm_node_ttft\x18\x06 \x01(\x01H\x03\x88\x01\x01\x12\x1a\n\rtts_node_ttfb\x18\x07 \x01(\x01H\x04\x88\x01\x01\x12\x18\n\x0b\x65\x32\x65_latency\x18\x08 \x01(\x01H\x05\x88\x01\x01\x12\x19\n\x0cllm_node_tps\x18\t \x01(\x01H\x06\x88\x01\x01\x12\x1a\n\rllm_node_ttfs\x18\n \x01(\x01H\x07\x88\x01\x01\x42\x16\n\x14_transcription_delayB\x14\n\x12_end_of_turn_delayB\x1f\n\x1d_on_user_turn_completed_delayB\x10\n\x0e_llm_node_ttftB\x10\n\x0e_tts_node_ttfbB\x0e\n\x0c_e2e_latencyB\x0f\n\r_llm_node_tpsB\x10\n\x0e_llm_node_ttfs\"\xed\x01\n\x0bTimedString\x12\x0c\n\x04text\x18\x01 \x01(\t\x12\x17\n\nstart_time\x18\x02 \x01(\x01H\x00\x88\x01\x01\x12\x15\n\x08\x65nd_time\x18\x03 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\nconfidence\x18\x04 \x01(\x01H\x02\x88\x01\x01\x12\x1e\n\x11start_time_offset\x18\x05 \x01(\x01H\x03\x88\x01\x01\x12\x17\n\nspeaker_id\x18\x06 \x01(\tH\x04\x88\x01\x01\x42\r\n\x0b_start_timeB\x0b\n\t_end_timeB\r\n\x0b_confidenceB\x14\n\x12_start_time_offsetB\r\n\x0b_speaker_id\"\xb9\x03\n\x0b\x43hatMessage\x12\n\n\x02id\x18\x01 \x01(\t\x12%\n\x04role\x18\x02 \x01(\x0e\x32\x17.livekit.agent.ChatRole\x12\x37\n\x07\x63ontent\x18\x03 \x03(\x0b\x32&.livekit.agent.ChatMessage.ChatContent\x12\x13\n\x0binterrupted\x18\x04 \x01(\x08\x12\"\n\x15transcript_confidence\x18\x05 \x01(\x01H\x00\x88\x01\x01\x12\x34\n\x05\x65xtra\x18\x06 \x03(\x0b\x32%.livekit.agent.ChatMessage.ExtraEntry\x12-\n\x07metrics\x18\x07 \x01(\x0b\x32\x1c.livekit.agent.MetricsReport\x12.\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a(\n\x0b\x43hatContent\x12\x0e\n\x04text\x18\x01 \x01(\tH\x00\x42\t\n\x07payload\x1a,\n\nExtraEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x18\n\x16_transcript_confidence\"\x87\x01\n\x0c\x46unctionCall\x12\n\n\x02id\x18\x01 \x01(\t\x12\x1a\n\x07\x63\x61ll_id\x18\x02 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x11\n\targuments\x18\x03 \x01(\t\x12\x0c\n\x04name\x18\x04 \x01(\t\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\x9c\x01\n\x12\x46unctionCallOutput\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x1a\n\x07\x63\x61ll_id\x18\x03 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x0e\n\x06output\x18\x04 \x01(\t\x12\x10\n\x08is_error\x18\x05 \x01(\x08\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xaa\x01\n\x0c\x41gentHandoff\x12\n\n\x02id\x18\x01 \x01(\t\x12(\n\x0cold_agent_id\x18\x02 \x01(\tB\r\xbaP\noldAgentIDH\x00\x88\x01\x01\x12#\n\x0cnew_agent_id\x18\x03 \x01(\tB\r\xbaP\nnewAgentID\x12.\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\n\r_old_agent_id\"\xa7\x01\n\x11\x41gentConfigUpdate\x12\n\n\x02id\x18\x01 \x01(\t\x12\x19\n\x0cinstructions\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x0btools_added\x18\x03 \x03(\t\x12\x15\n\rtools_removed\x18\x04 \x03(\t\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x0f\n\r_instructions\"\xf5\x02\n\x0b\x43hatContext\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a\xb1\x02\n\x08\x43hatItem\x12-\n\x07message\x18\x01 \x01(\x0b\x32\x1a.livekit.agent.ChatMessageH\x00\x12\x34\n\rfunction_call\x18\x02 \x01(\x0b\x32\x1b.livekit.agent.FunctionCallH\x00\x12\x41\n\x14\x66unction_call_output\x18\x03 \x01(\x0b\x32!.livekit.agent.FunctionCallOutputH\x00\x12\x34\n\ragent_handoff\x18\x04 \x01(\x0b\x32\x1b.livekit.agent.AgentHandoffH\x00\x12?\n\x13\x61gent_config_update\x18\x05 \x01(\x0b\x32 .livekit.agent.AgentConfigUpdateH\x00\x42\x06\n\x04item\"\x88\x03\n\rLLMModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x14\n\x0cinput_tokens\x18\x03 \x01(\x05\x12\x1b\n\x13input_cached_tokens\x18\x04 \x01(\x05\x12\x1a\n\x12input_audio_tokens\x18\x05 \x01(\x05\x12!\n\x19input_cached_audio_tokens\x18\x06 \x01(\x05\x12\x19\n\x11input_text_tokens\x18\x07 \x01(\x05\x12 \n\x18input_cached_text_tokens\x18\x08 \x01(\x05\x12\x1a\n\x12input_image_tokens\x18\t \x01(\x05\x12!\n\x19input_cached_image_tokens\x18\n \x01(\x05\x12\x15\n\routput_tokens\x18\x0b \x01(\x05\x12\x1b\n\x13output_audio_tokens\x18\x0c \x01(\x05\x12\x1a\n\x12output_text_tokens\x18\r \x01(\x05\x12\x18\n\x10session_duration\x18\x0e \x01(\x01\"\x8f\x01\n\rTTSModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x14\n\x0cinput_tokens\x18\x03 \x01(\x05\x12\x15\n\routput_tokens\x18\x04 \x01(\x05\x12\x18\n\x10\x63haracters_count\x18\x05 \x01(\x05\x12\x16\n\x0e\x61udio_duration\x18\x06 \x01(\x01\"u\n\rSTTModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x14\n\x0cinput_tokens\x18\x03 \x01(\x05\x12\x15\n\routput_tokens\x18\x04 \x01(\x05\x12\x16\n\x0e\x61udio_duration\x18\x05 \x01(\x01\"Q\n\x16InterruptionModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x16\n\x0etotal_requests\x18\x03 \x01(\x05\"H\n\rEotModelUsage\x12\x10\n\x08provider\x18\x01 \x01(\t\x12\r\n\x05model\x18\x02 \x01(\t\x12\x16\n\x0etotal_requests\x18\x03 \x01(\x05\"\x88\x02\n\nModelUsage\x12+\n\x03llm\x18\x01 \x01(\x0b\x32\x1c.livekit.agent.LLMModelUsageH\x00\x12+\n\x03tts\x18\x02 \x01(\x0b\x32\x1c.livekit.agent.TTSModelUsageH\x00\x12+\n\x03stt\x18\x03 \x01(\x0b\x32\x1c.livekit.agent.STTModelUsageH\x00\x12=\n\x0cinterruption\x18\x04 \x01(\x0b\x32%.livekit.agent.InterruptionModelUsageH\x00\x12+\n\x03\x65ot\x18\x05 \x01(\x0b\x32\x1c.livekit.agent.EotModelUsageH\x00\x42\x07\n\x05usage\"C\n\x11\x41gentSessionUsage\x12.\n\x0bmodel_usage\x18\x01 \x03(\x0b\x32\x19.livekit.agent.ModelUsage\"8\n\x0c\x44\x65\x62ugMessage\x12(\n\x07payload\x18\x01 \x01(\x0b\x32\x17.google.protobuf.Struct\"\xf2\x19\n\x11\x41gentSessionEvent\x12.\n\ncreated_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12Q\n\x13\x61gent_state_changed\x18\n \x01(\x0b\x32\x32.livekit.agent.AgentSessionEvent.AgentStateChangedH\x00\x12O\n\x12user_state_changed\x18\x0b \x01(\x0b\x32\x31.livekit.agent.AgentSessionEvent.UserStateChangedH\x00\x12Y\n\x17\x63onversation_item_added\x18\x0c \x01(\x0b\x32\x36.livekit.agent.AgentSessionEvent.ConversationItemAddedH\x00\x12W\n\x16user_input_transcribed\x18\r \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.UserInputTranscribedH\x00\x12Y\n\x17\x66unction_tools_executed\x18\x0e \x01(\x0b\x32\x36.livekit.agent.AgentSessionEvent.FunctionToolsExecutedH\x00\x12\x37\n\x05\x65rror\x18\x0f \x01(\x0b\x32&.livekit.agent.AgentSessionEvent.ErrorH\x00\x12P\n\x12overlapping_speech\x18\x10 \x01(\x0b\x32\x32.livekit.agent.AgentSessionEvent.OverlappingSpeechH\x00\x12U\n\x15session_usage_updated\x18\x11 \x01(\x0b\x32\x34.livekit.agent.AgentSessionEvent.SessionUsageUpdatedH\x00\x12H\n\x0e\x61md_prediction\x18\x12 \x01(\x0b\x32..livekit.agent.AgentSessionEvent.AmdPredictionH\x00\x12H\n\x0e\x65ot_prediction\x18\x13 \x01(\x0b\x32..livekit.agent.AgentSessionEvent.EotPredictionH\x00\x12W\n\x16\x66unction_tools_started\x18\x14 \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.FunctionToolsStartedH\x00\x12\x34\n\rdebug_message\x18\x15 \x01(\x0b\x32\x1b.livekit.agent.DebugMessageH\x00\x12W\n\x16tool_execution_updated\x18\x16 \x01(\x0b\x32\x35.livekit.agent.AgentSessionEvent.ToolExecutionUpdatedH\x00\x12[\n\x18\x61gent_false_interruption\x18\x17 \x01(\x0b\x32\x37.livekit.agent.AgentSessionEvent.AgentFalseInterruptionH\x00\x1ao\n\x11\x41gentStateChanged\x12,\n\told_state\x18\x01 \x01(\x0e\x32\x19.livekit.agent.AgentState\x12,\n\tnew_state\x18\x02 \x01(\x0e\x32\x19.livekit.agent.AgentState\x1al\n\x10UserStateChanged\x12+\n\told_state\x18\x01 \x01(\x0e\x32\x18.livekit.agent.UserState\x12+\n\tnew_state\x18\x02 \x01(\x0e\x32\x18.livekit.agent.UserState\x1aJ\n\x15\x43onversationItemAdded\x12\x31\n\x04item\x18\x01 \x01(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a`\n\x14UserInputTranscribed\x12\x12\n\ntranscript\x18\x01 \x01(\t\x12\x10\n\x08is_final\x18\x02 \x01(\x08\x12\x15\n\x08language\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_language\x1aK\n\x14\x46unctionToolsStarted\x12\x33\n\x0e\x66unction_calls\x18\x01 \x03(\x0b\x32\x1b.livekit.agent.FunctionCall\x1a\x8e\x01\n\x15\x46unctionToolsExecuted\x12\x33\n\x0e\x66unction_calls\x18\x01 \x03(\x0b\x32\x1b.livekit.agent.FunctionCall\x12@\n\x15\x66unction_call_outputs\x18\x02 \x03(\x0b\x32!.livekit.agent.FunctionCallOutput\x1a\x18\n\x05\x45rror\x12\x0f\n\x07message\x18\x01 \x01(\t\x1a\xca\x01\n\x11OverlappingSpeech\x12\x17\n\x0fis_interruption\x18\x01 \x01(\x08\x12;\n\x12overlap_started_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00\x88\x01\x01\x12\x17\n\x0f\x64\x65tection_delay\x18\x03 \x01(\x01\x12/\n\x0b\x64\x65tected_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x15\n\x13_overlap_started_at\x1a\xbf\x01\n\rAmdPrediction\x12\x32\n\x0fspeech_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12,\n\x08\x63\x61tegory\x18\x02 \x01(\x0e\x32\x1a.livekit.agent.AmdCategory\x12\x0e\n\x06reason\x18\x03 \x01(\t\x12\x12\n\ntranscript\x18\x04 \x01(\t\x12(\n\x05\x64\x65lay\x18\x05 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x98\x01\n\rEotPrediction\x12\x13\n\x0bprobability\x18\x01 \x01(\x02\x12\x11\n\tthreshold\x18\x02 \x01(\x02\x12\x35\n\x12inference_duration\x18\x03 \x01(\x0b\x32\x19.google.protobuf.Duration\x12(\n\x05\x64\x65lay\x18\x04 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\x46\n\x13SessionUsageUpdated\x12/\n\x05usage\x18\x01 \x01(\x0b\x32 .livekit.agent.AgentSessionUsage\x1a\x93\x06\n\x14ToolExecutionUpdated\x12P\n\x07started\x18\x01 \x01(\x0b\x32=.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.StartedH\x00\x12Y\n\x0c\x63\x61ll_updated\x18\x02 \x01(\x0b\x32\x41.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.CallUpdatedH\x00\x12[\n\rreply_updated\x18\x03 \x01(\x0b\x32\x42.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.ReplyUpdatedH\x00\x12L\n\x05\x65nded\x18\x04 \x01(\x0b\x32;.livekit.agent.AgentSessionEvent.ToolExecutionUpdated.EndedH\x00\x1a=\n\x07Started\x12\x32\n\rfunction_call\x18\x01 \x01(\x0b\x32\x1b.livekit.agent.FunctionCall\x1aM\n\x0b\x43\x61llUpdated\x12\x11\n\x02id\x18\x01 \x01(\tB\x05\xbaP\x02ID\x12\x1a\n\x07\x63\x61ll_id\x18\x02 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x0f\n\x07message\x18\x03 \x01(\t\x1a\x87\x01\n\x05\x45nded\x12\x11\n\x02id\x18\x01 \x01(\tB\x05\xbaP\x02ID\x12\x1a\n\x07\x63\x61ll_id\x18\x02 \x01(\tB\t\xbaP\x06\x63\x61llID\x12\x14\n\x07message\x18\x03 \x01(\tH\x00\x88\x01\x01\x12-\n\x06status\x18\x04 \x01(\x0e\x32\x1d.livekit.agent.ToolCallStatusB\n\n\x08_message\x1a\x80\x01\n\x0cReplyUpdated\x12 \n\nupdate_ids\x18\x01 \x03(\tB\x0c\xbaP\tupdateIDs\x12.\n\x06status\x18\x02 \x01(\x0e\x32\x1e.livekit.agent.ToolReplyStatus\x12\x1e\n\tspeech_id\x18\x03 \x01(\tB\x0b\xbaP\x08speechIDB\x08\n\x06update\x1a)\n\x16\x41gentFalseInterruption\x12\x0f\n\x07resumed\x18\x01 \x01(\x08\x42\x07\n\x05\x65vent\"\xf6\n\n\x0eSessionRequest\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x32\n\x04ping\x18\x02 \x01(\x0b\x32\".livekit.agent.SessionRequest.PingH\x00\x12H\n\x10get_chat_history\x18\x04 \x01(\x0b\x32,.livekit.agent.SessionRequest.GetChatHistoryH\x00\x12;\n\trun_input\x18\x05 \x01(\x0b\x32&.livekit.agent.SessionRequest.RunInputH\x00\x12\x44\n\x0eget_agent_info\x18\x06 \x01(\x0b\x32*.livekit.agent.SessionRequest.GetAgentInfoH\x00\x12J\n\x11get_session_state\x18\x07 \x01(\x0b\x32-.livekit.agent.SessionRequest.GetSessionStateH\x00\x12\x42\n\rget_rtc_stats\x18\x08 \x01(\x0b\x32).livekit.agent.SessionRequest.GetRTCStatsH\x00\x12J\n\x11get_session_usage\x18\t \x01(\x0b\x32-.livekit.agent.SessionRequest.GetSessionUsageH\x00\x12L\n\x12get_framework_info\x18\n \x01(\x0b\x32..livekit.agent.SessionRequest.GetFrameworkInfoH\x00\x12;\n\tupdate_io\x18\x0b \x01(\x0b\x32&.livekit.agent.SessionRequest.UpdateIOH\x00\x12O\n\x13\x66inalize_simulation\x18\x0c \x01(\x0b\x32\x30.livekit.agent.SessionRequest.FinalizeSimulationH\x00\x1a\x06\n\x04Ping\x1a\x10\n\x0eGetChatHistory\x1a\x18\n\x08RunInput\x12\x0c\n\x04text\x18\x01 \x01(\t\x1a\x0e\n\x0cGetAgentInfo\x1a\x11\n\x0fGetSessionState\x1a\r\n\x0bGetRTCStats\x1a\x11\n\x0fGetSessionUsage\x1a\x12\n\x10GetFrameworkInfo\x1a\xaf\x03\n\x08UpdateIO\x12@\n\x05input\x18\x01 \x01(\x0b\x32,.livekit.agent.SessionRequest.UpdateIO.InputH\x00\x88\x01\x01\x12\x42\n\x06output\x18\x02 \x01(\x0b\x32-.livekit.agent.SessionRequest.UpdateIO.OutputH\x01\x88\x01\x01\x1a\x63\n\x05Input\x12\x1a\n\raudio_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rvideo_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x10\n\x0e_audio_enabledB\x10\n\x0e_video_enabled\x1a\xa2\x01\n\x06Output\x12\x1a\n\raudio_enabled\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1a\n\rvideo_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15transcription_enabled\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x10\n\x0e_audio_enabledB\x10\n\x0e_video_enabledB\x18\n\x16_transcription_enabledB\x08\n\x06_inputB\t\n\x07_output\x1aM\n\x12\x46inalizeSimulation\x12\x1b\n\x13provisional_success\x18\x01 \x01(\x08\x12\x1a\n\x12provisional_reason\x18\x02 \x01(\tB\t\n\x07request\"\xd3\x0f\n\x0fSessionResponse\x12\x12\n\nrequest_id\x18\x01 \x01(\t\x12\x12\n\x05\x65rror\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x33\n\x04pong\x18\x03 \x01(\x0b\x32#.livekit.agent.SessionResponse.PongH\x00\x12Q\n\x10get_chat_history\x18\x05 \x01(\x0b\x32\x35.livekit.agent.SessionResponse.GetChatHistoryResponseH\x00\x12\x44\n\trun_input\x18\x06 \x01(\x0b\x32/.livekit.agent.SessionResponse.RunInputResponseH\x00\x12M\n\x0eget_agent_info\x18\x07 \x01(\x0b\x32\x33.livekit.agent.SessionResponse.GetAgentInfoResponseH\x00\x12S\n\x11get_session_state\x18\x08 \x01(\x0b\x32\x36.livekit.agent.SessionResponse.GetSessionStateResponseH\x00\x12K\n\rget_rtc_stats\x18\t \x01(\x0b\x32\x32.livekit.agent.SessionResponse.GetRTCStatsResponseH\x00\x12S\n\x11get_session_usage\x18\n \x01(\x0b\x32\x36.livekit.agent.SessionResponse.GetSessionUsageResponseH\x00\x12U\n\x12get_framework_info\x18\x0b \x01(\x0b\x32\x37.livekit.agent.SessionResponse.GetFrameworkInfoResponseH\x00\x12\x44\n\tupdate_io\x18\x0c \x01(\x0b\x32/.livekit.agent.SessionResponse.UpdateIOResponseH\x00\x12X\n\x13\x66inalize_simulation\x18\r \x01(\x0b\x32\x39.livekit.agent.SessionResponse.FinalizeSimulationResponseH\x00\x1a\x06\n\x04Pong\x1aL\n\x16GetChatHistoryResponse\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a\x94\x01\n\x14GetAgentInfoResponse\x12\n\n\x02id\x18\x01 \x01(\t\x12\x19\n\x0cinstructions\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\r\n\x05tools\x18\x03 \x03(\t\x12\x35\n\x08\x63hat_ctx\x18\x04 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItemB\x0f\n\r_instructions\x1a\x46\n\x10RunInputResponse\x12\x32\n\x05items\x18\x01 \x03(\x0b\x32#.livekit.agent.ChatContext.ChatItem\x1a\xbf\x02\n\x17GetSessionStateResponse\x12.\n\x0b\x61gent_state\x18\x01 \x01(\x0e\x32\x19.livekit.agent.AgentState\x12,\n\nuser_state\x18\x02 \x01(\x0e\x32\x18.livekit.agent.UserState\x12\x10\n\x08\x61gent_id\x18\x03 \x01(\t\x12T\n\x07options\x18\x04 \x03(\x0b\x32\x43.livekit.agent.SessionResponse.GetSessionStateResponse.OptionsEntry\x12.\n\ncreated_at\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a.\n\x0cOptionsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1az\n\x13GetRTCStatsResponse\x12\x30\n\x0fpublisher_stats\x18\x01 \x03(\x0b\x32\x17.google.protobuf.Struct\x12\x31\n\x10subscriber_stats\x18\x02 \x03(\x0b\x32\x17.google.protobuf.Struct\x1az\n\x17GetSessionUsageResponse\x12/\n\x05usage\x18\x01 \x01(\x0b\x32 .livekit.agent.AgentSessionUsage\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a<\n\x18GetFrameworkInfoResponse\x12\x0b\n\x03sdk\x18\x01 \x01(\t\x12\x13\n\x0bsdk_version\x18\x02 \x01(\t\x1a\x12\n\x10UpdateIOResponse\x1a\xb5\x01\n\x1a\x46inalizeSimulationResponse\x12\x61\n\x0cuser_verdict\x18\x01 \x01(\x0b\x32K.livekit.agent.SessionResponse.FinalizeSimulationResponse.SimulationVerdict\x1a\x34\n\x11SimulationVerdict\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x0e\n\x06reason\x18\x02 \x01(\tB\n\n\x08responseB\x08\n\x06_error\"\xba\x06\n\x13\x41gentSessionMessage\x12N\n\x0b\x61udio_input\x18\x01 \x01(\x0b\x32\x37.livekit.agent.AgentSessionMessage.ConsoleIO.AudioFrameH\x00\x12O\n\x0c\x61udio_output\x18\x02 \x01(\x0b\x32\x37.livekit.agent.AgentSessionMessage.ConsoleIO.AudioFrameH\x00\x12\x31\n\x05\x65vent\x18\x03 \x01(\x0b\x32 .livekit.agent.AgentSessionEventH\x00\x12\x30\n\x07request\x18\x04 \x01(\x0b\x32\x1d.livekit.agent.SessionRequestH\x00\x12\x32\n\x08response\x18\x05 \x01(\x0b\x32\x1e.livekit.agent.SessionResponseH\x00\x12_\n\x14\x61udio_playback_flush\x18\x06 \x01(\x0b\x32?.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackFlushH\x00\x12_\n\x14\x61udio_playback_clear\x18\x07 \x01(\x0b\x32?.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackClearH\x00\x12\x65\n\x17\x61udio_playback_finished\x18\x08 \x01(\x0b\x32\x42.livekit.agent.AgentSessionMessage.ConsoleIO.AudioPlaybackFinishedH\x00\x1a\xb4\x01\n\tConsoleIO\x1a\x62\n\nAudioFrame\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\x12\x13\n\x0bsample_rate\x18\x02 \x01(\r\x12\x14\n\x0cnum_channels\x18\x03 \x01(\r\x12\x1b\n\x13samples_per_channel\x18\x04 \x01(\r\x1a\x14\n\x12\x41udioPlaybackFlush\x1a\x14\n\x12\x41udioPlaybackClear\x1a\x17\n\x15\x41udioPlaybackFinishedB\t\n\x07message*>\n\x08\x43hatRole\x12\r\n\tDEVELOPER\x10\x00\x12\n\n\x06SYSTEM\x10\x01\x12\x08\n\x04USER\x10\x02\x12\r\n\tASSISTANT\x10\x03*b\n\nAgentState\x12\x13\n\x0f\x41S_INITIALIZING\x10\x00\x12\x0b\n\x07\x41S_IDLE\x10\x01\x12\x10\n\x0c\x41S_LISTENING\x10\x02\x12\x0f\n\x0b\x41S_THINKING\x10\x03\x12\x0f\n\x0b\x41S_SPEAKING\x10\x04*;\n\tUserState\x12\x0f\n\x0bUS_SPEAKING\x10\x00\x12\x10\n\x0cUS_LISTENING\x10\x01\x12\x0b\n\x07US_AWAY\x10\x02*M\n\x0eToolCallStatus\x12\x0e\n\nTC_RUNNING\x10\x00\x12\x0b\n\x07TC_DONE\x10\x01\x12\x0c\n\x08TC_ERROR\x10\x02\x12\x10\n\x0cTC_CANCELLED\x10\x03*Y\n\x0fToolReplyStatus\x12\x10\n\x0cTR_SCHEDULED\x10\x00\x12\x10\n\x0cTR_COMPLETED\x10\x01\x12\x12\n\x0eTR_INTERRUPTED\x10\x02\x12\x0e\n\nTR_SKIPPED\x10\x03*\x86\x01\n\x0b\x41mdCategory\x12\x0f\n\x0b\x41MD_UNKNOWN\x10\x00\x12\r\n\tAMD_HUMAN\x10\x01\x12\x13\n\x0f\x41MD_MACHINE_IVR\x10\x02\x12\x12\n\x0e\x41MD_MACHINE_VM\x10\x03\x12\x1b\n\x17\x41MD_MACHINE_UNAVAILABLE\x10\x04\x12\x11\n\rAMD_UNCERTAIN\x10\x05\x42+Z)github.com/livekit/protocol/livekit/agentb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -60,152 +60,154 @@ _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_REPLYUPDATED'].fields_by_name['speech_id']._serialized_options = b'\272P\010speechID' _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._loaded_options = None _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_options = b'8\001' - _globals['_CHATROLE']._serialized_start=10951 - _globals['_CHATROLE']._serialized_end=11013 - _globals['_AGENTSTATE']._serialized_start=11015 - _globals['_AGENTSTATE']._serialized_end=11113 - _globals['_USERSTATE']._serialized_start=11115 - _globals['_USERSTATE']._serialized_end=11174 - _globals['_TOOLCALLSTATUS']._serialized_start=11176 - _globals['_TOOLCALLSTATUS']._serialized_end=11253 - _globals['_TOOLREPLYSTATUS']._serialized_start=11255 - _globals['_TOOLREPLYSTATUS']._serialized_end=11344 - _globals['_AMDCATEGORY']._serialized_start=11347 - _globals['_AMDCATEGORY']._serialized_end=11481 + _globals['_CHATROLE']._serialized_start=11177 + _globals['_CHATROLE']._serialized_end=11239 + _globals['_AGENTSTATE']._serialized_start=11241 + _globals['_AGENTSTATE']._serialized_end=11339 + _globals['_USERSTATE']._serialized_start=11341 + _globals['_USERSTATE']._serialized_end=11400 + _globals['_TOOLCALLSTATUS']._serialized_start=11402 + _globals['_TOOLCALLSTATUS']._serialized_end=11479 + _globals['_TOOLREPLYSTATUS']._serialized_start=11481 + _globals['_TOOLREPLYSTATUS']._serialized_end=11570 + _globals['_AMDCATEGORY']._serialized_start=11573 + _globals['_AMDCATEGORY']._serialized_end=11707 _globals['_METRICSREPORT']._serialized_start=170 - _globals['_METRICSREPORT']._serialized_end=621 - _globals['_TIMEDSTRING']._serialized_start=624 - _globals['_TIMEDSTRING']._serialized_end=861 - _globals['_CHATMESSAGE']._serialized_start=864 - _globals['_CHATMESSAGE']._serialized_end=1305 - _globals['_CHATMESSAGE_CHATCONTENT']._serialized_start=1193 - _globals['_CHATMESSAGE_CHATCONTENT']._serialized_end=1233 - _globals['_CHATMESSAGE_EXTRAENTRY']._serialized_start=1235 - _globals['_CHATMESSAGE_EXTRAENTRY']._serialized_end=1279 - _globals['_FUNCTIONCALL']._serialized_start=1308 - _globals['_FUNCTIONCALL']._serialized_end=1443 - _globals['_FUNCTIONCALLOUTPUT']._serialized_start=1446 - _globals['_FUNCTIONCALLOUTPUT']._serialized_end=1602 - _globals['_AGENTHANDOFF']._serialized_start=1605 - _globals['_AGENTHANDOFF']._serialized_end=1775 - _globals['_AGENTCONFIGUPDATE']._serialized_start=1778 - _globals['_AGENTCONFIGUPDATE']._serialized_end=1945 - _globals['_CHATCONTEXT']._serialized_start=1948 - _globals['_CHATCONTEXT']._serialized_end=2321 - _globals['_CHATCONTEXT_CHATITEM']._serialized_start=2016 - _globals['_CHATCONTEXT_CHATITEM']._serialized_end=2321 - _globals['_LLMMODELUSAGE']._serialized_start=2324 - _globals['_LLMMODELUSAGE']._serialized_end=2716 - _globals['_TTSMODELUSAGE']._serialized_start=2719 - _globals['_TTSMODELUSAGE']._serialized_end=2862 - _globals['_STTMODELUSAGE']._serialized_start=2864 - _globals['_STTMODELUSAGE']._serialized_end=2981 - _globals['_INTERRUPTIONMODELUSAGE']._serialized_start=2983 - _globals['_INTERRUPTIONMODELUSAGE']._serialized_end=3064 - _globals['_EOTMODELUSAGE']._serialized_start=3066 - _globals['_EOTMODELUSAGE']._serialized_end=3138 - _globals['_MODELUSAGE']._serialized_start=3141 - _globals['_MODELUSAGE']._serialized_end=3405 - _globals['_AGENTSESSIONUSAGE']._serialized_start=3407 - _globals['_AGENTSESSIONUSAGE']._serialized_end=3474 - _globals['_DEBUGMESSAGE']._serialized_start=3476 - _globals['_DEBUGMESSAGE']._serialized_end=3532 - _globals['_AGENTSESSIONEVENT']._serialized_start=3535 - _globals['_AGENTSESSIONEVENT']._serialized_end=6713 - _globals['_AGENTSESSIONEVENT_AGENTSTATECHANGED']._serialized_start=4645 - _globals['_AGENTSESSIONEVENT_AGENTSTATECHANGED']._serialized_end=4756 - _globals['_AGENTSESSIONEVENT_USERSTATECHANGED']._serialized_start=4758 - _globals['_AGENTSESSIONEVENT_USERSTATECHANGED']._serialized_end=4866 - _globals['_AGENTSESSIONEVENT_CONVERSATIONITEMADDED']._serialized_start=4868 - _globals['_AGENTSESSIONEVENT_CONVERSATIONITEMADDED']._serialized_end=4942 - _globals['_AGENTSESSIONEVENT_USERINPUTTRANSCRIBED']._serialized_start=4944 - _globals['_AGENTSESSIONEVENT_USERINPUTTRANSCRIBED']._serialized_end=5040 - _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSSTARTED']._serialized_start=5042 - _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSSTARTED']._serialized_end=5117 - _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSEXECUTED']._serialized_start=5120 - _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSEXECUTED']._serialized_end=5262 - _globals['_AGENTSESSIONEVENT_ERROR']._serialized_start=5264 - _globals['_AGENTSESSIONEVENT_ERROR']._serialized_end=5288 - _globals['_AGENTSESSIONEVENT_OVERLAPPINGSPEECH']._serialized_start=5291 - _globals['_AGENTSESSIONEVENT_OVERLAPPINGSPEECH']._serialized_end=5493 - _globals['_AGENTSESSIONEVENT_AMDPREDICTION']._serialized_start=5496 - _globals['_AGENTSESSIONEVENT_AMDPREDICTION']._serialized_end=5687 - _globals['_AGENTSESSIONEVENT_EOTPREDICTION']._serialized_start=5690 - _globals['_AGENTSESSIONEVENT_EOTPREDICTION']._serialized_end=5842 - _globals['_AGENTSESSIONEVENT_SESSIONUSAGEUPDATED']._serialized_start=5844 - _globals['_AGENTSESSIONEVENT_SESSIONUSAGEUPDATED']._serialized_end=5914 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED']._serialized_start=5917 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED']._serialized_end=6704 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_STARTED']._serialized_start=6285 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_STARTED']._serialized_end=6346 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_CALLUPDATED']._serialized_start=6348 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_CALLUPDATED']._serialized_end=6425 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_ENDED']._serialized_start=6428 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_ENDED']._serialized_end=6563 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_REPLYUPDATED']._serialized_start=6566 - _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_REPLYUPDATED']._serialized_end=6694 - _globals['_SESSIONREQUEST']._serialized_start=6716 - _globals['_SESSIONREQUEST']._serialized_end=8114 - _globals['_SESSIONREQUEST_PING']._serialized_start=7451 - _globals['_SESSIONREQUEST_PING']._serialized_end=7457 - _globals['_SESSIONREQUEST_GETCHATHISTORY']._serialized_start=7459 - _globals['_SESSIONREQUEST_GETCHATHISTORY']._serialized_end=7475 - _globals['_SESSIONREQUEST_RUNINPUT']._serialized_start=7477 - _globals['_SESSIONREQUEST_RUNINPUT']._serialized_end=7501 - _globals['_SESSIONREQUEST_GETAGENTINFO']._serialized_start=7503 - _globals['_SESSIONREQUEST_GETAGENTINFO']._serialized_end=7517 - _globals['_SESSIONREQUEST_GETSESSIONSTATE']._serialized_start=7519 - _globals['_SESSIONREQUEST_GETSESSIONSTATE']._serialized_end=7536 - _globals['_SESSIONREQUEST_GETRTCSTATS']._serialized_start=7538 - _globals['_SESSIONREQUEST_GETRTCSTATS']._serialized_end=7551 - _globals['_SESSIONREQUEST_GETSESSIONUSAGE']._serialized_start=7553 - _globals['_SESSIONREQUEST_GETSESSIONUSAGE']._serialized_end=7570 - _globals['_SESSIONREQUEST_GETFRAMEWORKINFO']._serialized_start=7572 - _globals['_SESSIONREQUEST_GETFRAMEWORKINFO']._serialized_end=7590 - _globals['_SESSIONREQUEST_UPDATEIO']._serialized_start=7593 - _globals['_SESSIONREQUEST_UPDATEIO']._serialized_end=8024 - _globals['_SESSIONREQUEST_UPDATEIO_INPUT']._serialized_start=7739 - _globals['_SESSIONREQUEST_UPDATEIO_INPUT']._serialized_end=7838 - _globals['_SESSIONREQUEST_UPDATEIO_OUTPUT']._serialized_start=7841 - _globals['_SESSIONREQUEST_UPDATEIO_OUTPUT']._serialized_end=8003 - _globals['_SESSIONREQUEST_FINALIZESIMULATION']._serialized_start=8026 - _globals['_SESSIONREQUEST_FINALIZESIMULATION']._serialized_end=8103 - _globals['_SESSIONRESPONSE']._serialized_start=8117 - _globals['_SESSIONRESPONSE']._serialized_end=10120 - _globals['_SESSIONRESPONSE_PONG']._serialized_start=8955 - _globals['_SESSIONRESPONSE_PONG']._serialized_end=8961 - _globals['_SESSIONRESPONSE_GETCHATHISTORYRESPONSE']._serialized_start=8963 - _globals['_SESSIONRESPONSE_GETCHATHISTORYRESPONSE']._serialized_end=9039 - _globals['_SESSIONRESPONSE_GETAGENTINFORESPONSE']._serialized_start=9042 - _globals['_SESSIONRESPONSE_GETAGENTINFORESPONSE']._serialized_end=9190 - _globals['_SESSIONRESPONSE_RUNINPUTRESPONSE']._serialized_start=9192 - _globals['_SESSIONRESPONSE_RUNINPUTRESPONSE']._serialized_end=9262 - _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE']._serialized_start=9265 - _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE']._serialized_end=9584 - _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_start=9538 - _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_end=9584 - _globals['_SESSIONRESPONSE_GETRTCSTATSRESPONSE']._serialized_start=9586 - _globals['_SESSIONRESPONSE_GETRTCSTATSRESPONSE']._serialized_end=9708 - _globals['_SESSIONRESPONSE_GETSESSIONUSAGERESPONSE']._serialized_start=9710 - _globals['_SESSIONRESPONSE_GETSESSIONUSAGERESPONSE']._serialized_end=9832 - _globals['_SESSIONRESPONSE_GETFRAMEWORKINFORESPONSE']._serialized_start=9834 - _globals['_SESSIONRESPONSE_GETFRAMEWORKINFORESPONSE']._serialized_end=9894 - _globals['_SESSIONRESPONSE_UPDATEIORESPONSE']._serialized_start=9896 - _globals['_SESSIONRESPONSE_UPDATEIORESPONSE']._serialized_end=9914 - _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE']._serialized_start=9917 - _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE']._serialized_end=10098 - _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE_SIMULATIONVERDICT']._serialized_start=10046 - _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE_SIMULATIONVERDICT']._serialized_end=10098 - _globals['_AGENTSESSIONMESSAGE']._serialized_start=10123 - _globals['_AGENTSESSIONMESSAGE']._serialized_end=10949 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO']._serialized_start=10758 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO']._serialized_end=10938 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOFRAME']._serialized_start=10771 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOFRAME']._serialized_end=10869 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFLUSH']._serialized_start=10871 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFLUSH']._serialized_end=10891 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKCLEAR']._serialized_start=10893 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKCLEAR']._serialized_end=10913 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFINISHED']._serialized_start=10915 - _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFINISHED']._serialized_end=10938 + _globals['_METRICSREPORT']._serialized_end=711 + _globals['_TIMEDSTRING']._serialized_start=714 + _globals['_TIMEDSTRING']._serialized_end=951 + _globals['_CHATMESSAGE']._serialized_start=954 + _globals['_CHATMESSAGE']._serialized_end=1395 + _globals['_CHATMESSAGE_CHATCONTENT']._serialized_start=1283 + _globals['_CHATMESSAGE_CHATCONTENT']._serialized_end=1323 + _globals['_CHATMESSAGE_EXTRAENTRY']._serialized_start=1325 + _globals['_CHATMESSAGE_EXTRAENTRY']._serialized_end=1369 + _globals['_FUNCTIONCALL']._serialized_start=1398 + _globals['_FUNCTIONCALL']._serialized_end=1533 + _globals['_FUNCTIONCALLOUTPUT']._serialized_start=1536 + _globals['_FUNCTIONCALLOUTPUT']._serialized_end=1692 + _globals['_AGENTHANDOFF']._serialized_start=1695 + _globals['_AGENTHANDOFF']._serialized_end=1865 + _globals['_AGENTCONFIGUPDATE']._serialized_start=1868 + _globals['_AGENTCONFIGUPDATE']._serialized_end=2035 + _globals['_CHATCONTEXT']._serialized_start=2038 + _globals['_CHATCONTEXT']._serialized_end=2411 + _globals['_CHATCONTEXT_CHATITEM']._serialized_start=2106 + _globals['_CHATCONTEXT_CHATITEM']._serialized_end=2411 + _globals['_LLMMODELUSAGE']._serialized_start=2414 + _globals['_LLMMODELUSAGE']._serialized_end=2806 + _globals['_TTSMODELUSAGE']._serialized_start=2809 + _globals['_TTSMODELUSAGE']._serialized_end=2952 + _globals['_STTMODELUSAGE']._serialized_start=2954 + _globals['_STTMODELUSAGE']._serialized_end=3071 + _globals['_INTERRUPTIONMODELUSAGE']._serialized_start=3073 + _globals['_INTERRUPTIONMODELUSAGE']._serialized_end=3154 + _globals['_EOTMODELUSAGE']._serialized_start=3156 + _globals['_EOTMODELUSAGE']._serialized_end=3228 + _globals['_MODELUSAGE']._serialized_start=3231 + _globals['_MODELUSAGE']._serialized_end=3495 + _globals['_AGENTSESSIONUSAGE']._serialized_start=3497 + _globals['_AGENTSESSIONUSAGE']._serialized_end=3564 + _globals['_DEBUGMESSAGE']._serialized_start=3566 + _globals['_DEBUGMESSAGE']._serialized_end=3622 + _globals['_AGENTSESSIONEVENT']._serialized_start=3625 + _globals['_AGENTSESSIONEVENT']._serialized_end=6939 + _globals['_AGENTSESSIONEVENT_AGENTSTATECHANGED']._serialized_start=4828 + _globals['_AGENTSESSIONEVENT_AGENTSTATECHANGED']._serialized_end=4939 + _globals['_AGENTSESSIONEVENT_USERSTATECHANGED']._serialized_start=4941 + _globals['_AGENTSESSIONEVENT_USERSTATECHANGED']._serialized_end=5049 + _globals['_AGENTSESSIONEVENT_CONVERSATIONITEMADDED']._serialized_start=5051 + _globals['_AGENTSESSIONEVENT_CONVERSATIONITEMADDED']._serialized_end=5125 + _globals['_AGENTSESSIONEVENT_USERINPUTTRANSCRIBED']._serialized_start=5127 + _globals['_AGENTSESSIONEVENT_USERINPUTTRANSCRIBED']._serialized_end=5223 + _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSSTARTED']._serialized_start=5225 + _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSSTARTED']._serialized_end=5300 + _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSEXECUTED']._serialized_start=5303 + _globals['_AGENTSESSIONEVENT_FUNCTIONTOOLSEXECUTED']._serialized_end=5445 + _globals['_AGENTSESSIONEVENT_ERROR']._serialized_start=5447 + _globals['_AGENTSESSIONEVENT_ERROR']._serialized_end=5471 + _globals['_AGENTSESSIONEVENT_OVERLAPPINGSPEECH']._serialized_start=5474 + _globals['_AGENTSESSIONEVENT_OVERLAPPINGSPEECH']._serialized_end=5676 + _globals['_AGENTSESSIONEVENT_AMDPREDICTION']._serialized_start=5679 + _globals['_AGENTSESSIONEVENT_AMDPREDICTION']._serialized_end=5870 + _globals['_AGENTSESSIONEVENT_EOTPREDICTION']._serialized_start=5873 + _globals['_AGENTSESSIONEVENT_EOTPREDICTION']._serialized_end=6025 + _globals['_AGENTSESSIONEVENT_SESSIONUSAGEUPDATED']._serialized_start=6027 + _globals['_AGENTSESSIONEVENT_SESSIONUSAGEUPDATED']._serialized_end=6097 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED']._serialized_start=6100 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED']._serialized_end=6887 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_STARTED']._serialized_start=6468 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_STARTED']._serialized_end=6529 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_CALLUPDATED']._serialized_start=6531 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_CALLUPDATED']._serialized_end=6608 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_ENDED']._serialized_start=6611 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_ENDED']._serialized_end=6746 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_REPLYUPDATED']._serialized_start=6749 + _globals['_AGENTSESSIONEVENT_TOOLEXECUTIONUPDATED_REPLYUPDATED']._serialized_end=6877 + _globals['_AGENTSESSIONEVENT_AGENTFALSEINTERRUPTION']._serialized_start=6889 + _globals['_AGENTSESSIONEVENT_AGENTFALSEINTERRUPTION']._serialized_end=6930 + _globals['_SESSIONREQUEST']._serialized_start=6942 + _globals['_SESSIONREQUEST']._serialized_end=8340 + _globals['_SESSIONREQUEST_PING']._serialized_start=7677 + _globals['_SESSIONREQUEST_PING']._serialized_end=7683 + _globals['_SESSIONREQUEST_GETCHATHISTORY']._serialized_start=7685 + _globals['_SESSIONREQUEST_GETCHATHISTORY']._serialized_end=7701 + _globals['_SESSIONREQUEST_RUNINPUT']._serialized_start=7703 + _globals['_SESSIONREQUEST_RUNINPUT']._serialized_end=7727 + _globals['_SESSIONREQUEST_GETAGENTINFO']._serialized_start=7729 + _globals['_SESSIONREQUEST_GETAGENTINFO']._serialized_end=7743 + _globals['_SESSIONREQUEST_GETSESSIONSTATE']._serialized_start=7745 + _globals['_SESSIONREQUEST_GETSESSIONSTATE']._serialized_end=7762 + _globals['_SESSIONREQUEST_GETRTCSTATS']._serialized_start=7764 + _globals['_SESSIONREQUEST_GETRTCSTATS']._serialized_end=7777 + _globals['_SESSIONREQUEST_GETSESSIONUSAGE']._serialized_start=7779 + _globals['_SESSIONREQUEST_GETSESSIONUSAGE']._serialized_end=7796 + _globals['_SESSIONREQUEST_GETFRAMEWORKINFO']._serialized_start=7798 + _globals['_SESSIONREQUEST_GETFRAMEWORKINFO']._serialized_end=7816 + _globals['_SESSIONREQUEST_UPDATEIO']._serialized_start=7819 + _globals['_SESSIONREQUEST_UPDATEIO']._serialized_end=8250 + _globals['_SESSIONREQUEST_UPDATEIO_INPUT']._serialized_start=7965 + _globals['_SESSIONREQUEST_UPDATEIO_INPUT']._serialized_end=8064 + _globals['_SESSIONREQUEST_UPDATEIO_OUTPUT']._serialized_start=8067 + _globals['_SESSIONREQUEST_UPDATEIO_OUTPUT']._serialized_end=8229 + _globals['_SESSIONREQUEST_FINALIZESIMULATION']._serialized_start=8252 + _globals['_SESSIONREQUEST_FINALIZESIMULATION']._serialized_end=8329 + _globals['_SESSIONRESPONSE']._serialized_start=8343 + _globals['_SESSIONRESPONSE']._serialized_end=10346 + _globals['_SESSIONRESPONSE_PONG']._serialized_start=9181 + _globals['_SESSIONRESPONSE_PONG']._serialized_end=9187 + _globals['_SESSIONRESPONSE_GETCHATHISTORYRESPONSE']._serialized_start=9189 + _globals['_SESSIONRESPONSE_GETCHATHISTORYRESPONSE']._serialized_end=9265 + _globals['_SESSIONRESPONSE_GETAGENTINFORESPONSE']._serialized_start=9268 + _globals['_SESSIONRESPONSE_GETAGENTINFORESPONSE']._serialized_end=9416 + _globals['_SESSIONRESPONSE_RUNINPUTRESPONSE']._serialized_start=9418 + _globals['_SESSIONRESPONSE_RUNINPUTRESPONSE']._serialized_end=9488 + _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE']._serialized_start=9491 + _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE']._serialized_end=9810 + _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_start=9764 + _globals['_SESSIONRESPONSE_GETSESSIONSTATERESPONSE_OPTIONSENTRY']._serialized_end=9810 + _globals['_SESSIONRESPONSE_GETRTCSTATSRESPONSE']._serialized_start=9812 + _globals['_SESSIONRESPONSE_GETRTCSTATSRESPONSE']._serialized_end=9934 + _globals['_SESSIONRESPONSE_GETSESSIONUSAGERESPONSE']._serialized_start=9936 + _globals['_SESSIONRESPONSE_GETSESSIONUSAGERESPONSE']._serialized_end=10058 + _globals['_SESSIONRESPONSE_GETFRAMEWORKINFORESPONSE']._serialized_start=10060 + _globals['_SESSIONRESPONSE_GETFRAMEWORKINFORESPONSE']._serialized_end=10120 + _globals['_SESSIONRESPONSE_UPDATEIORESPONSE']._serialized_start=10122 + _globals['_SESSIONRESPONSE_UPDATEIORESPONSE']._serialized_end=10140 + _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE']._serialized_start=10143 + _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE']._serialized_end=10324 + _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE_SIMULATIONVERDICT']._serialized_start=10272 + _globals['_SESSIONRESPONSE_FINALIZESIMULATIONRESPONSE_SIMULATIONVERDICT']._serialized_end=10324 + _globals['_AGENTSESSIONMESSAGE']._serialized_start=10349 + _globals['_AGENTSESSIONMESSAGE']._serialized_end=11175 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO']._serialized_start=10984 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO']._serialized_end=11164 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOFRAME']._serialized_start=10997 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOFRAME']._serialized_end=11095 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFLUSH']._serialized_start=11097 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFLUSH']._serialized_end=11117 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKCLEAR']._serialized_start=11119 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKCLEAR']._serialized_end=11139 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFINISHED']._serialized_start=11141 + _globals['_AGENTSESSIONMESSAGE_CONSOLEIO_AUDIOPLAYBACKFINISHED']._serialized_end=11164 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agent_pb/agent_session.pyi b/livekit-protocol/livekit/protocol/agent_pb/agent_session.pyi index 3de9db0d..aa78fd86 100644 --- a/livekit-protocol/livekit/protocol/agent_pb/agent_session.pyi +++ b/livekit-protocol/livekit/protocol/agent_pb/agent_session.pyi @@ -81,7 +81,7 @@ AMD_MACHINE_UNAVAILABLE: AmdCategory AMD_UNCERTAIN: AmdCategory class MetricsReport(_message.Message): - __slots__ = ("started_speaking_at", "stopped_speaking_at", "transcription_delay", "end_of_turn_delay", "on_user_turn_completed_delay", "llm_node_ttft", "tts_node_ttfb", "e2e_latency") + __slots__ = ("started_speaking_at", "stopped_speaking_at", "transcription_delay", "end_of_turn_delay", "on_user_turn_completed_delay", "llm_node_ttft", "tts_node_ttfb", "e2e_latency", "llm_node_tps", "llm_node_ttfs") STARTED_SPEAKING_AT_FIELD_NUMBER: _ClassVar[int] STOPPED_SPEAKING_AT_FIELD_NUMBER: _ClassVar[int] TRANSCRIPTION_DELAY_FIELD_NUMBER: _ClassVar[int] @@ -90,6 +90,8 @@ class MetricsReport(_message.Message): LLM_NODE_TTFT_FIELD_NUMBER: _ClassVar[int] TTS_NODE_TTFB_FIELD_NUMBER: _ClassVar[int] E2E_LATENCY_FIELD_NUMBER: _ClassVar[int] + LLM_NODE_TPS_FIELD_NUMBER: _ClassVar[int] + LLM_NODE_TTFS_FIELD_NUMBER: _ClassVar[int] started_speaking_at: _timestamp_pb2.Timestamp stopped_speaking_at: _timestamp_pb2.Timestamp transcription_delay: float @@ -98,7 +100,9 @@ class MetricsReport(_message.Message): llm_node_ttft: float tts_node_ttfb: float e2e_latency: float - def __init__(self, started_speaking_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., stopped_speaking_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., transcription_delay: _Optional[float] = ..., end_of_turn_delay: _Optional[float] = ..., on_user_turn_completed_delay: _Optional[float] = ..., llm_node_ttft: _Optional[float] = ..., tts_node_ttfb: _Optional[float] = ..., e2e_latency: _Optional[float] = ...) -> None: ... + llm_node_tps: float + llm_node_ttfs: float + def __init__(self, started_speaking_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., stopped_speaking_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., transcription_delay: _Optional[float] = ..., end_of_turn_delay: _Optional[float] = ..., on_user_turn_completed_delay: _Optional[float] = ..., llm_node_ttft: _Optional[float] = ..., tts_node_ttfb: _Optional[float] = ..., e2e_latency: _Optional[float] = ..., llm_node_tps: _Optional[float] = ..., llm_node_ttfs: _Optional[float] = ...) -> None: ... class TimedString(_message.Message): __slots__ = ("text", "start_time", "end_time", "confidence", "start_time_offset", "speaker_id") @@ -332,7 +336,7 @@ class DebugMessage(_message.Message): def __init__(self, payload: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... class AgentSessionEvent(_message.Message): - __slots__ = ("created_at", "agent_state_changed", "user_state_changed", "conversation_item_added", "user_input_transcribed", "function_tools_executed", "error", "overlapping_speech", "session_usage_updated", "amd_prediction", "eot_prediction", "function_tools_started", "debug_message", "tool_execution_updated") + __slots__ = ("created_at", "agent_state_changed", "user_state_changed", "conversation_item_added", "user_input_transcribed", "function_tools_executed", "error", "overlapping_speech", "session_usage_updated", "amd_prediction", "eot_prediction", "function_tools_started", "debug_message", "tool_execution_updated", "agent_false_interruption") class AgentStateChanged(_message.Message): __slots__ = ("old_state", "new_state") OLD_STATE_FIELD_NUMBER: _ClassVar[int] @@ -463,6 +467,11 @@ class AgentSessionEvent(_message.Message): reply_updated: AgentSessionEvent.ToolExecutionUpdated.ReplyUpdated ended: AgentSessionEvent.ToolExecutionUpdated.Ended def __init__(self, started: _Optional[_Union[AgentSessionEvent.ToolExecutionUpdated.Started, _Mapping]] = ..., call_updated: _Optional[_Union[AgentSessionEvent.ToolExecutionUpdated.CallUpdated, _Mapping]] = ..., reply_updated: _Optional[_Union[AgentSessionEvent.ToolExecutionUpdated.ReplyUpdated, _Mapping]] = ..., ended: _Optional[_Union[AgentSessionEvent.ToolExecutionUpdated.Ended, _Mapping]] = ...) -> None: ... + class AgentFalseInterruption(_message.Message): + __slots__ = ("resumed",) + RESUMED_FIELD_NUMBER: _ClassVar[int] + resumed: bool + def __init__(self, resumed: bool = ...) -> None: ... CREATED_AT_FIELD_NUMBER: _ClassVar[int] AGENT_STATE_CHANGED_FIELD_NUMBER: _ClassVar[int] USER_STATE_CHANGED_FIELD_NUMBER: _ClassVar[int] @@ -477,6 +486,7 @@ class AgentSessionEvent(_message.Message): FUNCTION_TOOLS_STARTED_FIELD_NUMBER: _ClassVar[int] DEBUG_MESSAGE_FIELD_NUMBER: _ClassVar[int] TOOL_EXECUTION_UPDATED_FIELD_NUMBER: _ClassVar[int] + AGENT_FALSE_INTERRUPTION_FIELD_NUMBER: _ClassVar[int] created_at: _timestamp_pb2.Timestamp agent_state_changed: AgentSessionEvent.AgentStateChanged user_state_changed: AgentSessionEvent.UserStateChanged @@ -491,7 +501,8 @@ class AgentSessionEvent(_message.Message): function_tools_started: AgentSessionEvent.FunctionToolsStarted debug_message: DebugMessage tool_execution_updated: AgentSessionEvent.ToolExecutionUpdated - def __init__(self, created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., agent_state_changed: _Optional[_Union[AgentSessionEvent.AgentStateChanged, _Mapping]] = ..., user_state_changed: _Optional[_Union[AgentSessionEvent.UserStateChanged, _Mapping]] = ..., conversation_item_added: _Optional[_Union[AgentSessionEvent.ConversationItemAdded, _Mapping]] = ..., user_input_transcribed: _Optional[_Union[AgentSessionEvent.UserInputTranscribed, _Mapping]] = ..., function_tools_executed: _Optional[_Union[AgentSessionEvent.FunctionToolsExecuted, _Mapping]] = ..., error: _Optional[_Union[AgentSessionEvent.Error, _Mapping]] = ..., overlapping_speech: _Optional[_Union[AgentSessionEvent.OverlappingSpeech, _Mapping]] = ..., session_usage_updated: _Optional[_Union[AgentSessionEvent.SessionUsageUpdated, _Mapping]] = ..., amd_prediction: _Optional[_Union[AgentSessionEvent.AmdPrediction, _Mapping]] = ..., eot_prediction: _Optional[_Union[AgentSessionEvent.EotPrediction, _Mapping]] = ..., function_tools_started: _Optional[_Union[AgentSessionEvent.FunctionToolsStarted, _Mapping]] = ..., debug_message: _Optional[_Union[DebugMessage, _Mapping]] = ..., tool_execution_updated: _Optional[_Union[AgentSessionEvent.ToolExecutionUpdated, _Mapping]] = ...) -> None: ... + agent_false_interruption: AgentSessionEvent.AgentFalseInterruption + def __init__(self, created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., agent_state_changed: _Optional[_Union[AgentSessionEvent.AgentStateChanged, _Mapping]] = ..., user_state_changed: _Optional[_Union[AgentSessionEvent.UserStateChanged, _Mapping]] = ..., conversation_item_added: _Optional[_Union[AgentSessionEvent.ConversationItemAdded, _Mapping]] = ..., user_input_transcribed: _Optional[_Union[AgentSessionEvent.UserInputTranscribed, _Mapping]] = ..., function_tools_executed: _Optional[_Union[AgentSessionEvent.FunctionToolsExecuted, _Mapping]] = ..., error: _Optional[_Union[AgentSessionEvent.Error, _Mapping]] = ..., overlapping_speech: _Optional[_Union[AgentSessionEvent.OverlappingSpeech, _Mapping]] = ..., session_usage_updated: _Optional[_Union[AgentSessionEvent.SessionUsageUpdated, _Mapping]] = ..., amd_prediction: _Optional[_Union[AgentSessionEvent.AmdPrediction, _Mapping]] = ..., eot_prediction: _Optional[_Union[AgentSessionEvent.EotPrediction, _Mapping]] = ..., function_tools_started: _Optional[_Union[AgentSessionEvent.FunctionToolsStarted, _Mapping]] = ..., debug_message: _Optional[_Union[DebugMessage, _Mapping]] = ..., tool_execution_updated: _Optional[_Union[AgentSessionEvent.ToolExecutionUpdated, _Mapping]] = ..., agent_false_interruption: _Optional[_Union[AgentSessionEvent.AgentFalseInterruption, _Mapping]] = ...) -> None: ... class SessionRequest(_message.Message): __slots__ = ("request_id", "ping", "get_chat_history", "run_input", "get_agent_info", "get_session_state", "get_rtc_stats", "get_session_usage", "get_framework_info", "update_io", "finalize_simulation") diff --git a/livekit-protocol/livekit/protocol/agent_simulation.py b/livekit-protocol/livekit/protocol/agent_simulation.py index c497c2b1..2264bd84 100644 --- a/livekit-protocol/livekit/protocol/agent_simulation.py +++ b/livekit-protocol/livekit/protocol/agent_simulation.py @@ -28,7 +28,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\"\xff\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\x12%\n\x04mode\x18\x12 \x01(\x0e\x32\x17.livekit.SimulationMode\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\xfd\x02\n\x06\x43reate\x1a\x8c\x02\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.SimulationModeB\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') +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\"\xa8/\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\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\xf5\x18\n\nJobMetrics\x12\x1b\n\x0e\x61\x63\x63uracy_score\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x1d\n\x10\x65xperience_score\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x1c\n\x0ftask_completion\x18\x03 \x01(\x02H\x02\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>\n\tsimulator\x18\x08 \x01(\x0b\x32+.livekit.SimulationRun.JobMetrics.Simulator\x12\x35\n\x05turns\x18\t \x03(\x0b\x32&.livekit.SimulationRun.JobMetrics.Turn\x12\x13\n\x0bjudge_model\x18\n \x01(\t\x12\x19\n\x11\x61udio_judge_model\x18\x0b \x01(\t\x12\x1a\n\x12has_remote_session\x18\x0c \x01(\x08\x12&\n\x02t0\x18\r \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\xe3\x02\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\x1b\n\x0ekeyterm_recall\x18\x05 \x01(\x02H\x04\x88\x01\x01\x12\x1d\n\x10keyterms_uttered\x18\x06 \x01(\rH\x05\x88\x01\x01\x12 \n\x13keyterms_recognized\x18\x07 \x01(\rH\x06\x88\x01\x01\x12%\n\x18transcription_latency_ms\x18\x08 \x01(\rH\x07\x88\x01\x01\x42\x06\n\x04_werB\x08\n\x06_wordsB\x0e\n\x0c_word_errorsB\x06\n\x04_cerB\x11\n\x0f_keyterm_recallB\x13\n\x11_keyterms_utteredB\x16\n\x14_keyterms_recognizedB\x1b\n\x19_transcription_latency_ms\x1a\xb5\x01\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\x12\x1e\n\x11\x63onciseness_score\x18\x04 \x01(\x02H\x03\x88\x01\x01\x42\n\n\x08_ttft_msB\n\n\x08_ttfs_msB\x14\n\x12_tokens_per_secondB\x14\n\x12_conciseness_score\x1a\x81\x02\n\x03TTS\x12\x14\n\x07ttfa_ms\x18\x01 \x01(\rH\x00\x88\x01\x01\x12\x14\n\x07ttfb_ms\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x10\n\x03wer\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12\x1c\n\x0fspeech_rate_wpm\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x1e\n\x11naturalness_score\x18\x05 \x01(\x02H\x04\x88\x01\x01\x12\x1e\n\x11\x65nunciation_score\x18\x06 \x01(\x02H\x05\x88\x01\x01\x42\n\n\x08_ttfa_msB\n\n\x08_ttfb_msB\x06\n\x04_werB\x12\n\x10_speech_rate_wpmB\x14\n\x12_naturalness_scoreB\x14\n\x12_enunciation_score\x1a\xc6\x07\n\x0c\x43onversation\x12\x1e\n\x11turn_taking_score\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12$\n\x17response_latency_p50_ms\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12$\n\x17response_latency_p95_ms\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12$\n\x17response_latency_p99_ms\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12#\n\x16\x61gent_yield_latency_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\x1d\n\x10silence_total_ms\x18\n \x01(\rH\t\x88\x01\x01\x12\"\n\x15\x61wkward_silence_count\x18\x0b \x01(\rH\n\x88\x01\x01\x12%\n\x18unanswered_persona_turns\x18\x0c \x01(\rH\x0b\x88\x01\x01\x12%\n\x18\x66\x61lse_interruption_count\x18\r \x01(\rH\x0c\x88\x01\x01\x12\x31\n$false_interruption_unrecovered_count\x18\x0e \x01(\rH\r\x88\x01\x01\x12*\n\x1d\x61gent_reported_e2e_latency_ms\x18\x0f \x01(\rH\x0e\x88\x01\x01\x42\x14\n\x12_turn_taking_scoreB\x1a\n\x18_response_latency_p50_msB\x1a\n\x18_response_latency_p95_msB\x1a\n\x18_response_latency_p99_msB\x19\n\x17_agent_yield_latency_msB\x1a\n\x18_eot_misprediction_countB\x10\n\x0e_overlap_ratioB\x14\n\x12_overlap_speech_msB\x12\n\x10_total_speech_msB\x13\n\x11_silence_total_msB\x18\n\x16_awkward_silence_countB\x1b\n\x19_unanswered_persona_turnsB\x1b\n\x19_false_interruption_countB\'\n%_false_interruption_unrecovered_countB \n\x1e_agent_reported_e2e_latency_ms\x1au\n\tSimulator\x12\x1e\n\x11\x65\x61rly_termination\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1d\n\x10late_termination\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x14\n\x12_early_terminationB\x13\n\x11_late_termination\x1a\xa1\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 \n\x13response_latency_ms\x18\x05 \x01(\x05H\x02\x88\x01\x01\x12#\n\x16transcription_delay_ms\x18\x06 \x01(\rH\x03\x88\x01\x01\x12\x18\n\x0bllm_ttft_ms\x18\x07 \x01(\rH\x04\x88\x01\x01\x12\x18\n\x0bllm_ttfs_ms\x18\x08 \x01(\rH\x05\x88\x01\x01\x12\x18\n\x0btts_ttfa_ms\x18\t \x01(\rH\x06\x88\x01\x01\x12\x18\n\x0btts_ttfb_ms\x18\n \x01(\rH\x07\x88\x01\x01\x12*\n\x1d\x61gent_reported_e2e_latency_ms\x18\x0b \x01(\rH\x08\x88\x01\x01\x12\x1e\n\x11\x63onciseness_score\x18\x0c \x01(\x02H\t\x88\x01\x01\x12\x1e\n\x11naturalness_score\x18\r \x01(\x02H\n\x88\x01\x01\x12\x1e\n\x11\x65nunciation_score\x18\x0e \x01(\x02H\x0b\x88\x01\x01\x12\r\n\x05\x66lags\x18\x0f \x03(\tB\x0b\n\t_start_msB\t\n\x07_end_msB\x16\n\x14_response_latency_msB\x19\n\x17_transcription_delay_msB\x0e\n\x0c_llm_ttft_msB\x0e\n\x0c_llm_ttfs_msB\x0e\n\x0c_tts_ttfa_msB\x0e\n\x0c_tts_ttfb_msB \n\x1e_agent_reported_e2e_latency_msB\x14\n\x12_conciseness_scoreB\x14\n\x12_naturalness_scoreB\x14\n\x12_enunciation_scoreB\x11\n\x0f_accuracy_scoreB\x13\n\x11_experience_scoreB\x12\n\x10_task_completion\x1a\xd1\x03\n\nRunMetrics\x12\x1b\n\x0e\x61\x63\x63uracy_score\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x1d\n\x10\x65xperience_score\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x1f\n\x12scenario_pass_rate\x18\x03 \x01(\x02H\x02\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\x12\n\njobs_total\x18\t \x01(\r\x12\x13\n\x0bjobs_failed\x18\n \x01(\r\x12\x1c\n\x14jobs_simulator_fault\x18\x0b \x01(\rB\x11\n\x0f_accuracy_scoreB\x13\n\x11_experience_scoreB\x15\n\x13_scenario_pass_rate\x1a\xfd\x02\n\x06\x43reate\x1a\x8c\x02\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.SimulationModeB\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\x06J\x04\x08\x08\x10\tR\x07summary\"\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) @@ -40,8 +40,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=3361 - _globals['_SIMULATIONMODE']._serialized_end=3463 + _globals['_SIMULATIONMODE']._serialized_start=7114 + _globals['_SIMULATIONMODE']._serialized_end=7216 _globals['_SIMULATIONRUNSUMMARY']._serialized_start=161 _globals['_SIMULATIONRUNSUMMARY']._serialized_end=523 _globals['_SIMULATIONRUNSUMMARY_CHATHISTORYENTRY']._serialized_start=380 @@ -49,61 +49,77 @@ _globals['_SIMULATIONRUNSUMMARY_ISSUE']._serialized_start=460 _globals['_SIMULATIONRUNSUMMARY_ISSUE']._serialized_end=523 _globals['_SIMULATIONRUN']._serialized_start=526 - _globals['_SIMULATIONRUN']._serialized_end=2829 - _globals['_SIMULATIONRUN_JOB']._serialized_start=1110 - _globals['_SIMULATIONRUN_JOB']._serialized_end=1632 - _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_start=1453 - _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_end=1513 - _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_start=1515 - _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_end=1626 - _globals['_SIMULATIONRUN_CREATE']._serialized_start=1635 - _globals['_SIMULATIONRUN_CREATE']._serialized_end=2016 - _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_start=1646 - _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_end=1914 - _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_start=1916 - _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_end=2016 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_start=2018 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_end=2134 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_start=2041 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_end=2122 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_start=1916 - _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_end=1926 - _globals['_SIMULATIONRUN_GET']._serialized_start=2136 - _globals['_SIMULATIONRUN_GET']._serialized_end=2248 - _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_start=2041 - _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_end=2097 - _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_start=2201 - _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_end=2248 - _globals['_SIMULATIONRUN_LIST']._serialized_start=2251 - _globals['_SIMULATIONRUN_LIST']._serialized_end=2519 - _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_start=2260 - _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_end=2418 - _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_start=2420 - _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_end=2519 - _globals['_SIMULATIONRUN_CANCEL']._serialized_start=2521 - _globals['_SIMULATIONRUN_CANCEL']._serialized_end=2599 - _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_start=2041 - _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_end=2097 - _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_start=1916 - _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_end=1926 - _globals['_SIMULATIONRUN_USAGE']._serialized_start=1453 - _globals['_SIMULATIONRUN_USAGE']._serialized_end=1513 - _globals['_SIMULATIONRUN_STATUS']._serialized_start=2664 - _globals['_SIMULATIONRUN_STATUS']._serialized_end=2829 - _globals['_SCENARIO']._serialized_start=2832 - _globals['_SCENARIO']._serialized_end=3148 - _globals['_SCENARIO_CREATEFROMSESSION']._serialized_start=2971 - _globals['_SCENARIO_CREATEFROMSESSION']._serialized_end=3103 - _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_start=2992 - _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_end=3054 - _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_start=3056 - _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_end=3103 - _globals['_SCENARIO_TAGSENTRY']._serialized_start=3105 - _globals['_SCENARIO_TAGSENTRY']._serialized_end=3148 - _globals['_SCENARIOGROUP']._serialized_start=3150 - _globals['_SCENARIOGROUP']._serialized_end=3217 - _globals['_SIMULATIONDISPATCH']._serialized_start=3220 - _globals['_SIMULATIONDISPATCH']._serialized_end=3359 - _globals['_AGENTSIMULATION']._serialized_start=3466 - _globals['_AGENTSIMULATION']._serialized_end=4136 + _globals['_SIMULATIONRUN']._serialized_end=6582 + _globals['_SIMULATIONRUN_JOB']._serialized_start=1136 + _globals['_SIMULATIONRUN_JOB']._serialized_end=1710 + _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_start=1531 + _globals['_SIMULATIONRUN_JOB_USAGE']._serialized_end=1591 + _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_start=1593 + _globals['_SIMULATIONRUN_JOB_STATUS']._serialized_end=1704 + _globals['_SIMULATIONRUN_JOBMETRICS']._serialized_start=1713 + _globals['_SIMULATIONRUN_JOBMETRICS']._serialized_end=4902 + _globals['_SIMULATIONRUN_JOBMETRICS_STT']._serialized_start=2279 + _globals['_SIMULATIONRUN_JOBMETRICS_STT']._serialized_end=2634 + _globals['_SIMULATIONRUN_JOBMETRICS_LLM']._serialized_start=2637 + _globals['_SIMULATIONRUN_JOBMETRICS_LLM']._serialized_end=2818 + _globals['_SIMULATIONRUN_JOBMETRICS_TTS']._serialized_start=2821 + _globals['_SIMULATIONRUN_JOBMETRICS_TTS']._serialized_end=3078 + _globals['_SIMULATIONRUN_JOBMETRICS_CONVERSATION']._serialized_start=3081 + _globals['_SIMULATIONRUN_JOBMETRICS_CONVERSATION']._serialized_end=4047 + _globals['_SIMULATIONRUN_JOBMETRICS_SIMULATOR']._serialized_start=4049 + _globals['_SIMULATIONRUN_JOBMETRICS_SIMULATOR']._serialized_end=4166 + _globals['_SIMULATIONRUN_JOBMETRICS_TURN']._serialized_start=4169 + _globals['_SIMULATIONRUN_JOBMETRICS_TURN']._serialized_end=4842 + _globals['_SIMULATIONRUN_RUNMETRICS']._serialized_start=4905 + _globals['_SIMULATIONRUN_RUNMETRICS']._serialized_end=5370 + _globals['_SIMULATIONRUN_CREATE']._serialized_start=5373 + _globals['_SIMULATIONRUN_CREATE']._serialized_end=5754 + _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_start=5384 + _globals['_SIMULATIONRUN_CREATE_REQUEST']._serialized_end=5652 + _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_start=5654 + _globals['_SIMULATIONRUN_CREATE_RESPONSE']._serialized_end=5754 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_start=5756 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD']._serialized_end=5872 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_start=5779 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_REQUEST']._serialized_end=5860 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_start=5654 + _globals['_SIMULATIONRUN_CONFIRMSOURCEUPLOAD_RESPONSE']._serialized_end=5664 + _globals['_SIMULATIONRUN_GET']._serialized_start=5874 + _globals['_SIMULATIONRUN_GET']._serialized_end=5986 + _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_start=5779 + _globals['_SIMULATIONRUN_GET_REQUEST']._serialized_end=5835 + _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_start=5939 + _globals['_SIMULATIONRUN_GET_RESPONSE']._serialized_end=5986 + _globals['_SIMULATIONRUN_LIST']._serialized_start=5989 + _globals['_SIMULATIONRUN_LIST']._serialized_end=6257 + _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_start=5998 + _globals['_SIMULATIONRUN_LIST_REQUEST']._serialized_end=6156 + _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_start=6158 + _globals['_SIMULATIONRUN_LIST_RESPONSE']._serialized_end=6257 + _globals['_SIMULATIONRUN_CANCEL']._serialized_start=6259 + _globals['_SIMULATIONRUN_CANCEL']._serialized_end=6337 + _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_start=5779 + _globals['_SIMULATIONRUN_CANCEL_REQUEST']._serialized_end=5835 + _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_start=5654 + _globals['_SIMULATIONRUN_CANCEL_RESPONSE']._serialized_end=5664 + _globals['_SIMULATIONRUN_USAGE']._serialized_start=1531 + _globals['_SIMULATIONRUN_USAGE']._serialized_end=1591 + _globals['_SIMULATIONRUN_STATUS']._serialized_start=6402 + _globals['_SIMULATIONRUN_STATUS']._serialized_end=6567 + _globals['_SCENARIO']._serialized_start=6585 + _globals['_SCENARIO']._serialized_end=6901 + _globals['_SCENARIO_CREATEFROMSESSION']._serialized_start=6724 + _globals['_SCENARIO_CREATEFROMSESSION']._serialized_end=6856 + _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_start=6745 + _globals['_SCENARIO_CREATEFROMSESSION_REQUEST']._serialized_end=6807 + _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_start=6809 + _globals['_SCENARIO_CREATEFROMSESSION_RESPONSE']._serialized_end=6856 + _globals['_SCENARIO_TAGSENTRY']._serialized_start=6858 + _globals['_SCENARIO_TAGSENTRY']._serialized_end=6901 + _globals['_SCENARIOGROUP']._serialized_start=6903 + _globals['_SCENARIOGROUP']._serialized_end=6970 + _globals['_SIMULATIONDISPATCH']._serialized_start=6973 + _globals['_SIMULATIONDISPATCH']._serialized_end=7112 + _globals['_AGENTSIMULATION']._serialized_start=7219 + _globals['_AGENTSIMULATION']._serialized_end=7889 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/agent_simulation.pyi b/livekit-protocol/livekit/protocol/agent_simulation.pyi index 962d8d5d..fe908a75 100644 --- a/livekit-protocol/livekit/protocol/agent_simulation.pyi +++ b/livekit-protocol/livekit/protocol/agent_simulation.pyi @@ -52,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", "concurrency", "mode") + __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") class Status(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () STATUS_PENDING_UPLOAD: _ClassVar[SimulationRun.Status] @@ -70,7 +70,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") + __slots__ = ("id", "status", "instructions", "error", "agent_expectations", "label", "tags", "room_name", "started_at", "ended_at", "room_id", "usage", "metrics") class Status(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () STATUS_PENDING: _ClassVar[SimulationRun.Job.Status] @@ -102,6 +102,7 @@ class SimulationRun(_message.Message): ENDED_AT_FIELD_NUMBER: _ClassVar[int] ROOM_ID_FIELD_NUMBER: _ClassVar[int] USAGE_FIELD_NUMBER: _ClassVar[int] + METRICS_FIELD_NUMBER: _ClassVar[int] id: str status: SimulationRun.Job.Status instructions: str @@ -114,7 +115,178 @@ class SimulationRun(_message.Message): ended_at: _timestamp_pb2.Timestamp room_id: str usage: SimulationRun.Job.Usage - def __init__(self, id: _Optional[str] = ..., status: _Optional[_Union[SimulationRun.Job.Status, str]] = ..., instructions: _Optional[str] = ..., error: _Optional[str] = ..., agent_expectations: _Optional[str] = ..., label: _Optional[str] = ..., tags: _Optional[_Iterable[str]] = ..., room_name: _Optional[str] = ..., started_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., ended_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., room_id: _Optional[str] = ..., usage: _Optional[_Union[SimulationRun.Job.Usage, _Mapping]] = ...) -> None: ... + 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: ... + class JobMetrics(_message.Message): + __slots__ = ("accuracy_score", "experience_score", "task_completion", "stt", "llm", "tts", "conversation", "simulator", "turns", "judge_model", "audio_judge_model", "has_remote_session", "t0") + class STT(_message.Message): + __slots__ = ("wer", "words", "word_errors", "cer", "keyterm_recall", "keyterms_uttered", "keyterms_recognized", "transcription_latency_ms") + WER_FIELD_NUMBER: _ClassVar[int] + WORDS_FIELD_NUMBER: _ClassVar[int] + WORD_ERRORS_FIELD_NUMBER: _ClassVar[int] + CER_FIELD_NUMBER: _ClassVar[int] + KEYTERM_RECALL_FIELD_NUMBER: _ClassVar[int] + KEYTERMS_UTTERED_FIELD_NUMBER: _ClassVar[int] + KEYTERMS_RECOGNIZED_FIELD_NUMBER: _ClassVar[int] + TRANSCRIPTION_LATENCY_MS_FIELD_NUMBER: _ClassVar[int] + wer: float + words: int + word_errors: int + cer: float + keyterm_recall: float + keyterms_uttered: int + keyterms_recognized: int + transcription_latency_ms: int + def __init__(self, wer: _Optional[float] = ..., words: _Optional[int] = ..., word_errors: _Optional[int] = ..., cer: _Optional[float] = ..., keyterm_recall: _Optional[float] = ..., keyterms_uttered: _Optional[int] = ..., keyterms_recognized: _Optional[int] = ..., transcription_latency_ms: _Optional[int] = ...) -> None: ... + class LLM(_message.Message): + __slots__ = ("ttft_ms", "ttfs_ms", "tokens_per_second", "conciseness_score") + TTFT_MS_FIELD_NUMBER: _ClassVar[int] + TTFS_MS_FIELD_NUMBER: _ClassVar[int] + TOKENS_PER_SECOND_FIELD_NUMBER: _ClassVar[int] + CONCISENESS_SCORE_FIELD_NUMBER: _ClassVar[int] + ttft_ms: int + ttfs_ms: int + tokens_per_second: float + conciseness_score: float + def __init__(self, ttft_ms: _Optional[int] = ..., ttfs_ms: _Optional[int] = ..., tokens_per_second: _Optional[float] = ..., conciseness_score: _Optional[float] = ...) -> None: ... + class TTS(_message.Message): + __slots__ = ("ttfa_ms", "ttfb_ms", "wer", "speech_rate_wpm", "naturalness_score", "enunciation_score") + TTFA_MS_FIELD_NUMBER: _ClassVar[int] + TTFB_MS_FIELD_NUMBER: _ClassVar[int] + WER_FIELD_NUMBER: _ClassVar[int] + SPEECH_RATE_WPM_FIELD_NUMBER: _ClassVar[int] + NATURALNESS_SCORE_FIELD_NUMBER: _ClassVar[int] + ENUNCIATION_SCORE_FIELD_NUMBER: _ClassVar[int] + ttfa_ms: int + ttfb_ms: int + wer: float + speech_rate_wpm: float + naturalness_score: float + enunciation_score: float + def __init__(self, ttfa_ms: _Optional[int] = ..., ttfb_ms: _Optional[int] = ..., wer: _Optional[float] = ..., speech_rate_wpm: _Optional[float] = ..., naturalness_score: _Optional[float] = ..., enunciation_score: _Optional[float] = ...) -> None: ... + class Conversation(_message.Message): + __slots__ = ("turn_taking_score", "response_latency_p50_ms", "response_latency_p95_ms", "response_latency_p99_ms", "agent_yield_latency_ms", "eot_misprediction_count", "overlap_ratio", "overlap_speech_ms", "total_speech_ms", "silence_total_ms", "awkward_silence_count", "unanswered_persona_turns", "false_interruption_count", "false_interruption_unrecovered_count", "agent_reported_e2e_latency_ms") + TURN_TAKING_SCORE_FIELD_NUMBER: _ClassVar[int] + RESPONSE_LATENCY_P50_MS_FIELD_NUMBER: _ClassVar[int] + RESPONSE_LATENCY_P95_MS_FIELD_NUMBER: _ClassVar[int] + RESPONSE_LATENCY_P99_MS_FIELD_NUMBER: _ClassVar[int] + AGENT_YIELD_LATENCY_MS_FIELD_NUMBER: _ClassVar[int] + EOT_MISPREDICTION_COUNT_FIELD_NUMBER: _ClassVar[int] + OVERLAP_RATIO_FIELD_NUMBER: _ClassVar[int] + OVERLAP_SPEECH_MS_FIELD_NUMBER: _ClassVar[int] + TOTAL_SPEECH_MS_FIELD_NUMBER: _ClassVar[int] + SILENCE_TOTAL_MS_FIELD_NUMBER: _ClassVar[int] + AWKWARD_SILENCE_COUNT_FIELD_NUMBER: _ClassVar[int] + UNANSWERED_PERSONA_TURNS_FIELD_NUMBER: _ClassVar[int] + FALSE_INTERRUPTION_COUNT_FIELD_NUMBER: _ClassVar[int] + FALSE_INTERRUPTION_UNRECOVERED_COUNT_FIELD_NUMBER: _ClassVar[int] + AGENT_REPORTED_E2E_LATENCY_MS_FIELD_NUMBER: _ClassVar[int] + turn_taking_score: float + response_latency_p50_ms: int + response_latency_p95_ms: int + response_latency_p99_ms: int + agent_yield_latency_ms: int + eot_misprediction_count: int + overlap_ratio: float + overlap_speech_ms: int + total_speech_ms: int + silence_total_ms: int + awkward_silence_count: int + unanswered_persona_turns: int + false_interruption_count: int + false_interruption_unrecovered_count: int + agent_reported_e2e_latency_ms: int + def __init__(self, turn_taking_score: _Optional[float] = ..., response_latency_p50_ms: _Optional[int] = ..., response_latency_p95_ms: _Optional[int] = ..., response_latency_p99_ms: _Optional[int] = ..., agent_yield_latency_ms: _Optional[int] = ..., eot_misprediction_count: _Optional[int] = ..., overlap_ratio: _Optional[float] = ..., overlap_speech_ms: _Optional[int] = ..., total_speech_ms: _Optional[int] = ..., silence_total_ms: _Optional[int] = ..., awkward_silence_count: _Optional[int] = ..., unanswered_persona_turns: _Optional[int] = ..., false_interruption_count: _Optional[int] = ..., false_interruption_unrecovered_count: _Optional[int] = ..., agent_reported_e2e_latency_ms: _Optional[int] = ...) -> None: ... + class Simulator(_message.Message): + __slots__ = ("early_termination", "late_termination") + EARLY_TERMINATION_FIELD_NUMBER: _ClassVar[int] + LATE_TERMINATION_FIELD_NUMBER: _ClassVar[int] + early_termination: bool + late_termination: bool + def __init__(self, early_termination: bool = ..., late_termination: bool = ...) -> None: ... + class Turn(_message.Message): + __slots__ = ("index", "role", "start_ms", "end_ms", "response_latency_ms", "transcription_delay_ms", "llm_ttft_ms", "llm_ttfs_ms", "tts_ttfa_ms", "tts_ttfb_ms", "agent_reported_e2e_latency_ms", "conciseness_score", "naturalness_score", "enunciation_score", "flags") + INDEX_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + START_MS_FIELD_NUMBER: _ClassVar[int] + END_MS_FIELD_NUMBER: _ClassVar[int] + RESPONSE_LATENCY_MS_FIELD_NUMBER: _ClassVar[int] + TRANSCRIPTION_DELAY_MS_FIELD_NUMBER: _ClassVar[int] + LLM_TTFT_MS_FIELD_NUMBER: _ClassVar[int] + LLM_TTFS_MS_FIELD_NUMBER: _ClassVar[int] + TTS_TTFA_MS_FIELD_NUMBER: _ClassVar[int] + TTS_TTFB_MS_FIELD_NUMBER: _ClassVar[int] + AGENT_REPORTED_E2E_LATENCY_MS_FIELD_NUMBER: _ClassVar[int] + CONCISENESS_SCORE_FIELD_NUMBER: _ClassVar[int] + NATURALNESS_SCORE_FIELD_NUMBER: _ClassVar[int] + ENUNCIATION_SCORE_FIELD_NUMBER: _ClassVar[int] + FLAGS_FIELD_NUMBER: _ClassVar[int] + index: int + role: _agent_session.ChatRole + start_ms: int + end_ms: int + response_latency_ms: int + transcription_delay_ms: int + llm_ttft_ms: int + llm_ttfs_ms: int + tts_ttfa_ms: int + tts_ttfb_ms: int + agent_reported_e2e_latency_ms: int + conciseness_score: float + naturalness_score: float + enunciation_score: float + flags: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, index: _Optional[int] = ..., role: _Optional[_Union[_agent_session.ChatRole, str]] = ..., start_ms: _Optional[int] = ..., end_ms: _Optional[int] = ..., response_latency_ms: _Optional[int] = ..., transcription_delay_ms: _Optional[int] = ..., llm_ttft_ms: _Optional[int] = ..., llm_ttfs_ms: _Optional[int] = ..., tts_ttfa_ms: _Optional[int] = ..., tts_ttfb_ms: _Optional[int] = ..., agent_reported_e2e_latency_ms: _Optional[int] = ..., conciseness_score: _Optional[float] = ..., naturalness_score: _Optional[float] = ..., enunciation_score: _Optional[float] = ..., flags: _Optional[_Iterable[str]] = ...) -> None: ... + ACCURACY_SCORE_FIELD_NUMBER: _ClassVar[int] + EXPERIENCE_SCORE_FIELD_NUMBER: _ClassVar[int] + TASK_COMPLETION_FIELD_NUMBER: _ClassVar[int] + STT_FIELD_NUMBER: _ClassVar[int] + LLM_FIELD_NUMBER: _ClassVar[int] + TTS_FIELD_NUMBER: _ClassVar[int] + CONVERSATION_FIELD_NUMBER: _ClassVar[int] + SIMULATOR_FIELD_NUMBER: _ClassVar[int] + TURNS_FIELD_NUMBER: _ClassVar[int] + JUDGE_MODEL_FIELD_NUMBER: _ClassVar[int] + AUDIO_JUDGE_MODEL_FIELD_NUMBER: _ClassVar[int] + HAS_REMOTE_SESSION_FIELD_NUMBER: _ClassVar[int] + T0_FIELD_NUMBER: _ClassVar[int] + accuracy_score: float + experience_score: float + task_completion: float + stt: SimulationRun.JobMetrics.STT + llm: SimulationRun.JobMetrics.LLM + tts: SimulationRun.JobMetrics.TTS + conversation: SimulationRun.JobMetrics.Conversation + simulator: SimulationRun.JobMetrics.Simulator + turns: _containers.RepeatedCompositeFieldContainer[SimulationRun.JobMetrics.Turn] + judge_model: str + audio_judge_model: str + has_remote_session: bool + t0: _timestamp_pb2.Timestamp + def __init__(self, accuracy_score: _Optional[float] = ..., experience_score: _Optional[float] = ..., task_completion: _Optional[float] = ..., stt: _Optional[_Union[SimulationRun.JobMetrics.STT, _Mapping]] = ..., llm: _Optional[_Union[SimulationRun.JobMetrics.LLM, _Mapping]] = ..., tts: _Optional[_Union[SimulationRun.JobMetrics.TTS, _Mapping]] = ..., conversation: _Optional[_Union[SimulationRun.JobMetrics.Conversation, _Mapping]] = ..., simulator: _Optional[_Union[SimulationRun.JobMetrics.Simulator, _Mapping]] = ..., turns: _Optional[_Iterable[_Union[SimulationRun.JobMetrics.Turn, _Mapping]]] = ..., judge_model: _Optional[str] = ..., audio_judge_model: _Optional[str] = ..., has_remote_session: bool = ..., t0: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + class RunMetrics(_message.Message): + __slots__ = ("accuracy_score", "experience_score", "scenario_pass_rate", "stt", "llm", "tts", "conversation", "jobs_total", "jobs_failed", "jobs_simulator_fault") + ACCURACY_SCORE_FIELD_NUMBER: _ClassVar[int] + EXPERIENCE_SCORE_FIELD_NUMBER: _ClassVar[int] + SCENARIO_PASS_RATE_FIELD_NUMBER: _ClassVar[int] + STT_FIELD_NUMBER: _ClassVar[int] + LLM_FIELD_NUMBER: _ClassVar[int] + TTS_FIELD_NUMBER: _ClassVar[int] + CONVERSATION_FIELD_NUMBER: _ClassVar[int] + JOBS_TOTAL_FIELD_NUMBER: _ClassVar[int] + JOBS_FAILED_FIELD_NUMBER: _ClassVar[int] + JOBS_SIMULATOR_FAULT_FIELD_NUMBER: _ClassVar[int] + accuracy_score: float + experience_score: float + scenario_pass_rate: float + stt: SimulationRun.JobMetrics.STT + llm: SimulationRun.JobMetrics.LLM + tts: SimulationRun.JobMetrics.TTS + conversation: SimulationRun.JobMetrics.Conversation + jobs_total: int + jobs_failed: int + jobs_simulator_fault: int + def __init__(self, accuracy_score: _Optional[float] = ..., experience_score: _Optional[float] = ..., scenario_pass_rate: _Optional[float] = ..., stt: _Optional[_Union[SimulationRun.JobMetrics.STT, _Mapping]] = ..., llm: _Optional[_Union[SimulationRun.JobMetrics.LLM, _Mapping]] = ..., tts: _Optional[_Union[SimulationRun.JobMetrics.TTS, _Mapping]] = ..., conversation: _Optional[_Union[SimulationRun.JobMetrics.Conversation, _Mapping]] = ..., jobs_total: _Optional[int] = ..., jobs_failed: _Optional[int] = ..., jobs_simulator_fault: _Optional[int] = ...) -> None: ... class Create(_message.Message): __slots__ = () class Request(_message.Message): @@ -218,7 +390,6 @@ class SimulationRun(_message.Message): ERROR_FIELD_NUMBER: _ClassVar[int] CREATED_AT_FIELD_NUMBER: _ClassVar[int] JOBS_FIELD_NUMBER: _ClassVar[int] - SUMMARY_FIELD_NUMBER: _ClassVar[int] AGENT_NAME_FIELD_NUMBER: _ClassVar[int] SCENARIO_GROUP_FIELD_NUMBER: _ClassVar[int] ENDED_AT_FIELD_NUMBER: _ClassVar[int] @@ -229,6 +400,8 @@ class SimulationRun(_message.Message): USAGE_FIELD_NUMBER: _ClassVar[int] CONCURRENCY_FIELD_NUMBER: _ClassVar[int] MODE_FIELD_NUMBER: _ClassVar[int] + METRICS_FIELD_NUMBER: _ClassVar[int] + SUMMARY_ZSTD_FIELD_NUMBER: _ClassVar[int] id: str project_id: str status: SimulationRun.Status @@ -236,7 +409,6 @@ class SimulationRun(_message.Message): error: str created_at: _timestamp_pb2.Timestamp jobs: _containers.RepeatedCompositeFieldContainer[SimulationRun.Job] - summary: SimulationRunSummary agent_name: str scenario_group: ScenarioGroup ended_at: _timestamp_pb2.Timestamp @@ -247,7 +419,9 @@ class SimulationRun(_message.Message): usage: SimulationRun.Usage concurrency: int mode: SimulationMode - 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] = ..., mode: _Optional[_Union[SimulationMode, str]] = ...) -> None: ... + metrics: SimulationRun.RunMetrics + summary_zstd: bytes + 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] = ...) -> None: ... class Scenario(_message.Message): __slots__ = ("label", "instructions", "agent_expectations", "tags", "userdata") diff --git a/livekit-protocol/livekit/protocol/connector_whatsapp.py b/livekit-protocol/livekit/protocol/connector_whatsapp.py index e4ddb44b..d7d3916c 100644 --- a/livekit-protocol/livekit/protocol/connector_whatsapp.py +++ b/livekit-protocol/livekit/protocol/connector_whatsapp.py @@ -28,7 +28,7 @@ from .logger_pb import options as logger_dot_options__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n livekit_connector_whatsapp.proto\x12\x07livekit\x1a\x1egoogle/protobuf/duration.proto\x1a\x1clivekit_agent_dispatch.proto\x1a\x11livekit_rtc.proto\x1a\x14logger/options.proto\"\xde\x05\n\x17\x44ialWhatsAppCallRequest\x12:\n\x18whatsapp_phone_number_id\x18\x01 \x01(\tB\x18\xbaP\x15whatsappPhoneNumberID\x12%\n\x18whatsapp_to_phone_number\x18\x02 \x01(\tB\x03\xc0P\x01\x12\x1d\n\x10whatsapp_api_key\x18\x03 \x01(\tB\x03\xc0P\x02\x12\"\n\x1awhatsapp_cloud_api_version\x18\x0c \x01(\t\x12)\n!whatsapp_biz_opaque_callback_data\x18\x04 \x01(\t\x12\x11\n\troom_name\x18\x05 \x01(\t\x12*\n\x06\x61gents\x18\x06 \x03(\x0b\x32\x1a.livekit.RoomAgentDispatch\x12\x1c\n\x14participant_identity\x18\x07 \x01(\t\x12>\n\x10participant_name\x18\x08 \x01(\tB$\xb2P\x1e\xc0P\x01\x12\x42\n\x14participant_metadata\x18\t \x01(\tB$\xb2P\x1e\xc0P\x01\x12\x81\x01\n\x16participant_attributes\x18\n \x03(\x0b\x32;.livekit.DialWhatsAppCallRequest.ParticipantAttributesEntryB$\xb2P\x1e\xc0P\x01\x12\x1b\n\x13\x64\x65stination_country\x18\x0b \x01(\t\x12\x32\n\x0fringing_timeout\x18\r \x01(\x0b\x32\x19.google.protobuf.Duration\x1a<\n\x1aParticipantAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"Z\n\x18\x44ialWhatsAppCallResponse\x12+\n\x10whatsapp_call_id\x18\x01 \x01(\tB\x11\xbaP\x0ewhatsappCallID\x12\x11\n\troom_name\x18\x02 \x01(\t\"\xff\x01\n\x1d\x44isconnectWhatsAppCallRequest\x12+\n\x10whatsapp_call_id\x18\x01 \x01(\tB\x11\xbaP\x0ewhatsappCallID\x12\x1d\n\x10whatsapp_api_key\x18\x02 \x01(\tB\x03\xc0P\x02\x12R\n\x11\x64isconnect_reason\x18\x03 \x01(\x0e\x32\x37.livekit.DisconnectWhatsAppCallRequest.DisconnectReason\">\n\x10\x44isconnectReason\x12\x16\n\x12\x42USINESS_INITIATED\x10\x00\x12\x12\n\x0eUSER_INITIATED\x10\x01\" \n\x1e\x44isconnectWhatsAppCallResponse\"s\n\x1a\x43onnectWhatsAppCallRequest\x12+\n\x10whatsapp_call_id\x18\x01 \x01(\tB\x11\xbaP\x0ewhatsappCallID\x12(\n\x03sdp\x18\x02 \x01(\x0b\x32\x1b.livekit.SessionDescription\"\x1d\n\x1b\x43onnectWhatsAppCallResponse\"\xaf\x06\n\x19\x41\x63\x63\x65ptWhatsAppCallRequest\x12:\n\x18whatsapp_phone_number_id\x18\x01 \x01(\tB\x18\xbaP\x15whatsappPhoneNumberID\x12\x1d\n\x10whatsapp_api_key\x18\x02 \x01(\tB\x03\xc0P\x02\x12\"\n\x1awhatsapp_cloud_api_version\x18\r \x01(\t\x12+\n\x10whatsapp_call_id\x18\x03 \x01(\tB\x11\xbaP\x0ewhatsappCallID\x12)\n!whatsapp_biz_opaque_callback_data\x18\x04 \x01(\t\x12(\n\x03sdp\x18\x05 \x01(\x0b\x32\x1b.livekit.SessionDescription\x12\x11\n\troom_name\x18\x06 \x01(\t\x12*\n\x06\x61gents\x18\x07 \x03(\x0b\x32\x1a.livekit.RoomAgentDispatch\x12\x1c\n\x14participant_identity\x18\x08 \x01(\t\x12>\n\x10participant_name\x18\t \x01(\tB$\xb2P\x1e\xc0P\x01\x12\x42\n\x14participant_metadata\x18\n \x01(\tB$\xb2P\x1e\xc0P\x01\x12\x83\x01\n\x16participant_attributes\x18\x0b \x03(\x0b\x32=.livekit.AcceptWhatsAppCallRequest.ParticipantAttributesEntryB$\xb2P\x1e\xc0P\x01\x12\x1b\n\x13\x64\x65stination_country\x18\x0c \x01(\t\x12\x32\n\x0fringing_timeout\x18\x0e \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1b\n\x13wait_until_answered\x18\x0f \x01(\x08\x1a<\n\x1aParticipantAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"/\n\x1a\x41\x63\x63\x65ptWhatsAppCallResponse\x12\x11\n\troom_name\x18\x01 \x01(\t\"n\n\x0cWhatsAppCall\x12+\n\x10whatsapp_call_id\x18\x01 \x01(\tB\x11\xbaP\x0ewhatsappCallID\x12\x31\n\tdirection\x18\x02 \x01(\x0e\x32\x1e.livekit.WhatsAppCallDirection*b\n\x15WhatsAppCallDirection\x12#\n\x1fWHATSAPP_CALL_DIRECTION_INBOUND\x10\x00\x12$\n WHATSAPP_CALL_DIRECTION_OUTBOUND\x10\x02\x42\x46Z#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n livekit_connector_whatsapp.proto\x12\x07livekit\x1a\x1egoogle/protobuf/duration.proto\x1a\x1clivekit_agent_dispatch.proto\x1a\x11livekit_rtc.proto\x1a\x14logger/options.proto\"\xde\x05\n\x17\x44ialWhatsAppCallRequest\x12:\n\x18whatsapp_phone_number_id\x18\x01 \x01(\tB\x18\xbaP\x15whatsappPhoneNumberID\x12%\n\x18whatsapp_to_phone_number\x18\x02 \x01(\tB\x03\xc0P\x01\x12\x1d\n\x10whatsapp_api_key\x18\x03 \x01(\tB\x03\xc0P\x02\x12\"\n\x1awhatsapp_cloud_api_version\x18\x0c \x01(\t\x12)\n!whatsapp_biz_opaque_callback_data\x18\x04 \x01(\t\x12\x11\n\troom_name\x18\x05 \x01(\t\x12*\n\x06\x61gents\x18\x06 \x03(\x0b\x32\x1a.livekit.RoomAgentDispatch\x12\x1c\n\x14participant_identity\x18\x07 \x01(\t\x12>\n\x10participant_name\x18\x08 \x01(\tB$\xb2P\x1e\xc0P\x01\x12\x42\n\x14participant_metadata\x18\t \x01(\tB$\xb2P\x1e\xc0P\x01\x12\x81\x01\n\x16participant_attributes\x18\n \x03(\x0b\x32;.livekit.DialWhatsAppCallRequest.ParticipantAttributesEntryB$\xb2P\x1e\xc0P\x01\x12\x1b\n\x13\x64\x65stination_country\x18\x0b \x01(\t\x12\x32\n\x0fringing_timeout\x18\r \x01(\x0b\x32\x19.google.protobuf.Duration\x1a<\n\x1aParticipantAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"Z\n\x18\x44ialWhatsAppCallResponse\x12+\n\x10whatsapp_call_id\x18\x01 \x01(\tB\x11\xbaP\x0ewhatsappCallID\x12\x11\n\troom_name\x18\x02 \x01(\t\"\xff\x01\n\x1d\x44isconnectWhatsAppCallRequest\x12+\n\x10whatsapp_call_id\x18\x01 \x01(\tB\x11\xbaP\x0ewhatsappCallID\x12\x1d\n\x10whatsapp_api_key\x18\x02 \x01(\tB\x03\xc0P\x02\x12R\n\x11\x64isconnect_reason\x18\x03 \x01(\x0e\x32\x37.livekit.DisconnectWhatsAppCallRequest.DisconnectReason\">\n\x10\x44isconnectReason\x12\x16\n\x12\x42USINESS_INITIATED\x10\x00\x12\x12\n\x0eUSER_INITIATED\x10\x01\" \n\x1e\x44isconnectWhatsAppCallResponse\"\x90\x01\n\x1a\x43onnectWhatsAppCallRequest\x12+\n\x10whatsapp_call_id\x18\x01 \x01(\tB\x11\xbaP\x0ewhatsappCallID\x12(\n\x03sdp\x18\x02 \x01(\x0b\x32\x1b.livekit.SessionDescription\x12\x1b\n\x13wait_until_answered\x18\x03 \x01(\x08\"\x1d\n\x1b\x43onnectWhatsAppCallResponse\"\xaf\x06\n\x19\x41\x63\x63\x65ptWhatsAppCallRequest\x12:\n\x18whatsapp_phone_number_id\x18\x01 \x01(\tB\x18\xbaP\x15whatsappPhoneNumberID\x12\x1d\n\x10whatsapp_api_key\x18\x02 \x01(\tB\x03\xc0P\x02\x12\"\n\x1awhatsapp_cloud_api_version\x18\r \x01(\t\x12+\n\x10whatsapp_call_id\x18\x03 \x01(\tB\x11\xbaP\x0ewhatsappCallID\x12)\n!whatsapp_biz_opaque_callback_data\x18\x04 \x01(\t\x12(\n\x03sdp\x18\x05 \x01(\x0b\x32\x1b.livekit.SessionDescription\x12\x11\n\troom_name\x18\x06 \x01(\t\x12*\n\x06\x61gents\x18\x07 \x03(\x0b\x32\x1a.livekit.RoomAgentDispatch\x12\x1c\n\x14participant_identity\x18\x08 \x01(\t\x12>\n\x10participant_name\x18\t \x01(\tB$\xb2P\x1e\xc0P\x01\x12\x42\n\x14participant_metadata\x18\n \x01(\tB$\xb2P\x1e\xc0P\x01\x12\x83\x01\n\x16participant_attributes\x18\x0b \x03(\x0b\x32=.livekit.AcceptWhatsAppCallRequest.ParticipantAttributesEntryB$\xb2P\x1e\xc0P\x01\x12\x1b\n\x13\x64\x65stination_country\x18\x0c \x01(\t\x12\x32\n\x0fringing_timeout\x18\x0e \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x1b\n\x13wait_until_answered\x18\x0f \x01(\x08\x1a<\n\x1aParticipantAttributesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"/\n\x1a\x41\x63\x63\x65ptWhatsAppCallResponse\x12\x11\n\troom_name\x18\x01 \x01(\t\"n\n\x0cWhatsAppCall\x12+\n\x10whatsapp_call_id\x18\x01 \x01(\tB\x11\xbaP\x0ewhatsappCallID\x12\x31\n\tdirection\x18\x02 \x01(\x0e\x32\x1e.livekit.WhatsAppCallDirection*b\n\x15WhatsAppCallDirection\x12#\n\x1fWHATSAPP_CALL_DIRECTION_INBOUND\x10\x00\x12$\n WHATSAPP_CALL_DIRECTION_OUTBOUND\x10\x02\x42\x46Z#github.com/livekit/protocol/livekit\xaa\x02\rLiveKit.Proto\xea\x02\x0eLiveKit::Protob\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -74,8 +74,8 @@ _globals['_ACCEPTWHATSAPPCALLREQUEST'].fields_by_name['participant_attributes']._serialized_options = b'\262P\036\300P\001' _globals['_WHATSAPPCALL'].fields_by_name['whatsapp_call_id']._loaded_options = None _globals['_WHATSAPPCALL'].fields_by_name['whatsapp_call_id']._serialized_options = b'\272P\016whatsappCallID' - _globals['_WHATSAPPCALLDIRECTION']._serialized_start=2396 - _globals['_WHATSAPPCALLDIRECTION']._serialized_end=2494 + _globals['_WHATSAPPCALLDIRECTION']._serialized_start=2426 + _globals['_WHATSAPPCALLDIRECTION']._serialized_end=2524 _globals['_DIALWHATSAPPCALLREQUEST']._serialized_start=149 _globals['_DIALWHATSAPPCALLREQUEST']._serialized_end=883 _globals['_DIALWHATSAPPCALLREQUEST_PARTICIPANTATTRIBUTESENTRY']._serialized_start=823 @@ -88,16 +88,16 @@ _globals['_DISCONNECTWHATSAPPCALLREQUEST_DISCONNECTREASON']._serialized_end=1233 _globals['_DISCONNECTWHATSAPPCALLRESPONSE']._serialized_start=1235 _globals['_DISCONNECTWHATSAPPCALLRESPONSE']._serialized_end=1267 - _globals['_CONNECTWHATSAPPCALLREQUEST']._serialized_start=1269 - _globals['_CONNECTWHATSAPPCALLREQUEST']._serialized_end=1384 - _globals['_CONNECTWHATSAPPCALLRESPONSE']._serialized_start=1386 - _globals['_CONNECTWHATSAPPCALLRESPONSE']._serialized_end=1415 - _globals['_ACCEPTWHATSAPPCALLREQUEST']._serialized_start=1418 - _globals['_ACCEPTWHATSAPPCALLREQUEST']._serialized_end=2233 + _globals['_CONNECTWHATSAPPCALLREQUEST']._serialized_start=1270 + _globals['_CONNECTWHATSAPPCALLREQUEST']._serialized_end=1414 + _globals['_CONNECTWHATSAPPCALLRESPONSE']._serialized_start=1416 + _globals['_CONNECTWHATSAPPCALLRESPONSE']._serialized_end=1445 + _globals['_ACCEPTWHATSAPPCALLREQUEST']._serialized_start=1448 + _globals['_ACCEPTWHATSAPPCALLREQUEST']._serialized_end=2263 _globals['_ACCEPTWHATSAPPCALLREQUEST_PARTICIPANTATTRIBUTESENTRY']._serialized_start=823 _globals['_ACCEPTWHATSAPPCALLREQUEST_PARTICIPANTATTRIBUTESENTRY']._serialized_end=883 - _globals['_ACCEPTWHATSAPPCALLRESPONSE']._serialized_start=2235 - _globals['_ACCEPTWHATSAPPCALLRESPONSE']._serialized_end=2282 - _globals['_WHATSAPPCALL']._serialized_start=2284 - _globals['_WHATSAPPCALL']._serialized_end=2394 + _globals['_ACCEPTWHATSAPPCALLRESPONSE']._serialized_start=2265 + _globals['_ACCEPTWHATSAPPCALLRESPONSE']._serialized_end=2312 + _globals['_WHATSAPPCALL']._serialized_start=2314 + _globals['_WHATSAPPCALL']._serialized_end=2424 # @@protoc_insertion_point(module_scope) diff --git a/livekit-protocol/livekit/protocol/connector_whatsapp.pyi b/livekit-protocol/livekit/protocol/connector_whatsapp.pyi index 15379886..2579fcf6 100644 --- a/livekit-protocol/livekit/protocol/connector_whatsapp.pyi +++ b/livekit-protocol/livekit/protocol/connector_whatsapp.pyi @@ -83,12 +83,14 @@ class DisconnectWhatsAppCallResponse(_message.Message): def __init__(self) -> None: ... class ConnectWhatsAppCallRequest(_message.Message): - __slots__ = ("whatsapp_call_id", "sdp") + __slots__ = ("whatsapp_call_id", "sdp", "wait_until_answered") WHATSAPP_CALL_ID_FIELD_NUMBER: _ClassVar[int] SDP_FIELD_NUMBER: _ClassVar[int] + WAIT_UNTIL_ANSWERED_FIELD_NUMBER: _ClassVar[int] whatsapp_call_id: str sdp: _rtc.SessionDescription - def __init__(self, whatsapp_call_id: _Optional[str] = ..., sdp: _Optional[_Union[_rtc.SessionDescription, _Mapping]] = ...) -> None: ... + wait_until_answered: bool + def __init__(self, whatsapp_call_id: _Optional[str] = ..., sdp: _Optional[_Union[_rtc.SessionDescription, _Mapping]] = ..., wait_until_answered: bool = ...) -> None: ... class ConnectWhatsAppCallResponse(_message.Message): __slots__ = ()