AI Slop Code RIsk Monitor

livekit/agents

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

34.9 High pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for livekit/agents, a Python project with 14,686 GitHub stars. SynthScan examined 313,842 lines of code across 1382 source files, recording 8231 pattern matches distributed across 24 syntactic categories. The legacy adjusted pattern signal is 34.9 (High pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

34.9
Adjusted Signal
34.9
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
14.7K
Stars
Python
Language
313.8K
Lines of Code
1.4K
Files
8.2K
Pattern Hits
2026-10-12
Scan Date
0.42
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 54.0/100 · HIGH

Can maintainers explain intent, assumptions, and trade-offs? 5038 finding(s).

Hallucinated Dependency & Supply Chain Risk 43.2/100 · MEDIUM

Are imports declared and package/API names verified? 1916 finding(s).

Agent Over-Engineering Ratio 64.2/100 · HIGH

Are wrappers, guards, and repeated structures necessary? 5490 finding(s).

PR Review Velocity Impact 84.6/100 · CRITICAL

Which changes need focused human review? 8231 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 5HIGH 577MEDIUM 288LOW 7361

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 8231 distinct pattern matches across 24 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hyper-Verbose Identifiers4011 hits · 3717 pts
SeverityFileLineSnippetContext
LOWtests/test_e2e_latency_handoff.py92async def test_speech_before_handoff_answers_the_turn() -> None:CODE
LOWtests/test_e2e_latency_handoff.py118async def test_tool_reply_before_handoff_answers_the_turn() -> None:CODE
LOWtests/test_e2e_latency_handoff.py145async def test_say_in_on_enter_answers_the_turn() -> None:CODE
LOWtests/test_e2e_latency_handoff.py179async def test_concurrent_on_enter_speeches_answer_once() -> None:CODE
LOWtests/test_e2e_latency_handoff.py213async def test_unstored_say_in_on_enter_still_answers_the_turn() -> None:CODE
LOWtests/test_e2e_latency_handoff.py296async def test_task_spawned_in_on_enter_speaks_after_the_turn() -> None:CODE
LOWtests/test_e2e_latency_handoff.py330async def test_new_user_turn_supersedes_the_handoff_turn() -> None:CODE
LOWtests/test_e2e_latency_handoff.py371async def test_inline_task_in_tool_answers_each_turn() -> None:CODE
LOWtests/test_e2e_latency_handoff.py425async def test_silent_tool_ends_the_turn() -> None:CODE
LOWtests/test_e2e_latency_handoff.py447async def test_silent_on_enter_ends_the_turn() -> None:CODE
LOWtests/test_e2e_latency_handoff.py476async def test_reply_after_awaited_task_in_on_enter_answers_the_last_turn() -> None:CODE
LOWtests/test_e2e_latency_handoff.py530async def test_turn_committed_during_on_enter_survives_its_end() -> None:CODE
LOW⚡tests/test_plugin_inworld_tts.py18async def test_delivery_mode_default_not_given():CODE
LOW⚡tests/test_plugin_inworld_tts.py25async def test_delivery_mode_set_on_init():CODE
LOW⚡tests/test_plugin_inworld_tts.py32async def test_delivery_mode_accepts_all_documented_values():CODE
LOW⚡tests/test_plugin_inworld_tts.py40async def test_delivery_mode_rejects_unknown_value():CODE
LOW⚡tests/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
LOW⚡tests/test_inference_avatar.py91 def test_image_url_and_model_id_conflict_raises(self) -> None:CODE
LOW⚡tests/test_inference_avatar.py99 def test_extra_kwargs_is_copied(self) -> None:CODE
LOW⚡tests/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_plugin_google_tts_stream_close.py17async def test_input_gen_close_does_not_mask_api_error() -> None:CODE
LOWtests/test_plugin_google_tts_stream_close.py24 async def fake_streaming_synthesize(input_gen, timeout=None): # noqa: ANN001CODE
LOW⚡tests/test_audio_recognition_turn_detection.py52def _make_full_recognition_for_eou() -> AudioRecognition:CODE
LOW⚡tests/test_audio_recognition_turn_detection.py142 def test_non_specific_language_does_not_replace_concrete_language(self) -> None:CODE
LOW⚡tests/test_audio_recognition_turn_detection.py150 def test_non_specific_language_does_not_initialize_language(self) -> None:CODE
LOW⚡tests/test_audio_recognition_turn_detection.py158 def test_concrete_language_still_updates_after_long_transcript(self) -> None:CODE
LOW⚡tests/test_audio_recognition_turn_detection.py663 def test_low_min_silence_with_audio_detector_raises(self) -> None:CODE
LOW⚡tests/test_audio_recognition_turn_detection.py671 def test_adequate_min_silence_passes(self) -> None:CODE
LOW⚡tests/test_audio_recognition_turn_detection.py678 def test_non_audio_detector_skips(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py189 async def test_sos_during_bounce_cancels_commit(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py254 async def test_stale_spike_does_not_block_next_commit(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py275 async def test_vad_then_stt_emits_eot_prediction_once(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py313 async def test_text_detector_emits_every_bounce(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py344 async def test_clear_user_turn_allows_next_turn_to_emit(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py384 async def test_emits_with_eot_context_when_turn_continues(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py402 async def test_emits_with_eot_context_when_turn_ends(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py419 async def test_no_emit_below_threshold(self) -> None:CODE
3951 more matches not shown…
Cross-Language Confusion361 hits · 2008 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.py122 audio_input.push(0.1)CODE
HIGH⚡tests/test_tokenizer_xml_markup.py773 out = s.push("Hi <emo")CODE
HIGH⚡tests/test_tokenizer_xml_markup.py774 out += s.push('tion value="happy"/> the')CODE
HIGH⚡tests/test_tokenizer_xml_markup.py775 out += s.push("re")CODE
HIGH⚡tests/test_tokenizer_xml_markup.py789 first = s.push("Read [the docs](https:")CODE
HIGH⚡tests/test_tokenizer_xml_markup.py791 rest = s.push("//docs.livekit.io) now.") + s.flush()CODE
HIGH⚡tests/test_tokenizer_xml_markup.py799 first = s.push("The value 3 < 5 ")CODE
HIGH⚡tests/test_tokenizer_xml_markup.py801 rest = s.push("is true.") + s.flush()CODE
HIGH⚡tests/test_recorder_io.py316 track.push(2.0, _loud(100))CODE
HIGH⚡tests/test_recorder_io.py326 track.push(0.0, _loud(100))CODE
HIGH⚡tests/test_recorder_io.py327 track.push(0.5, _loud(100))CODE
HIGH⚡tests/test_recorder_io.py338 track.push(0.5, _loud(100))CODE
HIGH⚡tests/test_recorder_io.py346 track.push(0.0, _loud(100))CODE
HIGH⚡tests/test_recorder_io.py347 track.push(0.1, _loud(100)) # contiguous, extends the runCODE
HIGH⚡tests/test_recorder_io.py348 track.push(5.0, _loud(100)) # beyond tolerance, anchors on its own timestampCODE
HIGH⚡tests/test_recorder_io.py355 track.push(1.0, _loud(2400, sample_rate=24000)) # 100ms at 24kHzCODE
HIGH⚡tests/test_recorder_io.py356 track.push(9.0, _loud(2400, sample_rate=24000)) # a new run, so the first one is completeCODE
HIGH⚡tests/test_recorder_io.py367 track.push(1.0, _loud(2400, sample_rate=24000)) # 100ms at 24kHzCODE
HIGH⚡tests/test_recorder_io.py377 track.push(0.0, _loud(100))CODE
HIGH⚡tests/test_recorder_io.py379 track.push(0.15, _loud(100)) # the 50ms gap is below the drift toleranceCODE
HIGH⚡tests/test_recorder_io.py386 track.push(1.0, _loud(2400, sample_rate=24000))CODE
HIGH⚡tests/test_recorder_io.py399 track.push(i * 0.05, _loud(1200, sample_rate=24000))CODE
HIGH⚡tests/test_recorder_io.py406 track.push(0.5, _loud(1200, sample_rate=24000))CODE
HIGH⚡tests/test_recorder_io.py416 track.push(i * 0.05, _loud(1200, sample_rate=24000))CODE
HIGH⚡tests/test_recorder_io.py433 track.push(0.0, _loud(4800, sample_rate=48000)) # recording rate, so no resamplerCODE
HIGH⚡tests/test_recorder_io.py439 track.push(0.0, _loud(100, channels=2))CODE
HIGH⚡tests/test_expr_markup.py228 out += stripper.push(chunk)CODE
HIGH⚡tests/test_expr_markup.py268 out = "".join(stripper.push(c) for c in chunks) + stripper.flush()CODE
HIGH⚡tests/test_expr_markup.py276 out = "".join(stripper.push(c) for c in ["Right. ", " Anyway."]) + stripper.flush()CODE
HIGH⚡tests/test_expr_markup.py283 out = "".join(stripper.push(c) for c in chunks) + stripper.flush()CODE
HIGH⚡tests/test_expr_markup.py546 assert "".join(stripper.push(c) for c in chunks) + stripper.flush() == "Hi there!"CODE
HIGH⚡tests/test_expr_markup.py561 assert "".join(stripper.push(c) for c in chunks) + stripper.flush() == "Hi there."CODE
HIGH⚡tests/test_expr_markup.py568 assert "".join(stripper.push(c) for c in chunks) + stripper.flush() == "Hi there. Lovely day."CODE
HIGH⚡tests/test_expr_markup.py598 out = "".join(stripper.push(c) for c in chunks) + stripper.flush()CODE
HIGH⚡tests/test_expr_markup.py606 assert "".join(stripper.push(c) for c in chunks) + stripper.flush() == "Hi there."CODE
HIGH⚡tests/test_tts.py831 emitter_stream.push(pcm_chunk)CODE
HIGH⚡tests/test_tts.py833 emitter_stream.push(pcm_chunk)CODE
HIGH⚡tests/test_tts.py838 emitter_stream.push(pcm_chunk)CODE
HIGH⚡tests/test_tts.py839 emitter_stream.push(pcm_chunk)CODE
HIGH⚡tests/test_tts.py875 emitter_multi.push(pcm_chunk)CODE
HIGH⚡tests/test_tts.py877 emitter_multi.push(pcm_chunk)CODE
HIGH⚡tests/test_tts.py879 emitter_multi.push(pcm_chunk)CODE
HIGHtests/test_tts.py906 emitter_nostream.push(pcm_chunk)CODE
HIGHtests/test_tts.py907 emitter_nostream.push(pcm_chunk)CODE
HIGHtests/test_tts.py934 emitter_noflush.push(pcm_chunk)CODE
HIGHtests/test_tts.py959 emitter_noflush.push(pcm_chunk)CODE
HIGHtests/test_tts.py1026 emitter.push(wav_bytes)CODE
HIGHtests/test_tts.py1031 emitter.push(wav_bytes)CODE
HIGHtests/test_tts.py1067 emitter2.push(wav_bytes)CODE
HIGHtests/test_tts.py1095 emitter3.push(b"\xff\xff" * 100)CODE
HIGHtests/test_plugin_soniox_tts.py199 slot.emitter.push(_SILENCE_PCM)CODE
HIGHtests/test_coverage_spans.py136 audio_input.push(0.1)CODE
HIGH⚡tests/test_playback_progress.py112 await h.push(0.08) # 50 ms out; 30 ms waits, for nowCODE
HIGH⚡tests/test_playback_progress.py126 await h.push(0.08) # 50 ms out, 30 ms heldCODE
HIGH⚡tests/test_playback_progress.py130 await h.push(0.08) # 30 + 80 ms: two frames out, 10 ms heldCODE
HIGH⚡tests/test_playback_progress.py143 await h.push(0.01)CODE
HIGH⚡tests/test_playback_progress.py148 await h.push(0.04)CODE
301 more matches not shown…
Unused Imports1485 hits · 1358 pts
SeverityFileLineSnippetContext
LOWtests/test_e2e_latency_handoff.py1CODE
LOWtests/test_plugin_inworld_tts.py3CODE
LOWtests/test_inference_avatar.py10CODE
LOWtests/test_plugin_google_tts_stream_close.py1CODE
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_plugin_azure_realtime.py3CODE
LOWtests/test_ipc.py1CODE
LOWtests/test_tokenizer_xml_markup.py7CODE
LOWtests/fake_vad.py1CODE
LOWtests/test_startup_spans.py9CODE
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_keyterm_detection_span.py5CODE
LOWtests/test_tool_output_per_call.py7CODE
LOWtests/test_realtime_input_speech_interrupt.py1CODE
LOWtests/test_trace_types_pii.py17CODE
LOWtests/test_turn_detection_cloud_stream.py13CODE
LOWtests/test_telemetry_recording_disabled.py10CODE
LOWtests/test_agent_session.py1CODE
LOWtests/test_loop_monitor.py7CODE
LOWtests/test_playout_launch_pause.py1CODE
LOWtests/conftest.py18CODE
LOWtests/conftest.py18CODE
LOWtests/lk_server.py8CODE
LOWtests/test_filler.py1CODE
LOWtests/test_running_tool_placeholders.py1CODE
LOWtests/test_disallow_interruptions_pause.py1CODE
LOWtests/test_amd_classifier.py8CODE
LOWtests/test_inference_stt_aligned_transcript_claim.py11CODE
LOWtests/test_tts.py1CODE
LOWtests/test_realtime_overlapping_speech.py5CODE
LOWtests/test_plugin_soniox_tts.py11CODE
LOWtests/test_judge.py1CODE
LOWtests/fake_io.py1CODE
LOWtests/test_trace_schema.py4CODE
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_simplismart_stt.py1CODE
LOWtests/test_plugin_fishaudio_tts.py3CODE
LOWtests/test_plugin_rime_tts.py3CODE
LOWtests/test_cli_console_output.py5CODE
LOWtests/test_cli_exit.py21CODE
LOWtests/test_convert_html_docs.py3CODE
LOWtests/test_personaplex_realtime_model.py3CODE
1425 more matches not shown…
Decorative Section Separators212 hits · 760 pts
SeverityFileLineSnippetContext
MEDIUM⚡tests/test_audio_recognition_turn_detection.py47# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_audio_recognition_turn_detection.py49# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_audio_recognition_handoff.py41# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_audio_recognition_handoff.py43# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_audio_recognition_handoff.py160# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_audio_recognition_handoff.py162# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_audio_recognition_handoff.py207# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_audio_recognition_handoff.py209# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_tokenizer_xml_markup.py19# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_tokenizer_xml_markup.py21# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_tokenizer_xml_markup.py112# ===========================================================================COMMENT
MEDIUM⚡tests/test_tokenizer_xml_markup.py114# ===========================================================================COMMENT
MEDIUM⚡tests/test_tokenizer_xml_markup.py510# ===========================================================================COMMENT
MEDIUM⚡tests/test_tokenizer_xml_markup.py512# ===========================================================================COMMENT
MEDIUM⚡tests/test_tokenizer_xml_markup.py577# ===========================================================================COMMENT
MEDIUM⚡tests/test_tokenizer_xml_markup.py579# ===========================================================================COMMENT
MEDIUM⚡tests/test_tokenizer_xml_markup.py731# ===========================================================================COMMENT
MEDIUM⚡tests/test_tokenizer_xml_markup.py733# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py58# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py60# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py664# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py666# ===========================================================================COMMENT
MEDIUM⚡tests/test_plugin_assemblyai_stt.py93# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_plugin_assemblyai_stt.py101# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_plugin_assemblyai_stt.py323# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_plugin_assemblyai_stt.py330# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_plugin_assemblyai_stt.py464# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_plugin_assemblyai_stt.py466# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_plugin_assemblyai_stt.py796# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_plugin_assemblyai_stt.py805# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_plugin_assemblyai_stt.py1391# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_plugin_assemblyai_stt.py1400# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_plugin_assemblyai_stt.py1684# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_plugin_assemblyai_stt.py1692# ---------------------------------------------------------------------------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.py555# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py563# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py634# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py641# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py976# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py988# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py1602# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py1613# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_recorder_io.py304# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_recorder_io.py306# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_recorder_io.py446# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_recorder_io.py448# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_recorder_io.py46# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_recorder_io.py48# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_expr_markup.py87# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_expr_markup.py89# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_expr_markup.py105# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_expr_markup.py107# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_expr_markup.py160# ---------------------------------------------------------------------------COMMENT
MEDIUM⚡tests/test_expr_markup.py162# ---------------------------------------------------------------------------COMMENT
152 more matches not shown…
Empty Error Handlers129 hits · 645 pts
SeverityFileLineSnippetContext
HIGHtests/conftest.py316except Exception:CODE
HIGHtests/test_filler.py59except (asyncio.CancelledError, Exception):CODE
HIGHtests/test_tts.py112except av.InvalidDataError:CODE
HIGHtests/concurrency.py342except Exception: # pragma: no cover - best effort flushCODE
HIGHtests/concurrency.py380except Exception: # pragma: no coverCODE
HIGHtests/test_audio_recognition_aclose.py108except asyncio.CancelledError:CODE
HIGHtests/test_audio_recognition_aclose.py93except asyncio.CancelledError:CODE
HIGHtests/test_vad.py149except asyncio.CancelledError:CODE
HIGHtests/test_worker_config.py45except SystemExit:CODE
HIGHtests/test_meta_stt.py83except (json.JSONDecodeError, TypeError):CODE
HIGHtests/test_plugin_soniox_stt.py336except BaseException:CODE
HIGHtests/test_plugin_soniox_stt.py334except BaseException:CODE
HIGHtests/utils/audio_test.py82except (asyncio.CancelledError, Exception):CODE
HIGHtests/utils/audio_test.py154except (asyncio.CancelledError, Exception):CODE
HIGHexamples/homepage/behaviors/scripted_callers.py82except RuntimeError:CODE
HIGHexamples/hotel_receptionist/ui_view.py70except Exception:CODE
HIGHexamples/frontdesk/agent.py193except RuntimeError:CODE
HIGHexamples/frontdesk/agent.py179except RuntimeError:CODE
HIGHexamples/primitives/echo-agent.py95except asyncio.QueueEmpty:CODE
HIGH.github/download_stats.py53except Exception:CODE
HIGHlivekit-agents/livekit/agents/evals/evaluation.py198except RuntimeError:CODE
HIGHlivekit-agents/livekit/agents/llm/llm.py192except Exception:CODE
HIGH…gents/livekit/agents/llm/_provider_format/anthropic.py81except (json.JSONDecodeError, TypeError):CODE
HIGHlivekit-agents/livekit/agents/utils/aio/itertools.py118except Exception:CODE
HIGHlivekit-agents/livekit/agents/utils/aio/itertools.py124except Exception:CODE
HIGHlivekit-agents/livekit/agents/cli/readchar.py185except Exception:CODE
HIGHlivekit-agents/livekit/agents/cli/cli.py279except Exception:CODE
HIGHlivekit-agents/livekit/agents/cli/cli.py416except _ExitCli:CODE
HIGHlivekit-agents/livekit/agents/cli/cli.py446except _ExitCli:CODE
HIGHlivekit-agents/livekit/agents/cli/cli.py459except Exception:CODE
HIGHlivekit-agents/livekit/agents/cli/cli.py285except Exception:CODE
HIGHlivekit-agents/livekit/agents/cli/cli.py466except Exception:CODE
HIGHlivekit-agents/livekit/agents/cli/watcher.py96except (asyncio.IncompleteReadError, ConnectionError, OSError):CODE
HIGHlivekit-agents/livekit/agents/cli/_legacy.py704except RuntimeError:CODE
HIGHlivekit-agents/livekit/agents/cli/_legacy.py1627except _ExitCli:CODE
HIGHlivekit-agents/livekit/agents/cli/_legacy.py1637except Exception:CODE
HIGHlivekit-agents/livekit/agents/cli/_legacy.py1596except Exception:CODE
HIGHlivekit-agents/livekit/agents/voice/agent_session.py1387except RuntimeError:CODE
HIGHlivekit-agents/livekit/agents/voice/agent_activity.py1379except Exception:CODE
HIGHlivekit-agents/livekit/agents/voice/agent_activity.py2001except TypeError:CODE
HIGHlivekit-agents/livekit/agents/voice/filler_scheduler.py79except asyncio.TimeoutError:CODE
HIGHlivekit-agents/livekit/agents/voice/remote_session.py143except utils.aio.ChanClosed:CODE
HIGHlivekit-agents/livekit/agents/voice/remote_session.py449except asyncio.CancelledError:CODE
HIGHlivekit-agents/livekit/agents/voice/remote_session.py1019except asyncio.CancelledError:CODE
HIGHlivekit-agents/livekit/agents/voice/remote_session.py181except (ValueError, AttributeError):CODE
HIGHlivekit-agents/livekit/agents/voice/remote_session.py247except (ConnectionError, OSError):CODE
HIGHlivekit-agents/livekit/agents/voice/remote_session.py712except Exception:CODE
HIGHlivekit-agents/livekit/agents/voice/remote_session.py771except RuntimeError:CODE
HIGHlivekit-agents/livekit/agents/voice/events.py268except Exception:CODE
HIGHlivekit-agents/livekit/agents/voice/background_audio.py320except RuntimeError:CODE
HIGHlivekit-agents/livekit/agents/voice/room_io/room_io.py230except ValueError:CODE
HIGHlivekit-agents/livekit/agents/voice/amd/detector.py562except RuntimeError:CODE
HIGHlivekit-agents/livekit/agents/inference/interruption.py1005except asyncio.CancelledError:CODE
HIGHlivekit-agents/livekit/agents/inference/_utils.py143except RuntimeError:CODE
HIGH…ekit-agents/livekit/agents/inference/eot/transports.py153except aio.ChanClosed:CODE
HIGHlivekit-agents/livekit/agents/ipc/proc_pool.py261except asyncio.CancelledError:CODE
HIGHlivekit-agents/livekit/agents/ipc/proc_client.py79except KeyboardInterrupt:CODE
HIGHlivekit-agents/livekit/agents/ipc/proc_client.py265except Exception:CODE
HIGHlivekit-agents/livekit/agents/ipc/proc_client.py74except KeyboardInterrupt:CODE
HIGH…vekit-agents/livekit/agents/ipc/job_thread_executor.py282except asyncio.TimeoutError:CODE
69 more matches not shown…
Excessive Try-Catch Wrapping581 hits · 608 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py316 except Exception:CODE
LOWtests/conftest.py337 except Exception:CODE
MEDIUMtests/conftest.py302def _is_ignorable_task(task) -> bool:CODE
MEDIUMtests/conftest.py321def 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.py155 except Exception:CODE
LOWexamples/voice_agents/gpt-live/client_delegation.py68 except Exception as e: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.py110 except Exception as exc:CODE
LOWexamples/hotel_receptionist/agent.py164 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.py101 except Exception:CODE
LOWexamples/warm-transfer/support_agent.py49 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.py717 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/worker.py1152 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/worker.py1448 except Exception:CODE
LOWlivekit-agents/livekit/agents/job.py303 except Exception:CODE
LOWlivekit-agents/livekit/agents/job.py365 except Exception:CODE
LOWlivekit-agents/livekit/agents/job.py383 except Exception:CODE
LOWlivekit-agents/livekit/agents/job.py396 except Exception:CODE
LOWlivekit-agents/livekit/agents/job.py771 except Exception:CODE
MEDIUMlivekit-agents/livekit/agents/job.py761def _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.py225 except Exception:CODE
LOW…-agents/livekit/agents/beta/workflows/warm_transfer.py604 except Exception:CODE
LOW…-agents/livekit/agents/beta/workflows/warm_transfer.py615 except Exception:CODE
LOWlivekit-agents/livekit/agents/evals/evaluation.py171 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/llm/duplex_adapter.py372 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/llm/tool_context.py418 except Exception:CODE
LOWlivekit-agents/livekit/agents/llm/llm.py192 except Exception:CODE
LOWlivekit-agents/livekit/agents/llm/llm.py364 except Exception as e:CODE
MEDIUMlivekit-agents/livekit/agents/llm/llm.py189def _prewarm() -> None:CODE
LOW…agents/livekit/agents/llm/realtime_fallback_adapter.py323 except Exception:CODE
LOW…agents/livekit/agents/llm/realtime_fallback_adapter.py348 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/llm/utils.py642 except Exception:CODE
LOWlivekit-agents/livekit/agents/llm/utils.py707 except Exception:CODE
LOWlivekit-agents/livekit/agents/llm/utils.py1059 except Exception as e:CODE
521 more matches not shown…
Deep Nesting383 hits · 334 pts
SeverityFileLineSnippetContext
LOWtests/test_plugin_azure_realtime.py100CODE
LOWtests/test_trace_types_pii.py300CODE
LOWtests/conftest.py226CODE
LOWtests/test_trace_schema.py276CODE
LOWtests/fake_stt.py177CODE
LOWtests/test_plugin_rime_tts.py311CODE
LOWtests/test_plugin_rime_tts.py919CODE
LOWtests/test_plugin_rime_tts.py1025CODE
LOWtests/test_gpt_live_model.py474CODE
LOWtests/test_endpointing.py569CODE
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.py877CODE
LOWtests/test_agent_task_close_race.py226CODE
LOWtests/test_chat_ctx.py910CODE
LOWtests/test_stt.py199CODE
LOWtests/test_aio.py32CODE
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.py537CODE
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.py80CODE
LOWlivekit-agents/livekit/agents/metrics/utils.py18CODE
LOWlivekit-agents/livekit/agents/metrics/usage.py204CODE
LOWlivekit-agents/livekit/agents/evals/judge.py59CODE
LOWlivekit-agents/livekit/agents/llm/tool_context.py608CODE
LOWlivekit-agents/livekit/agents/llm/tool_context.py712CODE
LOWlivekit-agents/livekit/agents/llm/tool_context.py616CODE
LOWlivekit-agents/livekit/agents/llm/llm.py311CODE
LOWlivekit-agents/livekit/agents/llm/chat_context.py552CODE
LOWlivekit-agents/livekit/agents/llm/chat_context.py795CODE
LOWlivekit-agents/livekit/agents/llm/chat_context.py853CODE
LOWlivekit-agents/livekit/agents/llm/chat_context.py566CODE
LOWlivekit-agents/livekit/agents/llm/utils.py129CODE
LOWlivekit-agents/livekit/agents/llm/utils.py355CODE
LOWlivekit-agents/livekit/agents/llm/utils.py467CODE
LOWlivekit-agents/livekit/agents/llm/fallback_adapter.py321CODE
323 more matches not shown…
Over-Commented Block325 hits · 317 pts
SeverityFileLineSnippetContext
LOWtests/test_plugin_assemblyai_stt.py1601COMMENT
LOWtests/test_tts.py701 # await asyncio.wait_for(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
LOWtests/test_plugin_neuphonic_tts.py1# Copyright 2023 LiveKit, Inc.COMMENT
LOWtests/test_plugin_asyncai_tts.py1# Copyright 2023 LiveKit, Inc.COMMENT
LOWtests/test_plugin_tts_sample_rate_sync.py1# Copyright 2023 LiveKit, Inc.COMMENT
LOWtests/concurrency.py921 )COMMENT
LOWtests/test_plugin_respeecher_tts.py1# Copyright 2023 LiveKit, Inc.COMMENT
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/homepage/behaviors/scripted_questions.txt1# Opening lines of the scripted callers that hit the homepage agent.COMMENT
LOWexamples/voice_agents/otel_trace.py21from livekit.agents.telemetry import set_tracer_providerCOMMENT
LOW…amples/hotel_receptionist/scenarios_tool_accuracy.yaml1# Scoped tool-based scenarios: every scenario here drives a concrete tool flowCOMMENT
LOW…s/hotel_receptionist/scenarios_guardrails_and_faq.yaml1# Open-ended and adversarial scenarios: disputes, complaints, policy/info Q&A,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/llm/_realtime/openai.py101 calculate_confidence_from_logprobs,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/cli/_legacy.py101# module = importlib.import_module(module_str)COMMENT
LOW…t-agents/livekit/agents/voice/transcription/filters.py61COMMENT
265 more matches not shown…
Modern Structural Boilerplate308 hits · 313 pts
SeverityFileLineSnippetContext
LOWtests/test_loop_monitor.py132async def _settle() -> None:CODE
LOWtests/test_filler.py90 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
LOW⚡tests/fake_realtime.py84 async def update_instructions(self, instructions: str) -> None:CODE
LOW⚡tests/fake_realtime.py87 async def update_chat_ctx(self, chat_ctx: ChatContext) -> None:CODE
LOW⚡tests/fake_realtime.py92 async def update_tools(self, tools: list[Tool]) -> None:CODE
LOW⚡tests/fake_realtime.py95 def update_options(self, *, tool_choice: NotGivenOr[ToolChoice | None] = NOT_GIVEN) -> None:CODE
LOW⚡tests/test_plugin_elevenlabs_stt.py213 def update_options(self, **kwargs: object) -> None:CODE
LOW⚡tests/test_plugin_elevenlabs_stt.py334 def update_options(self, **kwargs: object) -> None:CODE
LOW⚡tests/test_telemetry_exception_redaction.py36 def set_attribute(self, key: str, value: Any) -> None:CODE
LOW⚡tests/test_telemetry_exception_redaction.py45 def set_status(self, status: trace.Status) -> None:CODE
LOW⚡tests/test_telemetry_exception_redaction.py48 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_recording.py250def _setup_cloud_tracer_for_job(job_id: str = "job-1", **kwargs: Any) -> None:CODE
LOWtests/test_duplex_adapter.py92 async def _update_instructions(self, instructions: str) -> None:CODE
LOWtests/test_duplex_adapter.py99 async def _update_tools(self, tools: list[llm.Tool]) -> None:CODE
LOWtests/test_duplex_adapter.py164async def _settle() -> None:CODE
LOWtests/test_stt_context.py79 def _update_session_keyterms(self, keyterms: list[str]) -> None:CODE
LOW⚡tests/test_realtime/test_openai_realtime_model.py55 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.py1498 async def _update_worker_status(self) -> None:CODE
LOWlivekit-agents/livekit/agents/worker.py1531 async def _update_job_status(self, proc: ipc.job_executor.JobExecutor) -> None:CODE
LOWlivekit-agents/livekit/agents/__init__.py169__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.py280 def _set_result(self, result: WarmTransferResult | Exception) -> None:CODE
LOW…-agents/livekit/agents/beta/workflows/warm_transfer.py409 def _set_io_enabled(self, enabled: bool) -> None:CODE
LOW…-agents/livekit/agents/beta/workflows/warm_transfer.py539 def _setup_origination(self, **_: object) -> 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/duplex_adapter.py571 async def update_instructions(self, instructions: str) -> None:CODE
LOWlivekit-agents/livekit/agents/llm/duplex_adapter.py574 async def update_chat_ctx(self, chat_ctx: ChatContext) -> None:CODE
LOWlivekit-agents/livekit/agents/llm/duplex_adapter.py598 async def update_tools(self, tools: list[Tool]) -> None:CODE
LOWlivekit-agents/livekit/agents/llm/duplex_adapter.py601 def update_options(self, *, tool_choice: NotGivenOr[ToolChoice | None] = NOT_GIVEN) -> None:CODE
LOW⚡livekit-agents/livekit/agents/llm/realtime.py250 async def update_instructions(self, instructions: str) -> None: ...CODE
LOW⚡livekit-agents/livekit/agents/llm/realtime.py258 async def update_tools(self, tools: list[Tool]) -> None: ...CODE
LOW⚡livekit-agents/livekit/agents/llm/realtime.py261 def update_options(self, *, tool_choice: NotGivenOr[ToolChoice | None] = NOT_GIVEN) -> None: ...CODE
LOWlivekit-agents/livekit/agents/llm/tool_context.py605 def update_tools(self, tools: Sequence[Tool | Toolset]) -> None:CODE
LOWlivekit-agents/livekit/agents/llm/__init__.py78__all__ = [CODE
LOW…agents/livekit/agents/llm/realtime_fallback_adapter.py246 def _set_available(self, index: int, available: bool) -> None:CODE
LOW⚡…agents/livekit/agents/llm/realtime_fallback_adapter.py411 async def update_instructions(self, instructions: str) -> None:CODE
LOW⚡…agents/livekit/agents/llm/realtime_fallback_adapter.py415 async def update_chat_ctx(self, chat_ctx: ChatContext) -> None:CODE
LOW⚡…agents/livekit/agents/llm/realtime_fallback_adapter.py421 async def update_tools(self, tools: list[Tool]) -> None:CODE
LOW⚡…agents/livekit/agents/llm/realtime_fallback_adapter.py425 def update_options(self, *, tool_choice: NotGivenOr[ToolChoice | None] = NOT_GIVEN) -> None:CODE
LOWlivekit-agents/livekit/agents/llm/duplex.py167 async def _update_instructions(self, instructions: str) -> None: ...CODE
248 more matches not shown…
Cross-File Repetition40 hits · 200 pts
SeverityFileLineSnippetContext
HIGHtests/test_plugin_simplismart_stt.py0a socket that accepts writes and never delivers anything: the half-open case from the client's point of view. `receive()STRING
HIGHtests/test_plugin_xai_stt.py0a socket that accepts writes and never delivers anything: the half-open case from the client's point of view. `receive()STRING
HIGHtests/test_plugin_telnyx_stt.py0a socket that accepts writes and never delivers anything: the half-open case from the client's point of view. `receive()STRING
HIGHtests/test_plugin_simplismart_stt.py0a socket in the state aiohttp leaves it in when a ping goes unanswered. the heartbeat closes the connection itself, so tSTRING
HIGHtests/test_plugin_xai_stt.py0a socket in the state aiohttp leaves it in when a ping goes unanswered. the heartbeat closes the connection itself, so tSTRING
HIGHtests/test_plugin_telnyx_stt.py0a socket in the state aiohttp leaves it in when a ping goes unanswered. the heartbeat closes the connection itself, so tSTRING
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.py0the model of the instance that serves next (see :meth:`_next_instance`). spans and metrics read this, so a failover showSTRING
HIGHlivekit-agents/livekit/agents/tts/fallback_adapter.py0the model of the instance that serves next (see :meth:`_next_instance`). spans and metrics read this, so a failover showSTRING
HIGHlivekit-agents/livekit/agents/stt/fallback_adapter.py0the model of the instance that serves next (see :meth:`_next_instance`). spans and metrics read this, so a failover showSTRING
HIGHlivekit-agents/livekit/agents/llm/fallback_adapter.py0the provider of the instance that serves next (see :attr:`model`).STRING
HIGHlivekit-agents/livekit/agents/tts/fallback_adapter.py0the provider of the instance that serves next (see :attr:`model`).STRING
HIGHlivekit-agents/livekit/agents/stt/fallback_adapter.py0the provider of the instance that serves next (see :attr:`model`).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…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
AI Structural Patterns202 hits · 190 pts
SeverityFileLineSnippetContext
LOWtests/test_amd_classifier.py27CODE
LOWtests/test_plugin_bland_tts.py375CODE
LOWlivekit-agents/livekit/agents/worker.py304CODE
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.py45CODE
LOW…-agents/livekit/agents/beta/workflows/warm_transfer.py452CODE
LOWlivekit-agents/livekit/agents/llm/_realtime/openai.py344CODE
LOWlivekit-agents/livekit/agents/llm/_realtime/openai.py373CODE
LOWlivekit-agents/livekit/agents/llm/_realtime/openai.py403CODE
LOWlivekit-agents/livekit/agents/llm/_realtime/openai.py582CODE
LOWlivekit-agents/livekit/agents/llm/_realtime/openai.py746CODE
LOWlivekit-agents/livekit/agents/llm/_realtime/openai.py1394CODE
LOWlivekit-agents/livekit/agents/voice/turn.py336CODE
LOWlivekit-agents/livekit/agents/voice/agent_session.py398CODE
LOWlivekit-agents/livekit/agents/voice/agent_activity.py1771CODE
LOWlivekit-agents/livekit/agents/voice/agent.py48CODE
LOWlivekit-agents/livekit/agents/voice/agent.py866CODE
LOWlivekit-agents/livekit/agents/voice/amd/detector.py169CODE
LOWlivekit-agents/livekit/agents/voice/amd/classifier.py106CODE
LOWlivekit-agents/livekit/agents/inference/tts.py234CODE
LOWlivekit-agents/livekit/agents/inference/tts.py253CODE
LOWlivekit-agents/livekit/agents/inference/tts.py272CODE
LOWlivekit-agents/livekit/agents/inference/tts.py291CODE
LOWlivekit-agents/livekit/agents/inference/tts.py310CODE
LOWlivekit-agents/livekit/agents/inference/tts.py329CODE
LOWlivekit-agents/livekit/agents/inference/tts.py348CODE
LOWlivekit-agents/livekit/agents/inference/tts.py366CODE
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.py420CODE
LOWlivekit-agents/livekit/agents/inference/stt.py437CODE
LOWlivekit-agents/livekit/agents/inference/stt.py454CODE
LOWlivekit-agents/livekit/agents/inference/stt.py471CODE
LOWlivekit-agents/livekit/agents/inference/stt.py488CODE
LOWlivekit-agents/livekit/agents/inference/stt.py505CODE
LOWlivekit-agents/livekit/agents/inference/stt.py523CODE
LOWlivekit-agents/livekit/agents/inference/stt.py540CODE
LOWlivekit-agents/livekit/agents/inference/stt.py557CODE
LOWlivekit-agents/livekit/agents/inference/stt.py573CODE
LOW…kit-agents/livekit/agents/inference/realtime/openai.py63CODE
LOWlivekit-agents/livekit/agents/inference/eot/detector.py35CODE
LOW…t-plugins-smallestai/livekit/plugins/smallestai/tts.py74CODE
LOW…t-plugins-smallestai/livekit/plugins/smallestai/tts.py209CODE
LOW…t-plugins-smallestai/livekit/plugins/smallestai/stt.py139CODE
LOW…t-plugins-smallestai/livekit/plugins/smallestai/stt.py364CODE
LOW…t-plugins-smallestai/livekit/plugins/smallestai/stt.py462CODE
LOW…vekit-plugins-cerebras/livekit/plugins/cerebras/llm.py103CODE
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/tts.py389CODE
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/tts.py667CODE
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.py467CODE
142 more matches not shown…
Docstring Block Structure30 hits · 150 pts
SeverityFileLineSnippetContext
HIGHlivekit-agents/livekit/agents/llm/_realtime/openai.py433 Initialize a Realtime model client for OpenAI or Azure OpenAI. Args: model (str): RealtimeSTRING
HIGHlivekit-agents/livekit/agents/llm/_realtime/openai.py607 Create a RealtimeModel configured for Azure OpenAI. Args: azure_deployment (str): Azure OpSTRING
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.py300Push an audio frame to the buffer. Args: frame: The audio frame to push. Returns: STRING
HIGHlivekit-agents/livekit/agents/voice/agent_session.py1725Commit 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
HIGHlivekit-agents/livekit/agents/voice/speech_handle.py204Interrupt the current speech generation. Args: force: Interrupt even if this speech disallows interSTRING
HIGH…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py170Validate 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.py204Validate language code for a given model. Args: model: The Sarvam model name. language: The requestSTRING
HIGH…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py617Recognize 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/gpt_live_model.py287Create a GPTLiveModel served by Azure OpenAI. Args: azure_deployment: Deployment name of the GPT-LiSTRING
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.py171 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 Names17 hits · 88 pts
SeverityFileLineSnippetContext
HIGHexamples/README.md74LIVEKIT_API_KEY="your_api_key"CODE
HIGHexamples/other/transcription/README.md19export OPENAI_API_KEY=your-api-keyCODE
HIGHlivekit-agents/livekit/agents/llm/_realtime/openai.py645 api_key="your-api-key",STRING
HIGHlivekit-agents/livekit/agents/llm/_realtime/openai.py671 api_key="your-api-key",STRING
HIGH⚡livekit-plugins/livekit-plugins-gnani/README.md39export GNANI_API_KEY="your-api-key"CODE
HIGH⚡livekit-plugins/livekit-plugins-gnani/README.md45stt = STT(api_key="your-api-key", language="hi-IN")CODE
HIGH⚡livekit-plugins/livekit-plugins-gnani/README.md46tts = TTS(api_key="your-api-key")CODE
HIGHlivekit-plugins/livekit-plugins-cambai/README.md88 api_key="your-api-key", # Or use CAMB_API_KEY env varCODE
HIGHlivekit-plugins/livekit-plugins-azure/README.md195 api_key="your-api-key",CODE
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
Hallucination Indicators5 hits · 50 pts
SeverityFileLineSnippetContext
CRITICALtests/test_session_options_report.py49 assert td.startswith("livekit.agents.inference.eot.detector.TurnDetector(")CODE
CRITICAL…s/livekit-plugins-openai/livekit/plugins/openai/tts.py261 oai_stream = self._tts._client.audio.speech.with_streaming_response.create(CODE
CRITICAL…kit-plugins-mistralai/livekit/plugins/mistralai/tts.py157 stream = await self._tts._client.audio.speech.complete_async(CODE
CRITICAL…kit-plugins-mistralai/livekit/plugins/mistralai/tts.py166 stream = await self._tts._client.audio.speech.complete_async(CODE
CRITICAL…ugins-google/livekit/plugins/google/beta/gemini_tts.py389 response = await self._tts._client.aio.models.generate_content_stream(CODE
Fake / Example Data48 hits · 50 pts
SeverityFileLineSnippetContext
LOWtests/test_ipc.py121 token="fake_token",CODE
LOWtests/test_plugin_soniox_tts.py213 tts = soniox.TTS(api_key="fake-key", **tts_kwargs)CODE
LOW⚡tests/test_plugin_soniox_tts.py279 soniox.TTS(api_key="fake-key", stream_idle_timeout=0)CODE
LOW⚡tests/test_plugin_soniox_tts.py281 soniox.TTS(api_key="fake-key", stream_idle_timeout=-1.0)CODE
LOW⚡tests/test_plugin_google_realtime.py1052 monkeypatch.setenv("GOOGLE_API_KEY", "fake-key")CODE
LOW⚡tests/test_plugin_google_realtime.py1060 monkeypatch.setenv("GOOGLE_API_KEY", "fake-key")CODE
LOWtests/test_plugin_google_realtime.py43 api_key="fake-key",CODE
LOWtests/test_plugin_google_realtime.py68 api_key="fake-key",CODE
LOWtests/test_plugin_google_realtime.py86 model="gemini-3.8-live", api_key="fake-key", project="test-project", location="eu"CODE
LOWtests/test_plugin_google_realtime.py100 api_key="fake-key",CODE
LOWtests/test_plugin_google_realtime.py137 api_key="fake-key",CODE
LOWtests/test_plugin_google_realtime.py201 monkeypatch.setenv("GOOGLE_API_KEY", "fake-key")CODE
LOWtests/test_plugin_google_realtime.py217 monkeypatch.setenv("GOOGLE_API_KEY", "fake-key")CODE
LOWtests/test_plugin_google_realtime.py706 monkeypatch.setenv("GOOGLE_API_KEY", "fake-key")CODE
LOWtests/test_plugin_google_realtime.py722 monkeypatch.setenv("GOOGLE_API_KEY", "fake-key")CODE
LOWtests/test_plugin_google_realtime.py780 monkeypatch.setenv("GOOGLE_API_KEY", "fake-key")CODE
LOWtests/test_plugin_google_realtime.py956 monkeypatch.setenv("GOOGLE_API_KEY", "fake-key")CODE
LOWtests/test_plugin_google_realtime.py1012 monkeypatch.setenv("GOOGLE_API_KEY", "fake-key")CODE
LOW⚡tests/test_plugin_openai_stt_context.py260 instance._update_session_keyterms(["billing", "Acme Corp"])CODE
LOW⚡tests/test_plugin_openai_stt_context.py264 assert instance._opts.keywords == ["AC-42", "billing", "Acme Corp"]CODE
LOW⚡tests/test_plugin_openai_stt_context.py265 assert _sent_transcription(ws)["keywords"] == ["AC-42", "billing", "Acme Corp"]CODE
LOW⚡tests/test_plugin_openai_stt_context.py280 instance.update_options(keywords=["Acme Corp"], prompt="a support call")CODE
LOW⚡tests/test_plugin_openai_stt_context.py282 assert _sent_transcription(ws)["keywords"] == ["Acme Corp"]CODE
LOW⚡tests/test_plugin_openai_stt_context.py395 instance._update_session_keyterms(["Acme Corp"])CODE
LOW⚡tests/test_plugin_openai_stt_context.py407 instance._update_session_keyterms(["Acme Corp"])CODE
LOW⚡tests/test_plugin_openai_stt_context.py567 instance.update_options(keywords=["Acme Corp"])CODE
LOW⚡tests/test_plugin_openai_stt_context.py572 assert [_transcription_of(p).get("keywords") for p in ws.sent] == [[], ["Acme Corp"]]CODE
LOW⚡tests/test_plugin_openai_stt_context.py585 instance.update_options(keywords=["Acme Corp"])CODE
LOW⚡tests/test_plugin_openai_stt_context.py591 assert _sent_transcription(ws)["keywords"] == ["Acme Corp"]CODE
LOW⚡tests/test_plugin_openai_stt_context.py676 instance.update_options(keywords=["Acme Corp"])CODE
LOW⚡tests/test_plugin_openai_stt_context.py689 instance.update_options(keywords=["Acme Corp"])CODE
LOW⚡tests/test_plugin_openai_stt_context.py691 assert pinned._opts.keywords == ["Acme Corp"] # the rest still reaches itCODE
LOW⚡tests/test_plugin_openai_stt_context.py709 instance._update_session_keyterms(["Acme Corp"])CODE
LOW⚡tests/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_eou_wait_span.py489 assert "Jane Doe" not in rendered and "lookup failed" not in renderedCODE
LOW⚡tests/test_recording.py629 assert serialized_stt_options["lk.pii.keyterms"] == ["Acme Corp"]CODE
LOW⚡tests/test_recording.py631 assert stt_context_options["keyterms"] == ["Acme Corp"]CODE
LOWtests/test_recording.py614 "keyterms": ["Acme Corp"],CODE
LOWtests/test_session_options_report.py175 assert "Jane Doe" not in json.dumps(serialized)CODE
LOW⚡tests/test_stt_context.py182 d = _detector(static_keyterms=["Acme Corp"], llm=fake)CODE
LOW⚡tests/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.py71 "keyterms": ["LiveKit", "Acme Corp"],STRING
Self-Referential Comments16 hits · 50 pts
SeverityFileLineSnippetContext
MEDIUM⚡tests/test_convert_html_docs.py299 # Create a path that would have .. in relative partsCOMMENT
MEDIUMtests/concurrency.py933 # 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.py958 # 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.py854 # Create a fresh session for this stream to avoid conflictsCOMMENT
MEDIUM…it/plugins/aws/experimental/realtime/realtime_model.py647 # 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.py388 # Create the streamCOMMENT
MEDIUM…ugins-speechmatics/livekit/plugins/speechmatics/stt.py590 # Create the Agent STT client. Turn detection is a top-level `turn_config` (a siblingCOMMENT
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.py294 # Create a fresh session for this stream to avoid conflictsCOMMENT
Modern AI Meta-Vocabulary10 hits · 28 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_input_delta.py340 # a persistent system message mid-history, and a per-turn RAG assistant messageCOMMENT
MEDIUMtests/test_input_delta.py401 (True, False), # persistent S and a RAG messageCODE
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…s/hotel_receptionist/scenarios_guardrails_and_faq.yaml4# only — no `expected_state` — so they exercise guardrails and conversationalCOMMENT
MEDIUM…kit-plugins-anthropic/livekit/plugins/anthropic/llm.py312 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.py686 # Empty text would make the server hallucinate audio; handle the two cases locally.COMMENT
Verbosity Indicators17 hits · 24 pts
SeverityFileLineSnippetContext
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py742 # Step 1: Wait for assistant to finish speaking (AUDIO contentEnd with END_TURN)COMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py751 # Step 2: Wait for audio to fully stop (no new audio for 1 second)COMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py765 # Step 3: Send close events to trigger completionEnd from Nova SonicCOMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py772 # Step 4: Wait for completionEnd and let _done_fut resolveCOMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py793 # Step 1: Drain any pending tool resultsCOMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py807 # Step 2: Signal tasks to stopCOMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py810 # Step 3: Wait for response task to exit naturally, then cancel if neededCOMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py824 # Step 4: Cancel audio input task (blocked on channel, won't exit naturally)COMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py832 # Step 5: Close the stream (close events already sent in _session_recycle_timer)COMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py840 # Step 6: Reset state for new sessionCOMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py1075 # Step 1: Send session init events (session start, prompt start, system prompt)COMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py1083 # Step 2: Send history events with small delays between themCOMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py1088 # Step 3: Start response reader first (calls await_output, sets _stream_ready)COMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py1093 # Step 4: Start audio input (waits for _stream_ready before sending audio_content_start)COMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py1098 # Step 5: Allow audio contentStart to be sent before unblockingCOMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py1104 # Step 6: If we popped a user message from history, send it asCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py854 # Step 7: Start new session with preserved stateCOMMENT
Redundant / Tautological Comments16 hits · 24 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.py994 # Check if a tracer provider is not set and set one upCOMMENT
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py1209 # Check if session is still validCOMMENT
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py1266 # Check if reconnection was requestedCOMMENT
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py1360 # Check if we have enough data for a chunkCOMMENT
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py1407 # Check if Sarvam VAD triggered flushCOMMENT
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py1687 # Set flag to trigger flush when Sarvam detects end of speechCOMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py1470 # Check if this is END_TURN (assistant finished speaking)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1892 # Check if this is an audio message (already transcribed by Nova)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py2208 # Check if generate_reply is supported (requires mixed modalities)COMMENT
LOW⚡…it-plugins-bithuman/livekit/plugins/bithuman/avatar.py76 # Check if string is empty after cleaningCOMMENT
LOW⚡…it-plugins-bithuman/livekit/plugins/bithuman/avatar.py85 # Check if string contains only valid base64 charactersCOMMENT
LOW…ox/livekit/plugins/ultravox/realtime/realtime_model.py830 # Check if restart is neededCOMMENT
LOW…ox/livekit/plugins/ultravox/realtime/realtime_model.py866 # Check if restart is neededCOMMENT
LOW…ox/livekit/plugins/ultravox/realtime/realtime_model.py1230 # Check if we have a current generation before processing audioCOMMENT
Structural Annotation Overuse17 hits · 23 pts
SeverityFileLineSnippetContext
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py742 # Step 1: Wait for assistant to finish speaking (AUDIO contentEnd with END_TURN)COMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py751 # Step 2: Wait for audio to fully stop (no new audio for 1 second)COMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py765 # Step 3: Send close events to trigger completionEnd from Nova SonicCOMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py772 # Step 4: Wait for completionEnd and let _done_fut resolveCOMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py793 # Step 1: Drain any pending tool resultsCOMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py807 # Step 2: Signal tasks to stopCOMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py810 # Step 3: Wait for response task to exit naturally, then cancel if neededCOMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py824 # Step 4: Cancel audio input task (blocked on channel, won't exit naturally)COMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py832 # Step 5: Close the stream (close events already sent in _session_recycle_timer)COMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py840 # Step 6: Reset state for new sessionCOMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py1075 # Step 1: Send session init events (session start, prompt start, system prompt)COMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py1083 # Step 2: Send history events with small delays between themCOMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py1088 # Step 3: Start response reader first (calls await_output, sets _stream_ready)COMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py1093 # Step 4: Start audio input (waits for _stream_ready before sending audio_content_start)COMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py1098 # Step 5: Allow audio contentStart to be sent before unblockingCOMMENT
LOW⚡…it/plugins/aws/experimental/realtime/realtime_model.py1104 # Step 6: If we popped a user message from history, send it asCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py854 # Step 7: Start new session with preserved stateCOMMENT
AI Slop Vocabulary7 hits · 14 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.py231 # the confirm flag is harness state, not an argumentCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py690 # Static credentials - just use the max session durationCOMMENT
LOW…vekit-plugins-deepgram/livekit/plugins/deepgram/stt.py606 # expected just return; otherwise re-raise as a retryable APIError soCOMMENT
MEDIUM…google/livekit/plugins/google/realtime/realtime_api.py1675 # TODO(dz): this isn't a seamless reconnection just yetCOMMENT
LOW…ox/livekit/plugins/ultravox/realtime/realtime_model.py893 # If we're already closing due to send loop shutdown, just returnCOMMENT
Dead Code7 hits · 12 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_agent_session.py1759CODE
MEDIUMtests/test_agent_session.py1830CODE
MEDIUMtests/test_plugin_google_realtime.py749CODE
MEDIUMtests/test_plugin_google_gemini_tts.py118CODE
MEDIUMtests/test_plugin_google_gemini_tts.py153CODE
MEDIUM…it/plugins/aws/experimental/realtime/realtime_model.py2219CODE
MEDIUM…it/plugins/aws/experimental/realtime/realtime_model.py2223CODE
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/support_agent.py35 - 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.py689 # 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