@livekit/protocol 1.50.4 → 1.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -17,7 +17,7 @@
17
17
  /* eslint-disable */
18
18
  // @ts-nocheck
19
19
 
20
- import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage, Timestamp } from "@bufbuild/protobuf";
20
+ import type { BinaryReadOptions, Duration, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage, Timestamp } from "@bufbuild/protobuf";
21
21
  import { Message, proto3 } from "@bufbuild/protobuf";
22
22
  import type { ChatContext, ChatRole } from "./agent/livekit_agent_session_pb.js";
23
23
  import type { PresignedPostRequest } from "./livekit_cloud_agent_pb.js";
@@ -228,7 +228,7 @@ export declare class SimulationRun extends Message<SimulationRun> {
228
228
  mode: SimulationMode;
229
229
 
230
230
  /**
231
- * Run-level metric aggregates.
231
+ * Run-level aggregates over this run's jobs.
232
232
  *
233
233
  * @generated from field: livekit.SimulationRun.RunMetrics metrics = 19;
234
234
  */
@@ -242,6 +242,22 @@ export declare class SimulationRun extends Message<SimulationRun> {
242
242
  */
243
243
  summaryZstd: Uint8Array;
244
244
 
245
+ /**
246
+ * How many issues the stored summary flagged. Present only once a summary
247
+ * landed — absent and 0 differ ("never summarized" vs "no issues") — and
248
+ * List responses carry it without the summary blob itself.
249
+ *
250
+ * @generated from field: optional int32 issue_count = 21;
251
+ */
252
+ issueCount?: number;
253
+
254
+ /**
255
+ * The pipeline this run came from; unset when it did not come from one.
256
+ *
257
+ * @generated from field: optional livekit.SimulationRun.CI ci = 22;
258
+ */
259
+ ci?: SimulationRun_CI;
260
+
245
261
  constructor(data?: PartialMessage<SimulationRun>);
246
262
 
247
263
  static readonly runtime: typeof proto3;
@@ -447,32 +463,18 @@ export declare class SimulationRun_Job_Usage extends Message<SimulationRun_Job_U
447
463
  */
448
464
  export declare class SimulationRun_JobMetrics extends Message<SimulationRun_JobMetrics> {
449
465
  /**
450
- * Headline scores, 0-1, computed by the worker as weighted means over the
451
- * members that ran (a missing member renormalizes the rest):
452
- * accuracy = task_completion x3 + stt.keyterm_recall + (1 - stt.wer) + tts.enunciation_score
453
- * experience = conversation.turn_taking_score x2 + tts.naturalness_score + llm.conciseness_score
454
- *
455
- * absent when the simulator spoiled the call
456
- *
457
- * @generated from field: optional float accuracy_score = 1;
458
- */
459
- accuracyScore?: number;
460
-
461
- /**
462
- * absent when the simulator spoiled the call
466
+ * the scenario verdict as 1/0
463
467
  *
464
- * @generated from field: optional float experience_score = 2;
468
+ * @generated from field: optional float task_completion = 3;
465
469
  */
466
- experienceScore?: number;
470
+ taskCompletion?: number;
467
471
 
468
472
  /**
469
- * The accuracy anchor: the scenario verdict as 1/0, or the fraction of the declared target state the call reached.
473
+ * weighted mean of the judged and heard scores
470
474
  *
471
- * absent when the simulator spoiled the call
472
- *
473
- * @generated from field: optional float task_completion = 3;
475
+ * @generated from field: optional float overall_score = 20;
474
476
  */
475
- taskCompletion?: number;
477
+ overallScore?: number;
476
478
 
477
479
  /**
478
480
  * @generated from field: livekit.SimulationRun.JobMetrics.STT stt = 4;
@@ -495,12 +497,7 @@ export declare class SimulationRun_JobMetrics extends Message<SimulationRun_JobM
495
497
  conversation?: SimulationRun_JobMetrics_Conversation;
496
498
 
497
499
  /**
498
- * @generated from field: livekit.SimulationRun.JobMetrics.Simulator simulator = 8;
499
- */
500
- simulator?: SimulationRun_JobMetrics_Simulator;
501
-
502
- /**
503
- * Conversation timeline: one entry per transcript turn, both speakers.
500
+ * One entry per turn, both speakers.
504
501
  *
505
502
  * @generated from field: repeated livekit.SimulationRun.JobMetrics.Turn turns = 9;
506
503
  */
@@ -513,13 +510,6 @@ export declare class SimulationRun_JobMetrics extends Message<SimulationRun_JobM
513
510
  */
514
511
  judgeModel: string;
515
512
 
516
- /**
517
- * audio (LALM) judge; "" if none ran
518
- *
519
- * @generated from field: string audio_judge_model = 11;
520
- */
521
- audioJudgeModel: string;
522
-
523
513
  /**
524
514
  * false = waveform-only capture (e.g. SIP)
525
515
  *
@@ -534,6 +524,44 @@ export declare class SimulationRun_JobMetrics extends Message<SimulationRun_JobM
534
524
  */
535
525
  t0?: Timestamp;
536
526
 
527
+ /**
528
+ * Judged over the authored dialog (text and audio); needs the text judge.
529
+ *
530
+ * judged {0, 0.5, 1} per agent turn; job = mean
531
+ *
532
+ * @generated from field: optional float conciseness = 14;
533
+ */
534
+ conciseness?: number;
535
+
536
+ /**
537
+ * Whole-call issue flags; true = present, absent = not judged.
538
+ *
539
+ * @generated from field: optional bool unnecessary_tool_calls = 15;
540
+ */
541
+ unnecessaryToolCalls?: boolean;
542
+
543
+ /**
544
+ * @generated from field: optional bool information_loss = 16;
545
+ */
546
+ informationLoss?: boolean;
547
+
548
+ /**
549
+ * @generated from field: optional bool redundant_statements = 17;
550
+ */
551
+ redundantStatements?: boolean;
552
+
553
+ /**
554
+ * @generated from field: optional bool poor_question_quality = 18;
555
+ */
556
+ poorQuestionQuality?: boolean;
557
+
558
+ /**
559
+ * 0-1, derived from the flags above
560
+ *
561
+ * @generated from field: optional float conversation_progression = 19;
562
+ */
563
+ conversationProgression?: number;
564
+
537
565
  constructor(data?: PartialMessage<SimulationRun_JobMetrics>);
538
566
 
539
567
  static readonly runtime: typeof proto3;
@@ -556,14 +584,14 @@ export declare class SimulationRun_JobMetrics extends Message<SimulationRun_JobM
556
584
  */
557
585
  export declare class SimulationRun_JobMetrics_STT extends Message<SimulationRun_JobMetrics_STT> {
558
586
  /**
559
- * needs the RemoteSession; word error rate, pooled: word_errors / words
587
+ * needs the RemoteSession; word_errors / words
560
588
  *
561
589
  * @generated from field: optional float wer = 1;
562
590
  */
563
591
  wer?: number;
564
592
 
565
593
  /**
566
- * needs the RemoteSession; pooling stats: run WER = sum errors / sum words
594
+ * needs the RemoteSession
567
595
  *
568
596
  * @generated from field: optional uint32 words = 2;
569
597
  */
@@ -577,7 +605,7 @@ export declare class SimulationRun_JobMetrics_STT extends Message<SimulationRun_
577
605
  wordErrors?: number;
578
606
 
579
607
  /**
580
- * needs the RemoteSession; character error rate, pooled
608
+ * needs the RemoteSession; char_errors / chars
581
609
  *
582
610
  * @generated from field: optional float cer = 4;
583
611
  */
@@ -598,32 +626,51 @@ export declare class SimulationRun_JobMetrics_STT extends Message<SimulationRun_
598
626
  charErrors?: number;
599
627
 
600
628
  /**
601
- * needs the RemoteSession; recall of uttered key entities (names, IDs, amounts)
629
+ * needs the RemoteSession; agent-reported STT/endpointing delay
602
630
  *
603
- * @generated from field: optional float keyterm_recall = 5;
631
+ * @generated from field: optional uint32 stt_delay_ms = 8;
604
632
  */
605
- keytermRecall?: number;
633
+ sttDelayMs?: number;
606
634
 
607
635
  /**
608
- * needs the RemoteSession
636
+ * Key entities (names, IDs, amounts) the caller said. Needs the text judge.
637
+ *
638
+ * recognized / uttered
609
639
  *
610
- * @generated from field: optional uint32 keyterms_uttered = 6;
640
+ * @generated from field: optional float entity_recognition = 11;
611
641
  */
612
- keytermsUttered?: number;
642
+ entityRecognition?: number;
613
643
 
614
644
  /**
615
- * needs the RemoteSession
616
- *
617
- * @generated from field: optional uint32 keyterms_recognized = 7;
645
+ * @generated from field: optional uint32 entities_uttered = 12;
646
+ */
647
+ entitiesUttered?: number;
648
+
649
+ /**
650
+ * @generated from field: optional uint32 entities_recognized = 13;
618
651
  */
619
- keytermsRecognized?: number;
652
+ entitiesRecognized?: number;
620
653
 
621
654
  /**
622
- * needs the RemoteSession; agent-reported STT/endpointing delay, mean
655
+ * Retention: an entity is acquired at the first saying heard right, and
656
+ * these count only the sayings after that, so recall separates keeping an
657
+ * entity from ever getting it.
623
658
  *
624
- * @generated from field: optional uint32 transcription_latency_ms = 8;
659
+ * acquired_recognized / acquired_uttered
660
+ *
661
+ * @generated from field: optional float entity_recall = 14;
662
+ */
663
+ entityRecall?: number;
664
+
665
+ /**
666
+ * @generated from field: optional uint32 entities_acquired_uttered = 15;
667
+ */
668
+ entitiesAcquiredUttered?: number;
669
+
670
+ /**
671
+ * @generated from field: optional uint32 entities_acquired_recognized = 16;
625
672
  */
626
- transcriptionLatencyMs?: number;
673
+ entitiesAcquiredRecognized?: number;
627
674
 
628
675
  constructor(data?: PartialMessage<SimulationRun_JobMetrics_STT>);
629
676
 
@@ -645,33 +692,26 @@ export declare class SimulationRun_JobMetrics_STT extends Message<SimulationRun_
645
692
  */
646
693
  export declare class SimulationRun_JobMetrics_LLM extends Message<SimulationRun_JobMetrics_LLM> {
647
694
  /**
648
- * needs the RemoteSession; time to first token, mean (per-turn in turns)
695
+ * needs the RemoteSession; time to first token
649
696
  *
650
697
  * @generated from field: optional uint32 ttft_ms = 1;
651
698
  */
652
699
  ttftMs?: number;
653
700
 
654
701
  /**
655
- * needs the RemoteSession; time to first sentence (the smallest speakable unit)
702
+ * needs the RemoteSession; time to first sentence, the smallest speakable unit
656
703
  *
657
704
  * @generated from field: optional uint32 ttfs_ms = 2;
658
705
  */
659
706
  ttfsMs?: number;
660
707
 
661
708
  /**
662
- * needs the RemoteSession; decode rate, mean (per-turn in turns.llm)
709
+ * needs the RemoteSession
663
710
  *
664
711
  * @generated from field: optional float tokens_per_second = 3;
665
712
  */
666
713
  tokensPerSecond?: number;
667
714
 
668
- /**
669
- * audio only; needs the audio judge; judged 0-1: brief enough for voice
670
- *
671
- * @generated from field: optional float conciseness_score = 4;
672
- */
673
- concisenessScore?: number;
674
-
675
715
  constructor(data?: PartialMessage<SimulationRun_JobMetrics_LLM>);
676
716
 
677
717
  static readonly runtime: typeof proto3;
@@ -688,18 +728,11 @@ export declare class SimulationRun_JobMetrics_LLM extends Message<SimulationRun_
688
728
  }
689
729
 
690
730
  /**
691
- * The agent's voice. audio only.
731
+ * The agent's voice. Audio only.
692
732
  *
693
733
  * @generated from message livekit.SimulationRun.JobMetrics.TTS
694
734
  */
695
735
  export declare class SimulationRun_JobMetrics_TTS extends Message<SimulationRun_JobMetrics_TTS> {
696
- /**
697
- * needs the RemoteSession
698
- *
699
- * @generated from field: optional uint32 ttfa_ms = 1;
700
- */
701
- ttfaMs?: number;
702
-
703
736
  /**
704
737
  * needs the RemoteSession; provider byte-level TTFB
705
738
  *
@@ -708,7 +741,7 @@ export declare class SimulationRun_JobMetrics_TTS extends Message<SimulationRun_
708
741
  ttfbMs?: number;
709
742
 
710
743
  /**
711
- * needs the RemoteSession; word error rate, pooled: word_errors / words
744
+ * needs the RemoteSession; word_errors / words
712
745
  *
713
746
  * @generated from field: optional float wer = 3;
714
747
  */
@@ -729,7 +762,7 @@ export declare class SimulationRun_JobMetrics_TTS extends Message<SimulationRun_
729
762
  wordErrors?: number;
730
763
 
731
764
  /**
732
- * needs the RemoteSession; character error rate, pooled
765
+ * needs the RemoteSession; char_errors / chars
733
766
  *
734
767
  * @generated from field: optional float cer = 9;
735
768
  */
@@ -750,39 +783,40 @@ export declare class SimulationRun_JobMetrics_TTS extends Message<SimulationRun_
750
783
  charErrors?: number;
751
784
 
752
785
  /**
753
- * speaking rate; conversational English ~110-150
786
+ * Key entities the agent said, as the caller heard them. Needs the text judge.
787
+ *
788
+ * recognized / uttered
754
789
  *
755
- * @generated from field: optional float speech_rate_wpm = 4;
790
+ * @generated from field: optional float entity_recognition = 14;
756
791
  */
757
- speechRateWpm?: number;
792
+ entityRecognition?: number;
758
793
 
759
794
  /**
760
- * pooling stats for speech_rate_wpm: raw heard words (not WER tokens)
761
- *
762
- * @generated from field: optional uint32 heard_words = 12;
795
+ * @generated from field: optional uint32 entities_uttered = 15;
763
796
  */
764
- heardWords?: number;
797
+ entitiesUttered?: number;
765
798
 
766
799
  /**
767
- * agent voiced time, sum of raw VAD segments
768
- *
769
- * @generated from field: optional uint32 speech_ms = 13;
800
+ * @generated from field: optional uint32 entities_recognized = 16;
770
801
  */
771
- speechMs?: number;
802
+ entitiesRecognized?: number;
772
803
 
773
804
  /**
774
- * needs the audio judge; judged 0-1: prosody / expressiveness
805
+ * acquired_recognized / acquired_uttered
775
806
  *
776
- * @generated from field: optional float naturalness_score = 5;
807
+ * @generated from field: optional float entity_recall = 17;
777
808
  */
778
- naturalnessScore?: number;
809
+ entityRecall?: number;
779
810
 
780
811
  /**
781
- * needs the audio judge; judged 0-1: key entities audibly intact
782
- *
783
- * @generated from field: optional float enunciation_score = 6;
812
+ * @generated from field: optional uint32 entities_acquired_uttered = 18;
784
813
  */
785
- enunciationScore?: number;
814
+ entitiesAcquiredUttered?: number;
815
+
816
+ /**
817
+ * @generated from field: optional uint32 entities_acquired_recognized = 19;
818
+ */
819
+ entitiesAcquiredRecognized?: number;
786
820
 
787
821
  constructor(data?: PartialMessage<SimulationRun_JobMetrics_TTS>);
788
822
 
@@ -806,7 +840,7 @@ export declare class SimulationRun_JobMetrics_TTS extends Message<SimulationRun_
806
840
  */
807
841
  export declare class SimulationRun_JobMetrics_Conversation extends Message<SimulationRun_JobMetrics_Conversation> {
808
842
  /**
809
- * 0-1: latency curve + cut-in/barge-in/missed-turn penalties
843
+ * 0-1
810
844
  *
811
845
  * @generated from field: optional float turn_taking_score = 1;
812
846
  */
@@ -815,36 +849,29 @@ export declare class SimulationRun_JobMetrics_Conversation extends Message<Simul
815
849
  /**
816
850
  * floor-transfer offset; a gap is > 0, an overlap < 0
817
851
  *
818
- * @generated from field: optional int32 response_latency_p50_ms = 2;
819
- */
820
- responseLatencyP50Ms?: number;
821
-
822
- /**
823
- * @generated from field: optional int32 response_latency_p95_ms = 3;
852
+ * @generated from field: optional int32 heard_e2e_latency_p50_ms = 2;
824
853
  */
825
- responseLatencyP95Ms?: number;
854
+ heardE2eLatencyP50Ms?: number;
826
855
 
827
856
  /**
828
- * @generated from field: optional int32 response_latency_p99_ms = 4;
857
+ * @generated from field: optional int32 heard_e2e_latency_p95_ms = 3;
829
858
  */
830
- responseLatencyP99Ms?: number;
859
+ heardE2eLatencyP95Ms?: number;
831
860
 
832
861
  /**
833
- * one turn's floor-transfer offset, cut-in if negative; job/run serve the percentiles
834
- *
835
- * @generated from field: optional int32 response_latency_ms = 16;
862
+ * @generated from field: optional int32 heard_e2e_latency_p99_ms = 4;
836
863
  */
837
- responseLatencyMs?: number;
864
+ heardE2eLatencyP99Ms?: number;
838
865
 
839
866
  /**
840
- * agent audio continuing past a barge-in — per turn: on the barging persona row (presence = barge-in); job: mean
867
+ * agent audio continuing past a barge-in
841
868
  *
842
- * @generated from field: optional uint32 agent_yield_latency_ms = 5;
869
+ * @generated from field: optional uint32 time_to_yield_ms = 5;
843
870
  */
844
- agentYieldLatencyMs?: number;
871
+ timeToYieldMs?: number;
845
872
 
846
873
  /**
847
- * agent started before the caller's turn ended; 0/1 per turn
874
+ * agent started before the caller's turn ended
848
875
  *
849
876
  * @generated from field: optional uint32 eot_misprediction_count = 6;
850
877
  */
@@ -870,25 +897,18 @@ export declare class SimulationRun_JobMetrics_Conversation extends Message<Simul
870
897
  totalSpeechMs?: number;
871
898
 
872
899
  /**
873
- * dead air within the conversation
874
- *
875
- * @generated from field: optional uint32 silence_total_ms = 10;
876
- */
877
- silenceTotalMs?: number;
878
-
879
- /**
880
- * gaps past the natural-pause threshold; 0/1 per turn
900
+ * gaps past the natural-pause threshold
881
901
  *
882
902
  * @generated from field: optional uint32 awkward_silence_count = 11;
883
903
  */
884
904
  awkwardSilenceCount?: number;
885
905
 
886
906
  /**
887
- * the simulated party spoke, the agent never responded; 0/1 per turn
907
+ * the simulated party spoke, the agent never responded
888
908
  *
889
- * @generated from field: optional uint32 unanswered_persona_turns = 12;
909
+ * @generated from field: optional uint32 unanswered_turns = 12;
890
910
  */
891
- unansweredPersonaTurns?: number;
911
+ unansweredTurns?: number;
892
912
 
893
913
  /**
894
914
  * needs the RemoteSession; agent paused for a non-interruption
@@ -898,18 +918,11 @@ export declare class SimulationRun_JobMetrics_Conversation extends Message<Simul
898
918
  falseInterruptionCount?: number;
899
919
 
900
920
  /**
901
- * needs the RemoteSession; of those, never resumed
902
- *
903
- * @generated from field: optional uint32 false_interruption_unrecovered_count = 14;
904
- */
905
- falseInterruptionUnrecoveredCount?: number;
906
-
907
- /**
908
- * needs the RemoteSession; the agent's own claim, mean
921
+ * needs the RemoteSession; the agent's own claim
909
922
  *
910
- * @generated from field: optional uint32 agent_reported_e2e_latency_ms = 15;
923
+ * @generated from field: optional uint32 e2e_latency_ms = 15;
911
924
  */
912
- agentReportedE2eLatencyMs?: number;
925
+ e2eLatencyMs?: number;
913
926
 
914
927
  constructor(data?: PartialMessage<SimulationRun_JobMetrics_Conversation>);
915
928
 
@@ -927,44 +940,8 @@ export declare class SimulationRun_JobMetrics_Conversation extends Message<Simul
927
940
  }
928
941
 
929
942
  /**
930
- * Was the call spoiled by the simulator, not the agent? Diagnostic only —
931
- * never folded into the scores; run aggregation excludes flagged calls
932
- * from the two headline scores.
933
- *
934
- * @generated from message livekit.SimulationRun.JobMetrics.Simulator
935
- */
936
- export declare class SimulationRun_JobMetrics_Simulator extends Message<SimulationRun_JobMetrics_Simulator> {
937
- /**
938
- * simulator ended a still-progressing call
939
- *
940
- * @generated from field: optional bool early_termination = 1;
941
- */
942
- earlyTermination?: boolean;
943
-
944
- /**
945
- * simulator dragged on after the goal was met
946
- *
947
- * @generated from field: optional bool late_termination = 2;
948
- */
949
- lateTermination?: boolean;
950
-
951
- constructor(data?: PartialMessage<SimulationRun_JobMetrics_Simulator>);
952
-
953
- static readonly runtime: typeof proto3;
954
- static readonly typeName = "livekit.SimulationRun.JobMetrics.Simulator";
955
- static readonly fields: FieldList;
956
-
957
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_JobMetrics_Simulator;
958
-
959
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_JobMetrics_Simulator;
960
-
961
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_JobMetrics_Simulator;
962
-
963
- static equals(a: SimulationRun_JobMetrics_Simulator | PlainMessage<SimulationRun_JobMetrics_Simulator> | undefined, b: SimulationRun_JobMetrics_Simulator | PlainMessage<SimulationRun_JobMetrics_Simulator> | undefined): boolean;
964
- }
965
-
966
- /**
967
- * Rows exist for text and audio;
943
+ * Rows exist for text and audio. The groups above hold the means and pools
944
+ * over these; anything not measured for a turn stays unset.
968
945
  *
969
946
  * @generated from message livekit.SimulationRun.JobMetrics.Turn
970
947
  */
@@ -977,7 +954,7 @@ export declare class SimulationRun_JobMetrics_Turn extends Message<SimulationRun
977
954
  index: number;
978
955
 
979
956
  /**
980
- * ASSISTANT — the agent under test, USER — simulator persona.
957
+ * ASSISTANT = the agent under test, USER = simulator persona
981
958
  *
982
959
  * @generated from field: livekit.agent.ChatRole role = 2;
983
960
  */
@@ -998,34 +975,83 @@ export declare class SimulationRun_JobMetrics_Turn extends Message<SimulationRun
998
975
  endMs?: number;
999
976
 
1000
977
  /**
1001
- * Job groups hold means/pools of these; a field with no per-turn measurement stays unset here.
978
+ * needs the RemoteSession
1002
979
  *
1003
- * transcription_latency_ms
980
+ * @generated from field: optional uint32 stt_delay_ms = 5;
981
+ */
982
+ sttDelayMs?: number;
983
+
984
+ /**
985
+ * needs the RemoteSession
1004
986
  *
1005
- * @generated from field: livekit.SimulationRun.JobMetrics.STT stt = 5;
987
+ * @generated from field: optional uint32 llm_ttft_ms = 6;
1006
988
  */
1007
- stt?: SimulationRun_JobMetrics_STT;
989
+ llmTtftMs?: number;
1008
990
 
1009
991
  /**
1010
- * ttft_ms, ttfs_ms, tokens_per_second, conciseness_score
992
+ * needs the RemoteSession
1011
993
  *
1012
- * @generated from field: livekit.SimulationRun.JobMetrics.LLM llm = 6;
994
+ * @generated from field: optional uint32 llm_ttfs_ms = 7;
1013
995
  */
1014
- llm?: SimulationRun_JobMetrics_LLM;
996
+ llmTtfsMs?: number;
997
+
998
+ /**
999
+ * needs the RemoteSession
1000
+ *
1001
+ * @generated from field: optional float llm_tps = 8;
1002
+ */
1003
+ llmTps?: number;
1015
1004
 
1016
1005
  /**
1017
- * ttfa_ms, ttfb_ms, naturalness_score, enunciation_score
1006
+ * needs the RemoteSession
1018
1007
  *
1019
- * @generated from field: livekit.SimulationRun.JobMetrics.TTS tts = 7;
1008
+ * @generated from field: optional uint32 tts_ttfb_ms = 9;
1020
1009
  */
1021
- tts?: SimulationRun_JobMetrics_TTS;
1010
+ ttsTtfbMs?: number;
1022
1011
 
1023
1012
  /**
1024
- * response_latency_ms, agent_yield_latency_ms, agent_reported_e2e_latency_ms, 0/1 counts
1013
+ * needs the RemoteSession
1025
1014
  *
1026
- * @generated from field: livekit.SimulationRun.JobMetrics.Conversation conversation = 8;
1015
+ * @generated from field: optional uint32 e2e_latency_ms = 10;
1027
1016
  */
1028
- conversation?: SimulationRun_JobMetrics_Conversation;
1017
+ e2eLatencyMs?: number;
1018
+
1019
+ /**
1020
+ * @generated from field: optional int32 heard_e2e_latency_ms = 11;
1021
+ */
1022
+ heardE2eLatencyMs?: number;
1023
+
1024
+ /**
1025
+ * @generated from field: optional uint32 time_to_yield_ms = 12;
1026
+ */
1027
+ timeToYieldMs?: number;
1028
+
1029
+ /**
1030
+ * @generated from field: optional float turn_taking_score = 13;
1031
+ */
1032
+ turnTakingScore?: number;
1033
+
1034
+ /**
1035
+ * needs the text judge
1036
+ *
1037
+ * @generated from field: optional float conciseness = 14;
1038
+ */
1039
+ conciseness?: number;
1040
+
1041
+ /**
1042
+ * @generated from field: optional bool eot_misprediction = 15;
1043
+ */
1044
+ eotMisprediction?: boolean;
1045
+
1046
+ /**
1047
+ * @generated from field: optional bool awkward_silence = 16;
1048
+ */
1049
+ awkwardSilence?: boolean;
1050
+
1051
+ /**
1052
+ * @generated from field: optional bool unanswered = 17;
1053
+ */
1054
+ unanswered?: boolean;
1029
1055
 
1030
1056
  constructor(data?: PartialMessage<SimulationRun_JobMetrics_Turn>);
1031
1057
 
@@ -1043,29 +1069,25 @@ export declare class SimulationRun_JobMetrics_Turn extends Message<SimulationRun
1043
1069
  }
1044
1070
 
1045
1071
  /**
1046
- * Aggregates over this run's jobs. Reuses the JobMetrics group shapes.
1072
+ * Aggregates over this run's jobs, so a run summary does not have to pull
1073
+ * every job and turn. Reuses the JobMetrics group shapes.
1047
1074
  *
1048
1075
  * @generated from message livekit.SimulationRun.RunMetrics
1049
1076
  */
1050
1077
  export declare class SimulationRun_RunMetrics extends Message<SimulationRun_RunMetrics> {
1051
1078
  /**
1052
- * mean over scored jobs
1079
+ * share of jobs whose scenario verdict passed
1053
1080
  *
1054
- * @generated from field: optional float accuracy_score = 1;
1055
- */
1056
- accuracyScore?: number;
1057
-
1058
- /**
1059
- * @generated from field: optional float experience_score = 2;
1081
+ * @generated from field: optional float scenario_pass_rate = 3;
1060
1082
  */
1061
- experienceScore?: number;
1083
+ scenarioPassRate?: number;
1062
1084
 
1063
1085
  /**
1064
- * share of jobs whose scenario verdict passed
1086
+ * mean over scored jobs
1065
1087
  *
1066
- * @generated from field: optional float scenario_pass_rate = 3;
1088
+ * @generated from field: optional float overall_score = 10;
1067
1089
  */
1068
- scenarioPassRate?: number;
1090
+ overallScore?: number;
1069
1091
 
1070
1092
  /**
1071
1093
  * @generated from field: livekit.SimulationRun.JobMetrics.STT stt = 4;
@@ -1088,23 +1110,16 @@ export declare class SimulationRun_RunMetrics extends Message<SimulationRun_RunM
1088
1110
  conversation?: SimulationRun_JobMetrics_Conversation;
1089
1111
 
1090
1112
  /**
1091
- * @generated from field: uint32 jobs_total = 9;
1092
- */
1093
- jobsTotal: number;
1094
-
1095
- /**
1096
- * composites cover jobs_measured - jobs_simulator_fault
1113
+ * Means over the jobs that report them.
1097
1114
  *
1098
- * @generated from field: uint32 jobs_measured = 10;
1115
+ * @generated from field: optional float conciseness = 8;
1099
1116
  */
1100
- jobsMeasured: number;
1117
+ conciseness?: number;
1101
1118
 
1102
1119
  /**
1103
- * spoiled by the simulator: flagged, not scored
1104
- *
1105
- * @generated from field: uint32 jobs_simulator_fault = 11;
1120
+ * @generated from field: optional float conversation_progression = 9;
1106
1121
  */
1107
- jobsSimulatorFault: number;
1122
+ conversationProgression?: number;
1108
1123
 
1109
1124
  constructor(data?: PartialMessage<SimulationRun_RunMetrics>);
1110
1125
 
@@ -1121,6 +1136,64 @@ export declare class SimulationRun_RunMetrics extends Message<SimulationRun_RunM
1121
1136
  static equals(a: SimulationRun_RunMetrics | PlainMessage<SimulationRun_RunMetrics> | undefined, b: SimulationRun_RunMetrics | PlainMessage<SimulationRun_RunMetrics> | undefined): boolean;
1122
1137
  }
1123
1138
 
1139
+ /**
1140
+ * The pipeline this run came from. Set by the client from its CI
1141
+ * environment; absent for runs not started by a pipeline.
1142
+ *
1143
+ * @generated from message livekit.SimulationRun.CI
1144
+ */
1145
+ export declare class SimulationRun_CI extends Message<SimulationRun_CI> {
1146
+ /**
1147
+ * e.g. "github_actions"
1148
+ *
1149
+ * @generated from field: string provider = 1;
1150
+ */
1151
+ provider: string;
1152
+
1153
+ /**
1154
+ * @generated from field: string commit_sha = 2;
1155
+ */
1156
+ commitSha: string;
1157
+
1158
+ /**
1159
+ * branch or tag
1160
+ *
1161
+ * @generated from field: string ref = 3;
1162
+ */
1163
+ ref: string;
1164
+
1165
+ /**
1166
+ * @generated from field: string pull_request = 4;
1167
+ */
1168
+ pullRequest: string;
1169
+
1170
+ /**
1171
+ * link back to the CI job
1172
+ *
1173
+ * @generated from field: string run_url = 5;
1174
+ */
1175
+ runUrl: string;
1176
+
1177
+ /**
1178
+ * @generated from field: string actor = 6;
1179
+ */
1180
+ actor: string;
1181
+
1182
+ constructor(data?: PartialMessage<SimulationRun_CI>);
1183
+
1184
+ static readonly runtime: typeof proto3;
1185
+ static readonly typeName = "livekit.SimulationRun.CI";
1186
+ static readonly fields: FieldList;
1187
+
1188
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_CI;
1189
+
1190
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_CI;
1191
+
1192
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_CI;
1193
+
1194
+ static equals(a: SimulationRun_CI | PlainMessage<SimulationRun_CI> | undefined, b: SimulationRun_CI | PlainMessage<SimulationRun_CI> | undefined): boolean;
1195
+ }
1196
+
1124
1197
  /**
1125
1198
  * @generated from message livekit.SimulationRun.Create
1126
1199
  */
@@ -1187,6 +1260,28 @@ export declare class SimulationRun_Create_Request extends Message<SimulationRun_
1187
1260
  */
1188
1261
  mode: SimulationMode;
1189
1262
 
1263
+ /**
1264
+ * Impairments applied to the simulated user's audio; AUDIO mode only.
1265
+ *
1266
+ * @generated from field: bool background_noise = 10;
1267
+ */
1268
+ backgroundNoise: boolean;
1269
+
1270
+ /**
1271
+ * @generated from field: bool low_quality_microphone = 11;
1272
+ */
1273
+ lowQualityMicrophone: boolean;
1274
+
1275
+ /**
1276
+ * @generated from field: bool packet_loss = 12;
1277
+ */
1278
+ packetLoss: boolean;
1279
+
1280
+ /**
1281
+ * @generated from field: optional livekit.SimulationRun.CI ci = 13;
1282
+ */
1283
+ ci?: SimulationRun_CI;
1284
+
1190
1285
  constructor(data?: PartialMessage<SimulationRun_Create_Request>);
1191
1286
 
1192
1287
  static readonly runtime: typeof proto3;
@@ -1413,6 +1508,36 @@ export declare class SimulationRun_List_Request extends Message<SimulationRun_Li
1413
1508
  */
1414
1509
  pageToken?: TokenPagination;
1415
1510
 
1511
+ /**
1512
+ * Half-open window [start_time, end_time) on created_at, the leading key
1513
+ * of this list's keyset. Unset bounds mean no window, so existing callers
1514
+ * keep their unbounded scan; the histogram's selected range sets both.
1515
+ *
1516
+ * @generated from field: optional google.protobuf.Timestamp start_time = 4;
1517
+ */
1518
+ startTime?: Timestamp;
1519
+
1520
+ /**
1521
+ * @generated from field: optional google.protobuf.Timestamp end_time = 5;
1522
+ */
1523
+ endTime?: Timestamp;
1524
+
1525
+ /**
1526
+ * Exact agent name. Unset means every agent — including the runs whose
1527
+ * name is empty, which a bare string could not tell from no filter.
1528
+ *
1529
+ * @generated from field: optional string agent_name = 6;
1530
+ */
1531
+ agentName?: string;
1532
+
1533
+ /**
1534
+ * Absent applies no mode filter. TEXT matches runs stored as TEXT or
1535
+ * UNSPECIFIED, which `SimulationRun.mode` defines as the same mode.
1536
+ *
1537
+ * @generated from field: optional livekit.SimulationMode mode = 7;
1538
+ */
1539
+ mode?: SimulationMode;
1540
+
1416
1541
  constructor(data?: PartialMessage<SimulationRun_List_Request>);
1417
1542
 
1418
1543
  static readonly runtime: typeof proto3;
@@ -1457,6 +1582,148 @@ export declare class SimulationRun_List_Response extends Message<SimulationRun_L
1457
1582
  static equals(a: SimulationRun_List_Response | PlainMessage<SimulationRun_List_Response> | undefined, b: SimulationRun_List_Response | PlainMessage<SimulationRun_List_Response> | undefined): boolean;
1458
1583
  }
1459
1584
 
1585
+ /**
1586
+ * Counts of the runs `List` would return over the same window, bucketed by
1587
+ * created_at instead of paginated.
1588
+ *
1589
+ * @generated from message livekit.SimulationRun.Counts
1590
+ */
1591
+ export declare class SimulationRun_Counts extends Message<SimulationRun_Counts> {
1592
+ constructor(data?: PartialMessage<SimulationRun_Counts>);
1593
+
1594
+ static readonly runtime: typeof proto3;
1595
+ static readonly typeName = "livekit.SimulationRun.Counts";
1596
+ static readonly fields: FieldList;
1597
+
1598
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_Counts;
1599
+
1600
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_Counts;
1601
+
1602
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_Counts;
1603
+
1604
+ static equals(a: SimulationRun_Counts | PlainMessage<SimulationRun_Counts> | undefined, b: SimulationRun_Counts | PlainMessage<SimulationRun_Counts> | undefined): boolean;
1605
+ }
1606
+
1607
+ /**
1608
+ * @generated from message livekit.SimulationRun.Counts.Request
1609
+ */
1610
+ export declare class SimulationRun_Counts_Request extends Message<SimulationRun_Counts_Request> {
1611
+ /**
1612
+ * @generated from field: string project_id = 1;
1613
+ */
1614
+ projectId: string;
1615
+
1616
+ /**
1617
+ * Both bounds required: a bucketed scan of a project's whole history is
1618
+ * never what a caller wants.
1619
+ *
1620
+ * @generated from field: google.protobuf.Timestamp start_time = 2;
1621
+ */
1622
+ startTime?: Timestamp;
1623
+
1624
+ /**
1625
+ * @generated from field: google.protobuf.Timestamp end_time = 3;
1626
+ */
1627
+ endTime?: Timestamp;
1628
+
1629
+ /**
1630
+ * Applied as `List` applies it: a filter the rows honour and the bars
1631
+ * above them drop would make the histogram an answer about a wider set.
1632
+ *
1633
+ * @generated from field: optional livekit.SimulationRun.Status status = 4;
1634
+ */
1635
+ status?: SimulationRun_Status;
1636
+
1637
+ /**
1638
+ * @generated from field: optional string agent_name = 5;
1639
+ */
1640
+ agentName?: string;
1641
+
1642
+ /**
1643
+ * @generated from field: optional livekit.SimulationMode mode = 6;
1644
+ */
1645
+ mode?: SimulationMode;
1646
+
1647
+ constructor(data?: PartialMessage<SimulationRun_Counts_Request>);
1648
+
1649
+ static readonly runtime: typeof proto3;
1650
+ static readonly typeName = "livekit.SimulationRun.Counts.Request";
1651
+ static readonly fields: FieldList;
1652
+
1653
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_Counts_Request;
1654
+
1655
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_Counts_Request;
1656
+
1657
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_Counts_Request;
1658
+
1659
+ static equals(a: SimulationRun_Counts_Request | PlainMessage<SimulationRun_Counts_Request> | undefined, b: SimulationRun_Counts_Request | PlainMessage<SimulationRun_Counts_Request> | undefined): boolean;
1660
+ }
1661
+
1662
+ /**
1663
+ * @generated from message livekit.SimulationRun.Counts.Response
1664
+ */
1665
+ export declare class SimulationRun_Counts_Response extends Message<SimulationRun_Counts_Response> {
1666
+ /**
1667
+ * Buckets holding at least one run, ascending by bucket_start. Empty
1668
+ * buckets are omitted; each run lands in exactly one bucket, so the
1669
+ * counts sum to the number of runs in the window.
1670
+ *
1671
+ * @generated from field: repeated livekit.SimulationRun.Counts.Bucket buckets = 1;
1672
+ */
1673
+ buckets: SimulationRun_Counts_Bucket[];
1674
+
1675
+ /**
1676
+ * The bucket width the server chose from the window, so the client
1677
+ * zero-fills the omitted buckets on the grid the counts were built on.
1678
+ *
1679
+ * @generated from field: google.protobuf.Duration interval = 2;
1680
+ */
1681
+ interval?: Duration;
1682
+
1683
+ constructor(data?: PartialMessage<SimulationRun_Counts_Response>);
1684
+
1685
+ static readonly runtime: typeof proto3;
1686
+ static readonly typeName = "livekit.SimulationRun.Counts.Response";
1687
+ static readonly fields: FieldList;
1688
+
1689
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_Counts_Response;
1690
+
1691
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_Counts_Response;
1692
+
1693
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_Counts_Response;
1694
+
1695
+ static equals(a: SimulationRun_Counts_Response | PlainMessage<SimulationRun_Counts_Response> | undefined, b: SimulationRun_Counts_Response | PlainMessage<SimulationRun_Counts_Response> | undefined): boolean;
1696
+ }
1697
+
1698
+ /**
1699
+ * @generated from message livekit.SimulationRun.Counts.Bucket
1700
+ */
1701
+ export declare class SimulationRun_Counts_Bucket extends Message<SimulationRun_Counts_Bucket> {
1702
+ /**
1703
+ * @generated from field: google.protobuf.Timestamp bucket_start = 1;
1704
+ */
1705
+ bucketStart?: Timestamp;
1706
+
1707
+ /**
1708
+ * @generated from field: uint64 count = 2;
1709
+ */
1710
+ count: bigint;
1711
+
1712
+ constructor(data?: PartialMessage<SimulationRun_Counts_Bucket>);
1713
+
1714
+ static readonly runtime: typeof proto3;
1715
+ static readonly typeName = "livekit.SimulationRun.Counts.Bucket";
1716
+ static readonly fields: FieldList;
1717
+
1718
+ static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SimulationRun_Counts_Bucket;
1719
+
1720
+ static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SimulationRun_Counts_Bucket;
1721
+
1722
+ static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SimulationRun_Counts_Bucket;
1723
+
1724
+ static equals(a: SimulationRun_Counts_Bucket | PlainMessage<SimulationRun_Counts_Bucket> | undefined, b: SimulationRun_Counts_Bucket | PlainMessage<SimulationRun_Counts_Bucket> | undefined): boolean;
1725
+ }
1726
+
1460
1727
  /**
1461
1728
  * @generated from message livekit.SimulationRun.Cancel
1462
1729
  */
@@ -1590,6 +1857,14 @@ export declare class Scenario extends Message<Scenario> {
1590
1857
  */
1591
1858
  userdata: string;
1592
1859
 
1860
+ /**
1861
+ * SCN_-prefixed guid. Stable across edits to label, instructions, or
1862
+ * expectations, so runs of the same scenario can be correlated over time.
1863
+ *
1864
+ * @generated from field: string id = 6;
1865
+ */
1866
+ id: string;
1867
+
1593
1868
  constructor(data?: PartialMessage<Scenario>);
1594
1869
 
1595
1870
  static readonly runtime: typeof proto3;
@@ -1698,6 +1973,14 @@ export declare class ScenarioGroup extends Message<ScenarioGroup> {
1698
1973
  */
1699
1974
  scenarios: Scenario[];
1700
1975
 
1976
+ /**
1977
+ * SCNG_-prefixed guid. Stable identity of the scenarios file, independent
1978
+ * of its name.
1979
+ *
1980
+ * @generated from field: string id = 3;
1981
+ */
1982
+ id: string;
1983
+
1701
1984
  constructor(data?: PartialMessage<ScenarioGroup>);
1702
1985
 
1703
1986
  static readonly runtime: typeof proto3;