Repository Analysis

livekit/agents

A framework for building realtime voice AI agents 🤖🎙️📹

31.7 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of livekit/agents, a Python project with 13,322 GitHub stars. SynthScan v2.0 examined 248,666 lines of code across 1220 source files, recording 6171 pattern matches distributed across 23 syntactic categories. The overall adjusted score of 31.7 places this repository in the Strong AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

31.7
Adjusted Score
31.7
Raw Score
100%
Time Factor
2026-08-28
Last Push
13.3K
Stars
Python
Language
248.7K
Lines of Code
1.2K
Files
6.2K
Pattern Hits
2026-08-29
Scan Date
0.24
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 4HIGH 293MEDIUM 251LOW 5623

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 6171 distinct pattern matches across 23 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers2662 hits · 2542 pts
SeverityFileLineSnippetContext
LOWtests/test_plugin_inworld_tts.py18async def test_delivery_mode_default_not_given():CODE
LOWtests/test_plugin_inworld_tts.py25async def test_delivery_mode_set_on_init():CODE
LOWtests/test_plugin_inworld_tts.py32async def test_delivery_mode_accepts_all_documented_values():CODE
LOWtests/test_plugin_inworld_tts.py40async def test_delivery_mode_rejects_unknown_value():CODE
LOWtests/test_plugin_inworld_tts.py47async def test_delivery_mode_update_options():CODE
LOWtests/test_plugin_inworld_tts.py59async def _capture_first_ws_create_packet(opts) -> dict:CODE
LOWtests/test_plugin_inworld_tts.py99async def test_ws_create_packet_includes_delivery_mode():CODE
LOWtests/test_plugin_inworld_tts.py121async def test_ws_create_packet_omits_delivery_mode_when_not_given():CODE
LOWtests/test_plugin_inworld_tts.py141def _patch_session_to_capture_post(tts, captured: dict[str, object]) -> None:CODE
LOWtests/test_plugin_inworld_tts.py164async def test_http_body_includes_delivery_mode():CODE
LOWtests/test_plugin_inworld_tts.py183async def test_http_body_omits_delivery_mode_when_not_given():CODE
LOWtests/test_inference_avatar.py91 def test_image_url_and_model_id_conflict_raises(self) -> None:CODE
LOWtests/test_inference_avatar.py99 def test_extra_kwargs_is_copied(self) -> None:CODE
LOWtests/test_inference_avatar.py107async def test_extra_kwargs_splits_known_and_unknown_keys() -> None:CODE
LOWtests/test_inference_avatar.py54 def test_invalid_provider_raises(self, model: str) -> None:CODE
LOWtests/test_inference_avatar.py60 def test_defaults_and_identity(self) -> None:CODE
LOWtests/test_inference_avatar.py154async def test_create_session_success() -> None:CODE
LOWtests/test_inference_avatar.py199async def test_avatar_id_from_model_string() -> None:CODE
LOWtests/test_inference_avatar.py214async def test_idempotency_key_stable_across_retries() -> None:CODE
LOWtests/test_inference_avatar.py236async def test_non_retryable_error_not_retried() -> None:CODE
LOWtests/test_inference_avatar.py256async def test_server_error_retried_then_raised() -> None:CODE
LOWtests/test_inference_avatar.py331async def test_start_uses_response_sample_rate(monkeypatch: pytest.MonkeyPatch) -> None:CODE
LOWtests/test_inference_avatar.py369async def test_start_sends_mint_inputs_and_no_token(CODE
LOWtests/test_inference_avatar.py404async def test_start_without_livekit_url_raises(monkeypatch: pytest.MonkeyPatch) -> None:CODE
LOWtests/test_inference_avatar.py461async def test_start_ids_set_before_audio_rebind(monkeypatch: pytest.MonkeyPatch) -> None:CODE
LOWtests/test_inference_avatar.py514async def test_start_standalone_connected_room(monkeypatch: pytest.MonkeyPatch) -> None:CODE
LOWtests/test_inference_avatar.py549async def test_start_standalone_disconnected_room_raises(monkeypatch: pytest.MonkeyPatch) -> None:CODE
LOWtests/test_inference_avatar.py564async def test_aclose_terminates_session() -> None:CODE
LOWtests/test_inference_avatar.py592async def test_aclose_skips_terminate_without_token() -> None:CODE
LOWtests/test_inference_avatar.py610async def test_aclose_terminate_failure_keeps_ids_and_runs_base_cleanup(CODE
LOWtests/test_inference_avatar.py642async def test_aclose_without_session_is_noop() -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py52def _make_full_recognition_for_eou() -> AudioRecognition:CODE
LOWtests/test_audio_recognition_turn_detection.py132 def test_non_specific_language_does_not_replace_concrete_language(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py140 def test_non_specific_language_does_not_initialize_language(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py148 def test_concrete_language_still_updates_after_long_transcript(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py651 def test_low_min_silence_with_audio_detector_raises(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py659 def test_adequate_min_silence_passes(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py666 def test_non_audio_detector_skips(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py179 async def test_sos_during_bounce_cancels_commit(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py244 async def test_stale_spike_does_not_block_next_commit(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py265 async def test_vad_then_stt_emits_eot_prediction_once(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py303 async def test_text_detector_emits_every_bounce(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py334 async def test_clear_user_turn_allows_next_turn_to_emit(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py374 async def test_emits_with_eot_context_when_turn_continues(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py392 async def test_emits_with_eot_context_when_turn_ends(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py409 async def test_no_emit_below_threshold(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py420 async def test_no_emit_when_backchannel_disabled(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py430 async def test_no_emit_for_text_detector(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py453 async def test_silence_tick_starts_request_once(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py463 async def test_resumed_speech_without_sos_rearms_next_pause(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py492 async def test_silence_tick_starts_request_while_agent_speaking(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py506 async def test_eos_consumes_silence_tick_request_without_predicting(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py523 async def test_eos_runs_eou_even_while_agent_speaking(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py542 async def test_sos_tears_down_request_and_rearms(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py553 async def test_eos_never_starts_request(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py569 async def test_late_stt_final_after_flush_short_circuits(CODE
LOWtests/test_audio_recognition_turn_detection.py589 async def test_predict_timeout_signals_fallback_and_drops_future(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py608 async def test_commit_flushes_stream_and_marks_turn_flushed(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py636def _make_recognition_for_validation() -> AudioRecognition:CODE
LOWtests/test_audio_recognition_turn_detection.py680 def test_vad_without_min_silence_knob_skips(self) -> None:CODE
2602 more matches not shown…
Cross-Language Confusion220 hits · 1258 pts
SeverityFileLineSnippetContext
HIGHtests/test_plugin_sarvam_stt_streaming.py1542 stream._audio_duration_collector.push(1.0)CODE
HIGHtests/test_plugin_sarvam_stt_streaming.py1578 stream._audio_duration_collector.push(1.75)CODE
HIGHtests/test_plugin_sarvam_stt_streaming.py1601 stream._audio_duration_collector.push(1.0)CODE
HIGHtests/fake_session.py115 audio_input.push(0.1)CODE
HIGHtests/test_tokenizer_xml_markup.py772 out = s.push("Hi <emo")CODE
HIGHtests/test_tokenizer_xml_markup.py773 out += s.push('tion value="happy"/> the')CODE
HIGHtests/test_tokenizer_xml_markup.py774 out += s.push("re")CODE
HIGHtests/test_tokenizer_xml_markup.py788 first = s.push("Read [the docs](https:")CODE
HIGHtests/test_tokenizer_xml_markup.py790 rest = s.push("//docs.livekit.io) now.") + s.flush()CODE
HIGHtests/test_tokenizer_xml_markup.py798 first = s.push("The value 3 < 5 ")CODE
HIGHtests/test_tokenizer_xml_markup.py800 rest = s.push("is true.") + s.flush()CODE
HIGHtests/test_recorder_io.py158 track.push(2.0, _loud(100))CODE
HIGHtests/test_recorder_io.py168 track.push(0.0, _loud(100))CODE
HIGHtests/test_recorder_io.py169 track.push(0.5, _loud(100))CODE
HIGHtests/test_recorder_io.py180 track.push(0.5, _loud(100))CODE
HIGHtests/test_recorder_io.py188 track.push(0.0, _loud(100))CODE
HIGHtests/test_recorder_io.py189 track.push(0.1, _loud(100)) # contiguous, extends the runCODE
HIGHtests/test_recorder_io.py190 track.push(5.0, _loud(100)) # beyond tolerance, anchors on its own timestampCODE
HIGHtests/test_recorder_io.py197 track.push(1.0, _loud(2400, sample_rate=24000)) # 100ms at 24kHzCODE
HIGHtests/test_recorder_io.py198 track.push(9.0, _loud(2400, sample_rate=24000)) # a new run, so the first one is completeCODE
HIGHtests/test_recorder_io.py209 track.push(0.0, _loud(100, channels=2))CODE
HIGHtests/test_expr_markup.py220 out += stripper.push(chunk)CODE
HIGHtests/test_expr_markup.py258 out = "".join(stripper.push(c) for c in chunks) + stripper.flush()CODE
HIGHtests/test_expr_markup.py266 out = "".join(stripper.push(c) for c in ["Right. ", " Anyway."]) + stripper.flush()CODE
HIGHtests/test_expr_markup.py273 out = "".join(stripper.push(c) for c in chunks) + stripper.flush()CODE
HIGHtests/test_tts.py821 emitter_stream.push(pcm_chunk)CODE
HIGHtests/test_tts.py823 emitter_stream.push(pcm_chunk)CODE
HIGHtests/test_tts.py828 emitter_stream.push(pcm_chunk)CODE
HIGHtests/test_tts.py829 emitter_stream.push(pcm_chunk)CODE
HIGHtests/test_tts.py865 emitter_multi.push(pcm_chunk)CODE
HIGHtests/test_tts.py867 emitter_multi.push(pcm_chunk)CODE
HIGHtests/test_tts.py869 emitter_multi.push(pcm_chunk)CODE
HIGHtests/test_tts.py896 emitter_nostream.push(pcm_chunk)CODE
HIGHtests/test_tts.py897 emitter_nostream.push(pcm_chunk)CODE
HIGHtests/test_tts.py924 emitter_noflush.push(pcm_chunk)CODE
HIGHtests/test_tts.py949 emitter_noflush.push(pcm_chunk)CODE
HIGHtests/test_tts.py1016 emitter.push(wav_bytes)CODE
HIGHtests/test_tts.py1021 emitter.push(wav_bytes)CODE
HIGHtests/test_tts.py1057 emitter2.push(wav_bytes)CODE
HIGHtests/test_tts.py1085 emitter3.push(b"\xff\xff" * 100)CODE
HIGHtests/test_plugin_soniox_tts.py91 slot.emitter.push(_SILENCE_PCM)CODE
HIGHtests/test_playback_progress.py89 await h.push(0.1)CODE
HIGHtests/test_playback_progress.py107 await h.push(0.2)CODE
HIGHtests/test_playback_progress.py113 await h.push(0.1)CODE
HIGHtests/test_playback_progress.py127 await h.push(0.06)CODE
HIGHtests/test_playback_progress.py147 await h.push(0.5)CODE
HIGHtests/test_playback_progress.py167 await h.push(0.5)CODE
HIGHtests/test_playback_progress.py200 await h.push(0.5)CODE
HIGHtests/test_playback_progress.py220 await h.push(0.5)CODE
HIGHtests/test_playback_progress.py237 await h.push(0.2)CODE
HIGHtests/test_session_close_user_turn.py31 audio_input.push(0.1)CODE
HIGHtests/test_audio_emitter.py89 e.push(_make_pcm(SR, NC, 5))CODE
HIGHtests/test_audio_emitter.py103 e.push(_make_pcm(SR, NC, 80))CODE
HIGHtests/test_audio_emitter.py165 e.push(_make_pcm(SR, NC, 200))CODE
HIGHtests/test_audio_emitter.py170 e.push(_make_pcm(SR, NC, 200))CODE
HIGHtests/test_audio_emitter.py191 e.push(_make_pcm(SR, NC, 500))CODE
HIGHtests/test_audio_emitter.py203 e.push(_make_pcm(SR, NC, 100))CODE
HIGHtests/test_audio_emitter.py74 e.push(_make_pcm(SR, NC, 10))CODE
HIGHtests/test_audio_emitter.py123 e.push(_make_pcm(SR, NC, 200))CODE
HIGHtests/test_audio_emitter.py149 e.push(_make_pcm(SR, NC, 10))CODE
160 more matches not shown…
Unused Imports1304 hits · 1196 pts
SeverityFileLineSnippetContext
LOWtests/test_plugin_inworld_tts.py3CODE
LOWtests/test_inference_avatar.py10CODE
LOWtests/test_audio_recognition_turn_detection.py26CODE
LOWtests/test_plugin_sarvam_stt_streaming.py1CODE
LOWtests/fake_session.py1CODE
LOWtests/test_audio_recognition_handoff.py1CODE
LOWtests/test_ipc.py1CODE
LOWtests/test_tokenizer_xml_markup.py7CODE
LOWtests/fake_vad.py1CODE
LOWtests/test_realtime_cancel_tool_reply.py7CODE
LOWtests/test_tool_results_preserved_on_interruption.py7CODE
LOWtests/test_plugin_assemblyai_stt.py3CODE
LOWtests/test_room_io.py1CODE
LOWtests/test_recorder_io.py7CODE
LOWtests/test_expr_markup.py10CODE
LOWtests/test_session_host.py1CODE
LOWtests/test_plugin_deepgram_tts.py1CODE
LOWtests/test_tool_output_per_call.py7CODE
LOWtests/test_realtime_input_speech_interrupt.py1CODE
LOWtests/test_trace_types_pii.py11CODE
LOWtests/test_turn_detection_cloud_stream.py13CODE
LOWtests/test_telemetry_recording_disabled.py10CODE
LOWtests/test_agent_session.py1CODE
LOWtests/test_playout_launch_pause.py1CODE
LOWtests/conftest.py17CODE
LOWtests/conftest.py17CODE
LOWtests/lk_server.py8CODE
LOWtests/test_filler.py1CODE
LOWtests/test_running_tool_placeholders.py1CODE
LOWtests/test_amd_classifier.py8CODE
LOWtests/test_inference_stt_aligned_transcript_claim.py11CODE
LOWtests/test_tts.py1CODE
LOWtests/test_plugin_soniox_tts.py11CODE
LOWtests/test_judge.py1CODE
LOWtests/fake_io.py1CODE
LOWtests/test_run_input_errors.py7CODE
LOWtests/fake_turn_stt.py9CODE
LOWtests/test_audio_sink_proxy.py1CODE
LOWtests/test_llm_utils.py1CODE
LOWtests/test_plugin_google_realtime.py1CODE
LOWtests/test_plugin_google_gemini_tts.py1CODE
LOWtests/test_http_context_helper.py5CODE
LOWtests/fake_stt.py1CODE
LOWtests/test_expressive_toggle.py1CODE
LOWtests/test_plugin_fishaudio_tts.py3CODE
LOWtests/test_plugin_rime_tts.py3CODE
LOWtests/test_convert_html_docs.py3CODE
LOWtests/test_personaplex_realtime_model.py3CODE
LOWtests/test_realtime_fallback.py1CODE
LOWtests/test_tts_fallback.py1CODE
LOWtests/test_plugin_bland_tts.py1CODE
LOWtests/test_realtime_adaptive_interruption.py1CODE
LOWtests/test_inference_stt_start_of_speech.py9CODE
LOWtests/test_plugin_palabra.py8CODE
LOWtests/test_stt_prewarm.py1CODE
LOWtests/test_playback_progress.py7CODE
LOWtests/test_realtime_auto_disable_turn_detection.py1CODE
LOWtests/test_plugin_sarvam_llm.py1CODE
LOWtests/test_cli_log_level.py1CODE
LOWtests/test_transcription_timeout.py1CODE
1244 more matches not shown…
Decorative Section Separators183 hits · 680 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_audio_recognition_turn_detection.py47# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_audio_recognition_turn_detection.py49# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_audio_recognition_handoff.py41# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_audio_recognition_handoff.py43# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_audio_recognition_handoff.py160# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_audio_recognition_handoff.py162# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_audio_recognition_handoff.py207# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_audio_recognition_handoff.py209# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py19# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py21# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py111# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py113# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py509# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py511# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py576# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py578# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py730# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py732# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py58# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py60# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py663# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py665# ===========================================================================COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py93# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py101# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py323# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py330# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py464# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py466# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py726# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py735# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py1321# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py1330# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py405# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py411# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py442# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py444# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py517# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py524# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py564# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py571# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py906# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py918# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_recorder_io.py146# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_recorder_io.py148# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_recorder_io.py216# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_recorder_io.py218# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_recorder_io.py46# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_recorder_io.py48# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py80# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py82# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py98# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py100# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py153# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py155# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py284# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py286# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py303# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py305# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py358# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py360# ---------------------------------------------------------------------------COMMENT
123 more matches not shown…
Excessive Try-Catch Wrapping523 hits · 554 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py299 except Exception:CODE
LOWtests/conftest.py320 except Exception:CODE
MEDIUMtests/conftest.py285def _is_ignorable_task(task) -> bool:CODE
MEDIUMtests/conftest.py304def format_task(task) -> str:CODE
LOWtests/concurrency.py114except Exception: # pragma: no cover - defensiveCODE
LOWtests/concurrency.py342 except Exception: # pragma: no cover - best effort flushCODE
LOWtests/concurrency.py380 except Exception: # pragma: no coverCODE
LOWtests/test_multi_speaker_adapter.py296 except Exception as e: # noqa: BLE001 - recorded, asserted on belowCODE
MEDIUMtests/test_multi_speaker_adapter.py291def _read() -> None:CODE
LOWtests/test_interruption/test_interruption_failover.py91 except Exception as exc:CODE
LOWexamples/drive_thru/order.py62 except Exception:CODE
LOWexamples/drive_thru/agent.py524 except Exception:CODE
LOWexamples/healthcare/agent.py117 except Exception as e:CODE
LOWexamples/other/translation/multi-user-translator.py151 except Exception:CODE
LOWexamples/hotel_receptionist/ui_view.py70 except Exception:CODE
LOWexamples/hotel_receptionist/ui_view.py117 except Exception:CODE
LOWexamples/hotel_receptionist/ui_view.py138 except Exception as e:CODE
LOWexamples/hotel_receptionist/agent.py146 except Exception:CODE
LOWexamples/hotel_receptionist/agent.py159 except Exception:CODE
LOWexamples/hotel_receptionist/agent.py204 except Exception:CODE
LOWexamples/hotel_receptionist/run_artifacts.py36 except Exception:CODE
LOWexamples/hotel_receptionist/run_artifacts.py47 except Exception:CODE
LOWexamples/frontdesk/ui_view.py97 except Exception:CODE
LOWexamples/warm-transfer/warm_transfer.py77 except Exception as e:CODE
LOWexamples/telephony/bank-ivr/dial_bank_agent.py51 except Exception as e:CODE
LOWexamples/inference/agent.py112 except Exception:CODE
LOWscripts/generate_test_summary.py86 except Exception as e:CODE
MEDIUM.github/convert_html_docs.py1023 print(f"Error: {input_dir} is not a directory", file=sys.stderr)CODE
MEDIUM.github/convert_html_docs.py1028 print(f"Error: {output_dir} is not a directory", file=sys.stderr)CODE
LOW.github/download_stats.py53 except Exception:CODE
LOWlivekit-agents/livekit/agents/worker.py716 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/worker.py1152 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/worker.py1439 except Exception:CODE
LOWlivekit-agents/livekit/agents/job.py319 except Exception:CODE
LOWlivekit-agents/livekit/agents/job.py334 except Exception:CODE
LOWlivekit-agents/livekit/agents/job.py347 except Exception:CODE
LOWlivekit-agents/livekit/agents/job.py682 except Exception:CODE
MEDIUMlivekit-agents/livekit/agents/job.py672def _delete_room() -> None:CODE
LOWlivekit-agents/livekit/agents/_exceptions.py144 except Exception:CODE
LOWlivekit-agents/livekit/agents/__main__.py32 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/__main__.py50 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/jupyter.py65 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/beta/tools/send_dtmf.py32 except Exception as e:CODE
LOW…kit-agents/livekit/agents/beta/workflows/task_group.py134 except Exception as e:CODE
LOW…kit-agents/livekit/agents/beta/workflows/task_group.py160 except Exception as e:CODE
LOW…-agents/livekit/agents/beta/workflows/warm_transfer.py199 except Exception:CODE
LOWlivekit-agents/livekit/agents/evals/evaluation.py171 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/llm/tool_context.py398 except Exception:CODE
LOWlivekit-agents/livekit/agents/llm/llm.py188 except Exception:CODE
LOWlivekit-agents/livekit/agents/llm/llm.py278 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/llm/llm.py319 except Exception as e:CODE
MEDIUMlivekit-agents/livekit/agents/llm/llm.py185def _prewarm() -> None:CODE
LOW…agents/livekit/agents/llm/realtime_fallback_adapter.py321 except Exception:CODE
LOW…agents/livekit/agents/llm/realtime_fallback_adapter.py346 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/llm/utils.py633 except Exception:CODE
LOWlivekit-agents/livekit/agents/llm/utils.py698 except Exception:CODE
LOWlivekit-agents/livekit/agents/llm/utils.py1043 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/llm/fallback_adapter.py233 except Exception:CODE
LOWlivekit-agents/livekit/agents/llm/fallback_adapter.py262 except Exception:CODE
LOWlivekit-agents/livekit/agents/llm/fallback_adapter.py290 except Exception: # exceptions already logged inside _try_generateCODE
463 more matches not shown…
Deep Nesting349 hits · 310 pts
SeverityFileLineSnippetContext
LOWtests/test_trace_types_pii.py168CODE
LOWtests/conftest.py209CODE
LOWtests/fake_stt.py177CODE
LOWtests/test_endpointing.py466CODE
LOWtests/test_plugin_bland_tts.py405CODE
LOWtests/test_plugin_bland_tts.py847CODE
LOWtests/test_plugin_palabra.py34CODE
LOWtests/test_plugin_palabra.py49CODE
LOWtests/test_plugin_palabra.py54CODE
LOWtests/test_plugin_sarvam_llm.py52CODE
LOWtests/concurrency.py868CODE
LOWtests/test_chat_ctx.py791CODE
LOWtests/test_stt.py184CODE
LOWexamples/drive_thru/database.py606CODE
LOWexamples/drive_thru/agent.py387CODE
LOWexamples/frontdesk/agent.py202CODE
LOWexamples/primitives/echo-agent.py28CODE
LOWexamples/primitives/echo-agent.py73CODE
LOWexamples/telephony/amd.py37CODE
LOWexamples/telephony/basic_dtmf_agent.py55CODE
LOWexamples/telephony/bank-ivr/ivr_system_agent.py347CODE
LOWexamples/telephony/bank-ivr/ivr_system_agent.py441CODE
LOWexamples/telephony/bank-ivr/ivr_system_agent.py502CODE
LOWexamples/telephony/bank-ivr/ivr_system_agent.py566CODE
LOWscripts/generate_test_summary.py12CODE
LOW.github/convert_html_docs.py806CODE
LOW.github/convert_html_docs.py990CODE
LOW.github/convert_html_docs.py162CODE
LOW.github/convert_html_docs.py541CODE
LOWlivekit-agents/livekit/agents/worker.py536CODE
LOWlivekit-agents/livekit/agents/worker.py1174CODE
LOWlivekit-agents/livekit/agents/worker.py1194CODE
LOWlivekit-agents/livekit/agents/worker.py801CODE
LOWlivekit-agents/livekit/agents/_proto.py81CODE
LOW…it-agents/livekit/agents/beta/workflows/credit_card.py499CODE
LOWlivekit-agents/livekit/agents/beta/workflows/utils.py30CODE
LOW…vekit-agents/livekit/agents/metrics/usage_collector.py77CODE
LOWlivekit-agents/livekit/agents/metrics/utils.py18CODE
LOWlivekit-agents/livekit/agents/metrics/usage.py200CODE
LOWlivekit-agents/livekit/agents/evals/judge.py59CODE
LOWlivekit-agents/livekit/agents/llm/tool_context.py588CODE
LOWlivekit-agents/livekit/agents/llm/tool_context.py692CODE
LOWlivekit-agents/livekit/agents/llm/tool_context.py596CODE
LOWlivekit-agents/livekit/agents/llm/llm.py259CODE
LOWlivekit-agents/livekit/agents/llm/chat_context.py496CODE
LOWlivekit-agents/livekit/agents/llm/chat_context.py720CODE
LOWlivekit-agents/livekit/agents/llm/chat_context.py776CODE
LOWlivekit-agents/livekit/agents/llm/chat_context.py915CODE
LOWlivekit-agents/livekit/agents/llm/chat_context.py510CODE
LOWlivekit-agents/livekit/agents/llm/utils.py89CODE
LOWlivekit-agents/livekit/agents/llm/utils.py315CODE
LOWlivekit-agents/livekit/agents/llm/utils.py427CODE
LOWlivekit-agents/livekit/agents/llm/utils.py491CODE
LOWlivekit-agents/livekit/agents/llm/fallback_adapter.py267CODE
LOWlivekit-agents/livekit/agents/llm/_strict.py48CODE
LOW…t-agents/livekit/agents/llm/_provider_format/google.py23CODE
LOW…t-agents/livekit/agents/llm/_provider_format/google.py127CODE
LOW…ekit-agents/livekit/agents/llm/_provider_format/aws.py28CODE
LOW…t-agents/livekit/agents/llm/_provider_format/openai.py50CODE
LOW…t-agents/livekit/agents/llm/_provider_format/openai.py172CODE
289 more matches not shown…
Modern Structural Boilerplate267 hits · 275 pts
SeverityFileLineSnippetContext
LOWtests/test_filler.py89 def set_idle(self, idle: bool) -> None:CODE
LOWtests/toxic_proxy.py217 def update_api_consumer(self, host: str, port: int) -> None:CODE
LOWtests/test_plugin_openai_stt_context.py240async def _settle(stream: stt.SpeechStream) -> None:CODE
LOWtests/fake_realtime.py79 async def update_instructions(self, instructions: str) -> None:CODE
LOWtests/fake_realtime.py82 async def update_chat_ctx(self, chat_ctx: ChatContext) -> None:CODE
LOWtests/fake_realtime.py87 async def update_tools(self, tools: list[Tool]) -> None:CODE
LOWtests/fake_realtime.py90 def update_options(self, *, tool_choice: NotGivenOr[ToolChoice | None] = NOT_GIVEN) -> None:CODE
LOWtests/test_plugin_elevenlabs_stt.py133 def update_options(self, **kwargs: object) -> None:CODE
LOWtests/test_plugin_elevenlabs_stt.py254 def update_options(self, **kwargs: object) -> None:CODE
LOWtests/test_telemetry_exception_redaction.py37 def set_status(self, status: trace.Status) -> None:CODE
LOWtests/test_telemetry_exception_redaction.py40 def set_attributes(self, attributes: dict[str, Any]) -> None:CODE
LOWtests/test_multi_speaker_adapter.py70 def _update_session_keyterms(self, keyterms: list[str]) -> None:CODE
LOWtests/test_stt_context.py79 def _update_session_keyterms(self, keyterms: list[str]) -> None:CODE
LOWtests/test_realtime/test_openai_realtime_model.py41 def update_options(self, **kw: object) -> None:CODE
LOWtests/utils/livekit_test.py33__all__ = [CODE
LOWtests/utils/audio_test.py24__all__ = [CODE
LOWexamples/hotel_receptionist/hotel_db.py1060 async def update_booking_card(self, *, booking_code: str, card_last4: str) -> None:CODE
LOWexamples/hotel_receptionist/modify_booking.py278 def _set_changed(self, slot: str, differs: bool) -> None:CODE
LOWexamples/avatar/actions.py80 def set_session(self, session_id: str, persona_id: str) -> None:CODE
LOW.github/update_versions.py81def update_plugins_pyproject_agents_version(new_agents_version: str) -> None:CODE
LOW.github/update_versions.py97def update_agents_pyproject_optional_dependencies(plugin_versions: Dict[str, str]) -> None:CODE
LOW.github/update_versions.py123def update_versions(bump_type: str) -> None:CODE
LOW.github/update_versions.py157def update_prerelease(prerelease_type: str) -> None:CODE
LOWlivekit-agents/livekit/agents/simulation.py23__all__ = [CODE
LOWlivekit-agents/livekit/agents/worker.py766 def _update_job_status(proc: ipc.job_executor.JobExecutor) -> None:CODE
LOWlivekit-agents/livekit/agents/worker.py1489 async def _update_worker_status(self) -> None:CODE
LOWlivekit-agents/livekit/agents/worker.py1522 async def _update_job_status(self, proc: ipc.job_executor.JobExecutor) -> None:CODE
LOWlivekit-agents/livekit/agents/__init__.py168__all__ = [CODE
LOWlivekit-agents/livekit/agents/testing.py15__all__ = ["fake_job_context"]CODE
LOWlivekit-agents/livekit/agents/beta/__init__.py5__all__ = ["Instructions", "workflows", "EndCallTool"]CODE
LOWlivekit-agents/livekit/agents/beta/tools/__init__.py4__all__ = [CODE
LOW…vekit-agents/livekit/agents/beta/workflows/__init__.py12__all__ = [CODE
LOW…-agents/livekit/agents/beta/workflows/warm_transfer.py254 def _set_result(self, result: WarmTransferResult | Exception) -> None:CODE
LOW…-agents/livekit/agents/beta/workflows/warm_transfer.py369 def _set_io_enabled(self, enabled: bool) -> None:CODE
LOWlivekit-agents/livekit/agents/beta/toolsets/__init__.py4__all__ = ["ToolProxyToolset", "ToolSearchToolset"]CODE
LOWlivekit-agents/livekit/agents/metrics/__init__.py25__all__ = [CODE
LOWlivekit-agents/livekit/agents/evals/__init__.py20__all__ = [CODE
LOWlivekit-agents/livekit/agents/llm/async_toolset.py23__all__ = ["AsyncRunContext", "AsyncToolset"]CODE
LOWlivekit-agents/livekit/agents/llm/realtime.py246 async def update_instructions(self, instructions: str) -> None: ...CODE
LOWlivekit-agents/livekit/agents/llm/realtime.py254 async def update_tools(self, tools: list[Tool]) -> None: ...CODE
LOWlivekit-agents/livekit/agents/llm/realtime.py257 def update_options(self, *, tool_choice: NotGivenOr[ToolChoice | None] = NOT_GIVEN) -> None: ...CODE
LOWlivekit-agents/livekit/agents/llm/tool_context.py585 def update_tools(self, tools: Sequence[Tool | Toolset]) -> None:CODE
LOWlivekit-agents/livekit/agents/llm/__init__.py64__all__ = [CODE
LOW…agents/livekit/agents/llm/realtime_fallback_adapter.py244 def _set_available(self, index: int, available: bool) -> None:CODE
LOW…agents/livekit/agents/llm/realtime_fallback_adapter.py409 async def update_instructions(self, instructions: str) -> None:CODE
LOW…agents/livekit/agents/llm/realtime_fallback_adapter.py413 async def update_chat_ctx(self, chat_ctx: ChatContext) -> None:CODE
LOW…agents/livekit/agents/llm/realtime_fallback_adapter.py419 async def update_tools(self, tools: list[Tool]) -> None:CODE
LOW…agents/livekit/agents/llm/realtime_fallback_adapter.py423 def update_options(self, *, tool_choice: NotGivenOr[ToolChoice | None] = NOT_GIVEN) -> None:CODE
LOW…vekit-agents/livekit/agents/llm/remote_chat_context.py7__all__ = ["RemoteChatContext"]CODE
LOW…agents/livekit/agents/llm/_provider_format/__init__.py3__all__ = ["openai", "openai.responses", "google", "aws", "anthropic", "mistralai"]CODE
LOWlivekit-agents/livekit/agents/utils/http_context.py31def _set_default_cert_env() -> None:CODE
LOWlivekit-agents/livekit/agents/utils/__init__.py16__all__ = [CODE
LOWlivekit-agents/livekit/agents/utils/exp_filter.py63 def update_base(self, alpha: float) -> None:CODE
LOWlivekit-agents/livekit/agents/utils/codecs/__init__.py17__all__ = ["AudioStreamDecoder", "StreamBuffer"]CODE
LOWlivekit-agents/livekit/agents/utils/hw/__init__.py3__all__ = [CODE
LOWlivekit-agents/livekit/agents/utils/images/__init__.py17__all__ = ["EncodeOptions", "ResizeOptions", "encode"]CODE
LOWlivekit-agents/livekit/agents/utils/aio/__init__.py10__all__ = [CODE
LOWlivekit-agents/livekit/agents/cli/readchar.py7__all__ = ["readchar", "readkey", "key"]CODE
LOWlivekit-agents/livekit/agents/cli/__init__.py3__all__ = ["run_app", "AgentsConsole"]CODE
LOWlivekit-agents/livekit/agents/cli/_legacy.py562 def set_microphone_enabled(self, enable: bool, *, device: int | str | None = None) -> None:CODE
207 more matches not shown…
Over-Commented Block274 hits · 266 pts
SeverityFileLineSnippetContext
LOWtests/test_plugin_assemblyai_stt.py901COMMENT
LOWtests/test_tts.py681 )COMMENT
LOWtests/test_llm.py1# from __future__ import annotationsCOMMENT
LOWtests/test_llm.py21COMMENT
LOWtests/test_llm.py41# self,COMMENT
LOWtests/test_llm.py61# def update_user_info(COMMENT
LOWtests/test_llm.py81# # instructions="You are a basic assistant",COMMENT
LOWtests/test_llm.py101# # Anthropic and vertex requires at least one message (system messages don't count)COMMENT
LOWtests/test_llm.py121# async def test_llm_chat_with_consecutive_messages(COMMENT
LOWtests/test_llm.py141# if content:COMMENT
LOWtests/test_llm.py161COMMENT
LOWtests/test_llm.py181COMMENT
LOWtests/test_llm.py201COMMENT
LOWtests/test_llm.py221# )COMMENT
LOWtests/test_llm.py241# call = calls[0]COMMENT
LOWtests/test_llm.py261COMMENT
LOWtests/test_llm.py281# fnc_ctx = FncCtx()COMMENT
LOWtests/test_llm.py301COMMENT
LOWtests/test_llm.py321# llm.ToolChoice(type="function", name="get_weather"),COMMENT
LOWtests/test_llm.py341# user_request: str,COMMENT
LOWtests/test_llm.py361COMMENT
LOWtests/test_llm.py381# role="system",COMMENT
LOWtests/test_llm.py401# width=512, height=512, type=VideoBufferType.RGBA, data=image_dataCOMMENT
LOWtests/test_llm.py421# images=[llm.ChatImage(image=_HEARTS_IMAGE_DATA_URL, inference_detail="low")],COMMENT
LOWtests/test_llm.py441# input_llm = llm_factory()COMMENT
LOWtests/test_llm.py461COMMENT
LOWexamples/playground.yaml1# Examples metadata consumed by livekit/agents-jukebox.COMMENT
LOWexamples/playground.yaml121 101110011101COMMENT
LOWexamples/playground.yaml161 022222222220COMMENT
LOWexamples/data_capture_sim/scenarios.yaml1# Scenarios for the data-capture workflow refactor: confirm_* / update_* toolsCOMMENT
LOWexamples/voice_agents/otel_trace.py21from livekit.agents.voice import MetricsCollectedEventCOMMENT
LOWexamples/hotel_receptionist/scenarios.yaml1# Assumptions:COMMENT
LOWexamples/hotel_receptionist/fake_data/seed.py61# offset < 0 and offset+nights > 0 -> in-house now; offset > 0 -> upcoming; else departed.COMMENT
LOWexamples/hotel_receptionist/fake_data/seed.py81 ("Paul", "Greer", "paul.greer@gmail.com", "+1 415 555 0356", "PG11", "203", 0, 1, 1, [], "2218", "confirmed"),COMMENT
LOWexamples/frontdesk/scenarios.yaml1# These scenarios use absolute dates against a fixed clock:COMMENT
LOWexamples/avatar/pyproject.toml21# No [tool.uv.sources] here: the workspace root repoints the livekit-* deps atCOMMENT
LOW.github/convert_html_docs.py901COMMENT
LOWlivekit-agents/livekit/agents/worker.py1# Copyright 2023 LiveKit, Inc.COMMENT
LOWlivekit-agents/livekit/agents/version.py1# Copyright 2023 LiveKit, Inc.COMMENT
LOWlivekit-agents/livekit/agents/job.py1# Copyright 2023 LiveKit, Inc.COMMENT
LOWlivekit-agents/livekit/agents/__init__.py1# Copyright 2023 LiveKit, Inc.COMMENT
LOWlivekit-agents/livekit/agents/language.py1# Copyright 2023 LiveKit, Inc.COMMENT
LOWlivekit-agents/livekit/agents/_language_data.py1# Copyright 2023 LiveKit, Inc.COMMENT
LOWlivekit-agents/livekit/agents/llm/tool_context.py1# Copyright 2023 LiveKit, Inc.COMMENT
LOWlivekit-agents/livekit/agents/llm/chat_context.py1# Copyright 2023 LiveKit, Inc.COMMENT
LOWlivekit-agents/livekit/agents/utils/codecs/decoder.py1# Copyright 2024 LiveKit, Inc.COMMENT
LOWlivekit-agents/livekit/agents/utils/codecs/__init__.py1# Copyright 2024 LiveKit, Inc.COMMENT
LOWlivekit-agents/livekit/agents/utils/images/__init__.py1# Copyright 2024 LiveKit, Inc.COMMENT
LOWlivekit-agents/livekit/agents/utils/images/image.py1# Copyright 2024 LiveKit, Inc.COMMENT
LOWlivekit-agents/livekit/agents/cli/_legacy.py81COMMENT
LOWlivekit-agents/livekit/agents/voice/agent_activity.py3221 # the LLM isn't instructed or few-shotted into emitting tags nothingCOMMENT
LOW…t-agents/livekit/agents/voice/transcription/filters.py61COMMENT
LOWlivekit-agents/livekit/agents/tts/_provider_format.py121 secs = float(raw[:-2]) / 1000 if raw.endswith("ms") else float(raw.rstrip("s"))COMMENT
LOWlivekit-agents/livekit/agents/tts/_provider_format.py201 return "[long-break]" if secs >= 1.0 else "[break]"COMMENT
LOWlivekit-agents/livekit/agents/inference/vad.py1# Copyright 2026 LiveKit, Inc.COMMENT
LOW…ugins-smallestai/livekit/plugins/smallestai/version.py1# Copyright 2025 LiveKit, Inc.COMMENT
LOW…t-plugins-smallestai/livekit/plugins/smallestai/tts.py1# Copyright 2025 LiveKit, Inc.COMMENT
LOW…gins-smallestai/livekit/plugins/smallestai/__init__.py1# Copyright 2023 LiveKit, Inc.COMMENT
LOW…t-plugins-smallestai/livekit/plugins/smallestai/stt.py1# Copyright 2025 LiveKit, Inc.COMMENT
LOW…t-plugins-smallestai/livekit/plugins/smallestai/stt.py721def _batch_transcription_to_speech_event(COMMENT
214 more matches not shown…
AI Structural Patterns188 hits · 178 pts
SeverityFileLineSnippetContext
LOWtests/test_amd_classifier.py31CODE
LOWtests/test_plugin_bland_tts.py375CODE
LOWlivekit-agents/livekit/agents/worker.py303CODE
LOWlivekit-agents/livekit/agents/worker.py857CODE
LOWlivekit-agents/livekit/agents/beta/workflows/address.py26CODE
LOW…it-agents/livekit/agents/beta/workflows/credit_card.py572CODE
LOW…t-agents/livekit/agents/beta/workflows/phone_number.py63CODE
LOW…-agents/livekit/agents/beta/workflows/email_address.py27CODE
LOWlivekit-agents/livekit/agents/beta/workflows/dob.py61CODE
LOWlivekit-agents/livekit/agents/beta/workflows/name.py74CODE
LOW…-agents/livekit/agents/beta/workflows/warm_transfer.py40CODE
LOWlivekit-agents/livekit/agents/voice/turn.py336CODE
LOWlivekit-agents/livekit/agents/voice/agent_session.py372CODE
LOWlivekit-agents/livekit/agents/voice/agent_activity.py1589CODE
LOWlivekit-agents/livekit/agents/voice/agent.py39CODE
LOWlivekit-agents/livekit/agents/voice/agent.py818CODE
LOWlivekit-agents/livekit/agents/voice/amd/detector.py168CODE
LOWlivekit-agents/livekit/agents/voice/amd/classifier.py106CODE
LOWlivekit-agents/livekit/agents/inference/tts.py267CODE
LOWlivekit-agents/livekit/agents/inference/tts.py286CODE
LOWlivekit-agents/livekit/agents/inference/tts.py305CODE
LOWlivekit-agents/livekit/agents/inference/tts.py324CODE
LOWlivekit-agents/livekit/agents/inference/tts.py343CODE
LOWlivekit-agents/livekit/agents/inference/tts.py362CODE
LOWlivekit-agents/livekit/agents/inference/tts.py381CODE
LOWlivekit-agents/livekit/agents/inference/tts.py400CODE
LOWlivekit-agents/livekit/agents/inference/tts.py418CODE
LOWlivekit-agents/livekit/agents/inference/avatar.py127CODE
LOWlivekit-agents/livekit/agents/inference/vad.py59CODE
LOWlivekit-agents/livekit/agents/inference/interruption.py274CODE
LOWlivekit-agents/livekit/agents/inference/stt.py424CODE
LOWlivekit-agents/livekit/agents/inference/stt.py441CODE
LOWlivekit-agents/livekit/agents/inference/stt.py458CODE
LOWlivekit-agents/livekit/agents/inference/stt.py475CODE
LOWlivekit-agents/livekit/agents/inference/stt.py492CODE
LOWlivekit-agents/livekit/agents/inference/stt.py509CODE
LOWlivekit-agents/livekit/agents/inference/stt.py526CODE
LOWlivekit-agents/livekit/agents/inference/stt.py544CODE
LOWlivekit-agents/livekit/agents/inference/stt.py561CODE
LOWlivekit-agents/livekit/agents/inference/stt.py578CODE
LOWlivekit-agents/livekit/agents/inference/stt.py594CODE
LOWlivekit-agents/livekit/agents/inference/eot/detector.py34CODE
LOW…t-plugins-smallestai/livekit/plugins/smallestai/tts.py64CODE
LOW…t-plugins-smallestai/livekit/plugins/smallestai/tts.py184CODE
LOW…t-plugins-smallestai/livekit/plugins/smallestai/stt.py110CODE
LOW…t-plugins-smallestai/livekit/plugins/smallestai/stt.py308CODE
LOW…t-plugins-smallestai/livekit/plugins/smallestai/stt.py395CODE
LOW…vekit-plugins-cerebras/livekit/plugins/cerebras/llm.py103CODE
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/tts.py460CODE
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/tts.py736CODE
LOW…plugins-sarvam/livekit/plugins/sarvam/stt_streaming.py229CODE
LOW…plugins-sarvam/livekit/plugins/sarvam/stt_streaming.py340CODE
LOW…plugins-sarvam/livekit/plugins/sarvam/stt_streaming.py539CODE
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py468CODE
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py736CODE
LOW…it-plugins-sarvam/livekit/plugins/sarvam/llm/client.py159CODE
LOW…plugins/livekit-plugins-aws/livekit/plugins/aws/tts.py60CODE
LOW…plugins/livekit-plugins-aws/livekit/plugins/aws/llm.py80CODE
LOW…plugins/livekit-plugins-aws/livekit/plugins/aws/stt.py104CODE
LOW…it/plugins/aws/experimental/realtime/realtime_model.py328CODE
128 more matches not shown…
Cross-File Repetition29 hits · 145 pts
SeverityFileLineSnippetContext
HIGHlivekit-agents/livekit/agents/vad.py0mark the end of input, no more audio will be pushedSTRING
HIGH…s/livekit/agents/voice/transcription/_speaking_rate.py0mark the end of input, no more audio will be pushedSTRING
HIGHlivekit-agents/livekit/agents/inference/interruption.py0mark the end of input, no more audio will be pushedSTRING
HIGHlivekit-agents/livekit/agents/stt/stt.py0mark the end of input, no more audio will be pushedSTRING
HIGHlivekit-agents/livekit/agents/llm/llm.py0get the provider name/identifier for this stt instance. returns: the provider name if available, "unknown" otherwise. noSTRING
HIGHlivekit-agents/livekit/agents/tts/tts.py0get the provider name/identifier for this stt instance. returns: the provider name if available, "unknown" otherwise. noSTRING
HIGHlivekit-agents/livekit/agents/stt/stt.py0get the provider name/identifier for this stt instance. returns: the provider name if available, "unknown" otherwise. noSTRING
HIGHlivekit-agents/livekit/agents/llm/fallback_adapter.py0agent fallback adapter for stt. manages multiple stt instances with automatic fallback when the primary provider fails.STRING
HIGHlivekit-agents/livekit/agents/tts/fallback_adapter.py0agent fallback adapter for stt. manages multiple stt instances with automatic fallback when the primary provider fails.STRING
HIGHlivekit-agents/livekit/agents/stt/fallback_adapter.py0agent fallback adapter for stt. manages multiple stt instances with automatic fallback when the primary provider fails.STRING
HIGHlivekit-agents/livekit/agents/llm/fallback_adapter.py0metadata of the instance that most recently served a request (the primary before any traffic).STRING
HIGHlivekit-agents/livekit/agents/tts/fallback_adapter.py0metadata of the instance that most recently served a request (the primary before any traffic).STRING
HIGHlivekit-agents/livekit/agents/stt/fallback_adapter.py0metadata of the instance that most recently served a request (the primary before any traffic).STRING
HIGH…plugins-fireworksai/livekit/plugins/fireworksai/stt.py0run a single websocket connection to baseten and make sure to reconnect when something went wrong.STRING
HIGH…livekit-plugins-gradium/livekit/plugins/gradium/stt.py0run a single websocket connection to baseten and make sure to reconnect when something went wrong.STRING
HIGH…livekit-plugins-baseten/livekit/plugins/baseten/stt.py0run a single websocket connection to baseten and make sure to reconnect when something went wrong.STRING
HIGH…s/livekit-plugins-openai/livekit/plugins/openai/tts.py0create a new instance of groq stt. ``api_key`` must be set to your groq api key, either using the argument or by settingSTRING
HIGH…s/livekit-plugins-openai/livekit/plugins/openai/llm.py0create a new instance of groq stt. ``api_key`` must be set to your groq api key, either using the argument or by settingSTRING
HIGH…plugins-openai/livekit/plugins/openai/responses/llm.py0create a new instance of groq stt. ``api_key`` must be set to your groq api key, either using the argument or by settingSTRING
HIGH…t-plugins-perplexity/livekit/plugins/perplexity/llm.py0create a new instance of groq stt. ``api_key`` must be set to your groq api key, either using the argument or by settingSTRING
HIGH…perplexity/livekit/plugins/perplexity/responses/llm.py0create a new instance of groq stt. ``api_key`` must be set to your groq api key, either using the argument or by settingSTRING
HIGH…/livekit-plugins-groq/livekit/plugins/groq/services.py0create a new instance of groq stt. ``api_key`` must be set to your groq api key, either using the argument or by settingSTRING
HIGH…livekit-plugins-baseten/livekit/plugins/baseten/llm.py0create a new instance of groq stt. ``api_key`` must be set to your groq api key, either using the argument or by settingSTRING
HIGH…lugins-elevenlabs/livekit/plugins/elevenlabs/_utils.py0create a new periodic collector that accumulates values and calls the callback after the specified duration if there areSTRING
HIGH…it-plugins-deepgram/livekit/plugins/deepgram/_utils.py0create a new periodic collector that accumulates values and calls the callback after the specified duration if there areSTRING
HIGH…ivekit-plugins-gladia/livekit/plugins/gladia/_utils.py0create a new periodic collector that accumulates values and calls the callback after the specified duration if there areSTRING
HIGH…lugins-elevenlabs/livekit/plugins/elevenlabs/_utils.py0force callback to be called with current total if non-zeroSTRING
HIGH…it-plugins-deepgram/livekit/plugins/deepgram/_utils.py0force callback to be called with current total if non-zeroSTRING
HIGH…ivekit-plugins-gladia/livekit/plugins/gladia/_utils.py0force callback to be called with current total if non-zeroSTRING
Docstring Block Structure28 hits · 140 pts
SeverityFileLineSnippetContext
HIGHlivekit-agents/livekit/agents/utils/env.py8 Resolve an environment variable from a list of potential sources. Args: val: The value to resolve. STRING
HIGHlivekit-agents/livekit/agents/utils/participant.py16 Wait for an agent participant to join the room. Args: room: The room to wait for the agent in. STRING
HIGHlivekit-agents/livekit/agents/utils/audio.py286Push an audio frame to the buffer. Args: frame: The audio frame to push. Returns: STRING
HIGHlivekit-agents/livekit/agents/voice/agent_session.py1590Commit the user turn and generate a reply. Returns a future that resolves with the user's audio transcript onceSTRING
HIGHlivekit-agents/livekit/agents/voice/run_result.py328 Access a specific event or range for assertions. Args: key (int | slice): Index or slice oSTRING
HIGHlivekit-agents/livekit/agents/voice/run_result.py678 Verify this event is a function call with matching details. Args: name (str, optional): ExSTRING
HIGHlivekit-agents/livekit/agents/voice/run_result.py714 Verify this event is a function call output with matching details. Args: output (str, optiSTRING
HIGHlivekit-agents/livekit/agents/voice/run_result.py744 Verify this event is a message from the given role. Args: role (ChatRole, optional): ExpecSTRING
HIGHlivekit-agents/livekit/agents/voice/run_result.py773 Verify this event is an agent handoff. Args: new_agent_type (type, optional): Expected newSTRING
HIGHlivekit-agents/livekit/agents/voice/run_result.py814 Assert that a function call matching criteria exists in the event range. Args: name (str, STRING
HIGHlivekit-agents/livekit/agents/voice/run_result.py847 Assert that a message matching criteria exists in the event range. Args: role (ChatRole, oSTRING
HIGHlivekit-agents/livekit/agents/voice/run_result.py880 Assert that a function call output matching criteria exists in the event range. Args: outpSTRING
HIGHlivekit-agents/livekit/agents/voice/run_result.py911 Assert that an agent handoff matching criteria exists in the event range. Args: new_agent_STRING
HIGH…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py171Validate and resolve mode for a given model. Args: model: The Sarvam model name. mode: The requesteSTRING
HIGH…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py205Validate language code for a given model. Args: model: The Sarvam model name. language: The requestSTRING
HIGH…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py615Recognize speech using Sarvam.ai API. Args: buffer: Audio buffer containing speech data STRING
HIGH…it-plugins/livekit-durable/livekit/durable/registry.py55Register a function in the in-memory function registry. When serializing a registered function, a reference to the STRING
HIGH…it-plugins/livekit-durable/livekit/durable/registry.py94Lookup a registered function by key. Args: key: Unique identifier for the function. Returns: RSTRING
HIGH…kit-plugins-protoface/livekit/plugins/protoface/api.py73Create a hosted Protoface avatar session. Args: avatar_id: Protoface avatar ID to render. STRING
HIGH…kit-plugins-protoface/livekit/plugins/protoface/api.py97Request a graceful end for a hosted Protoface session. Args: session_id: Protoface session ID returSTRING
HIGH…enai/livekit/plugins/openai/realtime/realtime_model.py415 Initialize a Realtime model client for OpenAI or Azure OpenAI. Args: model (str): RealtimeSTRING
HIGH…enai/livekit/plugins/openai/realtime/realtime_model.py586 Create a RealtimeModel configured for Azure OpenAI. Args: azure_deployment (str): Azure OpSTRING
HIGH…ekit-plugins-cambai/livekit/plugins/cambai/__init__.py36 List available voices from Camb.ai. Args: api_key: Camb.ai API key (or use CAMB_API_KEY env var). STRING
HIGH…vekit-plugins-avatario/livekit/plugins/avatario/api.py99 Make a POST request to the Avatario API with retry logic. Args: payload: JSON payload for STRING
HIGH…s/livekit-plugins-silero/livekit/plugins/silero/vad.py75 Load and initialize the Silero VAD model. This method loads the ONNX model and prepares it for inferenSTRING
HIGH…vekit-plugins-cartesia/livekit/plugins/cartesia/stt.py113 Create a new instance of Cartesia STT. Model ``ink-2`` supports: - Streaming -STRING
HIGH…ins/livekit-plugins-tavus/livekit/plugins/tavus/api.py166 Make a POST request to the Tavus API with retry logic. Args: endpoint: API endpoint path (STRING
HIGH…t-plugins-lemonslice/livekit/plugins/lemonslice/api.py211 Make a POST request to the LemonSlice API with retry logic. Args: payload: JSON payload foSTRING
Magic Placeholder Names16 hits · 82 pts
SeverityFileLineSnippetContext
HIGHexamples/README.md74LIVEKIT_API_KEY="your_api_key"CODE
HIGHexamples/other/transcription/README.md19export OPENAI_API_KEY=your-api-keyCODE
HIGHlivekit-plugins/livekit-plugins-gnani/README.md39export GNANI_API_KEY="your-api-key"CODE
HIGHlivekit-plugins/livekit-plugins-gnani/README.md45stt = STT(api_key="your-api-key", language="hi-IN")CODE
HIGHlivekit-plugins/livekit-plugins-gnani/README.md46tts = TTS(api_key="your-api-key")CODE
HIGH…enai/livekit/plugins/openai/realtime/realtime_model.py624 api_key="your-api-key",STRING
HIGH…enai/livekit/plugins/openai/realtime/realtime_model.py650 api_key="your-api-key",STRING
HIGHlivekit-plugins/livekit-plugins-cambai/README.md88 api_key="your-api-key", # Or use CAMB_API_KEY env varCODE
HIGHlivekit-plugins/livekit-plugins-fishaudio/README.md20FISH_API_KEY=<your_api_key>CODE
HIGHlivekit-plugins/livekit-plugins-did/README.md24 -H "Authorization: Basic <YOUR_API_KEY>" \CODE
HIGHlivekit-plugins/livekit-plugins-did/README.md24 -H "Authorization: Basic <YOUR_API_KEY>" \CODE
HIGHlivekit-plugins/livekit-plugins-gladia/README.md35 api_key="your-api-key-here", # or use GLADIA_API_KEY env varCODE
HIGHlivekit-plugins/livekit-plugins-gladia/README.md96 api_key="your-api-key-here",CODE
HIGHlivekit-plugins/livekit-plugins-resemble/README.md30 api_key="your_api_key", # or set RESEMBLE_API_KEY environment variableCODE
HIGHlivekit-plugins/livekit-plugins-resemble/README.md73 api_key="your_api_key",CODE
HIGHlivekit-plugins/livekit-plugins-resemble/README.md105 api_key="your_api_key",CODE
Self-Referential Comments16 hits · 50 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_convert_html_docs.py299 # Create a path that would have .. in relative partsCOMMENT
MEDIUMtests/concurrency.py924 # This module is loaded as a *global* plugin (`-p tests.concurrency` in pyproject), not viaCOMMENT
MEDIUMtests/test_drain_timeout.py121 # Create a fake proc whose join() never completes (stuck process)COMMENT
MEDIUMtests/test_speaker_id_grouping.py34 # Create a SpeakerSpeechData object and get formatted textCOMMENT
MEDIUMlivekit-agents/livekit/agents/voice/agent_activity.py821 # Create a wrapper coroutine that runs in the captured contextCOMMENT
MEDIUMlivekit-agents/livekit/agents/telemetry/http_server.py22 # Create a new registry for this request to collect metrics from all processesCOMMENT
MEDIUM…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py852 # Create a fresh session for this stream to avoid conflictsCOMMENT
MEDIUM…it/plugins/aws/experimental/realtime/realtime_model.py598 # Create main task to manage session lifecycleCOMMENT
MEDIUM…/livekit-plugins-krisp/examples/krisp_agent_example.py87 # Create the Krisp voice isolation FrameProcessor.COMMENT
MEDIUM…ivekit-plugins-krisp/examples/krisp_minimal_example.py41 # Create the frame processor with explicit license auth (no frameworkCOMMENT
MEDIUM…ivekit-plugins-krisp/examples/krisp_minimal_example.py52 # Create a test audio frame (10ms @ 16kHz = 160 samples)COMMENT
MEDIUM…ugins-speechmatics/livekit/plugins/speechmatics/stt.py392 # Create the streamCOMMENT
MEDIUM…ugins-speechmatics/livekit/plugins/speechmatics/stt.py647 # Create the Voice Agent clientCOMMENT
MEDIUM…s/livekit-plugins-gladia/livekit/plugins/gladia/stt.py440 # Create a speech event from the collected final utterancesCOMMENT
MEDIUM…s/livekit-plugins-google/livekit/plugins/google/stt.py78# This class is only be used internally to encapsulate the optionsCOMMENT
MEDIUM…plugins-simplismart/livekit/plugins/simplismart/stt.py292 # Create a fresh session for this stream to avoid conflictsCOMMENT
Hallucination Indicators4 hits · 40 pts
SeverityFileLineSnippetContext
CRITICAL…s/livekit-plugins-openai/livekit/plugins/openai/tts.py257 oai_stream = self._tts._client.audio.speech.with_streaming_response.create(CODE
CRITICAL…kit-plugins-mistralai/livekit/plugins/mistralai/tts.py156 stream = await self._tts._client.audio.speech.complete_async(CODE
CRITICAL…kit-plugins-mistralai/livekit/plugins/mistralai/tts.py165 stream = await self._tts._client.audio.speech.complete_async(CODE
CRITICAL…ugins-google/livekit/plugins/google/beta/gemini_tts.py214 response = await self._tts._client.aio.models.generate_content_stream(CODE
Fake / Example Data36 hits · 38 pts
SeverityFileLineSnippetContext
LOWtests/test_ipc.py121 token="fake_token",CODE
LOWtests/test_plugin_soniox_tts.py105 tts = soniox.TTS(api_key="fake-key", **tts_kwargs)CODE
LOWtests/test_plugin_soniox_tts.py171 soniox.TTS(api_key="fake-key", stream_idle_timeout=0)CODE
LOWtests/test_plugin_soniox_tts.py173 soniox.TTS(api_key="fake-key", stream_idle_timeout=-1.0)CODE
LOWtests/test_plugin_google_realtime.py67 monkeypatch.setenv("GOOGLE_API_KEY", "fake-key")CODE
LOWtests/test_plugin_google_realtime.py83 monkeypatch.setenv("GOOGLE_API_KEY", "fake-key")CODE
LOWtests/test_plugin_google_realtime.py508 monkeypatch.setenv("GOOGLE_API_KEY", "fake-key")CODE
LOWtests/test_plugin_google_realtime.py524 monkeypatch.setenv("GOOGLE_API_KEY", "fake-key")CODE
LOWtests/test_plugin_openai_stt_context.py260 instance._update_session_keyterms(["billing", "Acme Corp"])CODE
LOWtests/test_plugin_openai_stt_context.py264 assert instance._opts.keywords == ["AC-42", "billing", "Acme Corp"]CODE
LOWtests/test_plugin_openai_stt_context.py265 assert _sent_transcription(ws)["keywords"] == ["AC-42", "billing", "Acme Corp"]CODE
LOWtests/test_plugin_openai_stt_context.py280 instance.update_options(keywords=["Acme Corp"], prompt="a support call")CODE
LOWtests/test_plugin_openai_stt_context.py282 assert _sent_transcription(ws)["keywords"] == ["Acme Corp"]CODE
LOWtests/test_plugin_openai_stt_context.py395 instance._update_session_keyterms(["Acme Corp"])CODE
LOWtests/test_plugin_openai_stt_context.py407 instance._update_session_keyterms(["Acme Corp"])CODE
LOWtests/test_plugin_openai_stt_context.py567 instance.update_options(keywords=["Acme Corp"])CODE
LOWtests/test_plugin_openai_stt_context.py572 assert [_transcription_of(p).get("keywords") for p in ws.sent] == [[], ["Acme Corp"]]CODE
LOWtests/test_plugin_openai_stt_context.py585 instance.update_options(keywords=["Acme Corp"])CODE
LOWtests/test_plugin_openai_stt_context.py591 assert _sent_transcription(ws)["keywords"] == ["Acme Corp"]CODE
LOWtests/test_plugin_openai_stt_context.py676 instance.update_options(keywords=["Acme Corp"])CODE
LOWtests/test_plugin_openai_stt_context.py689 instance.update_options(keywords=["Acme Corp"])CODE
LOWtests/test_plugin_openai_stt_context.py691 assert pinned._opts.keywords == ["Acme Corp"] # the rest still reaches itCODE
LOWtests/test_plugin_openai_stt_context.py709 instance._update_session_keyterms(["Acme Corp"])CODE
LOWtests/test_plugin_openai_stt_context.py713 assert config["keywords"] == ["Acme Corp"]CODE
LOWtests/test_plugin_openai_stt_context.py602 ({"keywords": ["Acme Corp"]}, 1), # a session.update on acquire carries this oneCODE
LOWtests/test_recording.py532 assert serialized_stt_options["lk.pii.keyterms"] == ["Acme Corp"]CODE
LOWtests/test_recording.py534 assert stt_context_options["keyterms"] == ["Acme Corp"]CODE
LOWtests/test_recording.py517 "keyterms": ["Acme Corp"],CODE
LOWtests/test_stt_context.py182 d = _detector(static_keyterms=["Acme Corp"], llm=fake)CODE
LOWtests/test_stt_context.py188 assert "Acme Corp" in applied_sectionCODE
LOWexamples/hotel_receptionist/README.md11uv run examples/hotel_receptionist/fake_data/seed.pyCODE
LOWexamples/hotel_receptionist/README.md17`fake_data/seed.py` prints sample confirmation codes you can use to tryCODE
LOWexamples/hotel_receptionist/README.md30fake_data/seed.py — manual seed script (writes fake_data/hotel.db)CODE
LOWexamples/hotel_receptionist/agent.py17from fake_data.seed import build_seed_bytesCODE
LOWexamples/hotel_receptionist/fake_data/seed.py3python fake_data/seed.py [path/to/hotel.db] # write a seed file (for inspection)STRING
LOW…vekit-agents/livekit/agents/voice/keyterm_detection.py69 "keyterms": ["LiveKit", "Acme Corp"],STRING
Verbosity Indicators17 hits · 29 pts
SeverityFileLineSnippetContext
LOW…it/plugins/aws/experimental/realtime/realtime_model.py689 # Step 1: Wait for assistant to finish speaking (AUDIO contentEnd with END_TURN)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py698 # Step 2: Wait for audio to fully stop (no new audio for 1 second)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py712 # Step 3: Send close events to trigger completionEnd from Nova SonicCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py719 # Step 4: Wait for completionEnd and let _done_fut resolveCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py740 # Step 1: Drain any pending tool resultsCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py754 # Step 2: Signal tasks to stopCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py757 # Step 3: Wait for response task to exit naturally, then cancel if neededCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py771 # Step 4: Cancel audio input task (blocked on channel, won't exit naturally)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py779 # Step 5: Close the stream (close events already sent in _session_recycle_timer)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py787 # Step 6: Reset state for new sessionCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1022 # Step 1: Send session init events (session start, prompt start, system prompt)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1030 # Step 2: Send history events with small delays between themCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1035 # Step 3: Start response reader first (calls await_output, sets _stream_ready)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1040 # Step 4: Start audio input (waits for _stream_ready before sending audio_content_start)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1045 # Step 5: Allow audio contentStart to be sent before unblockingCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1051 # Step 6: If we popped a user message from history, send it asCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py801 # Step 7: Start new session with preserved stateCOMMENT
Structural Annotation Overuse17 hits · 29 pts
SeverityFileLineSnippetContext
LOW…it/plugins/aws/experimental/realtime/realtime_model.py689 # Step 1: Wait for assistant to finish speaking (AUDIO contentEnd with END_TURN)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py698 # Step 2: Wait for audio to fully stop (no new audio for 1 second)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py712 # Step 3: Send close events to trigger completionEnd from Nova SonicCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py719 # Step 4: Wait for completionEnd and let _done_fut resolveCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py740 # Step 1: Drain any pending tool resultsCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py754 # Step 2: Signal tasks to stopCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py757 # Step 3: Wait for response task to exit naturally, then cancel if neededCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py771 # Step 4: Cancel audio input task (blocked on channel, won't exit naturally)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py779 # Step 5: Close the stream (close events already sent in _session_recycle_timer)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py787 # Step 6: Reset state for new sessionCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1022 # Step 1: Send session init events (session start, prompt start, system prompt)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1030 # Step 2: Send history events with small delays between themCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1035 # Step 3: Start response reader first (calls await_output, sets _stream_ready)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1040 # Step 4: Start audio input (waits for _stream_ready before sending audio_content_start)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1045 # Step 5: Allow audio contentStart to be sent before unblockingCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1051 # Step 6: If we popped a user message from history, send it asCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py801 # Step 7: Start new session with preserved stateCOMMENT
Redundant / Tautological Comments17 hits · 25 pts
SeverityFileLineSnippetContext
LOWlivekit-agents/livekit/agents/ipc/log_queue.py95 # Check if Python is shutting downCOMMENT
LOWlivekit-agents/livekit/agents/telemetry/http_server.py20 # Check if multiprocess mode is enabledCOMMENT
LOWlivekit-agents/livekit/agents/telemetry/traces.py344 # Check if a tracer provider is not set and set one upCOMMENT
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py1186 # Check if session is still validCOMMENT
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py1243 # Check if reconnection was requestedCOMMENT
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py1337 # Check if we have enough data for a chunkCOMMENT
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py1384 # Check if Sarvam VAD triggered flushCOMMENT
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py1664 # Set flag to trigger flush when Sarvam detects end of speechCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1417 # Check if this is END_TURN (assistant finished speaking)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1836 # Check if this is an audio message (already transcribed by Nova)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py2144 # Check if generate_reply is supported (requires mixed modalities)COMMENT
LOW…it-plugins-bithuman/livekit/plugins/bithuman/avatar.py70 # Check if string is empty after cleaningCOMMENT
LOW…it-plugins-bithuman/livekit/plugins/bithuman/avatar.py79 # Check if string contains only valid base64 charactersCOMMENT
LOW…ugins-speechmatics/livekit/plugins/speechmatics/stt.py514 # Check if diarization is enabledCOMMENT
LOW…ox/livekit/plugins/ultravox/realtime/realtime_model.py758 # Check if restart is neededCOMMENT
LOW…ox/livekit/plugins/ultravox/realtime/realtime_model.py794 # Check if restart is neededCOMMENT
LOW…ox/livekit/plugins/ultravox/realtime/realtime_model.py1158 # Check if we have a current generation before processing audioCOMMENT
Modern AI Meta-Vocabulary7 hits · 20 pts
SeverityFileLineSnippetContext
MEDIUMexamples/drive_thru/database.py634 # explicitely saying there is no `size` for this item, otherwise the LLM seems to hallucinate quite oftenCOMMENT
MEDIUM…mples/homepage/tests/evals/test_knowledge_grounding.py200# 3. Anti-hallucination: absent or contradicted facts are not fabricated.COMMENT
MEDIUMexamples/voice_agents/README.md39### RAG & Knowledge ManagementCOMMENT
MEDIUMexamples/voice_agents/llamaindex-rag/README.md1# RAG Example using LlamaIndexCOMMENT
MEDIUM…kit-plugins-anthropic/livekit/plugins/anthropic/llm.py306 self._ignoring_cot = False # ignore chain of thoughtCODE
MEDIUMlivekit-plugins/livekit-plugins-mistralai/README.md72# Using zero-shot voice cloningCOMMENT
MEDIUM…s/livekit-plugins-soniox/livekit/plugins/soniox/tts.py657 # Empty text would make the server hallucinate audio; handle the two cases locally.COMMENT
AI Slop Vocabulary6 hits · 13 pts
SeverityFileLineSnippetContext
MEDIUMexamples/data_capture_sim/agent.py21# Simulation harness for the beta data-capture workflows. Every capture runsCOMMENT
LOWexamples/other/chat-stream-receiver.py79 # in cli we don't actually overwrite the line, just add a flagCOMMENT
MEDIUMlivekit-agents/livekit/agents/voice/tool_executor.py230 # the confirm flag is harness state, not an argumentCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py637 # Static credentials - just use the max session durationCOMMENT
MEDIUM…google/livekit/plugins/google/realtime/realtime_api.py1581 # TODO(dz): this isn't a seamless reconnection just yetCOMMENT
LOW…ox/livekit/plugins/ultravox/realtime/realtime_model.py821 # If we're already closing due to send loop shutdown, just returnCOMMENT
Dead Code4 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_agent_session.py1612CODE
MEDIUMtests/test_agent_session.py1683CODE
MEDIUM…it/plugins/aws/experimental/realtime/realtime_model.py2155CODE
MEDIUM…it/plugins/aws/experimental/realtime/realtime_model.py2159CODE
Slop Phrases3 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUMexamples/healthcare/agent.py93 - Assistant: I'm unable to help with that, would you like to speak to a human agent?STRING
MEDIUMexamples/warm-transfer/warm_transfer.py47 - Assistant: I'm unable to help with that, would you like to speak to a human agent?STRING
LOW…t-plugins-assemblyai/livekit/plugins/assemblyai/stt.py687 # the recv task will then make sure to process the remaining audio and stopCOMMENT
Overly Generic Function Names1 hit · 0 pts
SeverityFileLineSnippetContext
LOWlivekit-agents/livekit/agents/utils/deprecation.py32 ... def my_function(old_param: NotGivenOr[int] = NOT_GIVEN, new_param: int = 0):STRING