Repository Analysis

livekit/agents

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

30.1 Strong AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of livekit/agents, a Python project with 11,355 GitHub stars. SynthScan v2.0 examined 204,217 lines of code across 1076 source files, recording 4682 pattern matches distributed across 23 syntactic categories. The overall adjusted score of 30.1 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).

30.1
Adjusted Score
30.1
Raw Score
100%
Time Factor
2026-07-14
Last Push
11.4K
Stars
Python
Language
204.2K
Lines of Code
1.1K
Files
4.7K
Pattern Hits
2026-07-14
Scan Date
0.23
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 5HIGH 244MEDIUM 203LOW 4230

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 4682 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 Identifiers1579 hits · 1546 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_audio_recognition_turn_detection.py52def _make_full_recognition_for_eou() -> AudioRecognition:CODE
LOWtests/test_audio_recognition_turn_detection.py621 def test_low_min_silence_with_audio_detector_raises(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py629 def test_adequate_min_silence_passes(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py636 def test_non_audio_detector_skips(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py151 async def test_sos_during_bounce_cancels_commit(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py216 async def test_stale_spike_does_not_block_next_commit(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py237 async def test_vad_then_stt_emits_eot_prediction_once(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py275 async def test_text_detector_emits_every_bounce(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py306 async def test_clear_user_turn_allows_next_turn_to_emit(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py344 async def test_emits_with_eot_context_when_turn_continues(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py362 async def test_emits_with_eot_context_when_turn_ends(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py379 async def test_no_emit_below_threshold(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py390 async def test_no_emit_when_backchannel_disabled(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py400 async def test_no_emit_for_text_detector(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py423 async def test_silence_tick_starts_request_once(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py433 async def test_resumed_speech_without_sos_rearms_next_pause(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py462 async def test_silence_tick_starts_request_while_agent_speaking(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py476 async def test_eos_consumes_silence_tick_request_without_predicting(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py493 async def test_eos_runs_eou_even_while_agent_speaking(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py512 async def test_sos_tears_down_request_and_rearms(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py523 async def test_eos_never_starts_request(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py539 async def test_late_stt_final_after_flush_short_circuits(CODE
LOWtests/test_audio_recognition_turn_detection.py559 async def test_predict_timeout_signals_fallback_and_drops_future(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py578 async def test_commit_flushes_stream_and_marks_turn_flushed(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py606def _make_recognition_for_validation() -> AudioRecognition:CODE
LOWtests/test_audio_recognition_turn_detection.py650 def test_vad_without_min_silence_knob_skips(self) -> None:CODE
LOWtests/test_audio_recognition_turn_detection.py659 def test_update_turn_detector_validates_pairing(self) -> None:CODE
LOWtests/test_audio_recognition_handoff.py47async def test_reusable_same_class_same_stt() -> None:CODE
LOWtests/test_audio_recognition_handoff.py58async def test_not_reusable_different_stt_instance() -> None:CODE
LOWtests/test_audio_recognition_handoff.py77async def test_not_reusable_different_stt_node_override() -> None:CODE
LOWtests/test_audio_recognition_handoff.py100async def test_not_reusable_subclass_inherits_custom_stt_node() -> None:CODE
LOWtests/test_audio_recognition_handoff.py127async def test_not_reusable_subclass_overrides_stt_node() -> None:CODE
LOWtests/test_audio_recognition_handoff.py150async def test_not_reusable_no_audio_recognition() -> None:CODE
LOWtests/test_audio_recognition_handoff.py166async def _detach_turn_detector_if_reusable(old: MagicMock, new: MagicMock) -> object | None:CODE
LOWtests/test_audio_recognition_handoff.py172async def test_turn_detector_reusable_same_instance() -> None:CODE
LOWtests/test_audio_recognition_handoff.py183async def test_turn_detector_not_reusable_different_instance() -> None:CODE
LOWtests/test_audio_recognition_handoff.py197async def test_turn_detector_not_reusable_when_new_opts_out() -> None:CODE
LOWtests/test_audio_recognition_handoff.py222async def test_input_anchor_preserved_when_pipeline_reused() -> None:CODE
LOWtests/test_audio_recognition_handoff.py243def test_input_anchor_reads_through_to_pipeline() -> None:CODE
LOWtests/test_schema_gemini.py73async def test_json_def_replaced_any_of():CODE
LOWtests/test_ipc.py197async def _job_entrypoint_session_aclose_hangs(job_ctx: JobContext) -> None:CODE
LOWtests/test_ipc.py233async def _job_entrypoint_raises_after_shutdown(job_ctx: JobContext) -> None:CODE
LOWtests/test_ipc.py420async def test_proc_pool_launch_job_raises_when_all_spawns_fail():CODE
LOWtests/test_ipc.py491async def test_aclose_after_cancelled_start():CODE
LOWtests/test_ipc.py542async def test_shutdown_callback_runs_when_session_aclose_hangs():CODE
LOWtests/test_ipc.py568async def test_shutdown_callback_runs_when_entrypoint_raises():CODE
LOWtests/test_ipc.py593async def test_job_graceful_shutdown():CODE
LOWtests/test_ipc.py610def test_log_queue_drains_before_stop():CODE
LOWtests/test_inference_stt_fallback.py31 def test_simple_model_without_language(self):CODE
1519 more matches not shown…
Unused Imports1164 hits · 1071 pts
SeverityFileLineSnippetContext
LOWtests/test_plugin_inworld_tts.py3CODE
LOWtests/test_audio_recognition_turn_detection.py26CODE
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_tool_results_preserved_on_interruption.py7CODE
LOWtests/test_plugin_assemblyai_stt.py3CODE
LOWtests/test_room_io.py1CODE
LOWtests/test_expr_markup.py10CODE
LOWtests/test_session_host.py1CODE
LOWtests/test_turn_detection_cloud_stream.py13CODE
LOWtests/test_agent_session.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_tts.py1CODE
LOWtests/fake_io.py1CODE
LOWtests/test_run_input_errors.py4CODE
LOWtests/test_audio_sink_proxy.py1CODE
LOWtests/test_plugin_google_gemini_tts.py1CODE
LOWtests/test_http_context_helper.py5CODE
LOWtests/fake_stt.py1CODE
LOWtests/test_plugin_fishaudio_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_cli_log_level.py1CODE
LOWtests/test_speech_start_time_persistence.py21CODE
LOWtests/test_audio_turn_detector_fallback.py18CODE
LOWtests/fake_realtime.py1CODE
LOWtests/test_inference_utils.py15CODE
LOWtests/concurrency.py63CODE
LOWtests/test_end_of_turn_metrics.py11CODE
LOWtests/test_plugin_gnani_tts.py3CODE
LOWtests/test_langgraph.py3CODE
LOWtests/test_supervised_proc_memory.py1CODE
LOWtests/test_supervised_proc_memory.py105CODE
LOWtests/test_audio_emitter.py3CODE
LOWtests/test_plugin_elevenlabs_stt.py3CODE
LOWtests/test_agent_task_close_race.py1CODE
LOWtests/test_user_turn_exceeded.py1CODE
LOWtests/test_plugin_openai_responses.py1CODE
LOWtests/test_recording.py1CODE
LOWtests/test_plugin_openai_realtime_reasoning.py1CODE
LOWtests/test_plugin_perplexity_responses.py1CODE
LOWtests/test_plugin_deepgram_stt.py1CODE
LOWtests/test_interruption_hold_window.py12CODE
LOWtests/test_remote_session.py1CODE
LOWtests/test_stt_base.py3CODE
LOWtests/test_transcript_sync_markup.py11CODE
LOWtests/test_worker_connection.py8CODE
LOWtests/test_worker_config.py10CODE
LOWtests/test_audio_recognition_push_audio.py1CODE
LOWtests/test_speech_handle_exception.py13CODE
1104 more matches not shown…
Cross-Language Confusion174 hits · 975 pts
SeverityFileLineSnippetContext
HIGHtests/fake_session.py115 audio_input.push(0.1)CODE
HIGHtests/test_tokenizer_xml_markup.py522 out = s.push("Hi <emo")CODE
HIGHtests/test_tokenizer_xml_markup.py523 out += s.push('tion value="happy"/> the')CODE
HIGHtests/test_tokenizer_xml_markup.py524 out += s.push("re")CODE
HIGHtests/test_tokenizer_xml_markup.py535 first = s.push("The value 3 < 5 ")CODE
HIGHtests/test_tokenizer_xml_markup.py537 rest = s.push("is true.") + s.flush()CODE
HIGHtests/test_expr_markup.py212 out += stripper.push(chunk)CODE
HIGHtests/test_tts.py806 emitter_stream.push(pcm_chunk)CODE
HIGHtests/test_tts.py808 emitter_stream.push(pcm_chunk)CODE
HIGHtests/test_tts.py813 emitter_stream.push(pcm_chunk)CODE
HIGHtests/test_tts.py814 emitter_stream.push(pcm_chunk)CODE
HIGHtests/test_tts.py850 emitter_multi.push(pcm_chunk)CODE
HIGHtests/test_tts.py852 emitter_multi.push(pcm_chunk)CODE
HIGHtests/test_tts.py854 emitter_multi.push(pcm_chunk)CODE
HIGHtests/test_tts.py881 emitter_nostream.push(pcm_chunk)CODE
HIGHtests/test_tts.py882 emitter_nostream.push(pcm_chunk)CODE
HIGHtests/test_tts.py909 emitter_noflush.push(pcm_chunk)CODE
HIGHtests/test_tts.py934 emitter_noflush.push(pcm_chunk)CODE
HIGHtests/test_tts.py1001 emitter.push(wav_bytes)CODE
HIGHtests/test_tts.py1006 emitter.push(wav_bytes)CODE
HIGHtests/test_tts.py1042 emitter2.push(wav_bytes)CODE
HIGHtests/test_tts.py1070 emitter3.push(b"\xff\xff" * 100)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
HIGHtests/test_audio_emitter.py235 e.push(chunk1)CODE
HIGHtests/test_audio_emitter.py237 e.push(chunk2)CODE
HIGHtests/test_audio_emitter.py258 e.push(_make_pcm(SR, NC, 300))CODE
HIGHtests/fake_tts.py173 output_emitter.push(b"\x00\x00" * num_samples)CODE
HIGHtests/fake_tts.py256 output_emitter.push(b"\x00\x00" * num_samples)CODE
HIGHtests/test_audio_decoder.py40 decoder.push(opus_data)CODE
HIGHtests/test_audio_decoder.py391 decoder.push(wav_bytes[i : i + chunk_size])CODE
HIGHtests/test_audio_decoder.py417 decoder.push(wav_bytes)CODE
HIGHtests/test_audio_decoder.py446 decoder.push(wav_chunk)CODE
HIGHtests/test_audio_decoder.py475 decoder.push(wav_chunk)CODE
HIGHtests/test_tools.py474 prepare_function_arguments(fnc=mock_tool_2, json_arguments='{"arg1": null}')CODE
HIGHtests/utils/__init__.py100 frames = resampler.push(input_audio)CODE
HIGHexamples/other/translation/multi-user-translator.py163 frames = self._resampler.push(frame.frame)CODE
HIGHlivekit-agents/livekit/agents/utils/audio.py243 decoder.push(chunk)CODE
HIGHlivekit-agents/livekit/agents/utils/audio.py305 frames.extend(self._resampler.push(frame))CODE
HIGHlivekit-agents/livekit/agents/utils/codecs/decoder.py214 for resampled in self._resampler.push(frame):CODE
HIGHlivekit-agents/livekit/agents/utils/codecs/decoder.py328 for frame in self._bstream.push(data):CODE
HIGHlivekit-agents/livekit/agents/utils/codecs/decoder.py329 for resampled in self._resampler.push(frame):CODE
HIGHlivekit-agents/livekit/agents/utils/codecs/decoder.py332 for frame in self._bstream.push(data):CODE
HIGHlivekit-agents/livekit/agents/utils/codecs/decoder.py377 self._wav_decoder.push(chunk)CODE
HIGHlivekit-agents/livekit/agents/cli/tcp_console.py51 resampled = self._resampler.push(audio_frame)CODE
HIGHlivekit-agents/livekit/agents/cli/tcp_console.py108 resampled = self._resampler.push(frame)CODE
HIGHlivekit-agents/livekit/agents/voice/generation.py483 for f in resampler.push(frame):CODE
HIGHlivekit-agents/livekit/agents/voice/room_io/_output.py107 for f in self._audio_bstream.push(frame.data):CODE
HIGHlivekit-agents/livekit/agents/voice/room_io/_output.py477 clean_text = self._stripper.push(text)CODE
HIGH…nts/livekit/agents/voice/room_io/_pre_connect_audio.py133 decoder.push(chunk)CODE
HIGH…nts/livekit/agents/voice/room_io/_pre_connect_audio.py144 for frame in audio_stream.push(chunk):CODE
HIGHlivekit-agents/livekit/agents/voice/room_io/_input.py360 yield from resampler.push(frame)CODE
HIGH…nts/livekit/agents/voice/transcription/synchronizer.py393 clean_word = self._pacing_stripper.push(word)CODE
114 more matches not shown…
Decorative Section Separators145 hits · 542 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_audio_recognition_turn_detection.py47# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_audio_recognition_turn_detection.py49# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_audio_recognition_handoff.py42# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_audio_recognition_handoff.py44# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_audio_recognition_handoff.py161# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_audio_recognition_handoff.py163# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_audio_recognition_handoff.py208# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_audio_recognition_handoff.py210# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py19# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py21# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py58# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py60# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py79# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py81# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py207# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py209# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py274# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py276# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py481# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py483# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py361# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py363# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py428# ===========================================================================COMMENT
MEDIUMtests/test_tokenizer_xml_markup.py430# ===========================================================================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.py906# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_plugin_assemblyai_stt.py915# ---------------------------------------------------------------------------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_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.py152# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py154# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py226# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py228# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py245# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py247# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py300# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py302# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py35# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_expr_markup.py37# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_session_host.py241# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_session_host.py243# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_session_host.py261# ---------------------------------------------------------------------------COMMENT
MEDIUMtests/test_session_host.py263# ---------------------------------------------------------------------------COMMENT
85 more matches not shown…
Excessive Try-Catch Wrapping469 hits · 496 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_interruption/test_interruption_failover.py91 except Exception as exc:CODE
LOWexamples/healthcare/agent.py117 except Exception as e:CODE
LOWexamples/other/translation/multi-user-translator.py151 except Exception:CODE
LOWexamples/drive-thru/order.py62 except Exception:CODE
LOWexamples/drive-thru/agent.py524 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.py141 except Exception:CODE
LOWexamples/hotel_receptionist/agent.py154 except Exception:CODE
LOWexamples/hotel_receptionist/agent.py199 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.py113 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.py294 except Exception:CODE
LOWlivekit-agents/livekit/agents/job.py308 except Exception:CODE
LOWlivekit-agents/livekit/agents/job.py321 except Exception:CODE
LOWlivekit-agents/livekit/agents/job.py633 except Exception:CODE
MEDIUMlivekit-agents/livekit/agents/job.py623def _delete_room() -> None: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.py161 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/llm/tool_context.py367 except Exception:CODE
LOWlivekit-agents/livekit/agents/llm/llm.py224 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/llm/llm.py265 except Exception as e:CODE
LOW…agents/livekit/agents/llm/realtime_fallback_adapter.py277 except Exception:CODE
LOW…agents/livekit/agents/llm/realtime_fallback_adapter.py299 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/llm/utils.py455 except Exception:CODE
LOWlivekit-agents/livekit/agents/llm/utils.py520 except Exception:CODE
LOWlivekit-agents/livekit/agents/llm/utils.py783 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/llm/fallback_adapter.py211 except Exception:CODE
LOWlivekit-agents/livekit/agents/llm/fallback_adapter.py240 except Exception:CODE
LOWlivekit-agents/livekit/agents/llm/fallback_adapter.py268 except Exception: # exceptions already logged inside _try_generateCODE
LOWlivekit-agents/livekit/agents/utils/log.py18 except Exception:CODE
LOWlivekit-agents/livekit/agents/utils/log.py33 except Exception:CODE
LOWlivekit-agents/livekit/agents/utils/connection_pool.py77 except Exception as e:CODE
LOWlivekit-agents/livekit/agents/utils/codecs/decoder.py378 except Exception:CODE
LOWlivekit-agents/livekit/agents/utils/codecs/decoder.py400 except Exception:CODE
409 more matches not shown…
Deep Nesting317 hits · 289 pts
SeverityFileLineSnippetContext
LOWtests/conftest.py209CODE
LOWtests/fake_stt.py176CODE
LOWtests/test_endpointing.py456CODE
LOWtests/concurrency.py868CODE
LOWtests/test_stt.py184CODE
LOWexamples/drive-thru/database.py605CODE
LOWexamples/drive-thru/agent.py387CODE
LOWexamples/frontdesk/agent.py202CODE
LOWexamples/primitives/echo-agent.py28CODE
LOWexamples/primitives/echo-agent.py73CODE
LOWexamples/telephony/amd.py36CODE
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
LOW…it-agents/livekit/agents/beta/workflows/credit_card.py225CODE
LOW…it-agents/livekit/agents/beta/workflows/credit_card.py503CODE
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.py198CODE
LOWlivekit-agents/livekit/agents/evals/judge.py41CODE
LOWlivekit-agents/livekit/agents/llm/tool_context.py557CODE
LOWlivekit-agents/livekit/agents/llm/tool_context.py661CODE
LOWlivekit-agents/livekit/agents/llm/tool_context.py565CODE
LOWlivekit-agents/livekit/agents/llm/llm.py205CODE
LOWlivekit-agents/livekit/agents/llm/chat_context.py467CODE
LOWlivekit-agents/livekit/agents/llm/chat_context.py691CODE
LOWlivekit-agents/livekit/agents/llm/chat_context.py747CODE
LOWlivekit-agents/livekit/agents/llm/chat_context.py888CODE
LOWlivekit-agents/livekit/agents/llm/chat_context.py481CODE
LOWlivekit-agents/livekit/agents/llm/utils.py90CODE
LOWlivekit-agents/livekit/agents/llm/utils.py313CODE
LOWlivekit-agents/livekit/agents/llm/utils.py528CODE
LOWlivekit-agents/livekit/agents/llm/fallback_adapter.py245CODE
LOWlivekit-agents/livekit/agents/llm/_strict.py32CODE
LOW…t-agents/livekit/agents/llm/_provider_format/google.py19CODE
LOW…t-agents/livekit/agents/llm/_provider_format/google.py123CODE
LOW…ekit-agents/livekit/agents/llm/_provider_format/aws.py25CODE
LOW…t-agents/livekit/agents/llm/_provider_format/openai.py50CODE
LOW…t-agents/livekit/agents/llm/_provider_format/openai.py172CODE
LOW…t-agents/livekit/agents/llm/_provider_format/openai.py236CODE
LOW…gents/livekit/agents/llm/_provider_format/anthropic.py18CODE
LOW…gents/livekit/agents/llm/_provider_format/mistralai.py85CODE
LOWlivekit-agents/livekit/agents/utils/participant.py233CODE
LOWlivekit-agents/livekit/agents/utils/codecs/decoder.py91CODE
LOWlivekit-agents/livekit/agents/utils/codecs/decoder.py180CODE
LOWlivekit-agents/livekit/agents/utils/codecs/decoder.py208CODE
LOWlivekit-agents/livekit/agents/utils/images/image.py104CODE
LOWlivekit-agents/livekit/agents/utils/aio/itertools.py20CODE
257 more matches not shown…
Modern Structural Boilerplate251 hits · 259 pts
SeverityFileLineSnippetContext
LOWtests/test_filler.py88 def set_idle(self, idle: bool) -> None:CODE
LOWtests/toxic_proxy.py217 def update_api_consumer(self, host: str, port: int) -> None:CODE
LOWtests/fake_realtime.py73 async def update_instructions(self, instructions: str) -> None:CODE
LOWtests/fake_realtime.py76 async def update_chat_ctx(self, chat_ctx: ChatContext) -> None:CODE
LOWtests/fake_realtime.py81 async def update_tools(self, tools: list[Tool]) -> None:CODE
LOWtests/fake_realtime.py84 def update_options(self, *, tool_choice: NotGivenOr[ToolChoice | None] = NOT_GIVEN) -> None:CODE
LOWtests/test_plugin_elevenlabs_stt.py122 def update_options(self, **kwargs: object) -> None:CODE
LOWtests/test_stt_context.py77 def _update_session_keyterms(self, keyterms: list[str]) -> None:CODE
LOWtests/utils/livekit_test.py33__all__ = [CODE
LOWtests/utils/audio_test.py24__all__ = [CODE
LOWexamples/hotel_receptionist/hotel_db.py1028 async def update_booking_card(self, *, booking_code: str, card_last4: str) -> None:CODE
LOWexamples/hotel_receptionist/modify_booking.py277 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__.py160__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.py216 async def update_instructions(self, instructions: str) -> None: ...CODE
LOWlivekit-agents/livekit/agents/llm/realtime.py224 async def update_tools(self, tools: list[Tool]) -> None: ...CODE
LOWlivekit-agents/livekit/agents/llm/realtime.py227 def update_options(self, *, tool_choice: NotGivenOr[ToolChoice | None] = NOT_GIVEN) -> None: ...CODE
LOWlivekit-agents/livekit/agents/llm/tool_context.py554 def update_tools(self, tools: Sequence[Tool | Toolset]) -> None:CODE
LOWlivekit-agents/livekit/agents/llm/__init__.py63__all__ = [CODE
LOW…agents/livekit/agents/llm/realtime_fallback_adapter.py200 def _set_available(self, index: int, available: bool) -> None:CODE
LOW…agents/livekit/agents/llm/realtime_fallback_adapter.py362 async def update_instructions(self, instructions: str) -> None:CODE
LOW…agents/livekit/agents/llm/realtime_fallback_adapter.py366 async def update_chat_ctx(self, chat_ctx: ChatContext) -> None:CODE
LOW…agents/livekit/agents/llm/realtime_fallback_adapter.py372 async def update_tools(self, tools: list[Tool]) -> None:CODE
LOW…agents/livekit/agents/llm/realtime_fallback_adapter.py376 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
LOWlivekit-agents/livekit/agents/cli/_legacy.py597 def set_speaker_enabled(self, enable: bool, *, device: int | str | None = None) -> None:CODE
LOWlivekit-agents/livekit/agents/cli/_legacy.py1611 def _set_dev_mode(ctx: typer.Context) -> None:CODE
LOW…vekit-agents/livekit/agents/voice/keyterm_detection.py215 def set_static_keyterms(self, terms: list[str]) -> None:CODE
LOWlivekit-agents/livekit/agents/voice/agent_session.py1411 def update_agent(self, agent: Agent) -> None:CODE
LOWlivekit-agents/livekit/agents/voice/agent_session.py1642 def _set_user_away_timer(self) -> None:CODE
LOWlivekit-agents/livekit/agents/voice/agent_activity.py454 async def update_instructions(self, instructions: str) -> None:CODE
191 more matches not shown…
Over-Commented Block252 hits · 246 pts
SeverityFileLineSnippetContext
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_endpointing.py481 # between_turn_delay=0.15, between_utterance_delay=0.35COMMENT
LOWexamples/playground.yaml1# Examples metadata consumed by livekit/agents-jukebox.COMMENT
LOWexamples/playground.yaml121 101110011101COMMENT
LOWexamples/playground.yaml161 022222222220COMMENT
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
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/tts/_provider_format.py121COMMENT
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-cerebras/livekit/plugins/cerebras/version.py1# Copyright 2026 LiveKit, Inc.COMMENT
LOW…-plugins-cerebras/livekit/plugins/cerebras/__init__.py1# Copyright 2026 LiveKit, Inc.COMMENT
LOW…vekit-plugins-cerebras/livekit/plugins/cerebras/llm.py1# Copyright 2026 LiveKit, Inc.COMMENT
LOW…vekit-plugins-sarvam/livekit/plugins/sarvam/version.py1# Copyright 2025 LiveKit, Inc.COMMENT
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/tts.py1# Copyright 2025 LiveKit, Inc.COMMENT
LOW…ekit-plugins-sarvam/livekit/plugins/sarvam/__init__.py1# Copyright 2025 LiveKit, Inc.COMMENT
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py1# Copyright 2025 LiveKit, Inc.COMMENT
192 more matches not shown…
AI Structural Patterns164 hits · 156 pts
SeverityFileLineSnippetContext
LOWtests/test_amd_classifier.py27CODE
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.py584CODE
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.py259CODE
LOWlivekit-agents/livekit/agents/voice/agent_activity.py1302CODE
LOWlivekit-agents/livekit/agents/voice/agent.py40CODE
LOWlivekit-agents/livekit/agents/voice/agent.py753CODE
LOWlivekit-agents/livekit/agents/voice/amd/detector.py160CODE
LOWlivekit-agents/livekit/agents/voice/amd/classifier.py106CODE
LOWlivekit-agents/livekit/agents/inference/tts.py219CODE
LOWlivekit-agents/livekit/agents/inference/tts.py238CODE
LOWlivekit-agents/livekit/agents/inference/tts.py257CODE
LOWlivekit-agents/livekit/agents/inference/tts.py276CODE
LOWlivekit-agents/livekit/agents/inference/tts.py295CODE
LOWlivekit-agents/livekit/agents/inference/tts.py314CODE
LOWlivekit-agents/livekit/agents/inference/tts.py333CODE
LOWlivekit-agents/livekit/agents/inference/tts.py351CODE
LOWlivekit-agents/livekit/agents/inference/interruption.py264CODE
LOWlivekit-agents/livekit/agents/inference/stt.py338CODE
LOWlivekit-agents/livekit/agents/inference/stt.py355CODE
LOWlivekit-agents/livekit/agents/inference/stt.py372CODE
LOWlivekit-agents/livekit/agents/inference/stt.py389CODE
LOWlivekit-agents/livekit/agents/inference/stt.py406CODE
LOWlivekit-agents/livekit/agents/inference/stt.py423CODE
LOWlivekit-agents/livekit/agents/inference/stt.py440CODE
LOWlivekit-agents/livekit/agents/inference/stt.py458CODE
LOWlivekit-agents/livekit/agents/inference/stt.py475CODE
LOWlivekit-agents/livekit/agents/inference/stt.py491CODE
LOWlivekit-agents/livekit/agents/inference/eot/detector.py34CODE
LOW…t-plugins-smallestai/livekit/plugins/smallestai/tts.py63CODE
LOW…t-plugins-smallestai/livekit/plugins/smallestai/stt.py104CODE
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…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py488CODE
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py753CODE
LOW…it-plugins-sarvam/livekit/plugins/sarvam/llm/client.py54CODE
LOW…plugins/livekit-plugins-aws/livekit/plugins/aws/tts.py56CODE
LOW…plugins/livekit-plugins-aws/livekit/plugins/aws/llm.py52CODE
LOW…plugins/livekit-plugins-aws/livekit/plugins/aws/stt.py98CODE
LOW…it/plugins/aws/experimental/realtime/realtime_model.py316CODE
LOW…it/plugins/aws/experimental/realtime/realtime_model.py375CODE
LOW…it/plugins/aws/experimental/realtime/realtime_model.py419CODE
LOW…ugins/livekit-plugins-lmnt/livekit/plugins/lmnt/tts.py69CODE
LOW…kit-plugins-neuphonic/livekit/plugins/neuphonic/tts.py74CODE
LOW…ugins/livekit-plugins-slng/livekit/plugins/slng/tts.py157CODE
LOW…ugins/livekit-plugins-slng/livekit/plugins/slng/stt.py108CODE
LOW…s/livekit-plugins-nvidia/livekit/plugins/nvidia/stt.py43CODE
LOW…ugins/livekit-plugins-murf/livekit/plugins/murf/tts.py75CODE
LOW…plugins-fireworksai/livekit/plugins/fireworksai/stt.py96CODE
LOW…plugins-fireworksai/livekit/plugins/fireworksai/stt.py218CODE
LOW…plugins-fireworksai/livekit/plugins/fireworksai/stt.py289CODE
104 more matches not shown…
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.py279Push an audio frame to the buffer. Args: frame: The audio frame to push. Returns: STRING
HIGHlivekit-agents/livekit/agents/voice/agent_session.py1382Commit 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.py191Validate 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.py225Validate language code for a given model. Args: model: The Sarvam model name. language: The requestSTRING
HIGH…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py632Recognize 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.py393 Initialize a Realtime model client for OpenAI or Azure OpenAI. Args: model (str): RealtimeSTRING
HIGH…enai/livekit/plugins/openai/realtime/realtime_model.py561 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.py108 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
Cross-File Repetition26 hits · 130 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
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
Magic Placeholder Names16 hits · 82 pts
SeverityFileLineSnippetContext
HIGHexamples/README.md64LIVEKIT_API_KEY="your_api_key"CODE
HIGHexamples/other/transcription/README.md19export OPENAI_API_KEY=your-api-keyCODE
HIGHlivekit-plugins/livekit-plugins-gnani/README.md29export GNANI_API_KEY="your-api-key"CODE
HIGHlivekit-plugins/livekit-plugins-gnani/README.md35stt = STT(api_key="your-api-key", language="hi-IN")CODE
HIGHlivekit-plugins/livekit-plugins-gnani/README.md36tts = TTS(api_key="your-api-key")CODE
HIGH…enai/livekit/plugins/openai/realtime/realtime_model.py599 api_key="your-api-key",STRING
HIGH…enai/livekit/plugins/openai/realtime/realtime_model.py625 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
Hallucination Indicators5 hits · 50 pts
SeverityFileLineSnippetContext
CRITICAL…s/livekit-plugins-openai/livekit/plugins/openai/tts.py233 oai_stream = self._tts._client.audio.speech.with_streaming_response.create(CODE
CRITICAL…s/livekit-plugins-openai/livekit/plugins/openai/tts.py277 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.py205 response = await self._tts._client.aio.models.generate_content_stream(CODE
Self-Referential Comments15 hits · 46 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.py586 # 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.py869 # Create a fresh session for this stream to avoid conflictsCOMMENT
MEDIUM…it/plugins/aws/experimental/realtime/realtime_model.py576 # Create main task to manage session lifecycleCOMMENT
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.py77# 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
Verbosity Indicators17 hits · 29 pts
SeverityFileLineSnippetContext
LOW…it/plugins/aws/experimental/realtime/realtime_model.py652 # Step 1: Wait for assistant to finish speaking (AUDIO contentEnd with END_TURN)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py661 # Step 2: Wait for audio to fully stop (no new audio for 1 second)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py675 # Step 3: Send close events to trigger completionEnd from Nova SonicCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py682 # Step 4: Wait for completionEnd and let _done_fut resolveCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py703 # Step 1: Drain any pending tool resultsCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py717 # Step 2: Signal tasks to stopCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py720 # Step 3: Wait for response task to exit naturally, then cancel if neededCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py734 # Step 4: Cancel audio input task (blocked on channel, won't exit naturally)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py742 # Step 5: Close the stream (close events already sent in _session_recycle_timer)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py750 # Step 6: Reset state for new sessionCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py985 # Step 1: Send session init events (session start, prompt start, system prompt)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py993 # Step 2: Send history events with small delays between themCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py998 # Step 3: Start response reader first (calls await_output, sets _stream_ready)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1003 # Step 4: Start audio input (waits for _stream_ready before sending audio_content_start)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1008 # Step 5: Allow audio contentStart to be sent before unblockingCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1014 # Step 6: If we popped a user message from history, send it asCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py764 # Step 7: Start new session with preserved stateCOMMENT
Structural Annotation Overuse17 hits · 29 pts
SeverityFileLineSnippetContext
LOW…it/plugins/aws/experimental/realtime/realtime_model.py652 # Step 1: Wait for assistant to finish speaking (AUDIO contentEnd with END_TURN)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py661 # Step 2: Wait for audio to fully stop (no new audio for 1 second)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py675 # Step 3: Send close events to trigger completionEnd from Nova SonicCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py682 # Step 4: Wait for completionEnd and let _done_fut resolveCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py703 # Step 1: Drain any pending tool resultsCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py717 # Step 2: Signal tasks to stopCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py720 # Step 3: Wait for response task to exit naturally, then cancel if neededCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py734 # Step 4: Cancel audio input task (blocked on channel, won't exit naturally)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py742 # Step 5: Close the stream (close events already sent in _session_recycle_timer)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py750 # Step 6: Reset state for new sessionCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py985 # Step 1: Send session init events (session start, prompt start, system prompt)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py993 # Step 2: Send history events with small delays between themCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py998 # Step 3: Start response reader first (calls await_output, sets _stream_ready)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1003 # Step 4: Start audio input (waits for _stream_ready before sending audio_content_start)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1008 # Step 5: Allow audio contentStart to be sent before unblockingCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1014 # Step 6: If we popped a user message from history, send it asCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py764 # 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.py215 # Check if a tracer provider is not set and set one upCOMMENT
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py1202 # Check if session is still validCOMMENT
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py1259 # Check if reconnection was requestedCOMMENT
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py1353 # Check if we have enough data for a chunkCOMMENT
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py1400 # Check if Sarvam VAD triggered flushCOMMENT
LOW…s/livekit-plugins-sarvam/livekit/plugins/sarvam/stt.py1680 # Set flag to trigger flush when Sarvam detects end of speechCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1377 # Check if this is END_TURN (assistant finished speaking)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py1784 # Check if this is an audio message (already transcribed by Nova)COMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py2084 # 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.py735 # Check if restart is neededCOMMENT
LOW…ox/livekit/plugins/ultravox/realtime/realtime_model.py771 # Check if restart is neededCOMMENT
LOW…ox/livekit/plugins/ultravox/realtime/realtime_model.py1135 # Check if we have a current generation before processing audioCOMMENT
Modern AI Meta-Vocabulary6 hits · 17 pts
SeverityFileLineSnippetContext
MEDIUMexamples/drive-thru/database.py633 # explicitely saying there is no `size` for this item, otherwise the LLM seems to hallucinate quite oftenCOMMENT
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.py299 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.py465 # Empty text would make the server hallucinate audio; handle the two cases locally.COMMENT
Fake / Example Data9 hits · 9 pts
SeverityFileLineSnippetContext
LOWtests/test_ipc.py121 token="fake_token",CODE
LOWtests/test_stt_context.py180 d = _detector(static_keyterms=["Acme Corp"], llm=fake)CODE
LOWtests/test_stt_context.py186 assert "Acme Corp" in applied_sectionCODE
LOWexamples/hotel_receptionist/README.md11python 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.py12from 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.py31 "keyterms": ["LiveKit", "Acme Corp"],STRING
AI Slop Vocabulary4 hits · 7 pts
SeverityFileLineSnippetContext
LOWexamples/other/chat-stream-receiver.py79 # in cli we don't actually overwrite the line, just add a flagCOMMENT
LOW…it/plugins/aws/experimental/realtime/realtime_model.py600 # Static credentials - just use the max session durationCOMMENT
MEDIUM…google/livekit/plugins/google/realtime/realtime_api.py1500 # TODO(dz): this isn't a seamless reconnection just yetCOMMENT
LOW…ox/livekit/plugins/ultravox/realtime/realtime_model.py798 # If we're already closing due to send loop shutdown, just returnCOMMENT
Slop Phrases4 hits · 5 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
LOWlivekit-agents/livekit/agents/llm/utils.py543 # The following make sure to use the default value when we receive None.COMMENT
LOW…t-plugins-assemblyai/livekit/plugins/assemblyai/stt.py556 # the recv task will then make sure to process the remaining audio and stopCOMMENT
Dead Code2 hits · 2 pts
SeverityFileLineSnippetContext
MEDIUM…it/plugins/aws/experimental/realtime/realtime_model.py2095CODE
MEDIUM…it/plugins/aws/experimental/realtime/realtime_model.py2099CODE
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